Редко но возникает ситуация когда необходимо для части товаров выставить цену по запросу на товары. Я не сторонник такого подхода, но объективно иногда это необходимо и поэтому потребовалось простое решение, которое позволит такое реализовать. Покопался поискал и нашёл добавил на сайт сниппет, который позволяет это сделать.
Итак для этого в function.php темы вставляем следующий код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
// Показ цены по запросу для товаров 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; } |
Всё, далее чтобы это работало ставим товару цену нулевую и все работает. При желании слова Цена по запросу можно поменять ну другой вариант. Хорошей работы!
Мне интересно ваше решение по отображению цены как “ЦЕНА ПО ЗАПРОСУ” для товаров в WooCommerce, особенно в контексте переменных и простых продуктов. Вы упоминаете, что не сторонник такого подхода, но согласны, что он иногда необходим. Можете ли вы подробнее рассказать о тех случаях, когда это действительно оправдано? Например, бывают ли ситуации, когда продавец может не установить фиксированную цену из-за нестабильности рынка или специфики товара, например, при продаже индивидуальных изделий или продукции на заказ?
Также, не могли бы вы объяснить, как это решение может повлиять на пользовательский опыт? Понимаю, что вы просто внедрили сниппет, однако, не встречали ли вы сложности с клиентским восприятием? Как пользователи реагировали на отсутствие фиксированной цены? Это может повлиять на конверсию, если покупатели не знают, сколько они должны заплатить.
Кроме того, как вы можете расширить функционал этого решения? Например, можно ли добавить возможность клиентам отправлять запросы на цену через форму или интегрировать это с CRM для дальнейшего управления ценами и заказами?
Возможно, в статье недостает примеров ошибок или подводных камней, с которыми вы столкнулись при реализации данного решения. Это могло бы помочь другим разработчикам избежать подобных проблем.