web-dev-qa-db-fra.com

Comment peut remplacer un add_filter d'un plugin?

Comment puis-je remplacer add_filter d'un plugin?

comme

add_filter( 'wcml_switch_currency_exception', 'cart_switching_currency', 10, 4 );

Je veux utiliser ma fonction personnalisée à la place de la fonction "cart_switching_currency".

1
Suman

Vous pouvez utiliser remove_filter pour supprimer un filtre, puis ajouter votre propre filtre à ce hook. Par exemple:

remove_filter( 'wcml_switch_currency_exception', 'cart_switching_currency', 10 );

add_filter( 'wcml_switch_currency_exception', 'my_function', 10, 4 );
1
Jack Johansson

Les filtres sont livrés avec un paramètre de priorité. La valeur par défaut est 10. Par conséquent, pour remplacer une fonction, vous devez augmenter la priorité:

add_filter( 'wcml_switch_currency_exception', 'cart_switching_currency', 99, 4 );

add_filter (chaîne $ tag, appelable $ function_to_add, int $ priorité = 10, int $ acceptés_args = 1)

Plus d'infos dans le add_filter

Mettre à jour:

Si la suppression d'un filtre ne fonctionne pas, essayez cette approche:

function remove_cart_switching_currency_filter(){
    remove_filter('wcml_switch_currency_exception', 'cart_switching_currency', 10, 4);
}
add_action( 'after_setup_theme', 'remove_cart_switching_currency_filter' );

L'important est que les priorités doivent correspondre.

Plus d'infos sur after_setup_theme

1
Drupalizeme