Файл cookie сеанса Woocommerce не устанавливается на ajax при использовании admin-ajax.php - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть функция Wordpress ajax, которая использует WC () -> session , чтобы взять данные сеанса и использовать их в функции. (например, для выбора выбранного способа доставки из сеанса и его отображения) .

Функция работает на моем локальном компьютере правильно.Однако он не работает на WP Engine live сервере .Я уже связался с ними, и они сообщили, что проблема не должна быть на их стороне.

Насколько я вижу, следующие куки не устанавливаются на реальном сервере только для запроса admin-ajax.php:

  • Набор-Cookie: woocommerce_items_in_cart
  • Набор-Cookie: woocommerce_cart_hash
  • Набор-Cookie: wp_woocommerce_session

Кто-нибудь знает, что может вызвать эту проблему?

1 Ответ

0 голосов
/ 23 ноября 2018

Это ненормально и, похоже, связано с хостингом WP Engine.

Теперь вам нужно попытаться принудительно включить Woocommerce Customer Session (если он еще не включен), выполнив следующеекод, который установит файл cookie WC_Session.

Он может включить обратно WC()->session при использовании admin-ajax.php:

add_action( 'woocommerce_init', 'enable_wc_session_cookie' );
function enable_wc_session_cookie(){ 
    if( is_admin() )
       return;

    if ( ! WC()->session->has_session() ) 
       WC()->session->set_customer_session_cookie( true ); 
}

Код входит в файл function.php вашей активной дочерней темы (или активной темы).Это может сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...