如果购物车不为空,则Wocommerce登录重定向

时间:2017-09-07 13:41:33

标签: php wordpress woocommerce cart

如果购物车不为空,我想在用户登录后将用户重定向到购物车页面。我正在尝试这个

function woocommerce_custom_redirects() {


    if(!WC()->cart->is_empty() )
    wp_redirect( "https://edkasa.com/checkout" );
}
add_action('wp_login', 'woocommerce_custom_redirects');

但这不起作用,我正在使用buddypress插件,任何想法我哪里出错了。提前谢谢。

4 个答案:

答案 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文件中,或者放在任何插件文件中。