WooCommerce使用mysql批量更改产品类型
使用WpAllImport导入产品时,即使它们没有任何变化,我们所有的产品都将作为可变产品存储。我们需要将这些存储为单一产品。WooCommerce使用mysql批量更改产品类型
如何使用MySql将所有产品类型更改为单一的所有产品没有任何变化?我们在查询时遇到问题。
希望能有些WooCommerce专家可以帮助我们解决这个..
非常感谢您!
首先获取带有循环的所有可变产品。使用每个产品帖子ID,获取可用的变体。如果产品没有变化。然后改变每个简单。
<?php
$args = array(
'post_type' => 'product',
'product_type' => 'variable'
);
$products = new WP_Query($args);
if ($products->have_posts()) {
while ($products->have_posts()) : $products->the_post();
$variations = array();
$id = the_ID();
$args = array(
'post_parent' => $id
);
$variations = get_children($args);
if(sizeOf($variations) == 0){
wp_set_object_terms($id, 'simple', 'product_type');
}
endwhile;
}
?>
谢谢,但这会将所有变量产品更改为简单的产品,我们只需更改没有变量的变量产品 – Virik
不知道这是一个规定。我修正了它只改变没有变化的产品的地方,希望对你有所帮助 – OfficialDtech
再次感谢当运行你的代码时,我得到这个错误:Uncaught Error:调用成员函数the_post()null – Virik
从MySQL首先需要备份您的数据库,那么你可以从下面的查询让你的产品类型ID:
select term_id from wp_terms where name='variable' // assume return 4 as result
select term_id from wp_terms where name='simple' // assume return 2 as result
通过上面的查询就可以得到这两个产品type.which的ID需要在下面提到的更新查询中使用。
UPDATE wp_term_relationships
INNER JOIN wp_terms ON (wp_term_relationships.term_taxonomy_id = wp_terms.term_id)
SET wp_term_relationships.term_taxonomy_id = '2' where wp_term_relationships.term_taxonomy_id = '4'
你,但这需要为约16.000个产品完成,我们需要更多的自动:) – Virik
从MySQL自定义查询将具体我猜,或者你可以通过PHP文件基于上面的query.make准备脚本确保在任何操作步骤之前得到备份:) –
到目前为止您的查询是? – helgatheviking
请分享您试过的MySQL查询或代码。 –
已删除,正在关闭: – Virik