Ошибка при расчете

Подскажите почему выскакивает ошибка при расчете доставки ?

image

Нажимаешь посмотреть все виды доставки и стоимость и вот этот

на нотисы можно не обращать внимания (на такие как undefined index) - это распространенная практика в cs-cart проверки поля массива по значению без проверки на существование в массиве этого индекса (когда для работы скрипта он не обязательный, но при его наличии требуется выполнить определенные действия). Поэтому php пытается выполнить проверку например

if ($data['show_title'] === true) ...

а индекса show_title в массиве нет - такие нотисы и выскакивают
хорошо бы вот так писать

if (array_key_exist('show_title', $data) && $data['show_title'] === true) ....
1 лайк

Что нужно сделать чтобы они не выскакивали? Ведь если клиент увидит такое, у него будет ощущение поломки или не доверия к сайту.

может у вас режим разработчика включен?
в config.local.php строки

// Log everything, but do not display
error_reporting(E_ERROR);
ini_set('display_errors', 0);

блокируют вывод на экран

стоит вот так:
error_reporting(E_ALL);
ini_set(‘display_errors’, 1);

Поставил ini_set(‘display_errors’, 0); - все пропало)) Спасибо за помощь))

1 лайк

видимо кто-то что-то разрабатывал и поменял чтобы видеть проблемы.
верните как было (как у меня) или хотя бы

ini_set('display_errors', 0);

чтобы не отображать на экране
для отображения ошибок есть режим разработчика

почему не isset? производительность array_key_exist хуже. Так как null мы не ждем все равно, можно его использовать, ну это так мысли в слух.

1 лайк

или так, действительно быстрее, факт что проверку такую где индекс может отсутствовать часто опускают, так как результат вроде идентичный, и лог заваливается нотисами.

было дело, меня нотисы эти тоже нервировали ))

app/addons/geo_maps/controllers/frontend/geo_maps.php

замените

        'show_title'                        => $_REQUEST['show_title'],
        'no_shippings_available_short_text' => $_REQUEST['no_shippings_available_short_text'],

на

        'show_title'                        => $_REQUEST['show_title'] ?? false,
        'no_shippings_available_short_text' => $_REQUEST['no_shippings_available_short_text'] ?? false,
1 лайк

Да это классическая болезнь cs-cart создали бы нормальную функцию fn_empty с проверкой на существования.

Так есть такая )) fn_is_empty
app/functions/fn.common.php ~826 строка

Проблема в том, что она не проверяет существования.