我有两个版本的相同插件-一个是WordPress上的免费版本。org,另一个是付费升级。两个版本使用相同的函数名,因此不能同时激活。当有人在当前停用免费版本之前安装并激活付费版本时,将显示一个致命错误,说明“致命错误:无法重新声明abc\\U函数()(之前在…)中声明)”。
我正在尝试为付费版本添加register\\u activation\\u hook,它会自动停用免费版本或显示wp\\u die通知,要求他们停用免费版本。我可以让它们工作,但问题是它们似乎运行得不够早,因此我得到了重新声明的函数致命错误。这就是我正在使用的:
function abc_activate() {
if ( function_exists(\'abc_function\') ) die( "Please deactivate the free version..." );
}
register_activation_hook( __FILE__, \'abc_activate\' );
我还尝试将wp\\u die和deactivate\\u plugins函数附加到admin\\u init操作,但在出现致命错误之前似乎也没有运行。例如:function abc_warning_message() {
wp_die( "Please deactivate the free version of the plugin..." );
deactivate_plugins( \'abc-plugin-name\' );
}
add_action( \'admin_init\', \'abc_warning_message\' );
是否有人知道我可能做错了什么,或者是否有可能在由于函数名重复而触发致命错误之前调用函数?最坏的情况下,我可以通过插件重命名所有的函数名,但我希望能够让它正常工作。提前感谢您的帮助!
约翰