php - 通过 magento 中的电子邮件 ID 获取有关客户的信息

标签 php magento magento-1.7 magento-1.5

我想通过电子邮件 ID 获取客户信息,所以我在 Controller 中创建了一个方法,内容为:

public function showAction(){
    $customer_email = "abc@mail.com";
    $customer = Mage::getModel("customer/customer");
    $customer->setWebsiteId(Mage::app()->getWebsite()->getId());
    $customer->loadByEmail($customer_email);
    echo $customer->getId();
    echo $customer->getFirstName();
    echo $customer->getEmail(); 
}

但是当运行它返回空值时,我不知道为什么?。请帮助我

最佳答案

在您的系统配置中,客户帐户由网站共享,因此 loadByEmail 方法需要在具有 website_id 值的客户模型上使用,并且此网站 ID 必须与客户关联的网站相对应。

或者,由于您的 Controller 似乎是管理员 Controller ,Mage::app()->getWebsite()->getId() 返回 0,这不对应。

因此,您的解决方案是在全局范围内共享客户帐户(系统> 配置> 客户> 客户配置> 帐户共享选项),因为如果您只运行一个网站,它不会改变太多,要么使用必须由用户指定的网站 ID,要么至少不检索通过 Mage::app()->getWebsite()->getId()

关于php - 通过 magento 中的电子邮件 ID 获取有关客户的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17149256/

相关文章:

php - 在偏移处添加字符串?

php - 如何在 Symfony2 中将 json 渲染成 Twig

php - Magento - 将 SKU 数组添加到购物车

php - Magento 产品平面数据和目录搜索索引问题

php - 你如何调试 PHP 脚本?

php - 使用PHP将图片上传到mysql数据库

magento - “BABEL_ENV”未被识别为内部或外部命令

玛根托 : Out of stock products showing last in the category page

php - Magento 将用户注册限制为特定电子邮件域

mysql - Magento 1.7 如何删除现有的多余网站和商店