一旦用户在prestashop上注册,我想向API发送一些ata。
它在前面工作得很好但在后台办公室事件不会激活吗?
有什么想法吗?
答案 0 :(得分:2)
在前台办公室,当客户注册时,执行hook actionCustomerAccountAdd
Hook::exec('actionCustomerAccountAdd', array(
'_POST' => $_POST,
'newCustomer' => $customer
));
在后台,它不会执行这样的钩子(或任何其他钩子)。但您可以在override / controllers / admin / AdminCustomersController.php
中创建覆盖class AdminCustomersController extends AdminCustomersControllerCore
{
public function processAdd()
{
$customer = parent::processAdd();
if($customer === false)
return false;
// else do what you need here
return $customer;
}
}
另一种方法是,不管使用钩子actionCustomerAccountAdd,您都可以覆盖每次添加客户时执行的客户添加功能,无论它在何处创建(除非它已添加到数据库和不使用prestashop功能)。在override / classes / Customer.php中:
class Customer extends CustomerCore
{
public function add($autodate = true, $null_values = true)
{
$res = parent::add($autodate, $null_values);
if(!$res)
return $res; // customer not added
// do what you need. $this is the customer just added
}
}
如果您使用覆盖,请不要忘记删除文件缓存/ class_index.php