У меня отображаются отдельные продукты на странице с простым запросом и циклом.
<?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 после ошибки добавления в корзину , но проблема былав конечном итоге никто не мог заставить этот фильтр работать.