WooCommerce用mysql批量更改产品类型

时间:2017-04-20 22:53:21

标签: mysql wordpress woocommerce

使用WpAllImport导入产品时,我们所有产品都存储为可变产品,即使它们没有任何变化。我们需要将它们存储为单个产品。

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

希望一些WooCommerce专家可以帮助我们解决这个问题。

非常感谢!

2 个答案:

答案 0 :(得分:0)

首先使用循环获取所有变量产品。使用每个产品发布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;
            } 
        ?>

答案 1 :(得分:0)

首先从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

通过上面的查询,您可以获得两种产品类型的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'