Je veux ajouter ma propre fonction à un hook existant. Voici la définition:
do_action( 'woocommerce_before_single_product_summary' );
La fonction d'origine qui l'utilise ressemble à ceci:
add_action(
'woocommerce_before_single_product_summary',
'woocommerce_template_single_title',
5
);
Puisque je ne veux pas toucher au thème, ni aux modèles de Woocommerce, je veux ajouter ma propre fonction mais avec une priorité inférieure et quelques 3 paramètres supplémentaires comme ceci:
add_action( 'woocommerce_before_single_product_summary', 'my_own_function', 6, 3);
Puisque
do_action( 'woocommerce_before_single_product_summary' );
n'a pas d'argument supplémentaire comme:
do_action( 'woocommerce_before_single_product_summary', $args1, $args2, $args3 );
alors votre rappel d'action sera toujours appelé sans aucun argument d'entrée.
function my_own_function ()
{
// ...
}
Vous devrez donc l'obtenir par d'autres moyens: par exemple via des fonctions, des classes ou en exploitant les valeurs d’autres hooks.
Mais vous pouvez sûrement changer la priorité:
add_action( 'woocommerce_before_single_product_summary', 'my_own_function', 5 );
Si vous pouvez le modifier, par exemple dans le thème de votre enfant, à:
do_action( 'woocommerce_before_single_product_summary', $args1, $args2, $args3 );
alors vous pouvez utiliser:
add_action( 'woocommerce_before_single_product_summary', 'my_own_function', 5, 3 );
avec le rappel comme:
function my_own_function ( $args1, $args2, $args3 )
{
// ... you have now access to $args1, $args2, $args3
}