mikegarde/country-codes

ISO 3166-1 Country Codes


Keywords
autocorrect, cms, countries, country-codes, oms
License
GPL-3.0-only

Documentation

Packagist Packagist GitHub GitHub code size in bytes Libraries.io dependency status for GitHub repo codecov

Country Codes & US States

ISO 3166-1, 3166-2-US

Install

Find on Packagist, and install using Composer.

composer require mikegarde/country-codes

Use

Country Codes

include 'vendor/autoload.php';

use Countries\Countries;

$countries = new Countries();
$result    = $countries->getCountry('US');
$result    = $countries->getCountry('USA');
$result    = $countries->getCountry('UnitedStates');
$result    = $countries->getCountry('United States');
$result    = $countries->getCountry('United States of America');

/*
$result = [
    'name'    => 'United States',
    'iso2'    => 'US',
    'iso3'    => 'USA',
    'isoNum'  => '840',
    'fips'    => 'US',
    'capital' => 'Washington',
    'isEU'    => 0,
    'isUK'    => 0,
    'isUS'    => 0,
];
*/

For your UI

$countries = new Countries();
$results   = $countries->getAllCountries();

return json_encode($results);

US Territory

$countries = new Countries(true);
if ($countries->isUSTerritory('PR'))
{
    echo 'Yep, a US Territory';
}

Do something for Canada

if ($countries->validate('CA', $order['consignee']['countryCode']))
{
    echo 'Blame Canada';
}

US States

Do something different when shipping outside the lower 48

$stateTest = new US();

if ($stateTest->isCONUS($order['consignee']['state']))
{
    echo 'You can select USPS, UPS, or DHL';
}
else // OCONUS
{
   echo 'USPS is your only option for shipping to AK, HI, APO, or an FPO address';
}

Local Development Notes

The numeric value after the command represents the PHP version

task build-8.3
task setup-8.3
task test-8.3

Alternatively you can run task test-all to build, setup, and test against all supported PHP versions.