2017-04-20 29 views
0

使用WpAllImport導入產品時,即使它們沒有任何變化,我們所有的產品都將作爲可變產品存儲。我們需要將這些存儲爲單一產品。WooCommerce使用mysql批量更改產品類型

如何使用MySql將所有產品類型更改爲單一的所有產品沒有任何變化?我們在查詢時遇到問題。

希望能有些WooCommerce專家可以幫助我們解決這個..

非常感謝您!

+2

到目前爲止您的查詢是? – helgatheviking

+0

請分享您試過的MySQL查詢或代碼。 –

+0

已刪除,正在關閉: – Virik

回答

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; 
      } 
     ?> 
+0

謝謝,但這會將所有變量產品更改爲簡單的產品,我們只需更改沒有變量的變量產品 – Virik

+0

不知道這是一個規定。我修正了它只改變沒有變化的產品的地方,希望對你有所幫助 – OfficialDtech

+0

再次感謝當運行你的代碼時,我得到這個錯誤:Uncaught Error:調用成員函數the_post()null – Virik

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 

通過上面的查詢就可以得到這兩個產品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準備腳本確保在任何操作步驟之前得到備份:) –

相關問題