Woocommerce在添加到购物车之前重定向到自定义页面
问题描述:
我想在将商品添加到购物车之前重定向到自定义页面,因为我想在用户真正将商品添加到购物车之前验证一些信息。Woocommerce在添加到购物车之前重定向到自定义页面
如何设置一个页面,用户在点击添加到购物车后重定向,并提供一些预购车信息,然后点击继续添加到购物车?
这是我的第一个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__, 'your handler'), 19);
注::
add_action('wp_loaded', array(__CLASS__, 'add_to_cart_action'), 20);
这样你就可以add_to_cart_action()的前执行您的处理程序add_to_cart_action()首先检查,这实在是一个附加到购物车的请求,只是返回,如果它是不是:
if (empty($_REQUEST['add-to-cart']) || ! is_numeric($_REQUEST['add-to-cart'])) {
return;
}
见add_to_cart_action()在... \ woocommerce \包括\类-WC-形式处理程序.php
您需要这样做,因为所有请求都会调用“wp_loaded”。请求重定向wp_safe_redirect()后,您需要退出以防止add_to_cart_action()在此请求上运行。在验证之后,重定向处理需要再次调用原始请求,并且指示现在已经验证了该请求。
P.S. 我同意cale_b所做的评论 - 进行验证可能较容易完成。
什么是“预购”信息?你的意思是_get_这个信息,或者_give_(你说给)。为什么不把这些字段烘焙到产品展示中并在那里请求(或提供)信息? –
我想检查Facebook,Twitter和Instagram个人资料用户给予实际有效之前,他们可以将产品添加到购物车。 –
为什么不在“添加到购物车”之前做到这一点?例如,您可以在产品展示上做到这一点,而不是等到添加到购物车。等到添加到购物车时会增加很多复杂性(下面的答案很好,但是*只是抓住了为了使其以这种方式工作所必须做的事情)的表面。以另一种方式做。也许即使你压制/隐藏“添加到购物车”按钮,除非他们的社交媒体位是有效的。 –