以下是我选择第一个属性(大小)时显示变体的截图,它没有显示匹配的颜色,也没有像下面的屏幕截图那样划掉不匹配的颜色(这是一个名为Improved的高级插件变量产品属性插件)。
有没有办法通过添加简单的Javascript在 Variation Swatches Plugin for Woocommerce 中删除不匹配的属性?
经过一些试验和错误尝试后,我写了一些代码。 其他任何人都有更好的贡献赞赏。
答案 0 :(得分:0)
经过一些反复试验后,我在下面编写了这段代码并添加到了
wp-content\plugins\variation-swatches-for-woocommerce\assets\js\frondend.js
文件中的点击事件。
在onclick事件结束时添加以下代码
/*
* Not Available display Hack
*/
var which = $el.closest( '.value' ).parent('tr').siblings(); which.removeClass('curr-select');
which.toggleClass('curr-select');
var available_value_select = $('.curr-select .value').find( 'select' ),
other_swatches = which.find('.swatch');
other_swatches.removeClass('tawvs-no-stock');
if($el.hasClass('selected')) {
setTimeout(function() {
other_swatches.each(function(index, el) {
console.log($( this ).data('value') +' - '+ available_value_select.find('option[value="' + $( this ).data('value') + '"]').val() +' - '+ available_value_select.find('option[value="' + $( this ).data('value') + '"]').length);
if( !available_value_select.find('option[value="' + $( this ).data('value') + '"]').length && !$(this).hasClass('selected'))
$( this ).addClass('tawvs-no-stock');
});
},200);
// console.log(available_value_select);
}
/*
* Not Available display Hack
*/
例如:
$form
.addClass( 'swatches-support' )
.on( 'click', '.swatch', function ( e ) {
// code here
})
另请在wp-content\plugins\variation-swatches-for-woocommerce\assets\css\frondend.css
.tawvs-no-stock:before, .tawvs-no-stock:after {
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
transform: rotate(45deg);
content: "";
width: 0px;
height: 26px;
display: block;
border: solid #F44336;
border-width: 0 2px 2px 0;
position: absolute;
top: 6px;
left: 18px;
}
.tawvs-no-stock:after {
transform: rotate(-45deg);
}
添加此代码段后的结果