如果购物车不为空,我想在用户登录后将用户重定向到购物车页面。我正在尝试这个
function woocommerce_custom_redirects() {
if(!WC()->cart->is_empty() )
wp_redirect( "https://edkasa.com/checkout" );
}
add_action('wp_login', 'woocommerce_custom_redirects');
但这不起作用,我正在使用buddypress插件,任何想法我哪里出错了。提前谢谢。
答案 0 :(得分:1)
使用wp_redirect()
功能,建议通过显式调用exit
来跟进。有关详细信息,请参阅Documentation。
您可以尝试将其添加到您的代码中......例如:
function woocommerce_custom_redirects() {
ob_start(); // COULD BE A GOOD IDEA
if ( WC()->cart->get_cart_contents_count() !== 0 || !WC()->cart->is_empty() ) {
wp_redirect( "https://edkasa.com/checkout" );
exit; // VERY VITAL HERE TO EXPLICITLY CALL exit...
}
}
add_action('wp_login', 'woocommerce_custom_redirects');
答案 1 :(得分:1)
我正在寻找并且找不到任何地方,因为我可以将空的woocommerce购物车重定向到首页。我只找到进入商店的重定向。
这是我找到的,但是我不需要重定向到家:
add_action("template_redirect", 'redirection_function');
function redirection_function(){
global $woocommerce;
if( is_cart() && WC()->cart->cart_contents_count == 0){
wp_safe_redirect( get_permalink( woocommerce_get_page_id( 'shop' ) ) );
}
}
谢谢
答案 2 :(得分:0)
刚删除了之前回答的静态链接。
function woocommerce_custom_redirects() {
ob_start(); // COULD BE A GOOD IDEA
if ( WC()->cart->get_cart_contents_count() !== 0 || !WC()->cart->is_empty() ) {
global $woocommerce;
$checkout_url = $woocommerce->cart->get_checkout_url();
wp_redirect($checkout_url);
exit; // VERY VITAL HERE TO EXPLICITLY CALL exit...
}
}
add_action('wp_login', 'woocommerce_custom_redirects');
答案 3 :(得分:0)
你应该以这种方式尝试WooCommerce专用过滤器钩子 woocommerce_login_redirect
:
add_filter('woocommerce_login_redirect', 'wc_custom_login_redirect', 10, 1 );
function wc_custom_login_redirect( $redirect_to ) {
if( ! WC()->cart->is_empty() )
$redirect_to = wc_get_checkout_url();
return $redirect_to;
}
代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。