Jump to content

Smarty 4.x - ошибка компилляции


Recommended Posts

Под хостинг с 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 by xikarx
Link to post
Share on other sites
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 by alexivchenko
Link to post
Share on other sites

Спасибо, помогло. Я еще думал про эти ссылки нопробовать не стал. Не вкуриваю эту тему в ооп. 

Осталась одна ошибка - но уже, по всей видимости из другой оперы - 

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 ошибку..

Link to post
Share on other sites
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 ошибку..

Это что-то не стандартное, нужно смотреть на месте. Напишите в личные сообщения.

Link to post
Share on other sites
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']; // ключ
 

Link to post
Share on other sites

Изловил еще одну проблему, чтобы не создавать новой темы - спрошу здесь. Я не уверен, что связано с заменой версии Smarty, но вроде проблема появилась после обновления.

Короче суть - при создании заказа письмо о заказе на админский email приходит с заголовком "<без темы>", до этого прихоили с заголовком "Новый заказ №ххх".

полез разбираться. в исходниках писем наблюдаю такое 

Subject: =?utf-8?B??=, 

до этого, в Subject передавалось сообщение о номере заказа в закодированном виде, типа так:

Subject: =?utf-8?B?0J3QvtCy0YvQuSDQt9Cw0LrQsNC3IOKEljQ0NzU=?=

Вопрос - куда это вообще копать? Это вопросы к серверу, к движку, к Smarty, email-серверу? Я этой темы вообще не знаю, ни разу не сталкиваося

какой скрипт/служба ответственны за передачу в http заголовки темы письма?

В Гугле куча теоретической инфы о заголовках, а как и где они формируются при создании и пересылке электронных писем я не нашел. Может правильно не заню как гугла спросить...

Link to post
Share on other sites
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 

и так по всем файлам админки

Link to post
Share on other sites
  • 11 months later...

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

Снова прошу помощи. Основную ошибку, не дававшую создатьновый товар вроде пофиксил (было 

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

Кто чем пособит буду очень признателен. 

Link to post
Share on other sites
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 by alexivchenko
Link to post
Share on other sites
[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

Link to post
Share on other sites
7 часов назад, alexivchenko сказал:

Надо смотреть api/ProductAdmin.php 308, 453 строку что за переменная groop_products

Оригинально - смотреть несуществующий файл...

Ошибки, видимо, из-за перехода на новую версию PHP.

В simpla/ProductAdmin.php надо сделать так:

class ProductAdmin extends Simpla
{
	public function fetch()
	{
		$product = new stdclass();

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

Ошибка со значением поля по умолчанию тоже, скорее всего связана с изменением версии БД. И также, скорее всего, аналогичные ошибки могут наличествовать в других сущностях. Проверять надо все... И лучше решать не по каждому полю, а через общие настройки.

Прочие ошибки носят более частный характер, но причины примерно те же...

Edited by phukortsin
Link to post
Share on other sites
1 час назад, phukortsin сказал:

Оригинально - смотреть несуществующий файл...

Ошибки, видимо, из-за перехода на новую версию PHP.

В simpla/ProductAdmin.php надо сделать так:


class ProductAdmin extends Simpla
{
	public function fetch()
	{
		$product = new stdclass();

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

Ошибка со значением поля по умолчанию тоже, скорее всего связана с изменением версии БД. И также, скорее всего, аналогичные ошибки могут наличествовать в других сущностях. Проверять надо все... И лучше решать не по каждому полю, а через общие настройки.

Прочие ошибки носят более частный характер, но причины примерно те же...

Ой, ну поспешил и вместо simpla/ProductAdmin.php написал api/ProductAdmin.php прям надо было акцентировать. Одновременно писал инструкцию к модулю и ошибся. 

Link to post
Share on other sites
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. 

Надеюсь, уважаемый многостаночник в новом ответе не ошибется. И надеюсь, в той инструкции, которую писал в режиме многозадачности, не насажал ошибок. Может, стоит в той инструкции добавить примечание примерно такое: создавалось, мол, при напряженной одновременной работе над несколькими проектами, возможны ошибки и при обнаружении просьба на них внимание не акцентировать...

Link to post
Share on other sites
  • 3 months later...

Наконец руки дошли написать всем неравнодушным спасибо и повтыкать в код с умным лицом. 

назначение 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 как то мне дается с сильно непредвиденными проблемами. 

Еще раз спасибо всем за участие..!

 

 

Link to post
Share on other sites

Ну, для начала 

$purchase = null;
            if (!empty($products[$item->variant->product_id])) {
                $purchase = new stdClass();
                $purchase->product = $products[$item->variant->product_id];

 

Link to post
Share on other sites
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

Опять всем , кто отзовется - премного благодарен! Нелегкое это дело, ООП.. :)

Link to post
Share on other sites
В 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 не определена/не передана в шаблоне.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...