I spent a good hour or two on filling out the proper code to auto fill the state based on what the zip code shows. It took me a while so I thought I might share it. I use Adobe ExtendScript Toolkit. Hit Ctrl+F a do a find&replace. zip1 should be changed to your zip code field. Mine is billing_adress_postalcode_c so I'm going to fill out find, with zip1, and replace with billing_adress_postalcode_c(note that $bean-> is already in the code). Then I'm going to hit replace all(yes I know that address is spelled wrong.) Then, state1, is where you put your state section. Mine is a drop down list, where the value is the state, written out, and the shown value is the abbreviation. IE Washington=WA. Since the value is the state, that's what state1 needs to equal. Now the state field is billing_state_c so i Ctrl+F, find state1 and replace with $bean->billing_state_c. change the class names, and write your logic_hooks.php and then you're done!

PHP Code:
<?php

class ziphook {
    
        function 
convertToProper (&$bean$event$arguments)
        {
            if (
$bean->zip1 >= 35000 && $bean->zip1 <= 36999) {
                
$bean->state1 "Alabama";
                }
            elseif (
$bean->zip1 >= 99500 && $bean->zip1 <= 99999) {
                
$bean->state1 "Alaska";
                }
            elseif (
$bean->zip1 >= 85000 && $bean->zip1 <= 86999) {
                
$bean->state1 "Arizona";
                }
            elseif (
$bean->zip1 >= 71600 && $bean->zip1 <= 72999) {
                
$bean->state1 "Arkansas";
                }
            elseif (
$bean->zip1 >= 90000 && $bean->zip1 <= 96699) {
                
$bean->state1 "California";
                }
            elseif (
$bean->zip1 >= 80000 && $bean->zip1 <= 81999) {
                
$bean->state1 "Colorado";
                }
            elseif (
$bean->zip1 >= 06000 && $bean->zip1 <= 06999) {
                
$bean->state1 "Connecticut";
                }
            elseif (
$bean->zip1 >= 19700 && $bean->zip1 <= 19999) {
                
$bean->state1 "Deleware";
                }
            elseif (
$bean->zip1 >= 32000 && $bean->zip1 <= 19999) {
                
$bean->state1 "Florida";
                }
            elseif (
$bean->zip1 >= 30000 && $bean->zip1 <= 31999) {
                
$bean->state1 "Georgia";
                }
            elseif (
$bean->zip1 >= 96700 && $bean->zip1 <= 96999) {
                
$bean->state1 "Hawaii";
                }
            elseif (
$bean->zip1 >= 83200 && $bean->zip1 <= 83999) {
                
$bean->state1 "Idaho";
                }
            elseif (
$bean->zip1 >= 60000 && $bean->zip1 <= 62999) {
                
$bean->state1 "Illinois";
                }
            elseif (
$bean->zip1 >= 46000 && $bean->zip1 <= 47999) {
                
$bean->state1 "Indiana";
                }
            elseif (
$bean->zip1 >= 50000 && $bean->zip1 <= 52999) {
                
$bean->state1 "Iowa";
                }
            elseif (
$bean->zip1 >= 66000 && $bean->zip1 <= 67999) {
                
$bean->state1 "Kansas";
                }
            elseif (
$bean->zip1 >= 40000 && $bean->zip1 <= 42999) {
                
$bean->state1 "Kentucky";
                }
            elseif (
$bean->zip1 >= 70000 && $bean->zip1 <= 71599) {
                
$bean->state1 "Louisiana";
                }
            elseif (
$bean->zip1 >= 03900 && $bean->zip1 <= 04999) {
                
$bean->state1 "Maine";
                }
            elseif (
$bean->zip1 >= 20600 && $bean->zip1 <= 21999) {
                
$bean->state1 "Maryland";
                }
            elseif (
$bean->zip1 >= 01000 && $bean->zip1 <= 02799) {
                
$bean->state1 "Massachusetts";
                }
            elseif (
$bean->zip1 >= 48000 && $bean->zip1 <= 49999) {
                
$bean->state1 "Michigan";
                }
            elseif (
$bean->zip1 >= 55000 && $bean->zip1 <= 56999) {
                
$bean->state1 "Minnesota";
                }
            elseif (
$bean->zip1 >= 38600 && $bean->zip1 <= 39999) {
                
$bean->state1 "Mississippi";
                }
            elseif (
$bean->zip1 >= 63000 && $bean->zip1 <= 65999) {
                
$bean->state1 "Missouri";
                }
            elseif (
$bean->zip1 >= 59000 && $bean->zip1 <= 59999) {
                
$bean->state1 "Montana";
                }
            elseif (
$bean->zip1 >= 27000 && $bean->zip1 <= 28999) {
                
$bean->state1 "North Carolina";
                }
            elseif (
$bean->zip1 >= 58000 && $bean->zip1 <= 58999) {
                
$bean->state1 "North Dakota";
                }
            elseif (
$bean->zip1 >= 68000 && $bean->zip1 <= 69999) {
                
$bean->state1 "Nebraska";
                }
            elseif (
$bean->zip1 >= 88900 && $bean->zip1 <= 89999) {
                
$bean->state1 "Nevada";
                }
            elseif (
$bean->zip1 >= 03000 && $bean->zip1 <= 03899) {
                
$bean->state1 "New Hampshire";
                }
            elseif (
$bean->zip1 >= 07000 && $bean->zip1 <= 08999) {
                
$bean->state1 "New Jersey";
                }
            elseif (
$bean->zip1 >= 87000 && $bean->zip1 <= 88899) {
                
$bean->state1 "New Mexico";
                }
            elseif (
$bean->zip1 >= 10000 && $bean->zip1 <= 14999) {
                
$bean->state1 "New York";
                }
            elseif (
$bean->zip1 >= 43000 && $bean->zip1 <= 45999) {
                
$bean->state1 "Ohio";
                }
            elseif (
$bean->zip1 >= 73000 && $bean->zip1 <= 74999) {
                
$bean->state1 "Oklahoma";
                }
            elseif (
$bean->zip1 >= 97000 && $bean->zip1 <= 97999) {
                
$bean->state1 "Oregon";
                }
            elseif (
$bean->zip1 >= 15000 && $bean->zip1 <= 19699) {
                
$bean->state1 "Pennsylvania";
                }
            elseif (
$bean->zip1 >= 00000 && $bean->zip1 <= 00009) {
                
$bean->state1 "Puerto Rico";
                }
            elseif (
$bean->zip1 >= 02800 && $bean->zip1 <= 02999) {
                
$bean->state1 "Rhode Island";
                }
            elseif (
$bean->zip1 >= 29000 && $bean->zip1 <= 29999) {
                
$bean->state1 "South Carolina";
                }
            elseif (
$bean->zip1 >= 57000 && $bean->zip1 <= 57999) {
                
$bean->state1 "South Dakota";
                }
            elseif (
$bean->zip1 >= 37000 && $bean->zip1 <= 38599) {
                
$bean->state1 "Tennessee";
                }
            elseif (
$bean->zip1 >= 75000 && $bean->zip1 <= 75999) {
                
$bean->state1 "Texas";
                }
            elseif (
$bean->zip1 >= 84000 && $bean->zip1 <= 84999) {
                
$bean->state1 "Utah";
                }
            elseif (
$bean->zip1 >= 05000 && $bean->zip1 <= 05999) {
                
$bean->state1 "Vermont";
                }
            elseif (
$bean->zip1 >= 00000 && $bean->zip1 <= 00009) {
                
$bean->state1 "Virgin Islands";
                }
            elseif (
$bean->zip1 >= 22000 && $bean->zip1 <= 24699) {
                
$bean->state1 "Virgina";
                }
            elseif (
$bean->zip1 >= 20000 && $bean->zip1 <= 20599) {
                
$bean->state1 "Washington DC";
                }
            elseif (
$bean->zip1 >= 98000 && $bean->zip1 <= 99499) {
                
$bean->state1 "Washington";
                }
            elseif (
$bean->zip1 >= 24700 && $bean->zip1 <= 26999) {
                
$bean->state1 "West Virginia";
                }
            elseif (
$bean->zip1 >= 53000 && $bean->zip1 <= 54999) {
                
$bean->state1 "Wisconsin";
                }
            elseif (
$bean->zip1 >= 82000 && $bean->zip1 <= 83199) {
                
$bean->state1 "Wyoming";
                }
            }
        }
?>