Recently imported many products, variations, attributes in to WooCommerce from a CSV file. All the attributes used for variations were set to show on the front-end – whoops!
Two options: Go through each product and uncheck “Visible on the product page” or this bit of code:
add_action('init',function(){
$args = array(
'post_type' => 'product',
'posts_per_page' => -1,
);
$products = get_posts($args);
foreach ($products as $post) {
$update = false;
$meta = get_post_meta($post->ID,'_product_attributes',true);
if($meta)
{
foreach($meta as $k => $a)
{
if($a['is_variation'] && $a['is_visible'])
{
$a['is_visible'] = 0;
$update = true;
$meta[$k] = $a;
}
}
if($update)
update_post_meta( $post->ID,'_product_attributes', $meta);
}
}
});Loops through products, and changes the meta as if the box were unchecked. Use at your own peril – definitely not on a production site!