Я закончил задачу следующим образом:
- с атрибутом 'master' для выбора группы цветов, включающей colorbond, matbond-matt и т. Д.
- , назначая каждую группу цветовв отдельный атрибут, например, colorbond, colorbond-matt
Затем я использовал несколько простых JS, чтобы скрыть атрибуты, которые не были выбраны атрибутом 'master'.
jQuery(document).ready(function(){
jQuery('#pa_steel-finish').change(function(){
var colorselect = jQuery('#pa_steel-finish option:selected').val();
switch (colorselect){
case 'colorbond':
jQuery('.tawcvs-swatches').closest('tr').css('display','none');
jQuery('[data-attribute_name="attribute_pa_colorbond"]').closest('tr').css('display','table-row');
break;
case 'colorbond-matt':
jQuery('.tawcvs-swatches').closest('tr').css('display','none');
jQuery('[data-attribute_name="attribute_pa_colorbond-matt"]').closest('tr').css('display','table-row');
break;
case 'colorbond-ultra':
jQuery('.tawcvs-swatches').closest('tr').css('display','none');
jQuery('[data-attribute_name="attribute_pa_colorbond-ultra"]').closest('tr').css('display','table-row');
break;
case 'galvanised':
jQuery('.tawcvs-swatches').closest('tr').css('display','none');
jQuery('[data-attribute_name="attribute_pa_galvanised"]').closest('tr').css('display','table-row');
break;
case 'heritage-galvanised':
jQuery('.tawcvs-swatches').closest('tr').css('display','none');
jQuery('[data-attribute_name="attribute_pa_heritage-galvanised"]').closest('tr').css('display','table-row');
break;
case 'zincalume':
jQuery('.tawcvs-swatches').closest('tr').css('display','none');
jQuery('[data-attribute_name="attribute_pa_zincalume"]').closest('tr').css('display','table-row');
break;
default:
jQuery('.tawcvs-swatches').closest('tr').css('display','none');
}
});
jQuery('.reset_variations').closest('tbody').append('<tr><td class="label"><label></label></td><td class="value resetvariations"></td></tr>');
jQuery('.reset_variations').detach().appendTo('.resetvariations');
});