繁体   English   中英

Woocommerce在添加到购物车之前重定向到自定义页面

[英]Woocommerce redirect to custom page before adding to cart

我想在将商品添加到购物车之前重定向到自定义页面,因为我想在用户真正将商品添加到购物车之前验证一些信息。

单击“添加到购物车”并提供一些预先的购物车信息,然后单击“继续添加到购物车”时,如何设置用户重定向的页面?

这是我的第一个Woocommerce网站,所以我遇到了麻烦。 到目前为止,我在本教程中发现的是此代码。

function custom_add_to_cart_redirect() { 
    return 'http://www.yourdomain.com/your-page/'; 
}
add_filter( 'woocommerce_add_to_cart_redirect', 'custom_add_to_cart_redirect' );

但是它首先添加购物车,然后重定向到该自定义页面。 但是我想重定向而不添加到购物车。

请帮忙

add_to_cart_action()作为对“ wp_loaded”的操作被调用。

add_action( 'wp_loaded', array( __CLASS__, 'add_to_cart_action' ), 20 );

因此,您可以通过以下方式在add_to_cart_action()之前执行处理程序:

add_action( 'wp_loaded', array( __CLASS__, 'your handler' ), 19 );

注意:add_to_cart_action()首先检查这是否确实是添加到购物车请求,如果不是,则返回:

if ( empty( $_REQUEST['add-to-cart'] ) || ! is_numeric( $_REQUEST['add-to-cart'] ) ) {
    return;
}

参见... \\ woocommerce \\ includes \\ class-wc-form-handler.php中的add_to_cart_action()

您需要执行此操作,因为在所有请求上都会调用“ wp_loaded”。 请求重定向wp_safe_redirect()之后,您需要退出以防止add_to_cart_action()在此请求上运行。 验证之后,重定向处理需要再次调用原始请求,并带有指示该请求已被验证的指示。

PS:我同意cale_b的评论-进行验证可能更容易进行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM