我已经四处搜索,但没有找到解决方案(或者甚至可能)。
我正在运行Magento CE 1.9.1
我们的商店已协商特定购买群的定价,并且我使用客户群来执行此操作。并非所有客户都希望在线下订单,只想查看定价以发出采购订单。
是否有办法向客户发送一个链接,该链接将使用签署到该客户组的通用帐户自动登录,或将其发送到将要登录的CMS静态页面?
答案 0 :(得分:0)
当然可以。看看你可以创建的这个例子:
class MyCompany_MyModule_MyLogMeInController extends Mage_Core_Controller_Front_Action
{
public function myLogMeInAction() {
$session = Mage::getSinglenton('customer/session');
if ($session->isLoggedIn()) {
//oops you are already logged in
//option 1:
// $this->_redirect('...somewhere...');
// return;
//option 2:
// $session->logout();
// $session->renewSession();
}
$groupId = $this->getRequest()->getParam('my_group');
if ($groupId) {
$customerId = $this->_myFunctionToRetrievePresetCustomerIdByGroupId($groupId);
$session->loginById($customerId);
$session->renewSession();
$this->_redirect('...wherever i want now that the customer is logged in...');
} else {
//oops, invalid request
$this->_forward('noRoute');
}
}
}
其中一个renewSession
来电可能是不必要的,但比抱歉更安全。
此外,如果您不希望将ID更改为2而不是1,则可能不希望直接在浏览器中传递ID,因此您可以使用Magento加密/解密。请参阅Mage_Core_Helper_Data::encrypt
和Mage_Core_Helper_Data::decrypt
。