web-dev-qa-db-de.com

Erstellen Sie ein Plugin, um die Aktion zu ändern, mit der eine Funktion verknüpft ist

Ich habe ein Plugin, das eine Funktion mit der Aktion woocommerce_before_my_account verknüpft. Ich möchte stattdessen, dass das Plugin diese Funktion mit der Aktion woocommerce_after_my_account verknüpft.

Wenn ich mein eigenes Plugin erstelle, ist es möglich, dies zu erreichen? Wenn das so ist, wie?

Vielen Dank

2
Pete H

Sie können die Funktion remove_action() verwenden, um eine Funktion von einer Aktion abzuhängen, und dann add_action() , um sie an einer anderen Stelle anzuhängen. Beachten Sie, dass Sie beim Entfernen einer Aktion das Tag (Hook-Name), die Funktion und die Priorität genau so angeben müssen, wie sie hinzugefügt wurden.

Bearbeiten: Hier sind einige zusätzliche Details:

Sie müssen sich die Quelle des anderen Plugins ansehen, um zu bestimmen, wie das geht. Ohne genaue Informationen darüber, um welches Plugin und welche Funktion es sich handelt, können wir Ihnen keine genaue Antwort geben. Hier jedoch ein Beispiel:

wenn das Plugin die Funktion wie folgt einbindet:

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

du würdest etwas machen wie:

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' );

Der wichtige Teil ist, dass Sie die Aktion verschieben müssen, nachdem der Hook erstellt wurde, aber bevor der Hook ausgeführt wird.

3
Scott Nelle