mail: admin@shopos.ru
Обратная связь


Войти



Автор Тема: Как не показывать модуль доставки/оплаты в зависимости от веса заказа?

Оффлайн support

  • Администратор
  • Профи
  • *****
  • Сообщений: 6503
    • Просмотр профиля
    • Скрипты интернет-магазина
Например, нам нужно чтобы модуль доставки Табличный тариф (table) выводился в списке доступных способов доставки при оформлении заказа только если вес заказа больше 2 кг.

Открываем файл модуля доставки modules/shipping/table/table.php:
После:
      $this->enabled = ((MODULE_SHIPPING_TABLE_STATUS == 'True') ? true : false);

Добавляем:
        if ($_SESSION['cart']->show_weight() >= '2') {
          $this->enabled = false;
        }

Всё, теперь модуль доставки Табличный тариф (table) будет виден только если вес заказа больше 2.

Аналогичным образом правится любой модуль доставки или оплаты.

Модули доставки находятся в папке modules/shipping/
Модули оплаты находятся в папке modules/payment/

Оффлайн tulgha

  • Постоялец
  • ***
  • Сообщений: 244
    • Просмотр профиля
Как сделать это управляемым из админки?

Оффлайн ProRab

  • Ветеран
  • *****
  • Сообщений: 613
    • Просмотр профиля
ввести новых опций в админке и вместо цифры 2 проверять на значение опции.

Оффлайн tulgha

  • Постоялец
  • ***
  • Сообщений: 244
    • Просмотр профиля
Только сравнение должно быть не >= '2', а <= '2'.

Оффлайн tulgha

  • Постоялец
  • ***
  • Сообщений: 244
    • Просмотр профиля
ввести новых опций в админке и вместо цифры 2 проверять на значение опции.

Где, как?

Оффлайн tulgha

  • Постоялец
  • ***
  • Сообщений: 244
    • Просмотр профиля
Нашел в модуле оплаты Western Union такой полезный код, который отключает данный модуль при бесплатной доставке:

Цитировать
// disable if shipping is free - start
      if ($shipping['id']=="pickup_pickup") {
          $this->enabled = false;
        }
// disable if shipping is free - end


pickup_pickup - системное название модуля доставки, например freeamount
global $shipping нужно объявлять в обоих модулях     
Но, насколько я понимаю, в Shopos название модуля передается так:       $this->code = 'freeamount';
А как получить это значение?
« Последнее редактирование: 01 Октябрь 2010, 19:58:15 от tulgha »

Оффлайн irina37kkz

  • Постоялец
  • ***
  • Сообщений: 119
    • Просмотр профиля
    • похмелье что делать

 

усадьба Щелыково
Copyright 2016 ShopOS