你能帮我吗?我已经把结账页上的结账/发货地址表格和下一个按钮分开了。我希望通过AJAX将地址保存到DB中,然后单击按钮。现在,当我在表单地址中更改数据时,我有权在POST中返回,但是数据不会在用户配置文件中更新。
function.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'])));
}
}file.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 );
}
});
})
})发布于 2022-05-20 18:03:20
首先,请只使用小写操作名。
"updateAddress“->”更新地址“
其次,尝试警告"message",但永远不要从php函数返回数据。
success: function( data ) {
alert( data.message );
}第三,向php函数中添加返回数据,如下所示:
wp_send_json_success(["message" => "done"]);请确保您的ajax调用得到代码200的wordpress响应,以防您得到40x,您的php代码可能永远不会运行。
在php函数中添加$user_id = get_current_user_id()
https://stackoverflow.com/questions/72321938
复制相似问题