In un Magento multi-sito Web mutistore, vorrei costringere gli utenti ad accedere allo stesso sito Web che hanno registrato. Potrebbero utilizzare qualsiasi modulo di accesso, in qualsiasi sito Web, ma il modulo dovrebbe controllare le proprie credenziali e reindirizzarle al sito Web corretto.
Ho provato a controllare il sito Web del cliente e a costringerlo ad accedere. Tuttavia non funziona abbastanza bene. L'utente accede al sito Web corrente, non a quello che ha registrato.
In app / code / local / mage / Customer / Session.php
public function login($username, $password)
{
/**************************************************/
$customer = Mage::getModel("customer/customer");
$customer_website = null;
foreach (Mage::app()->getWebsites() as $website) {
$customer->setWebsiteId($website->getId());
$customer->loadByEmail($username);
//check if user exists
if($customer->getName()){
$customer_website = $website->getId();
}
}
/*************************************************/
$customer = Mage::getModel('customer/customer')->setWebsiteId($customer_website);
if ($customer->authenticate($username, $password)) {
$this->setCustomerAsLoggedIn($customer);
return true;
}
return false;
}
Qualche idea?