添加WooCommerce产品属性而不会丢失存在

时间:2017-06-21 08:42:38

标签: php wordpress woocommerce attributes product

我已经在我的WooCommerce中添加了一些产品,以编程方式使用两个属性(pa_size,pa_color)。它们都用于变化。现在我想制作一个php文件,它会在每个产品中插入一个属性(pa_brand)。这仅用于可见性而不用于变体。

我尝试了一些代码:

NotificationCompat.Builder builder =
            (NotificationCompat.Builder) new NotificationCompat.Builder(this)
                    .setContentTitle("Where?")
                    .setContentText(text)
                    .setSmallIcon(R.drawable.wimbicon);

但我的问题是这样,添加了品牌属性,但我已经迷失了属性。

结果是我得到的产品只有一个属性。

有没有办法只添加一个属性,而不会丢失任何前一个属性(属性 -

2 个答案:

答案 0 :(得分:2)

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);

答案 1 :(得分:1)

最后,在最后一行我添加了这个:

wp_set_object_terms( $productID, $productBrand, 'pa_brand' , true);

现在似乎没有任何问题。我希望它也会对你有所帮助。