Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Вывод дополнительных полей в корзине


LuckyPerson

Recommended Posts

ocStore 1.5.5.1.2

 

Помогите вывести дополнительные поля в корзине.

 

В таблице oc_product_option_value создал новые поля: optioncod и optionmodel.

Выглядит так в админке:

post-689172-0-58889500-1467136260_thumb.jpg

 

А так на сайте:

post-689172-0-38527400-1467136290_thumb.jpg

 

Помогите реализовать вывод этих полей в корзине, чтоб было вот так:

post-689172-0-10931400-1467136340_thumb.jpg

 

В файле: catalog/controller/checkout/cart.php есть код:

       foreach ($product['option'] as $option) {
		if ($option['type'] != 'file') {
			$value = $option['option_value'];
		} else {
			$filename = $this->encryption->decrypt($option['option_value']);
			
			$value = utf8_substr($filename, 0, utf8_strrpos($filename, '.'));
		}

		$option_data[] = array(
			'name'  => $option['name'],
			'value' => (utf8_strlen($value) > 50 ? utf8_substr($value, 0, 50) . '..' : $value),
		);
       }

Нужно в переменную $value внести правки, чтоб получилось типа так, предварительно перебрав массив с опциями товара (мои предположения):

$value = $option['option_value'] . значение optioncod . значение optionmodel ;

Помогите внести правки!

Змінено користувачем LuckyPerson
Надіслати
Поділитися на інших сайтах


Не надо лезть в catalog/controller/checkout/cart.php

 

Всё делается на уровне system/library/cart.php

 

В этот запрос добавить нужный параметр:

$option_value_query = $this->db->query("SELECT pov.option_value_id, ovd.name, pov.quantity, pov.subtract, pov.price, pov.price_prefix, pov.points, pov.points_prefix, pov.weight, pov.weight_prefix FROM " . DB_PREFIX . "product_option_value pov LEFT JOIN " . DB_PREFIX . "option_value ov ON (pov.option_value_id = ov.option_value_id) LEFT JOIN " . DB_PREFIX . "option_value_description ovd ON (ov.option_value_id = ovd.option_value_id) WHERE pov.product_option_value_id = '" . (int)$option_value . "' AND pov.product_option_id = '" . (int)$product_option_id . "' AND ovd.language_id = '" . (int)$this->config->get('config_language_id') . "'");

например optioncod

 

Потом в строке:

'option_value'            => $option_value_query->row['name'],

Его приклеить:

'option_value'            => $option_value_query->row['name'] . (!empty($option_value_query->row['optioncod']) ? '('.$option_value_query->row['optioncod'].')' : ''),
  • +1 1
Надіслати
Поділитися на інших сайтах

И кусок vqmod для устранения обрезания длинных значений в опции.

 

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

  <file name="catalog/controller/checkout/cart.php">
    <operation error="skip">                           
      <search position="replace"><![CDATA[(utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value)]]></search>
      <add><![CDATA[$value]]></add>
    </operation>        
  </file>
  <file name="catalog/controller/account/order.php">
    <operation error="skip">                           
      <search position="replace"><![CDATA[(utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value)]]></search>
      <add><![CDATA[$value]]></add>
    </operation>        
  </file>
  <file name="catalog/controller/module/cart.php">
    <operation error="skip">                           
      <search position="replace"><![CDATA[(utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value)]]></search>
      <add><![CDATA[$value]]></add>
    </operation>        
  </file>
  <file name="catalog/controller/checkout/cart.php">
    <operation error="skip">                           
      <search position="replace"><![CDATA[(utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value)]]></search>
      <add><![CDATA[$value]]></add>
    </operation>        
  </file>
  <file name="catalog/controller/checkout/confirm.php">
    <operation error="skip">                           
      <search position="replace"><![CDATA[(utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value)]]></search>
      <add><![CDATA[$value]]></add>
    </operation>        
  </file>
  <file name="catalog/model/checkout/order.php">
    <operation error="skip">                           
      <search position="replace"><![CDATA[(utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value)]]></search>
      <add><![CDATA[$value]]></add>
    </operation>        
  </file>
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.