Search code examples
phpwordpresshttp-redirectwoocommercecart

Custom redirections to make the cart page inaccessible in WooCommerce


I would like the WooCommerce cart page to be inaccessible.

  • If a user is trying to reach the cart page when the cart is empty, redirect to the homepage.

  • If a user is trying to reach the cart page when the cart is not empty, redirect to checkout.

Is that possible?


Solution

  • Use this very simple code, so when customer try to reach cart page it is redirected to:

    • home page when cart is empty
    • checkout page if cart is not empty

    The code snippet:

    add_action('template_redirect', 'custom_cart_redirections');
    function custom_cart_redirections() {
        if ( is_cart() ) {
            if ( WC()->cart->is_empty() ) {
                wp_redirect( home_url('/') );
                exit();
            } else {
                wp_redirect( wc_get_checkout_url() );
                exit();
            }
        }
    }
    

    Code goes in functions.php file of the active child theme (or active theme). Tested and works.