Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Помилка в логіці або що я роблю не так


pawana

Recommended Posts

Доброго дня.

Є такий код (в для певних варіантів доставки він або віднімає вартість доствки з тотал, або додає):
 

Скрытый текст

public function getTotal($total) {
        if ($this->cart->hasShipping() && isset($this->session->data['shipping_method'])) {

            if ($this->session->data['shipping_method']['code'] == 'novaposhta.warehouse' && $total['total'] >= 36.7839) {
                $total['total'] -= $this->session->data['shipping_method']['cost'];
                $this->load->language('extension/total/free_shipping');
                $total['totals'][] = array(
                    'code'       => 'free_shipping',
                    'title'      => $this->language->get('text_free_shipping'),
                    'value'      => -$this->session->data['shipping_method']['cost'],
                    'sort_order' => $this->config->get('total_free_shipping_sort_order')
                );
            } elseif ($this->session->data['shipping_method']['code'] == 'weight.weight_6') {
                $total['total'] += $this->session->data['shipping_method']['cost'];    
                $total['totals'][] = array(
                    'code'       => 'shipping',
                    'title'      => $this->session->data['shipping_method']['title'],
                    'value'      => $this->session->data['shipping_method']['cost'],
                    'sort_order' => $this->config->get('total_shipping_sort_order')
                );                
            } elseif ($this->session->data['shipping_method']['code'] == 'weight.weight_5') {
                $total['total'] += $this->session->data['shipping_method']['cost'];    
                $total['totals'][] = array(
                    'code'       => 'shipping',
                    'title'      => $this->session->data['shipping_method']['title'],
                    'value'      => $this->session->data['shipping_method']['cost'],
                    'sort_order' => $this->config->get('total_shipping_sort_order')
                );                
            } else {
                return false;
            }
}


В першому випадку все завжди працює ідеально, а для weight.weight_6 та weight.weight_5 інколи (не завжди) двічі додає вартість доставки.
Як тут:
image.png.21461f61b3c0410978556f513e9d2a79.png

Можливо, я десь помилився і цього не бачу? Буду вдячний за підказку.

 

Змінено користувачем pawana
Надіслати
Поділитися на інших сайтах


Возможно функция отрабатывает 2 раза. 

Выведи принт после public function getTotal($total) { 

print_r($total);

Если выведет 2 раза, то ищи откуда ноги растут.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.