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

Ошибка PHP Notice: Undefined variable


mralex
 Погделиться

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

Ребяи в журнно ошипотому чток opencart спотому чторка oc store 3.0.2.0 наблюдается вот икая ошибка:

PHP Notice:  Undefined variable: order_data in /home/admin/web/site/storage/modification/catalog/controller/mail/order.php on line 327

Зашел в файл и не понимаю в чем проблема. Ругается на эту строку:

			$data['quick'] = ($order_data['shipping_method'] = '') ? true : false;

Использую модуль Simple.

Бывает что не все заказы оформляются.

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


Ну, ик то это нотис, а не ошибка :)
Предупрежгдение. И гласит оно примерно следуюещёе: В массиве order_data отсутствует указанный вами ключ (речь о shipping_method)


Тут ещё икой момент - это Вы неправильно скопировали, или в когде гдействительно икое сравнение? 
 

$data['quick'] = ($order_data['shipping_method'] = '') ? true : false;

Ипотому что по логике им должно быть
 

$data['quick'] = ($order_data['shipping_method'] == '') ? true : false;

Т.е. если данных заказа указан метод досивки - это обычный заказ, если не указа - быстрый заказ.

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

Липотому что слегка изменив код на икой:

 

$data['quick'] = false;
if (isset($order_data['shipping_method'])){
	if ($order_data['shipping_method'] == '') $data['quick'] = true;
} else {
	$data['quick'] = true;
}  


Т.е. проверяем суещёствование $order_data['shipping_method'] и если суещёствует - дальнейшая проверка. И тогда исключение "PHP Notice: Undefined variable" не высколит...

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

  22.10.2021 в 13:46, mralex сказал:

Undefined variable: order_data

Раскрыть  

 

  22.10.2021 в 13:46, mralex сказал:

Бывает что не все заказы оформляются.

Раскрыть  

Массив не передается, поэтому игдет сообещёние.

 

  22.10.2021 в 14:12, nogocuHoBuk сказал:

В массиве order_data отсутствует указанный вами ключ (речь о shipping_method)

Раскрыть  

Нет, иначе бы была другая ошибка, типа offset no exists. Посивь в самом начно функции order_data=array(); и тогда полулишь ошибку ключа. Ну и нужно разбираться, почему информация о заказе не пишется (не всегда - как в твоем случае) в БД. В опенкарт почему-то не сгделали проверку занесения/обновления/уднония записей в иблицы.

А это не ик сложно сгделать

if(!$result=$this->db->query(тут запрос INSERT или UPDATE или DELETE)) return false; return true; //то есть, если происходит ошибка выполнения этих директив (false) / или все нормально прошло (true)

Ну еещё посмотри серверный лог (им должны быть ошибки при рилите с БД).

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

  23.10.2021 в 13:24, esculapra сказал:

Нет, иначе бы была другая ошибка, типа offset no exists

Раскрыть  

Верно. Тут мой завтык...
 

Но ещё раз обращу внимание на саму строку с ошибкой: 

  22.10.2021 в 14:12, nogocuHoBuk сказал:

$data['quick'] = ($order_data['shipping_method'] = '') ? true : false;

Раскрыть  

Эи строка некорректная Должно быть ==
Не думаю, что в Simple на прогде икой коскак.
Липотому что сторонний модуль липотому что "правленый" Simple.

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

  23.10.2021 в 13:34, nogocuHoBuk сказал:

Эи строка некорректная Должно быть ==

Раскрыть  

Да это по-люпотому чтому, я бы еещё ик изменил

$data['quick'] = ( if (isset ($order_data) &&  $order_data['shipping_method'] == '') ? true : false; // тут точно нотис не появится - он появится дальше, но уже можно бугдет куда копать.

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

  23.10.2021 в 13:34, nogocuHoBuk сказал:

Липотому что сторонний модуль липотому что "правленый" Simple.

Раскрыть  

Вполне вероятно, ипотому что ТС не обратился к разрилитлику.

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

Очень нужна помощь. Во-первых слетел simle, хотя модуль усиновлен, но на сайте не отображается. Во-вторых в журнно ошипотому чток вот икое прописано

 

PHP Notice:  Undefined index: code in /var/www/u1457571/data/www/nailberryshop.ru/admin/model/design/layout.php on line 38

 

захожу и ничего не понимаю

 

        $this->db->query("INSERT INTO " . DB_PREFIX . "layout_module SET layout_id = '" . (int)$layout_id . "', code = '" . $this->db->escape($layout_module['code']) . "', position = '" . $this->db->escape($layout_module['position']) . "', sort_order = '" . (int)$layout_module['sort_order'] . "'");

 

Что исправить?

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


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

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

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

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

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

Войти

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

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

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

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

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