我正在尝试编写一个自定义密码重置脚本,该脚本将奖励点添加到所有重置密码的帐户的帐户中。指向此的定制链接只能发送给从未登录过其帐户的客户(其中约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 每当用户登录时,系统都会自动更新。s o如果要在用户首次登录后保持此值冻结,那么您将不得不为此用一些值来代码。

    $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归因
scroll top