@Manus
I had no idea that you could use Github in that way, to get access to features from the forthcoming version etc. Github seems to be incredibly complicated to understand, or maybe I'm just being thick! Whatever, that is massively useful - thank you very much indeed for passing that snippet along. I've replaced my classes/shipping/class-wc-local-delivery.php with the modified file, and hey presto, it works!
But (isn't there always a 'but'?)... The trouble is, it does somewhat confuse the issue when in use.
PROBLEM 1: I'm using that feature to offer 'local delivery' to ALL of the UK mainland, except the postcode areas which carry the surcharge UK couriers apply for remote locations. For example, one such location is all postcodes within the HS1-HS9 range. In other words, if you live in postcode HS10 you don't carry a surcharge, but if you live in HS9 you do.
So, because I don't have an 'else' operator, I have to input all the variations of H other than what I want to charge the premium for, which would be
HA*, HB*, HC*, ... HZ* but not HS
and then also add
HS11*, HS12*, HS13*, ... HS19*,
HS21*, HS22*, HS23*, ... HS29*,
plus all the other numbers, from HS31 to HS 91.
My suggestion then is to have the option to choose either:
'Postcodes that INCLUDE the codes in the box', or
'Postcodes that EXCLUDE the codes in the box'.
This would permit me to simply enter the codes that I want to charge a premium for, rather than having to list all possible permutations that I DON'T want to charge a premium for.
PROBLEM 2: Since we can 'order' shipping options using drag and drop on the Shipping Options page, why can't we have it 'hide' all options following the first one that's available? For example, I've 'ordered' my list as Free Shipping, Local Delivery, Flat Rate, International Delivery. On entering country and/or postcode, the script should check and see that Free Delivery isn't available and not show it (which it does perfectly already), then check Local Delivery and find that that is available, and then simply stop - why show Flat Rate as well?