Две ошибки,PHP Unknown: Unparenthesized, PHP Warning: A non-numeric value encountered

Тема в разделе "Ошибки и их решения", создана пользователем Venomol, 28 апр 2022.

  1. Venomol

    Venomol Новичок

    Сообщения:
    1
    Симпатии:
    0
    [​IMG] Будьте добры, подскажите пожалуйста, в журнале выдает две ошибки. Пока вникаю в систему, поэтому не могу понять от куда они.
    Ну и извиняюсь ,поторопился выложил не в ту тему.

    1) PHP Unknown: Unparenthesized `a ? b : c ? d : e` is deprecated. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)
    Код куда ведет ошибка, загрузил файлом текстовым тк большой.

    2) ошибка
    PHP Warning: A non-numeric value encountered in /home/m/m11/supermining/public_html/catalog/model/extension/total/shipping.php on line 24
    HTML:
    <?php
    class ModelExtensionTotalShipping extends Model {
        public function getTotal($total) {
            if ($this->cart->hasShipping() && isset($this->session->data['shipping_method'])) {
                $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')
                );
    
                if ($this->session->data['shipping_method']['tax_class_id']) {
                    $tax_rates = $this->tax->getRates($this->session->data['shipping_method']['cost'], $this->session->data['shipping_method']['tax_class_id']);
    
                    foreach ($tax_rates as $tax_rate) {
                        if (!isset($total['taxes'][$tax_rate['tax_rate_id']])) {
                            $total['taxes'][$tax_rate['tax_rate_id']] = $tax_rate['amount'];
                        } else {
                            $total['taxes'][$tax_rate['tax_rate_id']] += $tax_rate['amount'];
                        }
                    }
                }
    
                $total['total'] += $this->session->data['shipping_method']['cost'];
            }
        }
    }
     

    Вложения:

    Последнее редактирование: 28 апр 2022
  2. Shureg

    Shureg Пользователь

    Сообщения:
    71
    Симпатии:
    16
    И что вам тут непонятно? Вам прямым текстом говорят, в чём проблема и как её решить... У вас переводчик заблокирован? Хорошо, переведу. Использование rконструкций вида a ? b : c ? d : e без скобок устарело в вашей версии PHP. Или понижайте версию, или добавляйте скобки, как вам предложено выше.
    По поводу второй ошибки так же советую еще раз убедиться, что вы используете правильную версию PHP. Или искать модуль доставки, выдающий "неправильную" сумму. Или приводить к числовому формату, что-нибудь типа

    $total['total'] += (int) $this->session->data['shipping_method']['cost'];
     
    Последнее редактирование: 28 апр 2022
  3. Shureg

    Shureg Пользователь

    Сообщения:
    71
    Симпатии:
    16
    По первому вопросу попробуйте 167
    $oct_user_data = isset($this->session->data['shipping_address']) ? $this->session->data['shipping_address'] : (isset($this->session->data['payment_address']) ? $this->session->data['payment_address'] : []);
    и 191
    $oct_user_data = isset($this->session->data['shipping_address']) ? $this->session->data['shipping_address'] : (isset($this->session->data['payment_address']) ? $this->session->data['payment_address'] : []);