我需要一种从Prestashop网站注销所有已登录客户的方法,因为域名迁移会导致用户会话出现某些问题,并且让客户注销并重新登录才能解决此问题。
我尝试了以下代码,无济于事:
$customers = Customer::getCustomers();
foreach($customers as $customer) {
$obj = new Customer($customer['id_customer']);
$obj->logout();
}
是否有一种方法可以从Prestashop(代码或后台)本地使所有用户会话失效/破坏?否则,纯PHP方法绝对不受欢迎。
您必须更改Prestashop cookie以避免验证登录。
由于所有密码失败,无法更改“ cookey-key”,但是您可以覆盖Cookie类并更改Cookie模式。
我最终追求的是马赫迪·沙德(Mahdi Shad)在他的回答中提到的内容,但请允许我添加更多详细信息:]
通过转到/classes/Cookie.php
,并更改了以下行(第78行),将Prestashop Cookie名称的前缀从“ Prestashop-”更改为“ MySiteName-”(您可以更改为所需名称):
$this->_name = 'MySiteName-'.md5(($this->_standalone ? '' : _PS_VERSION_).$name.$this->_domain);
嗯,重写类而不是直接修改它当然是更好的做法。
Cookie名称的这一更改会立即使旧的浏览器Cookie失效(即使它们没有过期),因此所有用户都被注销了。正是我想要的!