Ershad
(Ershad)
سپتامبر 16, 2020, 12:16ب.ظ
1
سلام.
کسی میدونه این کد چرا کار نمیکنه؟
فانکشن این کد: زمانی که اشتراک محصول تمدید میشه، از موجودی انبار اون محصول کم نکنه!
برای پلاگین: woocommerce subscription
function wcs_do_not_reduce_renewal_stock( $reduce_stock, $order ) {
if ( function_exists( 'wcs_order_contains_renewal' ) && wcs_order_contains_renewal( $order ) ) { // Subscriptions v2.0+
$reduce_stock = false;
} elseif ( class_exists( 'WC_Subscriptions_Renewal_Order' ) && WC_Subscriptions_Renewal_Order::is_renewal( $order ) ) {
$reduce_stock = false;
}
return $reduce_stock;
}
add_filter( 'woocommerce_can_reduce_order_stock', 'wcs_do_not_reduce_renewal_stock', 10, 2 );
سلام این مورد تخصص مهندس عزیز @Hosein هستش.
1 پسندیده
Ershad
(Ershad)
سپتامبر 17, 2020, 11:00ق.ظ
3
یه پول رکوئست ثبت شده ولی هنوز مسئول پروژه تاییدش نکرده، منم هنو تستش نکردم:
function wcs_do_not_reduce_renewal_stock( $reduce_stock, $order ) {
if ( function_exists( 'wcs_order_contains_renewal' ) && wcs_order_contains_renewal( $order ) ) { // Subscriptions v2.0+
$reduce_stock = false;
} elseif ( class_exists( 'WC_Subscriptions_Renewal_Order' ) && WC_Subscriptions_Renewal_Order::is_renewal( $order ) ) {
$reduce_stock = false;
}
return $reduce_stock;
}
add_filter( 'woocommerce_can_reduce_order_stock', 'wcs_do_not_reduce_renewal_stock', 10, 2 );
/**
* When user is in the cart and has a Subscription we want to bypass `wc_get_held_stock_quantity` by setting `woocommerce_hold_stock_minutes` option to 0.
*
* @param bool $hold_stock_minutes The value we might want to modify.
*
* @return int|boolean
*
* @link https://github.com/Prospress/woocommerce-subscriptions-do-not-reduce-stock-on-renewal/issues/3
* @since 1.1.0
*/
function wcs_maybe_update_woocommerce_hold_stock_minutes( $hold_stock_minutes ) {
if ( doing_action( 'woocommerce_check_cart_items' ) && is_callable( 'WC_Subscriptions_Cart', 'cart_contains_subscription' ) ) {
if ( WC_Subscriptions_Cart::cart_contains_subscription() ) {
return 0;
}
}
return $hold_stock_minutes;
}
add_filter( 'pre_option_woocommerce_hold_stock_minutes', 'wcs_maybe_update_woocommerce_hold_stock_minutes', 10, 1 );