Почему в WooCommerce не добавляется товар в корзину у не авторизованных пользователей?

Есть сайт, под который разрабатывалась тема, и тестировалась она всегда авторизованными пользователями. То есть у авторизованного пользователя всё работает. А вот если не авторизоваться то товары не добавляются в корзину, то есть он туда попадает но если перейти на любую другую страницу то корзина пустая, а если добавить другой товар, то в корзине будет лежать только он один.

Код который добавляет товар в корзину:
if (isset($_POST['product']) && !empty($_POST['product'])) {
    $product_id = $_POST['product']['id'];
    $quantity = $_POST['product']['quantity'];
    WC()->cart->add_to_cart($product_id, $quantity);

}

if (isset($_POST['product_update']) && !empty($_POST['product_update'])) {
    $product_key = $_POST['product_update']['key'];
    $quantity = $_POST['product_update']['quantity'];
    WC()->cart->set_quantity($product_key, $quantity);
}

if (isset($_POST['product_remove']) && !empty($_POST['product_remove'])) {
    $product_key = $_POST['product_remove'];
    WC()->cart->remove_cart_item($product_key);
}
  • Вопрос задан
  • 904 просмотра
Решения вопроса 1
@walfter Автор вопроса
Путём более правильного гугления, нашёл таки ответ на свой вопрос, как выяснилось не я один такой=(

Необходимо добавить для не авторизованных пользователей вызов функции WC()->session->set_customer_session_cookie(true);

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


В файл темы functions.php

Решение на wordpress.org

Вопрос считаю закрытым
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@elmurzaalchakov
Еще бывает проблема с SSL, если ссылка http, товар не добавляется, если https то все норм. Сделайте принудительное открытие сайта https
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы