2017-04-07 38 views
0

我需要woocommerce自動恢復股票quanitiy機時才能退款 請對此 我有兩個掛鉤woocommerce自動恢復股票quanitiy機時才能退款

add_action('woocommerce_product_set_stock','action_woocommerce_variation_set_stock', 10, 1); 
add_action('woocommerce_variation_set_stock', 'action_woocommerce_variation_set_stock', 10, 1); 

嘗試,但在前臺當這些掛鉤工作的任何一個幫助訂購產品的庫存數量減少

請解決這個問題

回答

0

嘗試使用以下行動掛鉤

add_action('woocommerce_order_status_processing_to_refunded', 'YOUR_ACTION_NAME', 10, 1); 
add_action('woocommerce_order_status_completed_to_refunded', 'YOUR_ACTION_NAME', 10, 1); 
add_action('woocommerce_order_status_on-hold_to_refunded', 'YOUR_ACTION_NAME', 10, 1); 
add_action('woocommerce_order_status_processing_to_refunded', 'YOUR_ACTION_NAME', 10, 1); 
add_action('woocommerce_order_status_completed_to_refunded', 'YOUR_ACTION_NAME', 10, 1); 
add_action('woocommerce_order_status_on-hold_to_refunded', 'YOUR_ACTION_NAME', 10, 1); 
add_action('woocommerce_order_status_failed_to_refunded', 'YOUR_ACTION_NAME', 10, 1); 

function YOUR_ACTION_NAME($order_id) { 
     $order = new WC_Order($order_id); 

     if (! get_option('woocommerce_manage_stock') == 'yes' && ! sizeof($order->get_items()) > 0) { 
      return; 
     } 

     foreach ($order->get_items() as $item) { 

      if ($item['product_id'] > 0) { 
       $_product = $order->get_product_from_item($item); 

       if ($_product && $_product->exists() && $_product->managing_stock()) { 

        $old_stock = $_product->stock; 

        $qty = apply_filters('woocommerce_order_item_quantity', $item['qty'], $this, $item); 

        $new_quantity = $_product->increase_stock($qty); 

        do_action('woocommerce_auto_stock_restored', $_product, $item); 

        $order->add_order_note(sprintf(__('Item #%s stock incremented from %s to %s.', 'woocommerce'), $item['product_id'], $old_stock, $new_quantity)); 

        $order->send_stock_notifications($_product, $new_quantity, $item['qty']); 
       } 
      } 
     } 
    } //End of function 

更換YOUR_ACTION_NAME用自己的函數名。