xikarx Posted November 14, 2022 Report Share Posted November 14, 2022 (edited) Под хостинг с php7.2 решил установить Smarty 4.x в Симплу. Залил простым копированием - все вроде нормально, работает справно. Но как оказалось, после создания заказа, на страницах /order/dflvndxxxxxxxxx.. в трех местах получаю ошибки: Warning: Parameter 2 to View::get_session_products_plugin() expected to be a reference, value given in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/26ad3e601ce79c2f0e821f49033bee73e1903f28_0.file.header.tpl.php on line 79 Warning: Parameter 2 to View::get_brands_plugin() expected to be a reference, value given in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/26ad3e601ce79c2f0e821f49033bee73e1903f28_0.file.header.tpl.php on line 132 Warning: Parameter 2 to OrderView::checkout_form() expected to be a reference, value given in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/4270d009197103a9a5e214be39555a51b172abbd_0.file.order.tpl.php on line 286 Соответственно в логах про это: PHP Warning: Parameter 2 to View::get_brands_plugin() expected to be a reference, value given in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/26ad3e601ce79c2f0e821f49033bee73e1903f28_0.file.header.tpl.php on line 132 [Mon Nov 14 20:19:16.294071 2022] [php7:warn] [pid 9021] [client 5.255.253.155:51548] PHP Warning: Parameter 2 to View::get_session_products_plugin() expected to be a reference, value given in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/26ad3e601ce79c2f0e821f49033bee73e1903f28_0.file.header.tpl.php Насколько я понял - что-то связанное с условиями компилляции шаблонов, в файле View.php с функцией public function get_session_products_plugin($params, &$smarty). Подскажите, как чинить? И еще - пытался отключить показ ошибок (вроде кроме поломанного дизайна ни на что эти варнинги не влияют), но так и не смог. В самой симпле в индексном файле error_reporting итак закомментирован, ни добавление инструкций в htaccess, ни установка error reporting - off в php.ini на сервере - результатов не дала. Естьвообще возможность из самой cms выключить отображение ошибок? Edited November 14, 2022 by xikarx Quote Link to post Share on other sites
sergeevizh Posted November 14, 2022 Report Share Posted November 14, 2022 (edited) 10 минут назад, xikarx сказал: Под хостинг с php7.2 решил установить Smarty 4.x в Симплу. Залил простым копированием - все вроде нормально, работает справно. Но как оказалось, после создания заказа, на страницах /order/dflvndxxxxxxxxx.. в трех местах получаю ошибки: Warning: Parameter 2 to View::get_session_products_plugin() expected to be a reference, value given in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/26ad3e601ce79c2f0e821f49033bee73e1903f28_0.file.header.tpl.php on line 79 Warning: Parameter 2 to View::get_brands_plugin() expected to be a reference, value given in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/26ad3e601ce79c2f0e821f49033bee73e1903f28_0.file.header.tpl.php on line 132 Warning: Parameter 2 to OrderView::checkout_form() expected to be a reference, value given in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/4270d009197103a9a5e214be39555a51b172abbd_0.file.order.tpl.php on line 286 Соответственно в логах про это: PHP Warning: Parameter 2 to View::get_brands_plugin() expected to be a reference, value given in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/26ad3e601ce79c2f0e821f49033bee73e1903f28_0.file.header.tpl.php on line 132 [Mon Nov 14 20:19:16.294071 2022] [php7:warn] [pid 9021] [client 5.255.253.155:51548] PHP Warning: Parameter 2 to View::get_session_products_plugin() expected to be a reference, value given in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/26ad3e601ce79c2f0e821f49033bee73e1903f28_0.file.header.tpl.php Насколько я понял - что-то связанное с условиями компилляции шаблонов, в файле View.php с функцией public function get_session_products_plugin($params, &$smarty). Подскажите, как чинить? И еще - пытался отключить показ ошибок (вроде кроме поломанного дизайна ни на что эти варнинги не влияют), но так и не смог. В самой симпле в индексном файле error_reporting итак закомментирован, ни добавление инструкций в htaccess, ни установка error reporting - off в php.ini на сервере - результатов не дала. Естьвообще возможность из самой cms выключить отображение ошибок? во view/View.php у функций плагинов уберите оператор & Было public function get_browsed_products($params, &$smarty) { ... } Стало public function get_browsed_products($params, $smarty) { ... } Edited November 14, 2022 by alexivchenko Quote Link to post Share on other sites
xikarx Posted November 14, 2022 Author Report Share Posted November 14, 2022 Спасибо, помогло. Я еще думал про эти ссылки нопробовать не стал. Не вкуриваю эту тему в ооп. Осталась одна ошибка - но уже, по всей видимости из другой оперы - Warning: Creating default object from empty value in /var/www/ikar/data/www/astra-omsk.ru/view/View.php on line 167 т.е. вот тут public function get_session_products_plugin($params, $smarty) { if(!empty($_SESSION[$params['key']])) { $result->key = $params['key']; // ключ $result->ids = $_SESSION[$params['key']]; // сессия $result->count = count($_SESSION[$params['key']]); // количество $smarty->assign($params['key'], $result); } } я так понимаю, попытка создать объект из пустого значения? В общем с эти что сделать? Пробовал закомментить - получаю 500 ошибку.. Quote Link to post Share on other sites
sergeevizh Posted November 14, 2022 Report Share Posted November 14, 2022 7 минут назад, xikarx сказал: Спасибо, помогло. Я еще думал про эти ссылки нопробовать не стал. Не вкуриваю эту тему в ооп. Осталась одна ошибка - но уже, по всей видимости из другой оперы - Warning: Creating default object from empty value in /var/www/ikar/data/www/astra-omsk.ru/view/View.php on line 167 т.е. вот тут public function get_session_products_plugin($params, $smarty) { if(!empty($_SESSION[$params['key']])) { $result->key = $params['key']; // ключ $result->ids = $_SESSION[$params['key']]; // сессия $result->count = count($_SESSION[$params['key']]); // количество $smarty->assign($params['key'], $result); } } я так понимаю, попытка создать объект из пустого значения? В общем с эти что сделать? Пробовал закомментить - получаю 500 ошибку.. Это что-то не стандартное, нужно смотреть на месте. Напишите в личные сообщения. Quote Link to post Share on other sites
phukortsin Posted November 15, 2022 Report Share Posted November 15, 2022 12 часов назад, xikarx сказал: Спасибо, помогло. Я еще думал про эти ссылки нопробовать не стал. Не вкуриваю эту тему в ооп. Осталась одна ошибка - но уже, по всей видимости из другой оперы - Warning: Creating default object from empty value in /var/www/ikar/data/www/astra-omsk.ru/view/View.php on line 167 т.е. вот тут public function get_session_products_plugin($params, $smarty) { if(!empty($_SESSION[$params['key']])) { $result->key = $params['key']; // ключ $result->ids = $_SESSION[$params['key']]; // сессия $result->count = count($_SESSION[$params['key']]); // количество $smarty->assign($params['key'], $result); } } я так понимаю, попытка создать объект из пустого значения? В общем с эти что сделать? Пробовал закомментить - получаю 500 ошибку.. Для исправления пробуйте вставить $result = new stdClass(); перед $result->key = $params['key']; // ключ Quote Link to post Share on other sites
xikarx Posted November 17, 2022 Author Report Share Posted November 17, 2022 Да вроде все, пропала ошибка. Не понял почему (из действий только папку compiled очистил. Но ошибки больше нет. Но, все равно спасибо. Quote Link to post Share on other sites
xikarx Posted November 22, 2022 Author Report Share Posted November 22, 2022 Изловил еще одну проблему, чтобы не создавать новой темы - спрошу здесь. Я не уверен, что связано с заменой версии Smarty, но вроде проблема появилась после обновления. Короче суть - при создании заказа письмо о заказе на админский email приходит с заголовком "<без темы>", до этого прихоили с заголовком "Новый заказ №ххх". полез разбираться. в исходниках писем наблюдаю такое Subject: =?utf-8?B??=, до этого, в Subject передавалось сообщение о номере заказа в закодированном виде, типа так: Subject: =?utf-8?B?0J3QvtCy0YvQuSDQt9Cw0LrQsNC3IOKEljQ0NzU=?= Вопрос - куда это вообще копать? Это вопросы к серверу, к движку, к Smarty, email-серверу? Я этой темы вообще не знаю, ни разу не сталкиваося какой скрипт/служба ответственны за передачу в http заголовки темы письма? В Гугле куча теоретической инфы о заголовках, а как и где они формируются при создании и пересылке электронных писем я не нашел. Может правильно не заню как гугла спросить... Quote Link to post Share on other sites
sergeevizh Posted November 22, 2022 Report Share Posted November 22, 2022 2 часа назад, xikarx сказал: Изловил еще одну проблему, чтобы не создавать новой темы - спрошу здесь. Я не уверен, что связано с заменой версии Smarty, но вроде проблема появилась после обновления. Короче суть - при создании заказа письмо о заказе на админский email приходит с заголовком "<без темы>", до этого прихоили с заголовком "Новый заказ №ххх". полез разбираться. в исходниках писем наблюдаю такое Subject: =?utf-8?B??=, до этого, в Subject передавалось сообщение о номере заказа в закодированном виде, типа так: Subject: =?utf-8?B?0J3QvtCy0YvQuSDQt9Cw0LrQsNC3IOKEljQ0NzU=?= Вопрос - куда это вообще копать? Это вопросы к серверу, к движку, к Smarty, email-серверу? Я этой темы вообще не знаю, ни разу не сталкиваося какой скрипт/служба ответственны за передачу в http заголовки темы письма? В Гугле куча теоретической инфы о заголовках, а как и где они формируются при создании и пересылке электронных писем я не нашел. Может правильно не заню как гугла спросить... В файле /simpla/design/html/email_order_admin.tpl Находим {$subject = "Новый заказ №`$order->id`" scope=parent} и меняем у scope parent на root и так по всем файлам админки Quote Link to post Share on other sites
xikarx Posted November 22, 2022 Author Report Share Posted November 22, 2022 Спасибо, помогло! Quote Link to post Share on other sites
xikarx Posted November 19, 2023 Author Report Share Posted November 19, 2023 И снова всем здравствуйте. Давно не обновлял сайт, тутвзялся добавить товар и выяснил, что товары оказывается добавляться не желают или добаляются с ошибкой. Снова прошу помощи. Основную ошибку, не дававшую создатьновый товар вроде пофиксил (было PHP Warning: Column 'action' cannot be null [INSERT INTO s_products SET id='0', ........ new=NULL, action=NULL, ned='0', bez='0'] in /var/www/ikar/data/www/astra-omsk.ru/api/Database.php on line 100, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin Присвоил полю action значение null по умолчанию. Кстати, подскажите, второй вариант как сделать - где в коде сайта разрешить null значение в данном поле? И второе - имею кучу ошибок (в логах), влияние которых, вроде на работу сайта пока не увидел, но которые раздражают: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin [Sun Nov 19 17:47:51.411838 2023] [php7:warn] [pid 20733] [client 188.43.194.125:56570] PHP Warning: Creating default object from empty value in /var/www/ikar/data/www/astra-omsk.ru/simpla/ProductAdmin.php on line 72, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin собственно указанная сторока (с 67 по 76) // Свойства товара $options = $this->request->post('options'); if(is_array($options)) { foreach($options as $f_id=>$val) { $po[$f_id]->feature_id = $f_id; $po[$f_id]->value = $val; } $options = $po; } и еще не понятные мне ошибки: [Sun Nov 19 17:47:51.458115 2023] [php7:notice] [pid 20733] [client 188.43.194.125:56570] PHP Notice: Undefined variable: groop_products in /var/www/ikar/data/www/astra-omsk.ru/simpla/ProductAdmin.php on line 308, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin [Sun Nov 19 17:47:51.465958 2023] [php7:notice] [pid 20733] [client 188.43.194.125:56570] PHP Notice: Undefined variable: groop_products in /var/www/ikar/data/www/astra-omsk.ru/simpla/ProductAdmin.php on line 453, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin [Sun Nov 19 17:47:56.216594 2023] [php7:warn] [pid 20737] [client 188.43.194.125:57132] PHP Warning: A non-numeric value encountered in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/f926a1426a3c03df5714da5ede71d26e0e28a930_0.file.product.tpl.php on line 212, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin [Sun Nov 19 17:47:56.217139 2023] [php7:warn] [pid 20737] [client 188.43.194.125:57132] PHP Warning: Parameter 2 to View::get_object_articles_plugin() expected to be a reference, value given in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/f926a1426a3c03df5714da5ede71d26e0e28a930_0.file.product.tpl.php on line 561, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin Кто чем пособит буду очень признателен. Quote Link to post Share on other sites
sergeevizh Posted November 19, 2023 Report Share Posted November 19, 2023 (edited) 7 часов назад, xikarx сказал: И снова всем здравствуйте. Давно не обновлял сайт, тутвзялся добавить товар и выяснил, что товары оказывается добавляться не желают или добаляются с ошибкой. Снова прошу помощи. Основную ошибку, не дававшую создатьновый товар вроде пофиксил (было PHP Warning: Column 'action' cannot be null [INSERT INTO s_products SET id='0', ........ new=NULL, action=NULL, ned='0', bez='0'] in /var/www/ikar/data/www/astra-omsk.ru/api/Database.php on line 100, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin Присвоил полю action значение null по умолчанию. Кстати, подскажите, второй вариант как сделать - где в коде сайта разрешить null значение в данном поле? И второе - имею кучу ошибок (в логах), влияние которых, вроде на работу сайта пока не увидел, но которые раздражают: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin [Sun Nov 19 17:47:51.411838 2023] [php7:warn] [pid 20733] [client 188.43.194.125:56570] PHP Warning: Creating default object from empty value in /var/www/ikar/data/www/astra-omsk.ru/simpla/ProductAdmin.php on line 72, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin собственно указанная сторока (с 67 по 76) // Свойства товара $options = $this->request->post('options'); if(is_array($options)) { foreach($options as $f_id=>$val) { $po[$f_id]->feature_id = $f_id; $po[$f_id]->value = $val; } $options = $po; } и еще не понятные мне ошибки: [Sun Nov 19 17:47:51.458115 2023] [php7:notice] [pid 20733] [client 188.43.194.125:56570] PHP Notice: Undefined variable: groop_products in /var/www/ikar/data/www/astra-omsk.ru/simpla/ProductAdmin.php on line 308, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin [Sun Nov 19 17:47:51.465958 2023] [php7:notice] [pid 20733] [client 188.43.194.125:56570] PHP Notice: Undefined variable: groop_products in /var/www/ikar/data/www/astra-omsk.ru/simpla/ProductAdmin.php on line 453, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin [Sun Nov 19 17:47:56.216594 2023] [php7:warn] [pid 20737] [client 188.43.194.125:57132] PHP Warning: A non-numeric value encountered in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/f926a1426a3c03df5714da5ede71d26e0e28a930_0.file.product.tpl.php on line 212, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin [Sun Nov 19 17:47:56.217139 2023] [php7:warn] [pid 20737] [client 188.43.194.125:57132] PHP Warning: Parameter 2 to View::get_object_articles_plugin() expected to be a reference, value given in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/f926a1426a3c03df5714da5ede71d26e0e28a930_0.file.product.tpl.php on line 561, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin Кто чем пособит буду очень признателен. Могу помочь, пишите в ЛС Edited November 19, 2023 by alexivchenko Quote Link to post Share on other sites
sergeevizh Posted November 19, 2023 Report Share Posted November 19, 2023 [Sun Nov 19 17:47:51.458115 2023] [php7:notice] [pid 20733] [client 188.43.194.125:56570] PHP Notice: Undefined variable: groop_products in /var/www/ikar/data/www/astra-omsk.ru/simpla/ProductAdmin.php on line 308, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin [Sun Nov 19 17:47:51.465958 2023] [php7:notice] [pid 20733] [client 188.43.194.125:56570] PHP Notice: Undefined variable: groop_products in /var/www/ikar/data/www/astra-omsk.ru/simpla/ProductAdmin.php on line 453, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin Надо смотреть api/ProductAdmin.php 308, 453 строку что за переменная groop_products Quote Link to post Share on other sites
phukortsin Posted November 20, 2023 Report Share Posted November 20, 2023 (edited) 7 часов назад, alexivchenko сказал: Надо смотреть api/ProductAdmin.php 308, 453 строку что за переменная groop_products Оригинально - смотреть несуществующий файл... Ошибки, видимо, из-за перехода на новую версию PHP. В simpla/ProductAdmin.php надо сделать так: class ProductAdmin extends Simpla { public function fetch() { $product = new stdclass(); И во многих соседних файлах надо провести подобные изменения, так как весьма вероятно, что другие сущности аналогично могли стать не редактируемыми. Ошибка со значением поля по умолчанию тоже, скорее всего связана с изменением версии БД. И также, скорее всего, аналогичные ошибки могут наличествовать в других сущностях. Проверять надо все... И лучше решать не по каждому полю, а через общие настройки. Прочие ошибки носят более частный характер, но причины примерно те же... Edited November 20, 2023 by phukortsin Quote Link to post Share on other sites
sergeevizh Posted November 20, 2023 Report Share Posted November 20, 2023 1 час назад, phukortsin сказал: Оригинально - смотреть несуществующий файл... Ошибки, видимо, из-за перехода на новую версию PHP. В simpla/ProductAdmin.php надо сделать так: class ProductAdmin extends Simpla { public function fetch() { $product = new stdclass(); И во многих соседних файлах надо провести подобные изменения, так как весьма вероятно, что другие сущности аналогично могли стать не редактируемыми. Ошибка со значением поля по умолчанию тоже, скорее всего связана с изменением версии БД. И также, скорее всего, аналогичные ошибки могут наличествовать в других сущностях. Проверять надо все... И лучше решать не по каждому полю, а через общие настройки. Прочие ошибки носят более частный характер, но причины примерно те же... Ой, ну поспешил и вместо simpla/ProductAdmin.php написал api/ProductAdmin.php прям надо было акцентировать. Одновременно писал инструкцию к модулю и ошибся. Quote Link to post Share on other sites
phukortsin Posted November 21, 2023 Report Share Posted November 21, 2023 22 часа назад, alexivchenko сказал: Ой, ну поспешил и вместо simpla/ProductAdmin.php написал api/ProductAdmin.php прям надо было акцентировать. Одновременно писал инструкцию к модулю и ошибся. Если такой ранимый, не будем акцентировать, а сосредоточимся на более существенном: Как надо смотреть на переменную и что нужно увидеть? Строка 308: if(is_array($groop_products)) Строка 453: $this->design->assign('groop_products', $groop_products); Как по мне, так в комментарии к ошибке все и так сказано понятно: PHP Notice: Undefined variable. Надеюсь, уважаемый многостаночник в новом ответе не ошибется. И надеюсь, в той инструкции, которую писал в режиме многозадачности, не насажал ошибок. Может, стоит в той инструкции добавить примечание примерно такое: создавалось, мол, при напряженной одновременной работе над несколькими проектами, возможны ошибки и при обнаружении просьба на них внимание не акцентировать... Quote Link to post Share on other sites
xikarx Posted February 29 Author Report Share Posted February 29 Наконец руки дошли написать всем неравнодушным спасибо и повтыкать в код с умным лицом. назначение new stdClass вроде проблему решает. В силу недостаточных знаний не везде понятно где варнинг типа PHP Notice: Undefined variable: ... можно починить созданием new stdClass а где может что-то другое надо делать. при оформлении заказа таких нотайсов овердохрена. Ну, буду изучать разбираться. Напрягает еще 2 ошибки - PHP Warning: Creating default object from empty value in /var/www/ikar/data/www/astra-omsk.ru/api/Cart.php on line 71, referer: https://astra-omsk.ru/cart код из api/Cart.php строка 65 $cart->pp = '0'; foreach($items as $variant_id=>$item) { $purchase = null; if(!empty($products[$item->variant->product_id])) { $purchase->product = $products[$item->variant->product_id]; $purchase->variant = $item->variant; $purchase->amount = $item->amount; $cart->purchases[] = $purchase; if($purchase->product->action OR $purchase->product->bez == '1') $cart->no_discount_price += $item->variant->price*$item->amount; else $cart->discount_price += $item->variant->price*$item->amount; и какие-то проблемы с калькуляцией корзины PHP Notice: Undefined variable: coupon_result in /var/www/ikar/data/www/astra-omsk.ru/ajax/calculate_cart.php on line 39, referer: https://astra-omsk.ru/cart PHP Notice: Undefined variable: coupon_result in /var/www/ikar/data/www/astra-omsk.ru/ajax/calculate_cart.php on line 51, referer: https://astra-omsk.ru/cart код из ajax/calculate_cart.php стр.37 $simpla->design->assign('currency', $currency); $simpla->design->assign('delivery_id', $delivery_id); $simpla->design->assign('coupon_result', $coupon_result); $result = array('cart_title'=>$simpla->design->fetch('cart_title.tpl'), 'cart_item_total'=>$simpla->design->fetch('cart_item_total.tpl'), 'cart_items_total'=>$simpla->design->fetch('cart_items_total.tpl'), 'cart_total'=>$simpla->design->fetch('cart_total.tpl'), 'informer'=>$simpla->design->fetch('cart_informer.tpl'), 'deliveries'=>$simpla->design->fetch('delivery.tpl'), 'delivery_cost'=>$simpla->design->fetch('delivery_cost.tpl'), 'incart'=>$cart->total_products, 'cart_coupon'=>$simpla->design->fetch('cart_coupon.tpl'), 'coupon_status'=>$coupon_result, 'coupon_result'=>$simpla->design->fetch('cart_coupon_result.tpl'), 'subtotal_price'=>$cart->cart_price, 'discount_price'=>$cart->discount_value_price, 'coupon_price'=>$cart->coupon_discount, 'delivery_price'=>$delivery_price, 'total_price'=>$cart->cart_price - $cart->discount_value_price - $cart->coupon_discount +$delivery_price, ); при этом корзина (у меня ajax, на одной странице) считается нормально, но после ввода всех данных и клика в кнопку "создать заказ" - считается только первая позиция в заказе. Однако скидка (от суммы заказа, если набирается товаров в корзине) считается от суммы всех позиций. Т.е. положил в корзину 5 товаров по 10 000 тыс. общая сумма корзины 50 000, со скидкой 10% - заказ создаться должен на 45 000, а создается на 5 000. В общем что-то переход на php7 как то мне дается с сильно непредвиденными проблемами. Еще раз спасибо всем за участие..! Quote Link to post Share on other sites
Kosjak76 Posted March 1 Report Share Posted March 1 Ну, для начала $purchase = null; if (!empty($products[$item->variant->product_id])) { $purchase = new stdClass(); $purchase->product = $products[$item->variant->product_id]; Quote Link to post Share on other sites
xikarx Posted March 1 Author Report Share Posted March 1 7 часов назад, Kosjak76 сказал: Ну, для начала $purchase = null; if (!empty($products[$item->variant->product_id])) { $purchase = new stdClass(); $purchase->product = $products[$item->variant->product_id]; Спасибо. Варнинги вроде все изжил. Заказы создаются через один - то нормально все считается в корзине, то какая-то одна позиция не считается. При этом имею кучу однотипных нотайсов: PHP Notice: Undefined property: stdClass::$discount_price in /var/www/ikar/data/www/astra-omsk.ru/api/Cart.php on line 83, referer: https://astra-omsk.ru/cart PHP Notice: Undefined property: stdClass::$no_discount_price in /var/www/ikar/data/www/astra-omsk.ru/api/Cart.php on line 123, referer: https://astra-omsk.ru/cart PHP Notice: Undefined variable: coupon in /var/www/ikar/data/www/astra-omsk.ru/ajax/calculate_cart.php on line 9, referer: https://astra-omsk.ru/cart PHP Notice: Undefined index: city in /var/www/ikar/data/www/astra-omsk.ru/api/Delivery.php on line 121, referer: https://astra-omsk.ru/cart PHP Notice: Undefined variable: coupon in /var/www/ikar/data/www/astra-omsk.ru/ajax/calculate_cart.php on line 9, referer: https://astra-omsk.ru/cart PHP Notice: Undefined variable: coupon_result in /var/www/ikar/data/www/astra-omsk.ru/ajax/calculate_cart.php on line 39, referer: https://astra-omsk.ru/cart PHP Notice: Undefined variable: coupon_result in /var/www/ikar/data/www/astra-omsk.ru/ajax/calculate_cart.php on line 51, referer: https://astra-omsk.ru/cart PHP Notice: Undefined property: stdClass::$full_price in /var/www/ikar/data/www/astra-omsk.ru/view/CartView.php on line 145, referer: https://astra-omsk.ru/cart т.е. теперь свойства std-класса стали неопределенными. Я правильно понимаю, что, например PHP Notice: Undefined property: stdClass::$discount_price in /var/www/ikar/data/www/astra-omsk.ru/api/Cart.php on line 83, referer: https://astra-omsk.ru/cart PHP Notice: Undefined property: stdClass::$no_discount_price in /var/www/ikar/data/www/astra-omsk.ru/api/Cart.php on line 123, referer: https://astra-omsk.ru/cart нужно определять в начале файла, как-то типа так (поправьте, если что): public function get_cart() { $cart = new stdClass(); $cart->purchases = array(); $cart->cart_price = 0; .... $cart->$discount_price = 0; $cart->$no_discount_price = 0; Если да, то что делать с Undefined index: city in /var/www/ikar/data/www/astra-omsk.ru/api/Delivery.php on line 121 ? он вроде определен в файле api/Delivery.php: стр. 121 $city = $_REQUEST['city']; и то же не понятно со строками PHP Notice: Undefined property: stdClass::$full_price in /var/www/ikar/data/www/astra-omsk.ru/view/CartView.php on line 145, referer: https://astra-omsk.ru/cart PHP Notice: Undefined variable: coupon_result in /var/www/ikar/data/www/astra-omsk.ru/ajax/calculate_cart.php on line 39, referer: https://astra-omsk.ru/cart PHP Notice: Undefined variable: coupon_result in /var/www/ikar/data/www/astra-omsk.ru/ajax/calculate_cart.php on line 51, referer: https://astra-omsk.ru/cart Опять всем , кто отзовется - премного благодарен! Нелегкое это дело, ООП.. Quote Link to post Share on other sites
newbember Posted March 6 Report Share Posted March 6 В 01.03.2024 в 18:11, xikarx сказал: Если да, то что делать с Undefined index: city in /var/www/ikar/data/www/astra-omsk.ru/api/Delivery.php on line 121 ? он вроде определен в файле api/Delivery.php: стр. 121 $city = $_REQUEST['city']; и то же не понятно со строками PHP Notice: Undefined variable: coupon_result in /var/www/ikar/data/www/astra-omsk.ru/ajax/calculate_cart.php on line 39, referer: https://astra-omsk.ru/cart PHP Notice: Undefined variable: coupon_result in /var/www/ikar/data/www/astra-omsk.ru/ajax/calculate_cart.php on line 51, referer: https://astra-omsk.ru/cart Опять всем , кто отзовется - премного благодарен! Нелегкое это дело, ООП.. Определена переменная $city, а индекс массива $_REQUEST['city'] - не найден. Посмотри на каком этапе он должен там появиться и почему не. Переменная coupon_result не определена/не передана в шаблоне. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.