Увеличьте стоимость корзины, если X встречается

Таким образом, у нас есть проблема с использованием глупой доставки товара / товара, иначе пользователь добавляет товар в корзину (FedEx/USPS), а стоимость доставки добавляется. Если X товаров находится в корзине, скорость увеличивается из-за того, что товары отправляются через конверты, а не отправляются через коробку. Это влечет за собой дополнительную плату за обслуживание в размере 20$. Я хотел бы добавить дополнительные 20$ к стоимости корзины, если X товаров встречаются, но у меня возникла проблема с добавлением этого в информацию о сеансе (и с ее сохранением). Используя этот код, я могу добавить дополнительную стоимость к доставке:

    # %install_dir%/catalog/checkout_shipping.php
    $_SESSION['cart']->total = $_SESSION['cart']->total + 20;
    var_export($cart);

Это не отражается в моем модуле / боковой панели корзины с текущей ценой, хотя. Помощь будет оценена!

1 ответ

Решение

Есть ли где-нибудь в этом сценарии "session_start()" до этих строк?

session_start();
$_SESSION['cart']->total += 20;

Кроме того, вы, возможно, не хотите, чтобы все было правильно. Я бы поместил его в переменную, связанную с доставкой, а также добавил бы к итоговой сумме. Таким образом, вы можете быть уверены, что не добавите его снова, если уже сделали это один раз! Подобно:

session_start();
if (!$_SESSION['cart']->shipping_extra) {
  $_SESSION['cart']->shipping_extra = true;
  $_SESSION['cart']->total += 20;
}

Также... # устарело, используйте // или /*!

Другие вопросы по тегам