web-dev-qa-db-ja.com

関数がフォークされているアクションを変更するためのプラグインを作成する

関数をwoocommerce_before_my_accountアクションにフックするプラグインがあります。代わりに、プラグインがその機能をwoocommerce_after_my_accountアクションにフックしたいと思います。

自分でプラグインを作成した場合、これを達成することは可能ですか?もしそうなら、どうですか?

ありがとう

2
Pete H

remove_action() 関数を使用してアクションから関数のフックを解除してから add_action() 他の場所にフックする。アクションを削除するときは、タグ(フック名)、機能、および優先順位を追加されたとおりに正確に指定する必要があります。

編集:これが追加詳細です:

その方法を決定するために他のプラグインのソースを調べる必要があります。どのプラグインと機能について具体的な情報がないと、正確な答えを得ることはできませんが、例を示します。

プラグインがこのような関数をフックするならば:

add_action( 'woocommerce_before_my_account', 'function_to_move', 10 );

あなたはこんなことをするでしょう:

function my_move_woo_functions() {
    remove_action( 'woocommerce_before_my_account', 'function_to_move', 10 );
    add_action( 'woocommerce_after_my_account', 'function_to_move', 10 );
}
add_action( 'plugins_loaded', 'my_move_woo_functions' );

重要なのは、フックが作成されてからフックが実行されるまでの間にアクションを移動する必要があるということです。

3
Scott Nelle