変数の値をdo_actionに渡してから結果の関数で使用しようとしていますが、機能していません。アクションは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にまったくアクセスできません。
add_action() と add_filter() 4つのパラメータを取る:string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1
。
それで、あなたが期待している関数は1つ以上のパラメータを取り、それからそれが4番目のパラメータとして受け入れるパラメータの数をadd_action()
に渡すだけです。あなたの場合は、
add_action ('my_action', 'my_function', 10, 2) ;