2016-08-25 8 views
4

私は、もともと可変商品ではない既存の商品にバリエーションを追加する方法を理解しようとしています。Woocommerce:既存の属性を持つ既存の商品にバリエーションを追加する

私は商品シャツを持っています。私は商品のシャツを持っています。私は別の色のものを在庫していますので、私の商品の輸入業者はこの既存の製品に新しいバリエーションを追加する必要があります。

wp_set_object_terms ($product_id, 'black', 'pa_color', 1); 

$attr_data = Array(
      'pa_color'=>Array(
       'name' => 'pa_color', 
       'value' => '', 
       'is_visible' => '1', 
       'is_variation' => '1', 
       'is_taxonomy' => '1' 
      ) 
     ); 
update_post_meta($product_id, '_product_attributes', $attr_data); 

これは製品に色を追加しますが、製品上の既存のすべての属性を破壊します。既存の_product_attributesをプルするだけで、シリアル化された属性が得られます。新しいバリエーションを追加するだけでは機能しません。

アイデア?

答えて

1

ため

GET term_id基本的に問題はproduct_attributeは単一の変数ではなく、私が解決wp_set_object_terms

には、マージがないようだということです私のこのような問題:

wp_set_object_terms ($product_id, 'black', 'pa_color', 1); 

     $attr_data = Array(
      'pa_color'=>Array(
       'name' => 'pa_color', 
       'value' => '', 
       'is_visible' => '1', 
       'is_variation' => '1', 
       'is_taxonomy' => '1' 
      ) 
     ); 

     $product = new WC_Product($product_id); 

     update_post_meta($product_id, '_product_attributes', array_merge($product->get_attributes(), $attr_data)); 
-1

私は同じ問題を抱え、ちょうど解決しました。 PRODUCT_TYPE =変数

/** 
    SELECT $wpdb->terms.term_id FROM $wpdb->terms, $wpdb->term_taxonomy 
    WHERE name = 'variable' 
    AND taxonomy = 'product_type' 
    AND $wpdb->terms.term_id = $wpdb->term_taxonomy.term_id 
    LIMIT 1 
**/ 

$variable_term_id = 4; 

wp_set_object_terms($product_id, $variable_term_id, 'product_type' , true); //for variable product 

:)

関連する問題