J'essaie de passer la valeur d'une variable dans do_action, puis de l'utiliser dans la fonction résultante, mais cela ne fonctionne pas. L'action est déclenchée dans la commande woocommerce, elle transmet donc également la variable $ checkout, qui fonctionne correctement. Exemple simplifié ci-dessous:
add_action( 'my_action', 'my_function' );
function my_function( $checkout, $myvar ) {
var_dump ($checkout); //Works fine
var_dump ($myvar); //Returns NULL
}
Et puis en appelant l'action dans le template comme ceci:
$myvar = 1;
do_action( 'my_action', $checkout, $myvar );
Je ne peux pas accéder à $ myvar du tout dans la fonction, aucune aide appréciée.
add_action () et add_filter () take 4 paramètres: string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1
.
Ainsi, la fonction à laquelle vous vous connectez prend plus d'un paramètre, puis transmettez simplement le nombre de paramètres acceptés en tant que quatrième paramètre à add_action()
. Dans ton cas,
add_action ('my_action', 'my_function', 10, 2) ;