You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PHP脚本(Vtlib函数)在Vtiger 7中注销BeforeSave和AfterSave处理器?

在Vtiger 7中注销BeforeSave和AfterSave事件处理器

Vtiger的Vtiger_Event类自带unregister方法,刚好可以用来移除你之前注册的事件处理器,只需对应注册时的参数调用即可。

注销脚本示例

你可以在Modules/CustomExtension/目录下创建一个UnregisterHandlers.php脚本,内容如下:

<?php
require_once 'include/Webservices/Create.php';
require_once 'modules/Vtiger/Event.php';
require_once 'modules/Vtiger/Module.php';

static function unregister_eventhandler() 
{
    global $adb;
    // 替换成你注册时的模块名称
    $moduleInstance = Vtiger_Module::getInstance('Modules Name');
    
    // 注销Before Save处理器
    Vtiger_Event::unregister($moduleInstance, 'vtiger.entity.beforesave', 'HCacfHandler');
    
    // 注销After Save处理器
    Vtiger_Event::unregister($moduleInstance, 'vtiger.entity.aftersave', 'HCacfHandler');
    
    echo "事件处理器已成功注销!";
}

// 执行注销操作
unregister_eventhandler();
?>

注意事项

  • 确保$moduleInstance是你注册处理器时对应的模块实例,模块名称要完全匹配
  • 事件名称(vtiger.entity.beforesave/vtiger.entity.aftersave)和处理器类名(HCacfHandler)必须和注册时的参数一致,否则无法匹配到要删除的记录

执行方法

  • 可以直接通过浏览器访问这个脚本的URL
  • 或者在服务器终端用PHP命令行执行:
php Modules/CustomExtension/UnregisterHandlers.php

执行完成后,你可以查看vtiger_eventhandlers表,确认对应的处理器记录已经被删除。

内容的提问来源于stack exchange,提问作者Santosh Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 12:27:16