You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

限制WooCommerce产品附加项链接div单选 选中一个后禁用另一字段

实现代码

你可以直接使用以下基于jQuery的代码实现需求,WooCommerce环境默认已加载jQuery,无需额外引入依赖:

jQuery(function($) {
    // 定位两个附加项容器
    const $productAddon1 = $('.wc-pao-addon-PRODUTO');
    const $productAddon2 = $('.wc-pao-addon-PRODUTO\\ 2'); // 类名包含空格需要转义
    
    // 统一处理选中逻辑
    function handleAddonSelect(activeAddon, inactiveAddon) {
        const activeSelect = activeAddon.find('select.wc-pao-addon-field');
        const inactiveSelect = inactiveAddon.find('select.wc-pao-addon-field');
        
        // 若当前选中项有值,禁用另一个
        if(activeSelect.val() !== '') {
            inactiveSelect.val('').trigger('change'); // 清空另一项值,触发原有事件保证价格计算正常
            inactiveAddon.addClass('pao-addon-disabled').css('pointer-events', 'none').css('opacity', '0.6');
        } else {
            // 若当前选中项清空,恢复另一项可选
            inactiveAddon.removeClass('pao-addon-disabled').css('pointer-events', 'auto').css('opacity', '1');
        }
    }
    
    // 监听两个附加项的色板点击和下拉选择事件
    $productAddon1.on('click', '.wc-pao-addon-image-swatch', function() {
        setTimeout(() => handleAddonSelect($productAddon1, $productAddon2), 50); // 延时等待原有插件赋值完成
    }).on('change', 'select.wc-pao-addon-field', function() {
        handleAddonSelect($productAddon1, $productAddon2);
    });
    
    $productAddon2.on('click', '.wc-pao-addon-image-swatch', function() {
        setTimeout(() => handleAddonSelect($productAddon2, $productAddon1), 50);
    }).on('change', 'select.wc-pao-addon-field', function() {
        handleAddonSelect($productAddon2, $productAddon1);
    });
});

可选优化样式

你可以将以下样式加入主题自定义CSS中,优化禁用状态的视觉表现:

.pao-addon-disabled {
    cursor: not-allowed;
}

内容的提问来源于stack exchange,提问作者Rafael Medeiros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 11:27:01