Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
woocommerce
/
src
/
StoreApi
/
Utilities
:
ValidationUtils.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace Automattic\WooCommerce\StoreApi\Utilities; /** * ValidationUtils class. * Helper class which validates and update customer info. */ class ValidationUtils { /** * Get list of states for a country. * * @param string $country Country code. * @return array Array of state names indexed by state keys. */ public function get_states_for_country( $country ) { return $country ? array_filter( (array) \wc()->countries->get_states( $country ) ) : []; } /** * Validate provided state against a countries list of defined states. * * If there are no defined states for a country, any given state is valid. * * @param string $state State name or code (sanitized). * @param string $country Country code. * @return boolean Valid or not valid. */ public function validate_state( $state, $country ) { $states = $this->get_states_for_country( $country ); if ( count( $states ) && ! in_array( \wc_strtoupper( $state ), array_map( '\wc_strtoupper', array_keys( $states ) ), true ) ) { return false; } return true; } /** * Format a state based on the country. If country has defined states, will return a valid upper case state code. * * @param string $state State name or code (sanitized). * @param string $country Country code. * @return string */ public function format_state( $state, $country ) { $states = $this->get_states_for_country( $country ); if ( count( $states ) ) { $state = \wc_strtoupper( $state ); $state_values = array_map( '\wc_strtoupper', array_flip( array_map( '\wc_strtoupper', $states ) ) ); if ( isset( $state_values[ $state ] ) ) { // Convert to state code if a state name was provided. return $state_values[ $state ]; } } return $state; } }