2012-06-25 17 views
2

我想获取我客户的最后登录日期(在Magento上)。如何获取客户的最后登录日期

我做这样说:

$customer = Mage::getSingleton('customer/session')->getCustomer(); 
$logCustomer = Mage::getModel('log/customer')->load($customer->getId()); 
$lastVisited = $logCustomer->getLastVisitAt(); 

但它不工作,则结果为NULL

有一个名为我的数据库“customer_log”表,该表是空的! 此表具有“customer_id”和“login_at”列。

你知道我是否必须在后台激活一个选项才能使之有效?

谢谢,对不起我的英语不好。

回答

1

您的表customer_log没有出现在我的Magento 1.3.2安装中,但是有一个log_customer表。它有log_id, visitor_id, customer_id, login_at, logout_at, and store_id的列。 login_at专栏会给你你想要的东西。

// $lastVisited = $logCustomer->getLastVisitAt(); 
// becomes 
$lastVisited = $logCustomer->getLoginAt(); 

这将返回UTC一个MySQL datetime(如2012-06-17 13:45:57),也有getLoginAtTimestamp()方法,您可能希望返回Unix时间戳。

+0

nachito嗨, 对不起,我说的是 'customer_log',而不是 'log_customer'。 但是,此表在我的数据库中为空。没有条目。 奇怪,不是吗? – nverhoye

+0

@ e-niki:是的,就像我说的我没有那张桌子,它可能来自第三方模块。你的完整版Magento是什么? – nachito

+0

我的完整版本是1.3.2.3 – nverhoye

1

对我来说这是做的最好的方式:

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

对我来说,'loadByCustomer'的作品! 'load()'传递一个客户ID不会。这个解决方案是可行的! –