Preventing Empty Orders in WooCommerce: A Quick Guide

Empty orders in WooCommerce can be frustrating for both customers and businesses. By implementing simple PHP snippets, you can ensure that orders are not placed without any products. This quick guide will walk you through the steps to validate carts and delete empty orders, improving the overall user experience and order management efficiency.

1. Disabling Checkout for Empty Carts:

To prevent orders without products, use this PHP snippet to disable the checkout button if the cart is empty:

add_filter('woocommerce_is_purchasable', 'disable_checkout_on_empty_cart', 10, 2);
function disable_checkout_on_empty_cart($is_purchasable, $product) {
    if (WC()->cart->is_empty()) {
        $is_purchasable = false;
    return $is_purchasable;

2. Deleting Orders without Products:

If an order is placed without any products, it’s best to delete it automatically. Use this PHP snippet to delete orders without products:

add_action('woocommerce_new_order', 'delete_empty_orders', 10, 1);
function delete_empty_orders($order_id) {
    $order = wc_get_order($order_id);
    if (count($order->get_items()) === 0) {

By implementing these PHP snippets, you can ensure that empty orders are prevented and efficiently managed in WooCommerce. Disabling checkout for empty carts improves the user experience by prompting customers to add products before proceeding. Deleting orders without products keeps your order management streamlined and clutter-free.

Remember, validating carts and deleting empty orders are crucial steps to maintain a seamless customer journey in WooCommerce.


Leave a Reply

Your email address will not be published. Required fields are marked *