Автор Тема: Скрыть определённый способ оплаты, в зависимости от доставки  (Прочитано 96 раз)

19 Январь 2018, 14:06:16
  • Старожил
  • ****
  • Сообщений: 393
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите,
в корзине, необходимо скрыть определённый способ оплаты,
в зависимости от доставки.

Например для курьерской доставки скрыть способ оплаты банковской картой.

Метод оплаты банковской картой скрываю следующим образом:
Здесь необходимо в зависимости от метода доставки вызвать return false;
public function hookPayment($params)
{
 
    if (!$this->active)
        return;
    if (!$this->checkCurrency($params['cart']))
        return;
 
    $this->smarty->assign(array(
        'this_path' => $this->_path,
        'this_path_bw' => $this->_path,
        'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'.$this->name.'/'
    ));
    return $this->display(__FILE__, 'payment.tpl');
}

Подскажите как получить выбранный метод доставки?
Могу ли получить его вот от сюда: $this->context->cart
19 Январь 2018, 15:33:15
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 3342
  • Репутация: +77/-6
  • Сообщество PrestaShop
    • Просмотр профиля
19 Январь 2018, 16:28:21
Ответ #2
  • Старожил
  • ****
  • Сообщений: 393
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Помогло вот это:
$id_carrier = $this->context->cart->id_carrier;
Возник вопрос, а как можно получить город доставки.

В модулях carrier, получал вот так:

$addr = new Address($params->id_address_delivery);
$params был доступен в

public function getOrderShippingCost($params, $shipping_cost)
{

Как получить адрес доставки из метода оплаты?