Как отобразить единицы для opencart? - PullRequest
0 голосов
/ 04 февраля 2020

Подскажите, как отобразить единицы для opencart 2.3. Когда товар был измерен в граммах, я просто добавил «г» после отображения веса. И теперь мне нужно также отобразить «литры», так как теперь этот костыль изжил себя. Как обратиться к переменной, которая отвечает за вывод единиц (гр, кг, л) ??

Так я привык получать вес

<?php if($product['weight']>0) { ?>
    <div class="weight">
        <?php echo $product['weight']; ?>гр.
    </div>
<?php } ?>

В «популярном» В модуле и в категориях, и в самой карточке товара я вычисляю вес, используя приведенный выше код. Но этот код не отображает единицы (граммы, килограммы, тонны), которые я выбрал в панели администратора при создании продукта.

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

enter image description here

1 Ответ

3 голосов
/ 04 февраля 2020

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

Открыть файл:

каталог / модель / каталог / товар. php

Найти строку:

public function getProduct($product_id) {

Перед указанной выше строкой добавить следующий код :

public function getProductWeightWithUnit($product_id) {
    $product_info = $this->getProduct($product_id);

    $query = $this->db->query("SELECT unit FROM `" . DB_PREFIX . "weight_class_description` WHERE 
    weight_class_id='".$product_info['weight_class_id']."'");

    if ($query->num_rows) {
        return number_format($product_info['weight'],2) . " " . $query->row['unit'];
    } else {
        return false;
    }
}

Сохранить изменения и закрыть файл.

Теперь откройте файл:

каталог / контроллер / product / product. php

Найти строку:

if ($product_info['minimum']) {

Перед указанной выше строкой добавьте следующий код :

if ($product_info['weight']) {
     $data['weight'] = $this->model_catalog_product->getProductWeightWithUnit($this->request->get['product_id']);
} else {
     $data['weight'] = false;
}

Теперь код бэкенда готов. В зависимости от используемой темы, вам необходимо отредактировать правильный файл product.tpl из вашей темы. Например, если вы используете тему по умолчанию, то файл для редактирования будет следующим:

каталог / просмотр / тема / по умолчанию / template / product / product.tpl

Найдите строку:

<li><?php echo $text_stock; ?> <?php echo $stock; ?></li>

и добавьте следующий код после:

<li><?php echo $weight; ?></li>

В приведенном выше примере вес будет показан следующим образом: Example of the above code

...