你能幫我嗎 - 我在結帳頁面上用下一步按鈕分開了賬單/送貨地址表格。我想通過單擊按鈕 Next 將地址保存在 DB 中。現在,當我更改表單地址中的資料時,我可以在 POST 中正確回傳,但資料未在用戶組態檔中更新。
函式.php
add_action("wp_ajax_userAddressUpdate", "userAddressUpdate");
add_action("wp_ajax_nopriv_userAddressUpdate", "my_must_login");
function userAddressUpdate($user_id) {
if (isset($_POST['billing_first_name'])) {
update_user_meta($user_id, 'billing_first_name', sanitize_text_field(($_POST['billing_first_name'])));
}
if (isset($_POST['billing_last_name'])) {
update_user_meta($user_id, 'billing_last_name', sanitize_text_field(($_POST['billing_last_name'])));
}
}
檔案.js
jQuery(document).ready( function($) {
$( '#update_address' ).click(function(){
const billing_first_name = $("input[name=billing_first_name]").length ? $("input[name=billing_first_name]").val() : '';
const billing_last_name = $("input[name=billing_last_name]").length ? $("input[name=billing_last_name]").val() : '';
$.ajax({
url : ajax_object.ajaxurl,
type: 'POST',
data : {
action: "userAddressUpdate",
billing_first_name,
billing_last_name,
},
success: function( data ) {
alert( data.message );
}
});
})
})
uj5u.com熱心網友回復:
首先,請只使用小寫的動作名稱
“更新地址”->“更新地址”
其次,您嘗試警報“訊息”,但從不從 php 函式回傳資料。
success: function( data ) {
alert( data.message );
}
第三,將回傳資料添加到您的 php 函式中,例如:
wp_send_json_success(["message" => "done"]);
請確保您的 ajax 呼叫從 wordpress 獲得代碼 200 的回應,以防您獲得 40x,您的 php 代碼可能永遠不會運行。
在php函式中添加$user_id = get_current_user_id()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/480619.html
標籤:php jQuery 阿贾克斯 WordPress woocommerce