Как вывести цену товара WooCommerce? Несколько форматов получения цены.

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

Мы не говорим о готовых плагинах, а скорее о разработке блока с нуля, который бы соответствовал макету. Цена – это базовый атрибут карточки товара. В этой статье я приведу сниппет, который дает возможность вывода цены товара плагина WooCommerce в любом удобном для вас месте на сайте.

Получение цены в карточке товара:

function add_price_widget()
{
    $product = wc_get_product(get_the_ID());
    $thePrice = $product->get_price(); //will give raw price
    echo $thePrice;
}

В любом другом месте на сайте:

function add_price_widget() {
 global $woocommerce;
 $product = new WC_Product(get_the_ID()); 
 $thePrice = $product->get_price();
 echo thePrice;
}

Помимо общей цены вы можете выводить базовую цену и сумму со скидкой.

$product->get_regular_price();
$product->get_sale_price();
$product->get_price();

Чтобы получить символ текущей валюты для цены:

$currency_symbol = html_entity_decode( get_woocommerce_currency_symbol() );

Из приведенных выше решений вы можете составлять свои форматы цен.

Еще одним важным моментом касательно цены товара является корректирование дефолтной цены в карточке товара. Редактировать системные файлы WooCommerce нельзя ни в коем случае, ближайший апдейт снесет все ваши правки. Для редактирования формата вывода цены product->get_price_html() есть фильтр.

apply_filters( 'woocommerce_get_price_html', $price, $this );

С его помощью вы можете создавать свой формат вывода цены для товара. Пример ниже.

// удаляем текущий вывод цены
add_filter( 'woocommerce_get_price_html', 'hide_all_wc_prices', 100, 2);
 
// заменяем нашим фильтром
add_filter( 'woocommerce_get_price_html', 'custom_price_html', 100, 2 );
function custom_price_html( $price, $product ){
  $price .= '<span class="price">' . get_post_meta( get_the_ID(), '_regular_price', true). '</span>';
  $price .= '<span class="symbol">' . sprintf(get_woocommerce_currency_symbol() ) . '</span>';
    return apply_filters( 'woocommerce_get_price', $price );
}

Это лишь пример использования, вы можете задавать свои варианты для получения и вывода цены для товара в WooCommerce.

Поделиться в социальных сетях:
Нет комментариев к данной статье

Оставить новый комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *