我试图在过滤器内调用一个动作。我想从action方法中检索一个值并将其用于过滤函数
add_filter( 'wc_product_table_query_args', 'wcpt_custom_query_args', 10, 3 );
function wcpt_custom_query_args( $args, $product_table) {
add_action('dokan_store_profile_frame_after', 'add_store_id', 13, 2);
;
// do something with $args
$args += array('author' => $store_id);
return $args;
}
function add_store_id($store_user, $store_info){
$store_id = $store_user->ID;
return $store_id;
}
如何在函数wcpt_custom_query_args中检索$ store_id?
答案 0 :(得分:1)
add_action('dokan_store_profile_frame_after', 'add_store_id', 13, 2);
function add_store_id($store_user, $store_info){
global $store_id;
$store_id = $store_user->ID;
add_filter( 'wc_product_table_query_args', 'wcpt_custom_query_args', 10, 2 );
}
function wcpt_custom_query_args( $args, $product_table) {
global $store_id;
// do something with $args
$args += array('author' => $store_id);
return $args;
}
答案 1 :(得分:0)
您应该在源代码中找到行apply_filter('wc_product_table_query_args'
以查找允许的参数。如果第3个参数是$ store_id,那么你可以使用它。
你应该记住的一点是,在动作挂钩上,不应该返回任何内容(仅返回过滤器挂钩)