2015-02-23 5 views
0

Я хотел бы установить SKU в ID продукта ... но не могу найти подходящий фильтр для использования?Обновление Woocommerce для всех продуктов? фильтр?

Есть ли фильтр, который отправляет продукт 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 (параметр запроса)), тогда обновление будет делать это. –

+0

Он просто хочет установить SKU на один раз. Так что не нужно больше вовлекаться :) –

+0

Спасибо за это, я попробую это на своем сайте. – user892134

Смежные вопросы