«Запросить цену» или «Цена по запросу» в Woocommerce (woocommerce_empty_price_htm)

"Запросить цену" или "Цена по запросу" в Woocommerce (woocommerce_empty_price_htm)

Часто необходимо не указывать ценник на товаре. Такое встречается особенно на дорогие товары с большими процентами на скидку и когда цена сильно зависит от комплектации.

Как написать «Цену уточняйте» в  Woocommerce — переменная «woocommerce_empty_price_htm»?

  1. Плагином, типа Call for Price for WooCommerce
  2. Мне больше нравится внести в дочернюю тему правку в файл functions.php

Код меняющий значение 0руб на слова «Цена по запросу»:

add_filter( ‘woocommerce_get_price_html’, ‘product_price_free_zero_empty’, 100, 2 );

function product_price_free_zero_empty( $price, $product ){
if ( » === $product->get_price() || 0 == $product->get_price() ) {
$price = ‘<span class=»woocommerce-Price-amount amount»>Цена по запросу</span>’;
}
return $price;
}

или функция вставляющая текс т и взамен 0руб и даже, если  строка цены пустая ( важно при оптовой заливке товара на сайт и на новом сайте):

add_filter( ‘woocommerce_get_price_html’, ’empty_and_zero_price_html’, 20, 2 );
function empty_and_zero_price_html( $price, $product ) {
$empty_price = __(‘Цену уточняйте‘, ‘woocommerce’);

if( $product->is_type(‘variable’) )
{
$prices = $product->get_variation_prices( true );

if ( empty( $prices[‘price’] ) ) {
return $empty_price; // <=== HERE below for empty price
} else {
$min_price = current( $prices[‘price’] );
$max_price = end( $prices[‘price’] );
if ( $min_price === $max_price && 0 == $min_price ) {
return $empty_price; // <=== HERE for zero price
}
elseif ( $min_price !== $max_price && 0 == $min_price ) {
return wc_price( $max_price );
}
}
}
elseif( $product->is_type(‘simple’) )
{
if ( » === $product->get_price() || 0 == $product->get_price() ) {
return $empty_price; // <=== HERE for empty and zero prices
}
}
return $price;
}

// Отображаемая цена изменения продукта
add_filter( ‘woocommerce_available_variation’, ’empty_and_zero_variation_prices_html’, 10, 3);
function empty_and_zero_variation_prices_html( $data, $product, $variation ) {

if( » === $variation->get_price() || 0 == $variation->get_price() )
$data[‘price_html’] = __(‘Цена по запросу‘, ‘woocommerce’); // <=== HERE for empty and zero prices

return $data;
}

Источник: https://stackoverflow.com

Оцените статью
Добавить комментарии
«Запросить цену» или «Цена по запросу» в Woocommerce (woocommerce_empty_price_htm)
Защита плагина Contact Form 7 — CAPTCHA
× Спросить