Задача вышла такая, что на отдельной карточке товара было решено сделать при наличии вариации на остатке 0 - вывод кнопки Сообщить о появлении, и при первичной загрузке страницы без выбора варианта товара, чтобы светилась Выберите параметры. Для отдельный товаров (не вариативных) все прекрасно работает, но вот как указать остаток и цену конкретной вариации для проверки, разобраться не могу. Вот какие варианты использовались
if ($product->stock_status == 'instock') {
<button>...
}
if ($product->get_price() > 0) {
...
} else {
<button>...
}
add_filter( 'woocommerce_product_single_add_to_cart_text', 'woocommerce_custom_single_add_to_cart_text', 10, 2 );
function woocommerce_custom_single_add_to_cart_text( $text, $product ) {
return $product->get_price() ? $text : __( 'Выберите параметры', 'woocommerce' );
}
Здесь получается, что, если в карточке будет хотя бы одна из вариаций дороже, то сразу выполняется первая часть, если нет, то всем вариациям назначается эта кнопка. С остатком он тоже не считает для отдельной вариации, а только общее. Как можно вытащить для проверки отдельно значение каждой вариации? Смена текста через js по классу не происходит, так тоже пробовали