Мой клиент запросил нечто подобное, я обошел стороной.
В моем шаблоне была папка woocommerce для переопределения только определенных php-файлов, которые мне нужны, я полагаю, вы можете или уже добавили ее.
Тогда файл, отвечающий за отображение поля выбора для переменной, находится по адресу:
/ WooCommerce / монопродуктовый / добавить к тележке / variable.php
Итак, мы видим цикл, который рисует выборки для каждого атрибута.
вы бы хотели, чтобы ненужные поля были сброшены до того, как они будут переданы в функцию "wc_dropdown_variation_attribute_options", которая их рисует.
так вот что вам (примерно) нужно сделать:
<?php foreach ( $attributes as $attribute_name => $options ) :
// you want to target shirts category
if ( is_product() && has_term( 'shirts', 'product_cat' ) {
// you don't want a whole attribute displayed
if ( $attribute_name == 'Colour'){
unset($attribute_name);
}
}
// if you don't want few specific items then
if ( $attribute_name == 'Sizes'){ // color or size
$options_temp = $options;
foreach ( $options_temp as $key => $option )
{
if ($option = 'XXL'){
unset($options[$key]); // unset that option from REAL array
}
}
}
?>
адаптировать код к вашим потребностям.