2017-10-13 9 views
0

プラグインを無効にすると、JavaScriptのタイマーを停止します。 setInterval()をキャンセルするイベントをJS内でトリガーする方法はありますか?非アクティブ化時にwp_dequeue_script()を呼び出すことは、クライアントが既にサイトとプラグインをロードするのを助けていません。私もJSコードからadmin_ajaxを試しましたが、プラグインが無効になったのでもう処理されません。助言がありますか?Wordpress plugin:プラグインを無効にすると、JavaScriptが実行中のタイマーを停止する方法

答えて

0

解決策は、JSおよびPHP AJAXコールバックの管理方法によって異なります。あなたがコードを含んでいないことを考えれば、私はあなたに汎用的な解決策を与えるでしょう。

したがって、最初の解決策はテーマのfunctions.phpを使用することとは独立していますが、それは少し不安です。したがって、あなたの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 
} 
可能性があり
関連する問題