Для товаров без указанной цены выводим сообщение «Цена по запросу»
add_filter('woocommerce_empty_price_html', 'empty_price_message');
function empty_price_message() {
return 'Цена по запросу';
}
Для товаров с нулевой ценой выводим «Бесплатно» вместо «0р.»:
function my_price_replace($price, $product) {
if ($product->get_price() == 0 ) return __( 'Бесплатно' );
return $price;
}
add_filter( 'woocommerce_get_price_html', 'my_price_replace', 1, 2 );
И отключаем возможность покупки товара с нулевой ценой:
function make_not_purchasable( $purchasable, $product ){
if( $product->get_price() == 0 )
$purchasable = false;
return $purchasable;
}
add_filter( 'woocommerce_is_purchasable', 'make_not_purchasable', 10, 2 );
Коды следует добавлять в файл functions.php вашей активной темы.