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".
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 );
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