在WooCommerce中编辑许多产品变体的权重

时间:2017-07-04 14:53:32

标签: php wordpress woocommerce attributes variations

如何在WooCommerce中编辑许多产品变体的重量?请。

由于

1 个答案:

答案 0 :(得分:0)

首先,您可以通过以下方式获取产品变体ID数组:

global $wpdb;
$posts_table = $wpdb->prefix . "posts";
$variation_ids = $wpdb->get_col( "SELECT `ID` FROM $posts_table WHERE `post_status` LIKE 'publish' AND `post_type` LIKE 'product_variation'");

然后您可以通过以下方式修改此产品变体的重量:

// Iterating through all product variations
foreach( $variation_ids as $variation_id ){

    // Get an instance of the product variation object
    $variation_object = wc_get_product($variation_id);

    // Get the variation weight
    $weight = $variation_object->get_weight();


    ## -- USE CONDITIONS TO SET / UPDATE WEIGHT AS YOU NEED -- ##

    // Example of conditions below
    if( $weight <= 0.2 && $weight > 0.3 ){
        $variation_object->set_weight(0.28);
    } elseif( $weight <= 0.3 && $weight > 0.5 ){
        $variation_object->set_weight(0.42);
    }

    // Example of empty weight condition
    if( empty($weight) ){
        $variation_object->set_weight(0.16);
    }

    // Example Based on variation IDs from 125 to 129
    if($variation_id >= 125 &&  $variation_id < 130 ){
        $variation_object->set_weight(0.45);
    }
}
  

然后,您可以自定义符合您需求的条件,并将其嵌入到运行一次的函数中。

     

您也可以在条件中使用产品变体对象 $variation_object 上的任何WC_ProductWC_Product_Variation方法。

     

这样您就可以设置/更新所有需要的多个变量

代码可以在您的活动子主题(或主题)的任何php文件中,也可以在任何插件的php文件中。

此代码已经过测试,适用于WooCommerce 3.0 +