Вопрос

Я пытаюсь написать пользовательский скрипт сброса пароля, который добавляет бонусные баллы к учетным записям всех тех, кто сбросил свои пароли.Индивидуальная ссылка на это будет отправлена только тем клиентам, которые ранее никогда не входили в свою учетную запись (их около 900).

Мне нужно знать как изменить дату последнего входа клиента в систему таким образом, они могут получить бонусные баллы только один раз.Таким образом, я убеждаюсь, что они раньше не сбрасывали свой пароль.

$logCustomer = Mage::getModel('log/customer')->loadByCustomer($customer);
$lastVisited = $logCustomer->getLoginAtTimestamp();

if ($lastVisited == NULL)
{
  // Reset password
  // Add reward points to account
}
Это было полезно?

Решение

Когда клиент войдет в систему, эта дата будет обновлена автоматически.Однако, если вам нужно изменить это вручную, вы можете сделать это с помощью следующего оператора:

$customerLog = Mage::getModel('log/customer')->loadByCustomer($customer);
$customerLog->setLoginAt('2013-12-31 00:00:00');
$customerLog->save();

Другие советы

Вы можете получить дату последнего входа в систему с помощью следующего кода.

$customer = Mage::getSingleton('customer/session')->getCustomer();
$logCustomer = Mage::getModel('log/customer')->loadByCustomer($customer);
$lastVisited = $logCustomer->getLoginAtTimestamp();
$lastVisitedDate = date('Y-m-d H:i:s', $lastVisited);

Это $lastVisitedDate будет автоматически обновляться системой всякий раз, когда пользователь входит в систему.Поэтому, если вы хотите сохранить это значение замороженным после первого входа пользователя в систему, то вам придется жестко запрограммировать некоторое значение для этого.

    $lastVisitedDate = '2013-11-11 00:00:00';// the date you want to set.
    $customer = Mage::getSingleton('customer/session')->getCustomer();
    $logCustomer = Mage::getModel('log/customer')->loadByCustomer($customer);
    $logCustomer->setLoginAtTimestamp($lastVisitedDate)->save();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top