WooCommerce фильтр woocommerce_cart_redirect_after_error - PullRequest
0 голосов
/ 05 марта 2019

У меня отображаются отдельные продукты на странице с простым запросом и циклом.

<?php while ($wc_query->have_posts()) :
    $wc_query->the_post();?>

     <?php wc_get_template_part( 'content', 'single-product' ); ?>

<?php endwhile; ?>

Когда вы нажимаете кнопку «Добавить в корзину», продукт добавляется в корзину, и пользователь перенаправляется на один продукт.страницы, но я хочу, чтобы они вернулись на ту же страницу, на которой они нажали добавить в корзину.

Это было достаточно просто, используя

add_filter( 'woocommerce_add_to_cart_redirect', 'wp_get_referer' );

Однако пользователь также должен вводить метаданные(их название для входного билета), прежде чем добавить в корзину.Если они оставят какие-либо поля пустыми, они не пройдут проверку добавления в корзину, и в этом случае пользователь снова вернется на страницу отдельного продукта.Опять же, я хочу, чтобы они вернулись на страницу ссылки.

Этот фильтр находится в файле class-wc-ajax.php

// If there was an error adding to the cart, redirect to the product page to show any errors
        $data = array(
            'error'       => true,
            'product_url' => apply_filters( 'woocommerce_cart_redirect_after_error', get_permalink( $product_id ), $product_id ),
        );

, который, кажется, мне нужен, но когда ядобавить фильтр, он ничего не делает.Даже жесткое кодирование 'product_url' не имеет никакого эффекта, что говорит о том, что этот код не выполняется, а URL страницы перенаправления скрыт где-то еще.Но фильтр, к которому я применяю код проверки, находится в той же функции add_to_cart (), что и предыдущий фильтр.Проверка работает нормально, я просто хочу, чтобы она перенаправляла на ссылающуюся страницу при ошибке.

Этот вопрос задавался ранее при Перенаправление Woocommerce после ошибки добавления в корзину , но проблема былав конечном итоге никто не мог заставить этот фильтр работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...