2017-04-20 3 views
0

WpAllImport를 사용하여 제품을 가져올 때 모든 제품은 변형이 없더라도 가변 제품으로 저장됩니다. 우리는 이것을 하나의 제품으로 저장해야합니다.mysql을 사용하는 WooCommerce 대량 변경 제품 유형

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

코드를 실행할 때이 오류가 발생합니다. 캐치가없는 오류 : null의 the_post() 멤버 함수를 호출하십시오. – 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에서 사용자 지정 쿼리를 특정 것 같아요, 또는 위의 query.make에 대한 PHP 파일 기반으로 스크립트를 준비 할 수 있습니다 어떤 조치 단계를하기 전에 백업 :) –