How do you stop two exhibitors booking the same stand?
Double bookings happen when the plan and the payment live in different places: the hall plan is a PDF, the bookings are an email thread, and two people say yes to the same stand on the same afternoon. The fix is one source of truth that locks a stand the moment someone starts paying for it.

Where the double booking actually comes from
It is rarely the organiser’s fault. A stand is “available” in the PDF you sent on Monday. On Wednesday two exhibitors reply. You confirm the first, and the second has already told their team. Nobody did anything wrong; the plan just did not know about the bookings.
The three states a stand needs
Available, held, and booked. Most tools only have the first and the last. The middle one is what prevents the race: the stand is held for the person in checkout, for a fixed window, and released if they do not finish.
Doing it in WooCommerce
WooCommerce stock will not do it on its own: its “hold stock” setting only reserves stock once an order exists, not while a product sits in a cart. So the hold has to live next to the plan. Adding a stand to the cart writes a hold with an expiry time; the plan reads holds and paid bookings alike and shows the stand as taken; checkout checks the hold again before the order is created; and from then on the stand belongs to the order until it is paid, cancelled or refunded. The payment step is the standard WooCommerce checkout, with nothing bolted on.
