2016-10-07 5 views
1

WooCommerce에서 반환하는 클라이언트가받은 주문의 제품 SKU를 변경하려고합니다.
현재 현재 코드를 사용하지만 작동하지 않는 것 같습니다.귀사의 퀵크 후크에서 돌아 오는 클라이언트의 SKU 번호를 변경하십시오.

2 가지 제품이 있습니다. 제품 번호가 5836 인 제품은 일반 제품이며 다른 제품은 서브 스크립 션입니다. (댓글에 관련된)

function action_woocommerce_thankyou($order_id) { 
    // Let's get the order details 
    $order = wc_get_order($order_id); 

    // Customer who made the purchase 
    $user_id = $order->get_user_id(); 

    // Now get order count for the customer 
    $order_count = wc_get_customer_order_count($user_id); 
    $items = $order->get_items(); 

    foreach ($order->get_items() as $item_id => $item) { 
     $product_name = $item['name']; 
     $product_id = $item['product_id']; 
     $product_variation_id = $item['variation_id']; 


     if ($order_count > 1) { 

      // Returning customer... 
      if ($product_id == '5836') { 
      update_post_meta($order_id['product_id'], '_sku', $ANT0001);} 
      else { 

      // Returning customer... 
      update_post_meta($order_id['product_id'], '_sku', $ANT0002);} 


     } else { 

      // New customer... 

     } 

    } 
} 
add_action('woocommerce_thankyou', 'action_woocommerce_thankyou', 10, 1); 
+0

안녕하세요, 저는 지난 2 일 동안 침대에서 실제로 아플 수 있습니다. 나는 곧 더 나아질 것이고 그것을 시험 할 수 있기를 바랍니다. 당신의 대답에 대해 너무 고마워요. 현재 주문 SKU 만 변경하고 woocommerce 제품 SKU는 변경하지 말아야합니다. 전에는 SKU 제품이 아니라 주문 SKU가 엉망이었습니다. – Dimijazz

답변

1

업데이트 :

내 코드 순서에서 SKU (들) 항목 (들)에 관한 우선 할 수 없습니다 관련 데이터베이스 테이블 item ID에 대한 관련 데이터가 없으므로 관련 데이터베이스 테이블 wp_woocommerce_order_itemmeta의 SKU와 관련된 데이터가 없으므로 순서대로 SKU를 업데이트하십시오. 관련 SKU (s) 데이터는 제품에서 직접 가져옵니다.


난 당신의 코드를 테스트 한 세계적으로 작동합니다.

무엇 작동하지 않는 것은입니다 :

update_post_meta($order_id['product_id'], '_sku', $ANT0001); 
// and 
update_post_meta($order_id['product_id'], '_sku', $ANT0001); 

당신이 정의되지 않은 변수 $ANT0001$ANT0002을 사용하고 있기 때문에.

update_post_meta($product_id, '_sku', 'ANT0001'); 
// and 
update_post_meta($product_id, '_sku', 'ANT0001'); 

또는 당신은 당신이 개 변수 $ANT0001$ANT0002을 정의해야하고, 예상대로 작동합니다 대신이를 사용해야합니다.

일반적으로 sku 참조 번호는 각 제품마다 고유해야합니다 ().