У меня есть футболка разных размеров и цветов. После выбора одного варианта я хотел бы, чтобы первый доступный вариант был автоматически выбран в другом варианте.
Например, если бы у меня была белая футболка только с большим и очень большим размером и зеленая футболка только с малым и средним, когда пользователь выбирает белый цвет, он должен автоматически выбрать большой. Однако, если пользователь затем передумает и выберет зеленый, он должен автоматически выбрать маленький. Хотя это должно происходить только в том случае, если в другом варианте еще не выбран вариант.
Хотя я могу запустить сценарий для выбора первой включенной опции при изменении, как только пользователь снова изменит цвет на другой, WooCommerce выдает предупреждение «Нет в наличии» и отменяет их выбор, прежде чем я снова смогу запустить сценарий при изменении.
Я безуспешно пытался работать с woocommerce_variation_select_change
, woocommerce_variation_has_changed
и show_variation
hide_variation
.
Любая помощь приветствуется. Ниже примерно то, что я придумал до сих пор:
$(document).on( 'change', '.variations select', function( event ) {
if ( !$(this).val() ) return false;
var select = $(this);
var variations = $(this).closest('.variations');
$(variations).find('select').not(select).each(function() {
var val = $(this).val();
if ( !val || ( val && !$(this).find('option[value='+val+']:enabled') ) ) {
$(this).find('option:enabled').each(function() {
if ( $(this).attr('value') ) {
$(this).prop('selected', 'selected');
return false;
}
});
}
});
});