Magento - проверка первого заказа клиента - PullRequest
1 голос
/ 18 марта 2011

Существует ли быстрый способ программной проверки того, разместил ли пользователь, вошедший в данный момент в систему, заказ?Я пишу наблюдателю, и в какой-то момент я хочу просто сказать,

if ($this->isCustomerLoggedIn() && (has never placed an order))
{ 
do this 
}

возможно?Спасибо!

Ответы [ 2 ]

16 голосов
/ 18 марта 2011
$orders = Mage::getResourceModel('sales/order_collection')
    ->addFieldToSelect('*')
    ->addFieldToFilter('customer_id', $customer->getId());

if ($this->isCustomerLoggedIn() && (!$orders->getSize()))
{ 
    // has never placed an order 
}

Вышеприведенное предполагает, что у вас есть $customer, но если он не доступен из события, вы обычно можете получить зарегистрированного в данный момент клиента с помощью:

$customer = Mage::getSingleton('customer/session')->getCustomer();
0 голосов
/ 19 марта 2011

Вам нужно создать событие?

$session = Mage::getModel('customer/session');
$order = Mage::getModel('sales/order')->getCollection()->addAttributeToFilter('customer_id',$session->getId())->getFirstItem();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...