2016-10-07 4 views
1

WooCommerceで、返品するクライアントが受け取った注文の製品SKUを変更しようとしています。
現在、私は現在のコードを使用していますが、動作していないようです。返品するクライアントの製品のSKU番号を返信する

私は2種類の製品を持っています。 idが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(S)の項目を(s)に関する第一には、することはできません関連するデータベーステーブルitem IDに関する関連データがないため、関連データベーステーブルwp_woocommerce_order_itemmetaのSKUに関連するデータはありません。関連するSKUのデータは、製品から直接取得されます。


私はあなたのコードをテストしているし、それが世界的に動作します。

は何がうまくいかないことはです:

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'); 

するか、あなたの2つの変数$ANT0001$ANT0002を定義する必要があり、それは期待と同じように、動作します。その代わりに、これを使用する必要があります。

通常、skuの参照番号は製品ごとに一意である必要があります。

関連する問題