Tie the cancellation deadline to the shopping day rather than to the class. Food for a class is bought per head and it is bought in advance, so a free cancellation twenty-four hours before is a policy that quietly asks the kitchen to fund it.
Keep a running total of vouchers in circulation. They are sold at the best time of year and redeemed at the worst, and a school that counts December takings as profit is counting an evening it still has to cook, staff and shop for.
Ask about level and dietary needs in the same step as the booking. Both change the shopping list and the pairing on the night, and both are far cheaper to know two weeks out than at seven o'clock with twelve people standing in aprons.