Некоторые продукты на сайте нельзя купить напрямую, поэтому я заменил «Добавить в корзину» пользовательской кнопкой, которая ссылается на пользовательскую вкладку WooCommerce на странице продукта, содержащей форму запроса.
Это было сделано с помощью фильтра woocommerce_empty_price_html
.Если для товара не установлена цена -> Показать кнопку.
Однако мое решение работает только с простыми продуктами, и мне нужно, чтобы оно работало и с переменными продуктами.
Это мой код, который работает для простого продукта:
add_filter('woocommerce_empty_price_html', 'custom_call_for_price');
function custom_call_for_price() {
$ccfp .= '<a class="switchtab" href="#tab-quick_quote"><button type="submit" id="trigger_cf" class="quote-button single_add_to_cart_button button alt" >Quick Quote</button></a>';
?><script>
jQuery(document).ready(function($){
$("a.switchtab").click(function(e){
e.preventDefault();
$("div.woocommerce-tabs>ul.tabs>li>a[href='" + $(this).attr("href") + "']").click();
$('html, body').animate({
scrollTop: $("div.woocommerce-tabs").offset().top
}, 500);
});
});
</script><?php
return $ccfp;
}
Когда я переключаю свой продукт на продукт с переменными параметрами, поведение WooCommerce по умолчанию скрывает варианты без цен.Поэтому я попытался переопределить это с помощью
add_filter('woocommerce_variation_is_visible', 'product_variation_always_shown', 10, 2);
function product_variation_always_shown($is_visible, $id){
return true;
}
Это привело к отображению кнопки для переменного продукта без цены за изменение, но проблема в том, что я вижу кнопку "Добавить в корзину" и мой "Кнопка «Быстрое цитирование» теперь работает как «Добавить в корзину» (вместо прокрутки на якорь) с сообщением
«Извините, этот продукт недоступен. Выберите другую комбинацию.»
Чтобы отобразить это графически, это то, что у меня есть в настоящее время для моего переменного продукта.
![enter image description here](https://i.stack.imgur.com/mFbwO.png)
Мне нужно, чтобы переменный продукт не действовал по ценекак мой пример для простого продукта без цены.Чтобы скрыть форму «Добавить в корзину» и отобразить кнопку, которая прокручивается до вкладки, но все же позволяет пользователям выбирать параметр, потому что я передаю значение параметра в форму запроса.
Можно ли это сделать для переменного продукта?