Fatal error when no zone set
-
I’ve set up zones and am using ‘Locations not covered by your other zones’ to cover everywhere else in the world. PHP throws a fatal error when using this catch-all fall-back, as the foreach loop is trying to parse an array that doesn’t exist.
On line 1576, the foreach loop tries to parse the $delivery_zones[$zone_id][‘zone_locations’] variable. The fix I’ve come up with is to wrap this as follows:
if (!empty($delivery_zones[$zone_id]['zone_locations']) && is_array($delivery_zones[$zone_id]['zone_locations']) && count($delivery_zones[$zone_id]['zone_locations'])>0) { foreach ((array) $delivery_zones[$zone_id]['zone_locations'] as $zlocation ) { $zone_countries[] = $zlocation->code; } }This skips the foreach loop if the default fallback ‘Locations not covered by your other zones’ group is used in WooCommerce.
I hope this helps others suffering the same problem and hope this code (or similar) is added to the plugin in due course to stop such fatal errors.
The topic ‘Fatal error when no zone set’ is closed to new replies.