if cart is empty, the cart page will redirect to shop page in woocommerce?

Lipsa picture Lipsa · Jun 19, 2014 · Viewed 20.8k times · Source

I am working on wordpress woocommerce

I want to redirect the cart page to shop page when the cart page is empty otherwise shows the cart page. Can anyone have the solution ?

Here is the code I have tried, but it does not work

function my_empty_cart() {
  global $woocommerce;

    if (isset( $_GET['empty-cart'] ) ) { 
        wp_safe_redirect( get_permalink( woocommerce_get_page_id( 'product' ) ) );
    }
}
add_action( 'init', 'my_empty_cart' );

Answer

Pushpak Patel picture Pushpak Patel · Jun 19, 2014

// old woocommerce : use sizeof( $woocommerce->cart->cart_contents) to check cart content count

// In new woocommerce 2.1+ : WC()->cart->cart_contents_count to check cart content count

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' ) ) );
    }
}

init hook will run everytime. use template_redirect

==============Updates=============

In new woocommerce, they have updated the functionality and now you can use following function to directly get the cart content count.

WC()->cart->cart_contents_count