Wordpress插件:如何在插件停用时停止在javascript中运行的计时器

时间:2017-10-13 20:41:10

标签: javascript wordpress plugins

停用插件后,我想停止javascript计时器。有没有办法在JS中触发一个取消setInterval()的事件?在停用时调用wp_dequeue_script()不会帮助已经加载了站点和插件的客户端。我还尝试了JS代码中的admin_ajax,但由于插件已停用,因此不再进行处理。有什么建议吗?

1 个答案:

答案 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
}