我试图将变量的值传递到do\\u操作中,然后在生成的函数中使用它,但它不起作用。该操作是在woocommerce签出中触发的,因此它还传递了$checkout变量,该变量工作正常。简化示例如下:
add_action( \'my_action\', \'my_function\' );
function my_function( $checkout, $myvar ) {
var_dump ($checkout); //Works fine
var_dump ($myvar); //Returns NULL
}
然后调用模板中的操作,如下所示:
$myvar = 1;
do_action( \'my_action\', $checkout, $myvar );
我无法在函数中访问$myvar,任何帮助都将不胜感激。
最合适的回答,由SO网友:Paul \'Sparrow Hawk\' Biron 整理而成
add_action() 和add_filter() 取4个参数:string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1
.
因此,您要挂接的函数接受多个参数,然后将它接受的参数数作为第四个参数传递给add_action()
. 就你而言,
add_action (\'my_action\', \'my_function\', 10, 2) ;