Почему в 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);
}
  • Вопрос задан
  • 852 просмотра
Решения вопроса 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы