Wordpress中的PHP cookie在登录时返回空值
嗨,我有一个按钮点击事件,它使用admin-ajax.php调用我函数中的一个函数。php我设置了一个cookie,并尝试将一个id附加到现有的cookie值(id列表)中 我在与本文非常类似的插件之外使用admin-ajax.php 但是当我以管理员身份登录时,Wordpress中的PHP cookie在登录时返回空值,php,ajax,wordpress,cookies,Php,Ajax,Wordpress,Cookies,嗨,我有一个按钮点击事件,它使用admin-ajax.php调用我函数中的一个函数。php我设置了一个cookie,并尝试将一个id附加到现有的cookie值(id列表)中 我在与本文非常类似的插件之外使用admin-ajax.php 但是当我以管理员身份登录时,$\u COOKIE[$name]总是返回Null。然而,当我注销并以访客身份返回时,一切都正常工作。我希望此功能适用于所有用户,无论他们是否登录。有人能帮我找出我做错了什么吗 在我的Javascript中: $.ajax({
$\u COOKIE[$name]
总是返回Null
。然而,当我注销并以访客身份返回时,一切都正常工作。我希望此功能适用于所有用户,无论他们是否登录。有人能帮我找出我做错了什么吗
在我的Javascript中:
$.ajax({
url : myObj.ajax_url,
type : 'post',
data : {
action : 'store_this_id',
post_id : post_id
},
success : function( response ) {
console.log(response);
}
});
add_action( 'wp_ajax_nopriv_store_this_id', 'store_this_id' );
add_action( 'wp_ajax_store_this_id', 'store_this_id' );
function store_this_id() {
$name = "mycookie";
$expire = time() + (60*60*24); // expire in 24 hours
$value = isset( $_COOKIE[$name] ) ? $_COOKIE[$name] : "test";
$value .= "," . $_POST['post_id'];
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
setcookie($name, $value, $expire, '/');
$_COOKIE[$name] = $value;
print_r($value);
echo "\n";
print_r($_COOKIE[$name]);
}
die();
}
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
test,1741
test,1741
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
test,1741,1760
test,1741,1760
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
null,1741
null,1741
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
null,1760
null,1760
在fuctions.php中:
$.ajax({
url : myObj.ajax_url,
type : 'post',
data : {
action : 'store_this_id',
post_id : post_id
},
success : function( response ) {
console.log(response);
}
});
add_action( 'wp_ajax_nopriv_store_this_id', 'store_this_id' );
add_action( 'wp_ajax_store_this_id', 'store_this_id' );
function store_this_id() {
$name = "mycookie";
$expire = time() + (60*60*24); // expire in 24 hours
$value = isset( $_COOKIE[$name] ) ? $_COOKIE[$name] : "test";
$value .= "," . $_POST['post_id'];
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
setcookie($name, $value, $expire, '/');
$_COOKIE[$name] = $value;
print_r($value);
echo "\n";
print_r($_COOKIE[$name]);
}
die();
}
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
test,1741
test,1741
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
test,1741,1760
test,1741,1760
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
null,1741
null,1741
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
null,1760
null,1760
控制台输出[注销]运行两个测试:
$.ajax({
url : myObj.ajax_url,
type : 'post',
data : {
action : 'store_this_id',
post_id : post_id
},
success : function( response ) {
console.log(response);
}
});
add_action( 'wp_ajax_nopriv_store_this_id', 'store_this_id' );
add_action( 'wp_ajax_store_this_id', 'store_this_id' );
function store_this_id() {
$name = "mycookie";
$expire = time() + (60*60*24); // expire in 24 hours
$value = isset( $_COOKIE[$name] ) ? $_COOKIE[$name] : "test";
$value .= "," . $_POST['post_id'];
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
setcookie($name, $value, $expire, '/');
$_COOKIE[$name] = $value;
print_r($value);
echo "\n";
print_r($_COOKIE[$name]);
}
die();
}
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
test,1741
test,1741
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
test,1741,1760
test,1741,1760
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
null,1741
null,1741
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
null,1760
null,1760
控制台输出[以管理员身份登录]运行相同的两个测试:
$.ajax({
url : myObj.ajax_url,
type : 'post',
data : {
action : 'store_this_id',
post_id : post_id
},
success : function( response ) {
console.log(response);
}
});
add_action( 'wp_ajax_nopriv_store_this_id', 'store_this_id' );
add_action( 'wp_ajax_store_this_id', 'store_this_id' );
function store_this_id() {
$name = "mycookie";
$expire = time() + (60*60*24); // expire in 24 hours
$value = isset( $_COOKIE[$name] ) ? $_COOKIE[$name] : "test";
$value .= "," . $_POST['post_id'];
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
setcookie($name, $value, $expire, '/');
$_COOKIE[$name] = $value;
print_r($value);
echo "\n";
print_r($_COOKIE[$name]);
}
die();
}
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
test,1741
test,1741
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
test,1741,1760
test,1741,1760
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
null,1741
null,1741
XHR finished loading: POST "http://mywebsite.dev/wp-admin/admin-ajax.php"
null,1760
null,1760