Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Ошибка в некоторых товарах.


S1mple
 Поделиться

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

Добрый день. В некоторых товарах есть ошибка:

Warning: A non-numeric value encountered in /system/storage/modification/catalog/controller/product/product.php on line 511

Вот код:

 $data['discount_card'] = $product_info['discount_card'];
                  $dc_remaining_piece = $product_info['price'] - $product_info['special'];
                  if($dc_remaining_piece > 0){
                      $data['dc_special_percent'] = preg_replace('/\.(\d{2}).*/', '.$1', $dc_remaining_piece * 100 / $product_info['price']);
                      $data['dc_special_amount'] = $this->currency->format($this->tax->calculate($dc_remaining_piece, $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
                      $data['dc_special_text'] = $label_for_specials_label_text;
                      $data['label_for_specials_label_text'] = $label_for_specials_label_text;
                  } else {
                      $data['dc_special_amount'] = false;
                      $data['dc_special_percent'] = false;
                      $data['dc_special_text'] = false;
                      $data['label_for_specials_label_text'] = false;
                  }

Кто поможет разобраться?

 

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


1 минуту назад, iPython сказал:

Ошибка говорит о том, что Вы к строке пытаетесь прибавить/вычесть и т.д. 

Ок. Но почему тогда ошибка только в нескольких товарах?

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


1 час назад, S1mple сказал:

Ок. Но почему тогда ошибка только в нескольких товарах?

надо посмотреть что приходит в $product_info['price'] - $product_info['special']

или можно сделать проверку

$data['dc_special_amount'] = false;
$data['dc_special_percent'] = false;
$data['dc_special_text'] = false;
$data['label_for_specials_label_text'] = false;
if (is_numeric($product_info['price']) && is_numeric($product_info['special'])) {
	$dc_remaining_piece = $product_info['price'] - $product_info['special'];
	if($dc_remaining_piece > 0){
		$data['dc_special_percent'] = preg_replace('/\.(\d{2}).*/', '.$1', $dc_remaining_piece * 100 / $product_info['price']);
		$data['dc_special_amount'] = $this->currency->format($this->tax->calculate($dc_remaining_piece, $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']);
		$data['dc_special_text'] = $label_for_specials_label_text;
		$data['label_for_specials_label_text'] = $label_for_specials_label_text;
	}
}

 

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

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

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

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

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

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

Войти

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

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

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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