我刚刚更新了我的WooCommerce运输课程,以便更好地使用某些商品免运费。
但是,我需要申请新的标准运费'等级到1000多种产品。浏览产品>批量修改无法一次性选择它们,也不能一次性地选择100个,我不想通过10比10来解决,直到我知道没有别的办法这样做。
问题:是否有可以提高速度的SQL查询?
我似乎无法在数据库中找到每个产品的发货类别:(
答案 0 :(得分:1)
在页面顶部的屏幕选项中,选择每个显示1000个产品 页面并删除除标题以外的所有其他字段。
选择所有产品
批量修改
答案 1 :(得分:1)
我做了这个插件,它遍历了某个类别的所有产品并分配了所需的运输类别,更多详细信息在注释中:
<?php
/*
Plugin Name: Bulk Shipping class update
Description: Bulk Update of shipping class for woocommerce products
Version: 0.0.1
Contributors: svelandiag
Author: svelandiag
Text Domain: woocommerce-ship-class-by-cat
*/
// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
die;
}
// define the woocommerce_init callback
function action_woocommerce_init( $array ) {
/** The category ID's with the posts you want to change */
$category_ids = array(635, 1022, 289, 291); // array of ints or single int
/** The shipping class to set for the products */
$shipping_class_slug = "shipping-class-slug"; // found in "shipping classes" in woocommerce settings
/** Run query to collect our data */
$products = new WP_Query(array(
'post_type' => 'product',
'posts_per_page' => -1,
'fields' => 'ids',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $category_ids,
'operator' => 'IN'
)
)
));
/** Set our shipping class on each product */
foreach ($products->posts as $pid) {
wp_set_object_terms($pid, $shipping_class_slug, 'product_shipping_class');
}
/** reset the query */
wp_reset_query();
};
// add the action
add_action( 'admin_init', 'action_woocommerce_init', 10, 1 );
?>
您还可以提取该钩子和回调,并将其添加到您的子主题的functions.php
中,请注意,这是一次性使用的代码段,因为它在每次管理后端初始化时都会运行。
该插件已经过最新的Woocomerce 4.x和最新的WordPress 5.x的测试。