场景:
此时我想更改magento客户登录操作的功能。因此,对于Native magento,客户会根据他们登录的网站重定向到网站,例如:
等
我想通过以下方式自定义magento:
无论从哪里(/ uk或/ cn或/ us)我都想强迫客户登录特定网站(根据他们在注册时指定的国家/地区)。对于这个问题,该网站基本上是任意的。
* 如何以语法方式将客户登录到特定网站,然后确保将其重定向回该网站的主页? *
到目前为止,我已经正确地覆盖了 Mage_Customer_AccountController ,并且一直在考虑更改loginPostAction和_loginPostRedirect方法。
到目前为止我有
$this->_redirectUrl($session->getBeforeAuthUrl(true));
正常工作,但在重定向时,它会让我回到目标网页,因为客户正在登录他们正在使用的网站,而不是依赖客户国家/地区代码的网站。
如果你看一下loginPostAction,你会看到:
try {
$session->login($login['username'], $login['password']);
我可以指定在哪个网站登录吗?
如果我查看它调用的会话登录操作:
public function login($username, $password)
{
/** @var $customer Mage_Customer_Model_Customer */
$customer = Mage::getModel('customer/customer')
->setWebsiteId(Mage::app()->getStore()->getWebsiteId());
/*I thought setting the website here would change where
*the customer is logged into, but as far i can tell, thats not the case.*/
if ($customer->authenticate($username, $password)) {
$this->setCustomerAsLoggedIn($customer);
$this->renewSession();
return true;
}
return false;
}
我已经遵循了authenticate,setCustomerAsLoggedIn和renewSession函数调用,到目前为止,我的尝试都没有结果。我无法强迫客户登录其他网站(与他们来自哪里不同)。
在我开始吃键盘之前有什么建议吗?