【问题标题】:Woocommerce: Adding a variation to existing product with existing attributesWoocommerce:向具有现有属性的现有产品添加变体
【发布时间】:2017-01-01 14:30:45
【问题描述】:

我正在尝试找出如何将变体添加到原本不是可变产品的现有产品中。

所以我有一件产品衬衫,我又买了一件不同颜色的库存,所以我的产品进口商需要为这个现有产品添加新的变体。

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 只会给我序列化的属性,因此仅在所有内容之上添加新变体是行不通的。

有什么想法吗?

【问题讨论】:

    标签: php woocommerce attributes variations


    【解决方案1】:

    基本上问题是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) );
    

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,刚刚解决了。

      获取 product_type = variable 的 term_id

      /**
          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
      

      :)

      【讨论】:

        猜你喜欢
        • 2018-05-04
        • 2017-11-24
        • 2018-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多