Woocommerce отключить атрибут от использования для вариаций

Иногда, особенно при массовой загрузке товаров из 1с или МойСклад бывает необходимость отключить определенные атрибуты от использования в вариациях. Тогда на помощь приходит следующий код:

function tt_disable_attributes_as_variations() {
     $product_ids = get_posts(array(
         'post_type' => 'product',
         'numberposts' => -1,
         'post_status' => 'any',
         'fields' => 'ids',
     ));

     // add the rest of attributes you want
     $attributes_to_update = array('pa_num', 'pa_color'); 

     foreach ($product_ids as $product_id) {
         $product_attributes = get_post_meta($product_id, '_product_attributes', true);
         foreach ($attributes_to_update as $attribute_slug) {
             if (isset($product_attributes[$attribute_slug])) {
                 //Disable showing on product page
                 // $product_attributes[$attribute_slug]['is_visible'] = 0; 
                 //Disable being used as variation
                 $product_attributes[$attribute_slug]['is_variation'] = 0; 
             }
         }
         update_post_meta($product_id, '_product_attributes', $product_attributes);
     }
 }

 add_action('init', 'tt_disable_attributes_as_variations');

 

Прокрутить вверх
Расчитать стоимость создания сайта онлайн

Ответьте на несколько вопросов и получите скидку 20%