We use the following code to programmatically set the pa_brand property for all products at once.
add_action('admin_init', 'iphf_add_brand_for_all_products');
function iphf_add_brand_for_all_products() {
$queryArgs = array(
'post_type' => 'product',
'posts_per_page' => -1
);
$my_query = new WP_Query( $queryArgs );
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post();
$term_taxonomy_ids = wp_set_object_terms( get_the_ID(), 'mein-marke', 'pa_brand', true );
$thedata = Array('pa_brand'=>Array(
'name'=>'pa_brand',
'value'=>'meine-marke',
'is_visible' => '1',
'is_taxonomy' => '1'
));
update_post_meta( get_the_ID(),'_product_attributes', $thedata);
endwhile;
}
wp_reset_query();
}
With is_visible comes a 1 (true), if brand should be displayed on the product page as “additional information”. If not desired, then insert 0. My-mark (bold in the code) must be replaced by the title form (slug) of the mark. The value for the title form can be found out in the editing mask of the property (Products -> Properties -> Configure terms click on Brand and then Edit on the corresponding brand).
Important remove this code after execution, so that the code is not executed every time the admin area is loaded and the loading is delayed.