Woocommerce 变体样本插件划掉不匹配的属性?

问题描述 投票:0回答:2

Variation Swatches Plugin For Woocommerce


这是我选择第一个属性(尺寸)时如何显示变体的屏幕截图,它不显示匹配的颜色,也不会划掉不匹配的颜色,如下面的屏幕截图(这是一个名为“改进的可变产品属性插件”的高级插件) )。
Improved Variable Product Attributes Plugin

有没有办法通过添加简单的 Javascript 来删除 Woocommerce 的变体样本插件中不匹配的属性?

经过一番尝试和错误尝试后,我编写了一些代码。 感谢其他人做出更好的贡献。

javascript jquery wordpress woocommerce
2个回答
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

中添加这个划掉的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);
}

添加此代码片段后的结果

Demo 1

Demo 2

Demo 3


0
投票

非常简单。只需前往 WordPress 目录并尝试这个插件。它具有内置选项:https://wordpress.org/plugins/woo-variation-swatches/

插件概述

© www.soinside.com 2019 - 2024. All rights reserved.