添加WooCommerce产品属性而不会丢失现有产品
问题描述:
我已经通过编程方式向我的WooCommerce添加了一些产品,具有两个属性(pa_size,pa_color)。他们都用于变化。现在我想创建一个php文件,它会在每个产品(pa_brand)中插入一个更多的属性。这将仅用于可视性而不用于变化。添加WooCommerce产品属性而不会丢失现有产品
我尝试了一些代码,如:
$term_taxonomy_ids = wp_set_object_terms($productID, $productBrand, 'pa_brand', true);
$thedata = Array('pa_brand'=>Array(
'name'=>'pa_brand',
'value'=>$productBrand,
'is_visible' => '1',
'is_taxonomy' => '1'
));
update_post_meta( $productID,'_product_attributes',$thedata);
但我的问题是,这样一来,增加了品牌属性,但我已经在属性迷路。
结果是,我得到所有产品只有一个属性。
有什么办法只是增加一个属性,又不失以前(的任何属性 -
答
update_post_meta()
会改变的,当它被称为价值 - 你需要首先获取现有的元数据和存储该阵列太:
$term_taxonomy_ids = wp_set_object_terms($productID, $productBrand, 'pa_brand', true);
$existingData['pa_size'] = get_post_meta($productID, 'pa_size', true);
$existingData['pa_color'] = get_post_meta($productID, 'pa_color', true);
$thedata = Array(
'pa_brand'=>Array(
'name'=>'pa_brand',
'value'=>$productBrand,
'is_visible' => '1',
'is_taxonomy' => '1'
),
'pa_size' => Array(
'name'=>'pa_size',
'value'=>$existingData['pa_size'],
'is_visible' => '1',
'is_taxonomy' => '1'
),
'pa_color' => Array(
'name'=>'pa_color',
'value'=>$existingData['pa_color'],
'is_visible' => '1',
'is_taxonomy' => '1'
)
);
update_post_meta( $productID,'_product_attributes',$thedata);
答
最后,在最后一行添加此:
wp_set_object_terms($productID, $productBrand, 'pa_brand' , true);
现在好像不就吃g任何问题。我希望它也能帮助你。
超级!这似乎工作正常!我在'pa_size'和'pa_color'的数组中添加了'is_variation'=>'1'“,所以它不会删除这些属性的变化! 非常感谢! –
嗯,我出来了一个问题。 ,它运行良好,但现在我看到,当我运行相同的代码,pa_brand在产品编辑页面中的值是空的。 我检查$ productBrand有一个值。 –
hmmm ...让我有一个一点点思考 - 我现在在工作,所以今天晚些时候需要看看。 –