我试图通过Wordpress中的Ajax调用来更新_user_meta。 我一直在取得成功!'控制台日志,但不返回任何数据,并且未更新用户元字段。
点击按钮general.js:
var newViewPreference = jQuery(this).attr('id');
jQuery.ajax({
url: '/wp-admin/admin-ajax.php',
data: {
'action':'update_view_pref',
'viewPref' : newViewPreference
},
success:function(data) {
console.log(data);
console.log("success!");
},
error: function(errorThrown){
console.log(errorThrown);
console.log("fail");
}
});
functions.php
add_action( 'wp_ajax_update_view_pref', 'update_view_pref');
function update_view_pref() {
if(empty($_POST) || !isset($_POST)) {
ajaxStatus('error', 'Nothing to update.');
} else {
try {
$user = wp_get_current_user();
$viewPref = $_POST['viewPref'];
if ($viewPref == 'toggle-grid') {
update_user_meta( $user->ID, 'wpcf-shop-view-preference', 'grid' );
} elseif ($viewPref == 'toggle-list') {
update_user_meta( $user->ID, 'wpcf-shop-view-preference', 'list' );
}
die();
} catch (Exception $e){
echo 'Caught exception: ', $e->getMessage(), "\n";
}
}
}
任何人都能够确定我哪里出错了吗?感谢。
答案 0 :(得分:0)
将$ _POST更改为$ _REQUEST工作。
任何人都可以解释为什么$ _POST没有工作但$ _REQUEST呢?
我是通过点击按钮(不是表单)将数据提交到ajax请求。