На форуме 9558 тем, 76452 сообщений, 44664 участников
тема · 1 439 просмотров · 7 ответов

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

Ошибки и их решения
читают: 0 участников и 1 гость
порядок
27 апр 2022 23:15· изменено#1
WG_FQ-x7LLk531hzwY4f4BwogJVPFfMSzE-WFwlHg1L_Y72FerWZPZmhLHgxuUiq9tl8sK2sh1ttyo86bVas0xwl.jpg Будьте добры, подскажите пожалуйста, в журнале выдает две ошибки. Пока вникаю в систему, поэтому не могу понять от куда они.
Ну и извиняюсь ,поторопился выложил не в ту тему.

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 04:59· изменено#2
Venomol написал(а): ↑PHP Unknown: Unparenthesized a ? b : c ? d : e is deprecated. Use either (a ? b : c) ? d : e or `a ? b : (c ? d : e)

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

$total['total'] += (int) $this->session->data['shipping_method']['cost'];
28 апр 2022 05:22#3
По первому вопросу попробуйте 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'] : []);
18 сен 2025 18:48#4
Парни, а как решили этот баг? Не могу найти какая дрянь его в /storage/modification/catalog/controller/checkout/success.php
пишет (
менять в storage смысла нет тк слетит после первого обновления модификаторов (
18 сен 2025 20:25#5
Rashp написал(а): ↑Парни, а как решили этот баг? Не могу найти какая дрянь его в /storage/modification/catalog/controller/checkout/success.php
пишет (
менять в storage смысла нет тк слетит после первого обновления модификаторов (

так вариантов немного:
1. в исходом файле. простой ctrl+f найдет
2. в модификаторах в папке system. поиск по содержимому файлов поможет
3. в админке. эти модификаторы хранятся в БД в таблице oc_modification. средствами phpmyadmin, ну или напрямую sql запросом через LIKE найдите код
18 сен 2025 20:30#6
Blast написал(а): ↑так вариантов немного:
1. в исходом файле. простой ctrl+f найдет
2. в модификаторах в папке system. поиск по содержимому файлов поможет
3. в админке. эти модификаторы хранятся в БД в таблице oc_modification. средствами phpmyadmin, ну или напрямую sql запросом через LIKE найдите код


Искал уже ( нет нигде именно этого куска select * from oc_modification where xml like "%$oct_user_data%"
18 сен 2025 20:44#7
Rashp написал(а): ↑Искал уже ( нет нигде именно этого куска select * from oc_modification where xml like "%$oct_user_data%"

насколько я помню, модификаторы от OcTemplates лежат в папке system
18 сен 2025 21:00#8
Blast написал(а): ↑насколько я помню, модификаторы от OcTemplates лежат в папке system

Спасибо за подсказку нашел в oct_feelmart_theme.ocmod.xml)))
сообщения 1–8 из 8
Чтобы ответить, войдите или зарегистрируйтесь.

Похожие темы