2015-02-23 81 views
0

我想將SKU設置爲產品的ID ..但找不到合適的過濾器使用?Woocommerce更新所有產品的sku?過濾?

是否有過濾器發送產品SKU?

add_filter('woocommerce_get_sku', 'update_sku', 10, 1); 

function update_sku($sku){ 

//set $newsku as product id 


    return $newsku; 
} 

我該如何做到這一點?我有1000個沒有SKU的產品。我試過一個名爲SKU生成器的插件,但不起作用。任何幫助讚賞。

回答

2

您可以通過將以下代碼添加到您的functions.php文件中並添加到您的網站example.com一次後執行此操作。

之後,從functions.php刪除以下代碼。

add_filter('init', 'update_sku', 10, 1); 

    function update_sku($sku){ 

     $args = array(
       'post_type' => 'product', 
       'posts_per_page' => 12 
       ); 
     $i=0; 
     $loop = new WP_Query($args); 

     if ($loop->have_posts()) { 
      while ($loop->have_posts()) : $loop->the_post(); 

       $random_sku = mt_rand(100000, 999999); 

       update_post_meta($loop->post->ID,'_sku',$random_sku); 

       $i++; 
      endwhile; 
     } else { 
      echo __('No products found'); 
     } 
     wp_reset_postdata(); 
    } 

注:如果你不使用一次後撈出,產品SKU將改變你每次訪問您的網站的任何頁面。

+0

只需添加一些參數檢查你的功能就像if(isset(request param))然後做更新就可以了。 – 2015-02-23 10:58:00

+0

他只是想爲SKU設置一次。所以沒有必要進入更多:) – 2015-02-23 11:25:29

+0

感謝您爲此我會在我的網站上試用此功能。 – user892134 2015-02-23 11:36:50