WordPress setcookie с AJAX

Во-первых, я не видел никаких ответов на подобные вопросы, которые бы отсортировали это. Если вы найдете тот, который уже существует, пожалуйста, дайте мне знать.

Простой AJAX-запрос, который устанавливает cookie для хранения истечения таймера, проклятый cookie не устанавливается, и я не могу понять, почему.

я использую Vue Resource, так что не jQuery, пожалуйста. На самом деле, я абсолютно уверен, что это никак не связано с JS или AJAX. Это отправляет хорошо, и «истечение срока действия» возвращается прекрасно.

JS:

var sessionKey = document.querySelector('meta[name=dbs]').getAttribute('content');
if(sessionKey.length < 1){
var data = {action: 'dbs_reservation'};
this.$http.get(ajaxurl,data).then((response) => {
this.sessionExpiry = response.data.expiry;
})
}

PHP

function dbs_timer_session(){
if(empty($_COOKIE['dbs_timer'])){
$t = time()+600;
setcookie('dbs_timer', md5($t).'|'.$t, COOKIEPATH, COOKIE_DOMAIN);
} else {
$t = explode('|',$_COOKIE['dbs_timer']);
$t = $t[1];
}
echo json_encode(['expiry' => $t]);
wp_die();
}

РЕДАКТИРОВАТЬ 1
По запросу, действия wp_ajax

add_action( 'wp_ajax_nopriv_dbs_reservation', 'dbs_timer_session' );
add_action( 'wp_ajax_dbs_reservation', 'dbs_timer_session' );

0

Решение

Вы пропустили аргумент для setcookie

 setcookie('dbs_timer', md5($t).'|'.$t, 'missing_expiry_time', COOKIEPATH, COOKIE_DOMAIN);
2

Другие решения

Можете ли вы показать нам, как вы настраиваете действие? Ниже приведены примеры в зависимости от того, являетесь ли вы администратором или веб-интерфейсом.

//For admin use only:
add_action( 'wp_ajax_my_action', 'my_action_callback' );

//For front end use
add_action( 'wp_ajax_nopriv_my_action', 'my_action_callback' );
-1

По вопросам рекламы [email protected]