Woocommerce订阅:自动创建的续订订单并暂停有效订阅

时间:2018-11-06 02:55:32

标签: php paypal woocommerce paypal-subscriptions woocommerce-subscriptions

我的客户使用WC订阅和会员资格。他为客户提供1美元的试用会员资格,以试用30天。 30天后,如果客户尚未选择退出订阅,则将向他们收取全额费用。

这是PayPal标准上发生的事情:

  • 客户购买了1美元的试用版,然后转到PayPal进行付款。成功付款后,他们将返回网站,并创建带有订阅的试用会员资格。
  • 成功交易通过单独的续订订单后的几分钟,系统会自动创建该订阅(不应该在30天之前发生),然后暂停试用付费会员资格。
  • 由于续订订单未收到付款,因此它具有待处理的付款状态,这会影响订阅的状态,因为它认为应付款但尚未收到付款。

问题是我刚刚在我的PayPal沙箱中测试了此方案,并且一切正常进行。自动续订订单未生成。谁能帮我理解为什么续订订单会自动生成?

谢谢。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。 但是,问题是,当订阅自动续订时,那时 MEMBERSHIP 状态更改为PAUSED。我开发并应用了以下解决方案,它奏效了!

/*
 * FIXED : Membership got PAUSED everytime at automatic membership renewal
 */

function change_membership_status_active( $subscription , $order ) {
    global $wpdb;
    if( 'completed' === $order->get_status() ) {        
        $membership = $wpdb->get_row( "SELECT * FROM wp_postmeta WHERE meta_key = '_subscription_id' AND meta_value =  $subscription->ID" );
        $mem_id = $membership->post_id;
        $status = 'wcm-active';
        $update_args = array( 'ID' => $mem_id, 'post_status' => $status );
        wp_update_post($update_args);
    }
}
add_action( 'woocommerce_subscription_renewal_payment_complete', 'change_membership_status_active', 10, 2 );