在Woocommerce中,當訂單仍處於「處理」狀態時,我想自動將所有Woocommerce訂閱「擱置」而不是「活動」。一旦我將訂單標記爲「已完成」,即訂閱應更改爲「有效」。自動將Woocommerce訂閱狀態更改爲「暫停」而不是「活動」
我試過了所有我能想到的,如果有人知道如何做到這一點,請讓我知道。
我正在運行WordPress的4.8.1/Woocommerce 3.1.2/Woocommerce訂閱2.2.7 /和支付網關是條紋3.2.3。
在Woocommerce中,當訂單仍處於「處理」狀態時,我想自動將所有Woocommerce訂閱「擱置」而不是「活動」。一旦我將訂單標記爲「已完成」,即訂閱應更改爲「有效」。自動將Woocommerce訂閱狀態更改爲「暫停」而不是「活動」
我試過了所有我能想到的,如果有人知道如何做到這一點,請讓我知道。
我正在運行WordPress的4.8.1/Woocommerce 3.1.2/Woocommerce訂閱2.2.7 /和支付網關是條紋3.2.3。
這可以通過兩個步驟來完成:
1)隨着woocommerce_thankyou
動作鉤子鉤住一個自定義功能,當訂單有「處理」的狀態,幷包含訂閱,我們更新訂閱狀態爲「保留」。:
add_action('woocommerce_thankyou', 'custom_thankyou_subscription_action', 50, 1);
function custom_thankyou_subscription_action($order_id){
if(! $order_id) return;
$order = wc_get_order($order_id); // Get an instance of the WC_Order object
// If the order has a 'processing' status and contains a subscription
if(wcs_order_contains_subscription($order) && $order->has_status('processing')){
// Get an array of WC_Subscription objects
$subscriptions = wcs_get_subscriptions_for_order($order_id);
foreach($subscriptions as $subscription_id => $subscription){
// Change the status of the WC_Subscription object
$subscription->update_status('on-hold');
}
}
}
代碼放在您的活動子主題(或主題)的function.php文件或也以任何插件文件。
2)隨着woocommerce_order_status_completed
動作鉤子鉤住一個自定義功能,當訂單狀態更改爲「已完成」,它會自動變化的預訂狀態「活動」:
// When Order is "completed" auto-change the status of the WC_Subscription object to 'on-hold'
add_action('woocommerce_order_status_completed','updating_order_status_completed_with_subscription');
function updating_order_status_completed_with_subscription($order_id) {
$order = wc_get_order($order_id); // Get an instance of the WC_Order object
if(wcs_order_contains_subscription($order)){
// Get an array of WC_Subscription objects
$subscriptions = wcs_get_subscriptions_for_order($order_id);
foreach($subscriptions as $subscription_id => $subscription){
// Change the status of the WC_Subscription object
$subscription->update_status('active');
}
}
}
代碼會出現在您的活動子主題(或主題)的function.php文件中,也可能位於任何插件文件中。
所有代碼都在Woocommerce 3+上測試過並且可以正常工作。
非常感謝!它工作完美。我非常感謝您花時間在提供解決方案的同時解釋它。 – Daniel
我已閱讀有關WooCommerce訂閱狀態保留的教程。我認爲這會對你有所幫助https://www.cloudways.com/blog/woocommerce-subscription-status-on-hold/ –