Конечная точка Custom Order Received при переключении подписок

Я установил 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;
    }
}


person Vladimir Cvetkoski    schedule 25.02.2019    source источник


Ответы (1)


Вы можете попробовать следующее (не проверено):

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 вашей активной дочерней темы (или активной темы). Это может работать.

person LoicTheAztec    schedule 25.02.2019