我正在使用woocommerce并在一个页面上有5个可变产品。它们都使用高度,宽度和颜色的属性。我想做的是,如果产品一选择了红色,我希望它也可以在其他4个产品中选择。高度和宽度相同。
我认为这就像用jQuery强制下拉选择一样简单。所以我开始寻找并找到了一些东西。他们似乎都将html克隆到了产品-2的领域。因此,如果我们在product-1中选择了red,那么在选择克隆的下拉列表中,product-2将有2个red选项。
我最终调整了我发现的东西.change而不是.clone。我使用了名称,因为所有产品的选择ID都相同。
jQuery("select[name='wccp_attribute_pa_length[1488195634]'").change(function() {
alert('working');
if (jQuery(this).data('options') == undefined) {
/*Taking an array of all options-2 and kind of embedding it on the select1*/
jQuery(this).data('options', jQuery('select[name="component_1486761669_bundle_attribute_pa_length_186695"] option').change());
}
var id = jQuery(this).val();
var options = jQuery(this).data('options').filter('[value=' + id + ']');
jQuery('select[name="component_1486761669_bundle_attribute_pa_length_186695"]').html(options);
});
乍一看似乎在耍手段。它直观地改变了第二个产品的下拉。但是,如果我手动选择不同的变体选项(例如颜色),它将恢复为下拉列表的第一个选项。其次,这不是更新产品价格。它似乎woocommerce不知道变化被选中。
如果有人知道更好的方法,我就不会使用上面的代码了。我试着寻找某种产品过滤器,但我在搜索中出现了空洞。我是woocommerce的小伙子。
我真的被卡住了。任何帮助都会一如既往地受到赞赏。
干杯
答案 0 :(得分:0)
add_filter('woocommerce_variation_option_name','display_price_in_variation_option_name');
function display_price_in_variation_option_name($ term){ 全球$ wpdb,$ product;
.equals(Object obj)
}