Как предотвратить перенаправление «woocommerce_simple_add_to_cart» на страницу корзины?

#php #wordpress #woocommerce #hook-woocommerce

#php #wordpress #woocommerce #крючок-woocommerce

Вопрос:

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

 add_filter( 'woocommerce_loop_add_to_cart_link', 'quantity_inputs_for_woocommerce_loop_add_to_cart_link', 10, 2 );  function quantity_inputs_for_woocommerce_loop_add_to_cart_link( $html, $product ) { if ( $product amp;amp; $product-gt;is_type( 'simple' ) amp;amp; $product-gt;is_purchasable() amp;amp; $product-gt;is_in_stock() amp;amp; ! $product-gt;is_sold_individually() ) { $html = 'lt;form action="' . esc_url( $product-gt;add_to_cart_url() ) . '" class="cart" method="post" enctype="multipart/form-data"gt;'; $html .= woocommerce_quantity_input( array(), $product, false ); $html .= 'lt;button type="submit" class="button alt product_type_simple add_to_cart_button ajax_add_to_cart"gt;' . esc_html( $product-gt;add_to_cart_text() ) . 'lt;/buttongt;'; $html .= 'lt;/formgt;'; } return $html;  

}

Каким-то образом этот код перенаправляет, поэтому я подумал, почему бы не использовать крюк, поэтому я попробовал это:

 add_filter( 'woocommerce_loop_add_to_cart_link', 'quantity_inputs_for_woocommerce_loop_add_to_cart_link', 10, 2 );  function quantity_inputs_for_woocommerce_loop_add_to_cart_link( $html, $product ){  do_action('woocommerce_simple_add_to_cart');  }  

Но оба не работают, он перенаправляет на страницу корзины. При нажатии на кнопку «Добавить в корзину» товары должны быть добавлены в корзину, а страница должна быть такой, какая она есть, не должна перенаправляться или обновляться.

Заранее спасибо.

Ответ №1:

Вы отключили «Перенаправление корзины» в настройках WooCommerce?

WooCommerce gt; Настройки gt;gt; Вкладка «Товары»

введите описание изображения здесь

Шаг № 2

Ну, в случае, если это не помогло, попробуйте использовать wp_get_referer :

 add_filter( 'woocommerce_add_to_cart_redirect', 'wp_get_referer' );  

В случае, если вам нужно пользовательское перенаправление, вы можете найти фильтр ниже:

 add_filter( 'woocommerce_add_to_cart_redirect', 'custom_redirect_function' );  function custom_redirect_function() {  return get_permalink( wc_get_page_id( 'shop' ) ); }  

Комментарии:

1. Эй, Мора, это не работает, я уже пробовал это.

2. Эй, @tejal, пожалуйста, проверьте обновление

3. К сожалению, и то, и другое не работает.

4. Правильно ли я понял, что вы вставляете код в functions.php досье?

5. Да, я скопировал, вставил точный код в function.php