首页 > 解决方案 > Woocommerce - 如果我以编程方式设置属性,则过滤器不起作用

问题描述

我正在尝试通过 wp_set_object_terms 和 update_post_meta 为产品设置属性。这些值已设置并附加到产品,它们显示在“属性”选项卡中。但它们在标准的 woo 小部件属性过滤器中不起作用。如果您转到产品编辑器并单击保存属性和更新,则当前帖子的属性会出现在过滤器中。请帮忙!

https://i.stack.imgur.com/Yph14.jpg

$ves = $product['sku'];
$brend = $product['description'];
$razmer = $product['categories'][0];    
$attributes = Array(
    'pa_ves'=> Array(
        'name'=> 'pa_ves',
        'value'=> $ves,
        'is_visible' => '1',
  'is_variation' => '0',
        'is_taxonomy' => '1'
    ),
    'pa_brend' => Array(
        'name' => 'pa_brend',
        'value' => $brend,
        'is_visible' => '1',
  'is_variation' => '0',
        'is_taxonomy' => '1'
    ), 
    'pa_razmer' => Array(
        'name' => 'pa_razmer',
        'value' => $razmer,
        'is_visible' => '1',
  'is_variation' => '0',
        'is_taxonomy' => '1'
    )
);
$wc_product->set_attributes($attributes);
$wc_product_id = $wc_product->save();
wp_set_object_terms($wc_product_id, $product['categories'][0], 'pa_razmer', false );
wp_set_object_terms($wc_product_id, $product['sku'], 'pa_ves', false );
wp_set_object_terms($wc_product_id, $product['description'], 'pa_brend', false );
update_post_meta($wc_product_id,'_product_attributes',$attributes);

标签: wordpresswoocommerce

解决方案


推荐阅读