Passar parâmetros para funcionar através de uma ação

Estou tentando passar o valor de uma variável em do_action e depois usá-la na function resultante, mas não está funcionando. A ação está sendo acionada no check-out woocommerce, então também passa a variável $ checkout, o que está funcionando bem. Exemplo simplificado abaixo:

add_action( 'my_action', 'my_function' ); function my_function( $checkout, $myvar ) { var_dump ($checkout); //Works fine var_dump ($myvar); //Returns NULL } 

E, em seguida, chamar a ação no modelo, assim:

 $myvar = 1; do_action( 'my_action', $checkout, $myvar ); 

Não posso acessar $ myvar na function, qualquer ajuda apreciada.

Solutions Collecting From Web of "Passar parâmetros para funcionar através de uma ação"

add_action () e add_filter () pegue 4 params: string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 .

Então, a function em que você está conectando leva mais de 1 param, então apenas passe o número de params que aceita como o 4º parâmetro para add_action() . No seu caso,

 add_action ('my_action', 'my_function', 10, 2) ;