我正在嘗試將我在 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 調用只需要一個輸入字段值。我需要將值傳遞給過濾器。我已經花了幾個小時在這上面但沒有運氣 :( 任何幫助將不勝感激!
1 回答

www說
TA貢獻1775條經驗 獲得超8個贊
問題是 AJAX 功能與用戶頁面分開運行。所以我想當你添加過濾器時它永遠不會執行,因為它是一個 AJAX 調用而不是構建頁面。我會做一個 $_SESSION 變量來臨時存儲值并在鉤子中使用它,如:
function mht_set_partial_payment_amount(){
if (!empty($_POST["partial_payment_amount"]) {
$_SESSION['my-amount"] = $_POST["partial_payment_amount"];
echo json_encode($amount);
}
wp_die(); // Use wp_die for ajax functions.
}
始終添加過濾器以執行調用,但只有 $_SESSION 變量存在時才會執行內部代碼:
add_filter('woo_wallet_partial_payment_amount', function($partial_payment){
if (!empty($_SESSION["my-amount"]) {
//EXECUTE WHAT YOU WANT
};
}
- 1 回答
- 0 關注
- 109 瀏覽
添加回答
舉報
0/150
提交
取消