I manually merged into ZC 1.36, the ProperCase customizations previously suggested in this thread (see below) and everything appears to works well. I also applied the customization to the $state string. As such it appears the propercase_input function only impacts the state string when the long form of the state is manually entered. Does not appear to have any impact when the state abbreviation is called from zone definitions. I need to take a close look at the function logic to understand why, but at any rate, this is good.
If a state abbreviation is manually entered, for example when there is no zone definitions set-up for a specific country, then I suspect the manually entered abbreviation will be converted by propercase and will then not appear in all UPPERCASE as would be the desired effect (that is the propercase_input function would convert "NY" to "Ny"). Or maybe it is improper to abbreviate state addresses in most of the world and this is not an issue? In the US abbreviation of the state address is recommended.
The ProperCase functionality could possibly be updated to include a test for the number of characters entered in the state field. If the manual state entry is short (two characters, for example) then apply strtoupper. Similar idea could apply to short company names and any single character fields (e.g. if customer supplies only first initial for first name, and the store allows a single character for this field). Or maybe the propercase function logic has already been designed to adapt to such situations?
I don't think this would be an issue for country addresses since the country input/selection process always calls the country abbreviation from the zone definitions. At least this appears to be the case. No pun intended.
$firstname = propercase_input($firstname, 1);
$lastname = propercase_input($lastname, 1);
$street_address = propercase_input($street_address, 0);
$suburb = propercase_input($suburb, 0);
$city = propercase_input($city, 0);
$state = propercase_input($state, 0);
$postcode = strtoupper ($postcode);
$company = propercase_input($company, 1);



