#woocommerce #hook-woocommerce
#woocommerce #переадресация-woocommerce
Вопрос:
Я пытаюсь использовать woocommerce_add_to_cart_redirect
для перенаправления пользователя на страницу продукта и добавления пользовательских данных запроса.
function my_custom_add_to_cart_redirect( $url ) {
$currentProductUrl = "";
$redirectUrl = esc_url( add_query_arg('cart', true, $currentProductUrl ));
return $redirectUrl;
}
add_filter( 'woocommerce_add_to_cart_redirect', __NAMESPACE__ .'\my_custom_add_to_cart_redirect' );
Как мне получить $currentProductUrl
??
Ответ №1:
В woocommerce_add_to_cart_redirect
переадресации есть дополнительный аргумент только для обычного добавления в корзину (не для добавления в корзину Ajax), который является экземпляром объекта WC_Product .
Таким образом, вы можете получить постоянную ссылку на товар и добавить к ней свои аргументы запроса только при однократном добавлении в корзину.
add_filter( 'woocommerce_add_to_cart_redirect', 'my_custom_add_to_cart_redirect', 10, 2 );
function my_custom_add_to_cart_redirect( $url, $product ) {
if ( $product amp;amp; is_a( $product, 'WC_Product' ) ) {
$url = esc_url( add_query_arg('cart', true, $product->get_permalink() ) );
}
return $url;
}
Для Ajax add to cart этот аргумент равен null (см. Это Здесь ).