切换订阅时收到的定制订单端点

时间:2019-02-25 13:09:29

标签: php wordpress woocommerce hook-woocommerce woocommerce-subscriptions

我设置了3种订阅类型,它们是分组产品。我在WooCommerce的订单接收(谢谢)页面上显示一个表单。问题是,当某人降级/升级订阅时,他可以使用不同的订单号再次填写表格。 如果有人切换订阅计划,我会尝试使用此代码重定向到我的帐户

add_filter('woocommerce_thankyou', 'redirect_if_switch_subscription');
function redirect_if_switch_subscription( $order_id ) {
    $order = wc_get_order( $order_id );
    $url = '/my-account/';
    if ( $is_switched = order_contains_subscription($order_id) ) {
        return $url;
    }
}

1 个答案:

答案 0 :(得分:0)

您可以尝试以下操作(未经测试):

add_filter('template_redirect', 'order_received_redirect_if_switch_subscription');
function order_received_redirect_if_switch_subscription( $order_id ) {
    // Only on "Order received" page
    if( is_wc_endpoint_url('order-received') ) {
        global $wp;

        $order_id = absint( $wp->query_vars['order-received'] );
        $order    = wc_get_order($order_id);

        $subscriptions = wcs_order_contains_subscription( $order );

        if ( sizeof($subscriptions) > 0 ) {
            wp_redirect( get_permalink( get_option('woocommerce_myaccount_page_id') ) );
            exit();
        }
    }
}

代码进入您的活动子主题(或活动主题)的function.php文件中。可以。