Я пытаюсь настроить пользовательское сообщение в электронном письме с подтверждением нового заказа для «Способ доставки», когда кто-то выбирает способ доставки «Самовывоз из магазина» при оформлении заказа. В БД имя метода называется flatrate2. Вот фрагмент, который я пытался отредактировать ...

 if ($method) {
        foreach ($address->getAllShippingRates() as $rate) {
            if ($rate->getCode()==$method) {
                $amountPrice = $address->getQuote()->getStore()->convertPrice($rate->getPrice(), false);
                $this->_setAmount($amountPrice);
                $this->_setBaseAmount($rate->getPrice());
                if (!$method=='flatrate2'){
                $shippingDescription = $rate->getCarrierTitle() . ' - ' . $rate->getMethodTitle();}
                else{ $shippingDescription = 'Your merchandise will be ready for pickup 45 minutes after completing your order.<br/>Store Pickup is available Mon – Friday 11:30 AM – 4:30 PM';} 
                $address->setShippingDescription(trim($shippingDescription, ' -'));
                break;
            }
        }
    }

Независимо от того, какой способ доставки выбран, я получаю только сообщение «Ваш товар будет готов к отправке через 45 минут после завершения вашего заказа.
Самовывоз из магазина доступен с понедельника по пятницу с 11:30 до 16:30».

Любая помощь будет оценена. Спасибо!

0
Billy 27 Окт 2015 в 18:28

2 ответа

Лучший ответ

Внутри этого кода сделайте следующее: if ($ method == 'ваша конкретная доставка') {$ shippingDescription = $ rate-> getCarrierTitle (). '-'. $ rate-> getMethodTitle ();}

Elseif ($ method == 'другой способ доставки') {$ shippingDescription = $ rate-> getCarrierTitle (). '-'. $ rate-> getMethodTitle ();}

И так далее.

Подводя итог всем временам вашего кода, условие if (! $ Method == 'flatrate2') {не выполняется, что приводит к выполнению условия else.

0
Oscprofessionals 27 Окт 2015 в 17:35

Я подошел к этому по-другому. В моем шаблоне электронной почты я добавил.

  {{block type='core/template' area='frontend' template='cms/orderemail.phtml' order=$order}}

Затем в моем orderemail.phtml я поместил в него этот фрагмент ...

$pShipping = $this->getData('order')->getShippingDescription();
if ($pShipping == 'Store Pickup - Store Pickup') {

Это решило мою проблему.

0
Billy 27 Окт 2015 в 17:42