• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Как указать цену в каталоге - руб/м2 и руб/м3 для разной категории товаров?

Image CMS

gpv2

Новичок
#1
Добрый день. Бьюсь уже не первый день. Посоветуйте решение. Проблема в том, что часть товаров в магазине имеет цену за 1 м2, а другая продается за 1 м3. Как сделать, чтобы это отображалось в графе цена? и в ходе заказа было понятно, за что платишь деньги, устанавливая количество.. Спасибо заранее!
 

galiulinr

Опытный
Местный
#2
А вы не пробовали использовать Произвольные поля?
Например задаем имя произвольного поля "unit" далее для каждого товара задаем параметр характеризующий единицу измерения, например: куб. м или кв. м.
Приведу пример как вставить это поле например в блок с Категорией и Метками на странице товара.
Для этого находит в плагине Woocommerce файл meta.php вот его путь templates/single-product/meta.php в нем необходимо найти такие строки:

Код:
<span class="sku_wrapper"><?php _e( 'SKU:', 'woocommerce' ); ?> <span class="sku" itemprop="sku"><?php echo ( $sku = $product->get_sku() ) ? $sku : __( 'N/A', 'woocommerce' ); ?></span>.</span>
<?php endif; ?>
сразу после нее вставляем следующее:

Код:
<span class="sku_wrapper">Цена за: <span class="sku" itemprop="sku"><?php echo (get_post_meta($post->ID, 'unit', true)); ?></span>.</span>
и не забудьте отредактированный файл meta.php скопировать в вашу тему чтобы не потерять при обновлении
путь должен быть такой ВАША_ТЕМА/woocommerce/single-product/meta.php
 

gpv2

Новичок
#3
Спасибо за наводку. Благодарен всемерно!!! Подскажите, а могу я данные произвольного поля встроить прямо к цене в корзине и на странице категории товаров. Например, 9500 руб./м3 или 5000 руб./м2 Как это сделать?
 
Последнее редактирование:

galiulinr

Опытный
Местный
#4
да можете для этого нужно в файле /templates/single-product/price.php строку
Код:
<p class="price"><?php echo $product->get_price_html(); ?></p>
заменить на:
Код:
<p class="price"><?php echo $product->get_price_html(); ?>&nbsp;-&nbsp;
<?php echo (get_post_meta($post->ID, 'unit', true)); ?>
</p>
 

gpv2

Новичок
#5
На карточку товара поставить цену с доп параметром получилось. Но не могу разобраться, как ее поменять везде на сайте (в категориях, где все товары, в корзине при оформлении заказа) Подскажи, плиз!!!
 

galiulinr

Опытный
Местный
#6
Вставляем следующий код в functions.php вашей темы все что выше я написал сделать убираем
этого кода достаточно

Код:
add_filter( 'woocommerce_get_price_html', 'custom_price_html', 100, 2 );
function custom_price_html( $price, $product ){
    $meta_values = get_post_meta( get_the_ID(), 'unit',true );
 
  $price = $price .'/'. $meta_values;

    return apply_filters( 'woocommerce_get_price', $price );
}
но и не забываем создавать произвольное поля для каждого товара с именем unit
 

Igorloki

Новичок
#8
Вставляем следующий код в functions.php вашей темы все что выше я написал сделать убираем
этого кода достаточно

Код:
add_filter( 'woocommerce_get_price_html', 'custom_price_html', 100, 2 );
function custom_price_html( $price, $product ){
    $meta_values = get_post_meta( get_the_ID(), 'unit',true );

  $price = $price .'/'. $meta_values;

    return apply_filters( 'woocommerce_get_price', $price );
}
но и не забываем создавать произвольное поля для каждого товара с именем unit
а как сделать тоже самое только для вариативного товара?
 

Igorloki

Новичок
#9
Вставляем следующий код в functions.php вашей темы все что выше я написал сделать убираем
этого кода достаточно

Код:
add_filter( 'woocommerce_get_price_html', 'custom_price_html', 100, 2 );
function custom_price_html( $price, $product ){
    $meta_values = get_post_meta( get_the_ID(), 'unit',true );

  $price = $price .'/'. $meta_values;

    return apply_filters( 'woocommerce_get_price', $price );
}
но и не забываем создавать произвольное поля для каждого товара с именем unit
а как сделать тоже самое только для вариативного товара? подскажите пожалуйста
 
#10
Как изменить код , если вести добавление такого параметры не с произвольного поля, а с поля атрибута?
и где найти описание функции, к которым надо обращаться?
 

dim70

Опытный
#11
Код:
add_filter( 'woocommerce_get_price_html', 'custom_price_html', 100, 2 );
function custom_price_html( $price, $product ){
    $meta_values = get_post_meta( get_the_ID(), 'unit',true );
 
  $price = $price .'/'. $meta_values;

    return apply_filters( 'woocommerce_get_price', $price );
}
но и не забываем создавать произвольное поля для каждого товара с именем unit
Добрый день. Спасибо Вам за отличное решение. Скажите, как сделать чтобы и в корзине и на странице оформления отображались изменения, так же как в каталоге и карточке товара?
 

zeus12

Новичок
#12
А вы не пробовали использовать Произвольные поля?
Например задаем имя произвольного поля "unit" далее для каждого товара задаем параметр характеризующий единицу измерения, например: куб. м или кв. м.
Приведу пример как вставить это поле например в блок с Категорией и Метками на странице товара.
Для этого находит в плагине Woocommerce файл meta.php вот его путь templates/single-product/meta.php в нем необходимо найти такие строки:

Код:
<span class="sku_wrapper"><?php _e( 'SKU:', 'woocommerce' ); ?> <span class="sku" itemprop="sku"><?php echo ( $sku = $product->get_sku() ) ? $sku : __( 'N/A', 'woocommerce' ); ?></span>.</span>
<?php endif; ?>
сразу после нее вставляем следующее:

Код:
<span class="sku_wrapper">Цена за: <span class="sku" itemprop="sku"><?php echo (get_post_meta($post->ID, 'unit', true)); ?></span>.</span>
и не забудьте отредактированный файл meta.php скопировать в вашу тему чтобы не потерять при обновлении
путь должен быть такой ВАША_ТЕМА/woocommerce/single-product/meta.php
Добрый день у меня стоит тема Bazar я никак не могу найти где в шаблоне у меня значение сколько товаров осталось на складе ,что бы туда добавить произвольное поле ,нужно для того что я продаю плитку и она продается на кв/м ,а стандартно там указано -например (12 в наличие ),а мне нужно что бы было 12кв/м в наличие ,как сделать так с помощи произвольных полей ? в каком именно файле хранится это значиние ?
 
Сверху Снизу