WooCommerce使用mysql批量更改产品类型

问题描述:

使用WpAllImport导入产品时,即使它们没有任何变化,我们所有的产品都将作为可变产品存储。我们需要将这些存储为单一产品。WooCommerce使用mysql批量更改产品类型

如何使用MySql将所有产品类型更改为单一的所有产品没有任何变化?我们在查询时遇到问题。

希望能有些WooCommerce专家可以帮助我们解决这个..

非常感谢您!

+2

到目前为止您的查询是? – helgatheviking

+0

请分享您试过的MySQL查询或代码。 –

+0

已删除,正在关闭: – Virik

首先获取带有循环的所有可变产品。使用每个产品帖子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; 
      } 
     ?> 
+0

谢谢,但这会将所有变量产品更改为简单的产品,我们只需更改没有变量的变量产品 – Virik

+0

不知道这是一个规定。我修正了它只改变没有变化的产品的地方,希望对你有所帮助 – OfficialDtech

+0

再次感谢当运行你的代码时,我得到这个错误: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' 
+0

你,但这需要为约16.000个产品完成,我们需要更多的自动:) – Virik

+0

从MySQL自定义查询将具体我猜,或者你可以通过PHP文件基于上面的query.make准备脚本确保在任何操作步骤之前得到备份:) –