Введите часть искомого слова, названия или фразы...
↑ ↓
  1. Новые темы озаглавленные с маленькой буквы - удаляются без предупреждения!
  2. Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Корзина убивает переменную $_POST

Тема в разделе "Вопросы, советы и доработки.", создана пользователем efess, 4 июл 2015.

  1. efess

    efess

    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Ну, не сразу и не всегда, но...

    Вот тестовый товар http://test17.tested-ok.ru/?product=test-product
    Добавляем в корзину, переходим в корзину http://test17.tested-ok.ru/?page_id=8
    Корзина стандартная, только вверху я специально вывел переменную $_REQUEST, она же в данном случае $_POST
    А в ней - содержимое полей страницы.

    Видите к примеру в ее составе элемент $_POST['cart']['blablabla']['qty']?
    Он отображает количество товара (Quantity). Все вроде бы хорошо, но попробуем изменить количество товара и пересчитать корзину (update cart). В этом случае содержимое переменной $_POST пропадает. И содержимое в ней стандартных полей корзины, и содержимое кастомных инпутов, селектов и тд, если я их добавлю в форму.

    Так у меня вопрос, к тем, кто понимает что в этом случае происходит: Как в такой ситуации (при изменении количества товара и обновлении корзины) я могу получить в скриптах содержимое моего кастомного инпута?

    Да, версия Woo крайняя 2.3.11, версия WP тоже, 4.2 (хотя впоролся я на этот прикол на других версиях), тема оформления стандартная 2014, чистая установка - плагинов нет.
     
  2. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
  3. efess

    efess

    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Если я не ошибаюсь, то все примеры, в том число и по ссылке внутри, посвящены тривиальному варианту: передаче значения дополнительного поля из карточки товара (сингл продукта) в корзину. С этим проблем нет, данные из карточки прекрасно стабильно попадают в $_POST и оттуда вытаскиваются хуками в WC()->cart.

    У меня же немного другой случай: значение моего дополнительного кода изменяется в корзине, одновременно с ним изменяется значение поля quantity. И это убивает $_POST, соответственно измененное значение дополнительного поля я не могу получить. Хотя Quantity при этом можно получить в WC()->cart

    Я не стал показывать в моем примере мое дополнительное поле для простоты. Потому что основной проблемой вижу именно убийство $_POST.
     
  4. efess

    efess

    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Иными словами, проблема не в том, чтобы вставить в корзине поле, а в том, чтобы получить значение вставленного и измененного там поля при обновлении корзины, пусть даже не в переменной $_POST.