我正在尝试从体内的do\\u操作获取以下参数:
do_action( \'custom_action\', array( \'product_id\' => $product_id , \'outbiddeduser_id\' => $outbiddeduser, \'log_id\' => $log_id ) );
我试着这样做:
add_action(\'custom_action\', \'test\', 10, 3);
function test($product_id, $outbiddeduser_id, $log_id) {
$a = $product_id;
$b = $outbiddeduser_id;
$c = $log_id;
echo $a . \', \' . $b . \', \' . $c;
}
还有这个:
add_action(\'custom_action\', \'test\', 10, 1);
function test( $associative_array ) {
$a = $associative_array[\'product_id\'];
$b = $associative_array[\'outbiddeduser_id\'];
$c = $associative_array[\'log_id\'];
echo $a . \', \' . $b . \', \' . $c;
}
但它不起作用。我做错了什么?
SO网友:Tom J Nowell
您将动作传递给关联数组,因此挂钩函数将接收关联数组。如果我们像这样重新键入,会更清晰一些:
$associative_array = array(
\'product_id\' => $product_id ,
\'outbiddeduser_id\' => $outbiddeduser,
\'log_id\' => $log_id
);
do_action( \'woocommerce_simple_auctions_outbid\', $associative_array );
因此:
add_action(\'woocommerce_simple_auctions_outbid\', \'test\', 10, 1);
function test( $associative_array ) {
它以数组的形式出现,因为这就是你所经历的。中没有对阵列进行神奇的解包
do_action