当客户线程关闭时,我需要创建一个模块来发送电子邮件。要做到这一点,我正在考虑在客户线程更新时使用钩子,然后我可以检查状态并执行我需要的操作。使用validator.prestashop.com我发现actionObjectCustomerThreadAddAfter
。我想知道当我关闭或更新线程时是否有类似的钩子。我目前在this one发现的唯一钩子列表,但即使是我发现的这个钩子在那里也不存在。PrestaShop:关闭客户线程
0
A
回答
1
对于每一个扩展ObjectModel
和使用您已有可使用下列钩其add()
,update()
,delete()
或save()
方法的类。
actionObjectAddBefore
actionObjectNameAddBefore
actionObjectAddAfter
actionObjectNameAddAfter
actionObjectUpdateBefore
actionObjectNameUpdateBefore
actionObjectUpdateAfter
actionObjectNameUpdateAfter
actionObjectDeleteBefore
actionObjectNameDeleteBefore
actionObjectDeleteAfter
actionObjectNameDeleteAfter
用类的名称替换Name
。所有这些钩子也将对象本身作为参数传递。
array(
'object' => $this
)
所以对于客户线程的状态就可以使用actionObjectCustomerThreadUpdateBefore
和actionObjectCustomerThreadUpdateAfter
钩来检测,如果状态更改和发送电子邮件。
编辑
然后你会发现在管理客户线程控制器这样的宝石。
if ($id_status = (int)Tools::getValue('setstatus')) {
$status_array = array(1 => 'open', 2 => 'closed', 3 => 'pending1', 4 => 'pending2');
Db::getInstance()->execute('
UPDATE '._DB_PREFIX_.'customer_thread
SET status = "'.$status_array[$id_status].'"
WHERE id_customer_thread = '.(int)$id_customer_thread.' LIMIT 1
');
}
含义,它不使用对象的状态,但直接调用保存到数据库中,以便在吊钩从未执行。
您将不得不重写AdminCustomerThreadsController
及其postProcess()
方法来添加您的代码。
相关问题
- 1. PrestaShop创建客户
- 2. 用java多线程服务器/客户端,如何判断客户端线程是否关闭?
- 3. Backgroundworker线程不关闭程序关闭?
- 4. java.nio.channels.ClosedChannelException - 客户端关闭SSL
- 5. 客户端关闭连接
- 6. 的Prestashop模块关闭
- 7. 关闭主线程
- 8. 套接字关闭后关闭线程
- 9. Prestashop添加客户方法
- 10. C#REST API客户端Prestashop
- 11. Prestashop大写客户地址
- 12. Java多线程未关闭线程
- 13. 循环服务线程在客户端关闭套接字后不会中断
- 14. 尝试调用实现客户端线程的类时强制关闭
- 15. Python - 问题关闭线程
- 16. 线程OutOfMemoryError,强制关闭
- 17. 关闭线程的问题
- 18. 关闭多线程NSDocument
- 19. 无法关闭线程池
- 20. WCF客户端 - 客户端何时关闭通道
- 21. Apache客户端4.x关闭HttpRequestBase
- 22. Resteasy客户端不关闭连接
- 23. 什么时候关闭WCF客户端?
- 24. WCF 4关闭客户端代理
- 25. 如何关闭PayPal客户收据
- 26. 异步客户端套接字关闭?
- 27. 如何处理客户端关闭Javascript?
- 28. 强制客户端关闭对象
- 29. 如何安全关闭rmi客户端?
- 30. SignalR Hub关闭导致客户端freez
谢谢,这是一个非常有用的信息!只要我执行,我会给出反馈并将答案标记为正确。 –
我加了,看起来好像没有达到代码。我在钩表中看到钩子,但是当我进入“管理钩子”部分时,我看不到它。我能做什么错了? –
@AndréLuiz你勾选了“显示不可定位的钩子”吗?还要确保在模块的安装方法中注册这些钩子。 – TheDrot