Woocommerce:重定向挂钩被错误否决
Woocommerce: redirect hook overruled by error
在 Wordpress/Woocommerce 中单击订单按钮时,我希望它跳过购物篮并立即去结账。为此,我实现了以下钩子:
add_filter('add_to_cart_redirect', 'cw_redirect_add_to_cart');
function cw_redirect_add_to_cart() {
global $woocommerce;
$cw_redirect_url_checkout = $woocommerce->cart->get_checkout_url();
return $cw_redirect_url_checkout;
}
这行得通。但是,在用户已经将产品放入购物车并点击订购按钮的情况下,这通常会产生错误消息“您无法将其他产品名称添加到您的购物车”,该错误消息将显示在购物车页面上。但是对于代码片段,在这种情况下,它只是刷新了用户单击订购按钮的页面,没有任何反应。用户将不明白为什么按钮不起作用(只有当他们手动输入购物篮 url 时,他们才会看到错误消息)。
在这种情况下,我如何仍然可以重定向到结帐页面?
您正在使用的挂钩 add_to_cart_redirect
已从 3.0.0 版弃用 因为 get_checkout_url
方法 已从 2.5 版弃用.
更新后的函数可以在这里找到:Woocommerce add to cart button redirect to checkout
您的问题与 woocommerce_add_to_cart_redirect
挂钩有关,以防出现任何错误通知。您将在下面找到从 WooCommerce source code:
中提取的部分代码
// If we added the product to the cart we can now optionally do a redirect.
if ( $was_added_to_cart && 0 === wc_notice_count( 'error' ) ) {
$url = apply_filters( 'woocommerce_add_to_cart_redirect', $url, $adding_to_cart );
if ( $url ) {
wp_safe_redirect( $url );
exit;
} elseif ( 'yes' === get_option( 'woocommerce_cart_redirect_after_add' ) ) {
wp_safe_redirect( wc_get_cart_url() );
exit;
}
}
因此,要解决此问题,您可以找到解决方案 here。
post 包括 针对“单独销售”的修复回答您问题的产品部分。
在 Wordpress/Woocommerce 中单击订单按钮时,我希望它跳过购物篮并立即去结账。为此,我实现了以下钩子:
add_filter('add_to_cart_redirect', 'cw_redirect_add_to_cart');
function cw_redirect_add_to_cart() {
global $woocommerce;
$cw_redirect_url_checkout = $woocommerce->cart->get_checkout_url();
return $cw_redirect_url_checkout;
}
这行得通。但是,在用户已经将产品放入购物车并点击订购按钮的情况下,这通常会产生错误消息“您无法将其他产品名称添加到您的购物车”,该错误消息将显示在购物车页面上。但是对于代码片段,在这种情况下,它只是刷新了用户单击订购按钮的页面,没有任何反应。用户将不明白为什么按钮不起作用(只有当他们手动输入购物篮 url 时,他们才会看到错误消息)。
在这种情况下,我如何仍然可以重定向到结帐页面?
您正在使用的挂钩 add_to_cart_redirect
已从 3.0.0 版弃用 因为 get_checkout_url
方法 已从 2.5 版弃用.
更新后的函数可以在这里找到:Woocommerce add to cart button redirect to checkout
您的问题与 woocommerce_add_to_cart_redirect
挂钩有关,以防出现任何错误通知。您将在下面找到从 WooCommerce source code:
// If we added the product to the cart we can now optionally do a redirect.
if ( $was_added_to_cart && 0 === wc_notice_count( 'error' ) ) {
$url = apply_filters( 'woocommerce_add_to_cart_redirect', $url, $adding_to_cart );
if ( $url ) {
wp_safe_redirect( $url );
exit;
} elseif ( 'yes' === get_option( 'woocommerce_cart_redirect_after_add' ) ) {
wp_safe_redirect( wc_get_cart_url() );
exit;
}
}
因此,要解决此问题,您可以找到解决方案 here。
post 包括 针对“单独销售”的修复回答您问题的产品部分。