【发布时间】:2020-09-27 17:33:10
【问题描述】:
我正在尝试将我在 ajax 调用中收到的变量传递给 add_filter 函数。
这是我的代码
add_action('wp_ajax_mht_set_partial_payment_amount', 'mht_set_partial_payment_amount');
add_action('wp_ajax_nopriv_mht_set_partial_payment_amount', 'mht_set_partial_payment_amount');
function mht_set_partial_payment_amount(){
$amount = $_POST["partial_payment_amount"];
add_filter('woo_wallet_partial_payment_amount', function($partial_payment){
return $amount;
}, 10, 1);
echo json_encode($amount);
die();
}
$amount 在响应中完全没问题,但在过滤器中根本不起作用。
我尝试了许多其他方法将 $amount 变量传递给过滤器(使用类或全局变量),但没有任何效果。
ajax 调用只接受一个输入字段值。我需要将值传递给过滤器。
我已经花了几个小时,但没有运气:(任何帮助将不胜感激!
【问题讨论】:
-
您确定第二个过滤器在您添加过滤器后运行,因为我相信您可能在它运行后添加过滤器。
-
过滤器函数有自己的作用域,所以它不会知道
$amount是什么。您可以在返回之前使用global $amount,但您需要确保存在这样的全局变量。我建议您将$amount存储在可以访问的地方,然后在过滤器中检索它。
标签: php ajax wordpress variables add-filter