Измените дату последнего входа в систему
-
16-10-2019 - |
Вопрос
Я пытаюсь написать пользовательский скрипт сброса пароля, который добавляет бонусные баллы к учетным записям всех тех, кто сбросил свои пароли.Индивидуальная ссылка на это будет отправлена только тем клиентам, которые ранее никогда не входили в свою учетную запись (их около 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();