Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


pawana
 Поделиться

Рекомендованные сообщения

Доброго дня.

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

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

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 раза, то ищи откуда ноги растут.

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.