如何在WooCommerce中编辑许多产品变体的重量?请。
由于
答案 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_Product
和WC_Product_Variation
方法。这样您就可以设置/更新所有需要的多个变量
代码可以在您的活动子主题(或主题)的任何php文件中,也可以在任何插件的php文件中。
此代码已经过测试,适用于WooCommerce 3.0 +