Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/pod.git

Accepts full province or state names

AuthorDave Jarvis <email>
Date2026-01-18 21:02:58 GMT-0800
Commit56c00c500b541c08c6bf67df3761b946c0950c5c
Parent41603d8
Address.php
private $fields = [];
private $missing = [];
- private const KEEP = false;
+ private const NOOP = false;
private const UPPER = true;
+
+ private const REGION_MAP = [
+ 'ALBERTA' => 'AB',
+ 'BRITISHCOLUMBIA' => 'BC',
+ 'MANITOBA' => 'MB',
+ 'NEWBRUNSWICK' => 'NB',
+ 'NEWFOUNDLAND' => 'NL',
+ 'NEWFOUNDLANDANDLABRADOR' => 'NL',
+ 'NORTHWESTTERRITORIES' => 'NT',
+ 'NOVASCOTIA' => 'NS',
+ 'NUNAVUT' => 'NU',
+ 'ONTARIO' => 'ON',
+ 'PRINCEEDWARDISLAND' => 'PE',
+ 'PEI' => 'PE',
+ 'QUEBEC' => 'QC',
+ 'QB' => 'QC',
+ 'SASKATCHEWAN' => 'SK',
+ 'YUKON' => 'YT',
+ 'ALABAMA' => 'AL',
+ 'ALASKA' => 'AK',
+ 'ARIZONA' => 'AZ',
+ 'ARKANSAS' => 'AR',
+ 'CALIFORNIA' => 'CA',
+ 'COLORADO' => 'CO',
+ 'CONNECTICUT' => 'CT',
+ 'DELAWARE' => 'DE',
+ 'FLORIDA' => 'FL',
+ 'GEORGIA' => 'GA',
+ 'HAWAII' => 'HI',
+ 'IDAHO' => 'ID',
+ 'ILLINOIS' => 'IL',
+ 'INDIANA' => 'IN',
+ 'IOWA' => 'IA',
+ 'KANSAS' => 'KS',
+ 'KENTUCKY' => 'KY',
+ 'LOUISIANA' => 'LA',
+ 'MAINE' => 'ME',
+ 'MARYLAND' => 'MD',
+ 'MASSACHUSETTS' => 'MA',
+ 'MICHIGAN' => 'MI',
+ 'MINNESOTA' => 'MN',
+ 'MISSISSIPPI' => 'MS',
+ 'MISSOURI' => 'MO',
+ 'MONTANA' => 'MT',
+ 'NEBRASKA' => 'NE',
+ 'NEVADA' => 'NV',
+ 'NEWHAMPSHIRE' => 'NH',
+ 'NEWJERSEY' => 'NJ',
+ 'NEWMEXICO' => 'NM',
+ 'NEWYORK' => 'NY',
+ 'NORTHCAROLINA' => 'NC',
+ 'NORTHDAKOTA' => 'ND',
+ 'OHIO' => 'OH',
+ 'OKLAHOMA' => 'OK',
+ 'OREGON' => 'OR',
+ 'PENNSYLVANIA' => 'PA',
+ 'RHODEISLAND' => 'RI',
+ 'SOUTHCAROLINA' => 'SC',
+ 'SOUTHDAKOTA' => 'SD',
+ 'TENNESSEE' => 'TN',
+ 'TEXAS' => 'TX',
+ 'UTAH' => 'UT',
+ 'VERMONT' => 'VT',
+ 'VIRGINIA' => 'VA',
+ 'WASHINGTON' => 'WA',
+ 'WESTVIRGINIA' => 'WV',
+ 'WISCONSIN' => 'WI',
+ 'WYOMING' => 'WY',
+ 'DISTRICTOFCOLUMBIA' => 'DC'
+ ];
public function __construct( array $input ) {
$rules = [
- 'name' => [ 100, self::KEEP ],
+ 'name' => [ 100, self::NOOP ],
'street1' => [ 100, self::UPPER ],
'street2' => [ 100, self::UPPER ],
'city' => [ 50, self::UPPER ],
'state' => [ 50, self::UPPER ],
'postcode' => [ 20, self::UPPER ],
'country' => [ 2, self::UPPER ],
- 'phone' => [ 20, self::KEEP ],
- 'email' => [ 254, self::KEEP ],
- 'gifted' => [ 100, self::KEEP ]
+ 'phone' => [ 20, self::NOOP ],
+ 'email' => [ 254, self::NOOP ],
+ 'gifted' => [ 100, self::NOOP ]
];
$clean = [];
foreach( $rules as $field => $config ) {
$value = mb_substr( trim( $this->fields[ $field ] ?? '' ), 0,
$config[ 0 ], 'UTF-8' );
$transform = [
- self::KEEP => $value,
+ self::NOOP => $value,
self::UPPER => mb_strtoupper( $value, 'UTF-8' )
];
- $clean[ $field ] = $transform[ $config[ 1 ] ];
+ $finalValue = $transform[ $config[ 1 ] ];
+
+ if ( $field === 'state' ) {
+ $lookup = str_replace( ' ', '', $finalValue );
+ $finalValue = self::REGION_MAP[ $lookup ] ?? $finalValue;
+ }
+
+ $clean[ $field ] = $finalValue;
}
$this->fields = $clean;
payment.png
Binary files differ
shipping.png
Binary files differ
summary.png
Binary files differ
Delta84 lines added, 7 lines removed, 77-line increase