Regístrate gratis y obtén acceso a Shopify para $1 durante el primer mes.
Código de la primera variante por defecto para las páginas de productos
add_action('wp_footer', function () {
if (!is_product()) return;
?>
<script>
jQuery(function($){
var $form = $('form.variations_form');
if (!$form.length) return;
// 防重复
if ($form.data('firstVariationActivated')) return;
$form.data('firstVariationActivated', true);
function activateFirstOnce(){
var didSomething = false;
// 逐组处理 Blocksy 的色板
$('.ct-variation-swatches').each(function(){
var $group = $(this);
var $select = $group.find('select[name^="attribute_"]').first();
if (!$select.length) return;
// 找到第一个可用选项(有值、非禁用)
var $opt = $select.find('option').filter(function(){
var val = $(this).attr('value');
return val && val !== '' && !this.disabled;
}).first();
if (!$opt.length) return;
var val = $opt.val();
// 如果当前没选或选的不是它,就设置并触发一次 change
if ($select.val() !== val) {
$select.val(val).trigger('change');
didSomething = true;
}
// 同步点击对应 swatch,让主题自己加“激活”态
var $swatch = $group
.find('.ct-swatch-container[data-value="'+val+'"]')
.filter(':not(.disabled):not([aria-disabled="true"])')
.first();
if ($swatch.length) {
// 若已是激活就不点;否则只点一次
var alreadyActive = $swatch.is('.is-active, .selected, .ct-swatch-selected, .variable-item-selected, [aria-pressed="true"]');
if (!alreadyActive) {
$swatch.trigger('click');
}
}
});
// 只在确实改动过时,给表单一次性触发 change(避免死循环)
if (didSomething) {
setTimeout(function(){
$form.trigger('change');
}, 50);
}
}
// 等 Woo 的变体表单初始化后执行一次;再做一次兜底延时
$form.on('wc_variation_form', function(){
setTimeout(activateFirstOnce, 150);
});
setTimeout(function(){
// 有些主题不会触发 wc_variation_form,这里兜底跑一次
activateFirstOnce();
}, 400);
});
</script>
<?php
});