SQL 查询以更改 WooCommerce 中所有产品的延期交货状态
SQL query to change backorder status of all products in WooCommerce
在 WooCommerce 中,您可以更改产品的状态以允许延期交货,默认设置为 'not allowed'。我的商店里有数千种产品,我不想手动更改所有产品。
是否有 SQL 查询可以直接在数据库中为我执行此操作?
在 mySql
中尝试 运行 这个查询
UPDATE wp_postmeta SET meta_value = 'yes' WHERE meta_key = '_backorders';
这还不足以达到您的目的。还需要启用管理库存。
如果 WooCommerce 允许延期交货全局设置未启用,请尝试 运行 此查询。
UPDATE wp_postmeta SET meta_value = 'yes' WHERE meta_key = '_manage_stock';
还需要更新库存数量
UPDATE wp_postmeta SET meta_value = 1000 WHERE meta_key = '_stock';
库存情况
UPDATE wp_postmeta SET meta_value = 'instock' WHERE meta_key = '_stock_status';
我正在处理可变产品,因此我还需要执行以下查询:
UPDATE wp_postmeta SET meta_value = 'onbackorder' WHERE meta_key = '_stock_status';
这是工作。
$product = SELECT * FROM `wpuk_posts` WHERE `post_type` = 'product';
foreach( $product as $pro){
$checknotify = SELECT * FROM `wpuk_postmeta` WHERE `post_id` = '$pro->ID' AND `meta_key` = '_stock_status';
if (empty($checknotify)) {
INSERT INTO `wpuk_postmeta`(`post_id`, `meta_key`, `meta_value`) VALUES ('$pro->ID','_stock_status','onbackorder');
} else {
UPDATE `wp_postmeta` SET meta_value = 'onbackorder' WHERE `post_id` = '$pro->ID' AND `meta_key` = '_stock_status';
}
}
UPDATE `wp_postmeta` SET meta_value = 'yes' WHERE `meta_key` = '_manage_stock';
用于通知
$product = SELECT * FROM `wpuk_posts` WHERE `post_type` = 'product'; // Optional
foreach( $product as $pro){
$checknotify = SELECT * FROM `wpuk_postmeta` WHERE `post_id` = '$pro->ID' AND `meta_key` = '_backorders';
if (empty($checknotify)) {
INSERT INTO `wpuk_postmeta`(`post_id`, `meta_key`, `meta_value`) VALUES ('$pro->ID','_backorders','notify');
} else {
UPDATE `wp_postmeta` SET `meta_value` = '_backorders' WHERE `post_id` = '$pro->ID' AND `meta_key` = 'notify';
}
}
如果您想自动编辑插件代码。
我试过了,成功了。
Woocommerce 股票编辑文件..
/wp-content/plugins/woocommerce/includes/admin/meta-boxes/class-wc-meta-box-product-data.php
更新它:
'manage_stock' => "yes",
'backorders' => "notify",
'stock_status' => "onbackorder",
Like Image
在 WooCommerce 中,您可以更改产品的状态以允许延期交货,默认设置为 'not allowed'。我的商店里有数千种产品,我不想手动更改所有产品。 是否有 SQL 查询可以直接在数据库中为我执行此操作?
在 mySql
中尝试 运行 这个查询 UPDATE wp_postmeta SET meta_value = 'yes' WHERE meta_key = '_backorders';
这还不足以达到您的目的。还需要启用管理库存。
如果 WooCommerce 允许延期交货全局设置未启用,请尝试 运行 此查询。
UPDATE wp_postmeta SET meta_value = 'yes' WHERE meta_key = '_manage_stock';
还需要更新库存数量
UPDATE wp_postmeta SET meta_value = 1000 WHERE meta_key = '_stock';
库存情况
UPDATE wp_postmeta SET meta_value = 'instock' WHERE meta_key = '_stock_status';
我正在处理可变产品,因此我还需要执行以下查询:
UPDATE wp_postmeta SET meta_value = 'onbackorder' WHERE meta_key = '_stock_status';
这是工作。
$product = SELECT * FROM `wpuk_posts` WHERE `post_type` = 'product';
foreach( $product as $pro){
$checknotify = SELECT * FROM `wpuk_postmeta` WHERE `post_id` = '$pro->ID' AND `meta_key` = '_stock_status';
if (empty($checknotify)) {
INSERT INTO `wpuk_postmeta`(`post_id`, `meta_key`, `meta_value`) VALUES ('$pro->ID','_stock_status','onbackorder');
} else {
UPDATE `wp_postmeta` SET meta_value = 'onbackorder' WHERE `post_id` = '$pro->ID' AND `meta_key` = '_stock_status';
}
}
UPDATE `wp_postmeta` SET meta_value = 'yes' WHERE `meta_key` = '_manage_stock';
用于通知
$product = SELECT * FROM `wpuk_posts` WHERE `post_type` = 'product'; // Optional
foreach( $product as $pro){
$checknotify = SELECT * FROM `wpuk_postmeta` WHERE `post_id` = '$pro->ID' AND `meta_key` = '_backorders';
if (empty($checknotify)) {
INSERT INTO `wpuk_postmeta`(`post_id`, `meta_key`, `meta_value`) VALUES ('$pro->ID','_backorders','notify');
} else {
UPDATE `wp_postmeta` SET `meta_value` = '_backorders' WHERE `post_id` = '$pro->ID' AND `meta_key` = 'notify';
}
}
如果您想自动编辑插件代码。
我试过了,成功了。
Woocommerce 股票编辑文件.. /wp-content/plugins/woocommerce/includes/admin/meta-boxes/class-wc-meta-box-product-data.php
更新它:
'manage_stock' => "yes",
'backorders' => "notify",
'stock_status' => "onbackorder",
Like Image