Guest User

Untitled

a guest
Feb 19th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. function wcs_do_not_reduce_onhold_stock( $reduce_stock, $order ) {
  2. if ( $order->has_status( 'on-hold' ) ) {
  3. $reduce_stock = false;
  4. }
  5. return $reduce_stock;
  6. }
  7. add_filter( 'woocommerce_can_reduce_order_stock', 'wcs_do_not_reduce_onhold_stock', 10, 2 );
  8.  
  9. else if ( $order->has_status( 'processing' ) || $order->has_status( 'completed' ) ) {
  10. $reduce_stock = true;
  11. }
  12.  
  13. add_filter( 'woocommerce_can_reduce_order_stock', 'wcs_do_not_reduce_onhold_stock', 10, 2 );
  14. function wcs_do_not_reduce_onhold_stock( $reduce_stock, $order ) {
  15. if ( $order->has_status( 'on-hold' ) && $order->get_payment_method() == 'bacs' ) {
  16. $reduce_stock = false;
  17. }
  18. return $reduce_stock;
  19. }
  20.  
  21. add_action( 'woocommerce_order_status_changed', 'order_stock_reduction_based_on_status', 20, 4 );
  22. function order_stock_reduction_based_on_status( $order_id, $old_status, $new_status, $order ){
  23. // Only for 'processing' and 'completed' order statuses change
  24. if ( $new_status == 'processing' || $new_status == 'completed' ){
  25. $stock_reduced = get_post_meta( $order_id, '_order_stock_reduced', true );
  26. if( empty($stock_reduced) && $order->get_payment_method() == 'bacs' ){
  27. wc_reduce_stock_levels($order_id);
  28. }
  29. }
  30. }
Add Comment
Please, Sign In to add comment