Я изо всех сил пытаюсь понять, что изменилось в моем коде. Он работает для настольных компьютеров, но перестал работать для мобильных. На мобильных устройствах он не изменится с «Добавить в корзину» на «Продано». Кнопка становится красной, но продолжает говорить «Добавить в корзину».
// For all products except variable product
add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 1, 2);
function wcs_custom_get_availability( $availability, $_product ) {
// Change Out of Stock Text
if ( ! $_product->is_in_stock() ) {
$availability['availability'] = __('Sold Out', 'woocommerce');
}
return $availability;
}
//THIS IS MY CURRENT SCRIPT
// For all variable products
add_action( 'woocommerce_after_add_to_cart_button', 'after_add_to_cart_button_action_callback', 0 );
function after_add_to_cart_button_action_callback() {
global $product;
if( $product->is_type('variable') ) :
$data = [];
foreach( $product->get_visible_children() as $variation_id ){
$variation = wc_get_product( $variation_id );
$data[$variation_id] = $variation->is_in_stock();
}
$outofstock_text = __("Sold Out", "woocommerce");
?>
<script type="text/javascript">
jQuery(function($){
var b = 'button.single_add_to_cart_button',
t = $(b).text();
$('form.variations_form').on('show_variation hide_variation found_variation', function(){
$.each(<?php echo json_encode($data); ?>, function(j, r){
var i = $('input[name="variation_id"]').val();
if(j == i && i != 0 && !r ) {
$(b).html('<?php echo $outofstock_text; ?>');
return false;
} else {
$(b).text('Add To Cart');
}
});
});
});
</script>
<?php
endif;
}
Я использую два экземпляра фрагмента «Добавить в корзину» для файла переменной. php. Один для настольного компьютера, другой для мобильного. Оба фрагмента идентичны, разницы нет. Я просто не знал, что и как go о настройке страницы одного продукта для фиксированной кнопки добавления в корзину в нижней части страницы на мобильном телефоне, и я хотел сделать образец смахивания.
Вот ссылка на переменную. php файл на git, чтобы увидеть, как я вызываю кнопку «Добавить в корзину». Строка 28 и строка 85