从Prestashop注销所有客户

时间:2020-02-21 18:58:31

标签: php prestashop logout prestashop-1.7

我需要一种从Prestashop网站注销所有已登录客户的方法,因为域名迁移会导致用户会话出现一些问题,并且让客户注销并重新登录才能解决该问题。

我尝试了以下代码,但无济于事:

$customers = Customer::getCustomers();
foreach($customers as $customer) {
    $obj = new Customer($customer['id_customer']);
    $obj->logout();
}

是否有一种方法可以使Prestashop中的所有用户会话(代码或后台)本地失效/破坏?否则,纯PHP方法绝对不受欢迎。

2 个答案:

答案 0 :(得分:2)

我最终追求的是马赫迪·沙德(Mahdi Shad)在他的回答中提到的内容,但请允许我添加更多详细信息:

我将Prestashop cookie名称的前缀从“ Prestashop-”更改为“ MySiteName-”(可以更改为所需的名称),方法是转到/classes/Cookie.php,并更改以下行(第78行):

$this->_name = 'MySiteName-'.md5(($this->_standalone ? '' : _PS_VERSION_).$name.$this->_domain);

好吧,重写类而不是直接修改它肯定是更好的做法。

此cookie名称更改立即使旧的浏览器cookie过时(即使它们没有过期),因此所有用户都被注销了。正是我想要的!

答案 1 :(得分:1)

您必须更改Prestashop cookie以避免验证登录名。

由于无法输入所有密码而无法更改“ cookey键”,但是您可以覆盖Cookie类并更改Cookie模式。