停用插件后,我想停止javascript计时器。有没有办法在JS中触发一个取消setInterval()的事件?在停用时调用wp_dequeue_script()不会帮助已经加载了站点和插件的客户端。我还尝试了JS代码中的admin_ajax,但由于插件已停用,因此不再进行处理。有什么建议吗?
答案 0 :(得分:0)
解决方案取决于您管理JS和PHP AJAX回调的方式。考虑到你没有包含任何代码,我会给你一个通用的解决方案。
所以,第一个解决方案是独立使用主题的functions.php
,但它有点randy。所以,当你的JS AJAX调用得到输出时,它将是一个错误,表明WP AJAX找不到你提供的回调方法,或者它可能是空的,我没有测试这个。但是你必须在success
方法检查输出时找到输出并且每次都有响应,如果输出不是你预期的那么只是clearInterval
定时器变量。
另一种看法是在你的主题中帮助functions.php
。将AJAX回调方法和钩子放在functions.php
文件中处理逻辑并作为代理。
在AJAX回调方法中,您需要检查插件是否处于活动状态。这一切都取决于你,但是一些检查插件是否处于活动状态的方法可能是
if ( is_plugin_active( 'plugin-directory-name/plugin-main-file.php') ) {
// yes it's active
} else {
echo json_encode( array(
'type' => 'error',
'message' => 'Plugin deactivated';
) );
}
OR
if ( class_exists( 'AClassInYourPlugin' ) ) {
// yes it's active
}
OR
if ( function_exists( 'a_method_in_your_plugin' ) ) {
// yes it's active
}