Snippet for US state abbreviations & Washington, DC

This topic contains 5 replies, has 3 voices, and was last updated by  Naveen Giri 4 years ago.

We have moved to a support ticketing system and our forums are now closed.

Open Support Ticket
  • Author
    Posts
  • #535741

    Foster
    Full Member
    Post count: 164

    Hello, I have implemented the Snippet below to change US state names to their abbreviations. There seems to be an issue with Washington, District of Columbia. Maybe you can help. Everything seems to be working properly with the states, but I noticed Washington, District of Columbia (DC) is displaying as “WA, DC” instead of “Washington, DC” as it should.

    Since the US also has a state named Washington, I can see why that might be happening but is there something in the Snippet below that can limit the output to Region (state) only? In this case it seems to be replacing the city name as well as the state when it should only be replacing the state.

    add_filter('geodir_custom_field_output_address','_my_short_state_geodir_cf_address',11,3);
    
    function _my_short_state_geodir_cf_address($html,$location,$cf){
    
    	// we add the >NAME< so we only replace the regions and not the region name in a street address.
    	$state_long = array(
    		">Alabama<",
    		">Alaska<",
    	        ">Arizona<",
    		">Arkansas<",
    		">California<",
    		">Colorado<",
    		">Connecticut<",
    		">Delaware<",
    		">District of Columbia<",
    		">Florida<",
    		">Georgia<",
    		">Hawaii<",
    		">Idaho<",
    		">Illinois<",
    		">Indiana<",
    	        ">Iowa<",
    		">Kansas<",
    		">Kentucky<",
    		">Louisiana<",
    		">Maine<",
    		">Maryland<",
    		">Massachusetts<",
    		">Michigan<",
    		">Mississippi<",
    		">Missouri<",
    		">Montana<",
    		">Nebraska<",
    		">Nevada<",
    		">New Hampshire<",
    		">New Jersey<",
    		">New Mexico<",
    		">New York<",
    		">North Carolina<",
    		">North Dakota<",
    		">Ohio<",
    		">Oklahoma<",
    		">Oregon<",
    		">Pennsylvania<",
    		">Rhode Island<",
    		">South Carolina<",
    	  	">Tennessee<",
    	  	">Texas<",
    	  	">Utah<",
    	  	">Vermont<",
    	  	">Virginia<",
    	  	">Washington<",
    	  	">West Virginia<",
    	  	">Wisconsin<",
    	  	">Wyoming<",
    	);
    	// we add the >NAME< so we only replace the regions and not the region name in a street address.
    	$state_short = array(
    		">AL<",
    		">AK<",
    		">AZ<",
    		">AR<",
    		">CA<",
    		">CO<",
    		">CT<",
    		">DE<",
    		">DC<",
    		">FL<",
    		">GA<",
    		">HI<",
    		">ID<",
    		">IL<",
    		">IN<",
    		">IA<",
    		">KS<",
    		">KY<",
    		">LA<",
    		">MN<",
    		">MD<",
    		">MA<",
    	        ">MI<",
    		">MS<",
    		">MO<",
    		">MT<",
    		">NE<",
    		">NV<",
    		">NH<",
    		">NJ<",
    		">NM<",
    		">NY<",
    		">NC<",
    		">ND<",
    		">OH<",
    		">OK<",
    		">OR<",
    		">PA<",
    		">RI<",
    		">SC<",
    		">TN<",
    		">TX<",
    		">UT<",
    		">VT<",
    		">VA<",
    		">WA<",
    		">WV<",
    		">WI<",
    		">WY<",
    	);
    
    	$html = str_replace($state_long,$state_short,$html);
    
    	return $html;
    }

    This snippet based on #post-372993

    #535759

    Kor
    Moderator
    Post count: 16516

    Hi Foster,

    Thanks for your post. I will forward this to a developer for further assistance. In the meantime, please share both WP and FTP access here in private reply for them to investigate.

    #536841

    Naveen Giri
    Moderator
    Post count: 1559

    Hi Foster,

    could you please share the site details in the private reply.

    Thanks

    #536877

    Foster
    Full Member
    Post count: 164
    This reply has been marked as private.
    #537033

    Naveen Giri
    Moderator
    Post count: 1559

    Hi Foster,

    I have changed the snippet a bit to allow it only for states.

    
    add_filter('geodir_custom_field_output_address','_my_short_state_geodir_cf_address',11,3);
    
    function _my_short_state_geodir_cf_address($html,$location,$cf){
    	// we add the >NAME< so we only replace the regions and not the region name in a street address.
    	$state_long = array(
    		'addressRegion">Alabama<',
    		'addressRegion">Alaska<',
    		'addressRegion">Philadelphia<',
    	    'addressRegion">Arizona<',
    		'addressRegion">Arkansas<',
    		'addressRegion">California<',
    		'addressRegion">Colorado<',
    		'addressRegion">Connecticut<',
    		'addressRegion">Delaware<',
    		'addressRegion">District of Columbia<',
    		'addressRegion">Florida<',
    		'addressRegion">Georgia<',
    		'addressRegion">Hawaii<',
    		'addressRegion">Idaho<',
    		'addressRegion">Illinois<',
    		'addressRegion">Indiana<',
    	    'addressRegion">Iowa<',
    		'addressRegion">Kansas<',
    		'addressRegion">Kentucky<',
    		'addressRegion">Louisiana<',
    		'addressRegion">Maine<',
    		'addressRegion">Maryland<',
    		'addressRegion">Massachusetts<',
    		'addressRegion">Michigan<',
    		'addressRegion">Mississippi<',
    		'addressRegion">Missouri<',
    		'addressRegion">Montana<',
    		'addressRegion">Nebraska<',
    		'addressRegion">Nevada<',
    		'addressRegion">New Hampshire<',
    		'addressRegion">New Jersey<',
    		'addressRegion">New Mexico<',
    		'addressRegion">New York<',
    		'addressRegion">North Carolina<',
    		'addressRegion">North Dakota<',
    		'addressRegion">Ohio<',
    		'addressRegion">Oklahoma<',
    		'addressRegion">Oregon<',
    		'addressRegion">Pennsylvania<',
    		'addressRegion">Rhode Island<',
    		'addressRegion">South Carolina<',
    	  	'addressRegion">Tennessee<',
    	  	'addressRegion">Texas<',
    	  	'addressRegion">Utah<',
    	  	'addressRegion">Vermont<',
    	  	'addressRegion">Virginia<',
    	  	'addressRegion">Washington<',
    	  	'addressRegion">West Virginia<',
    	  	'addressRegion">Wisconsin<',
    	  	'addressRegion">Wyoming<',
    	);
    	// we add the >NAME< so we only replace the regions and not the region name in a street address.
    	$state_short = array(
    		'addressRegion">AL<',
    		'addressRegion">AK<',
    		'addressRegion">pd<',
    		'addressRegion">AZ<',
    		'addressRegion">AR<',
    		'addressRegion">CA<',
    		'addressRegion">CO<',
    		'addressRegion">CT<',
    		'addressRegion">DE<',
    		'addressRegion">DC<',
    		'addressRegion">FL<',
    		'addressRegion">GA<',
    		'addressRegion">HI<',
    		'addressRegion">ID<',
    		'addressRegion">IL<',
    		'addressRegion">IN<',
    		'addressRegion">IA<',
    		'addressRegion">KS<',
    		'addressRegion">KY<',
    		'addressRegion">LA<',
    		'addressRegion">MN<',
    		'addressRegion">MD<',
    		'addressRegion">MA<',
    	    'addressRegion">MI<',
    		'addressRegion">MS<',
    		'addressRegion">MO<',
    		'addressRegion">MT<',
    		'addressRegion">NE<',
    		'addressRegion">NV<',
    		'addressRegion">NH<',
    		'addressRegion">NJ<',
    		'addressRegion">NM<',
    		'addressRegion">NY<',
    		'addressRegion">NC<',
    		'addressRegion">ND<',
    		'addressRegion">OH<',
    		'addressRegion">OK<',
    		'addressRegion">OR<',
    		'addressRegion">PA<',
    		'addressRegion">RI<',
    		'addressRegion">SC<',
    		'addressRegion">TN<',
    		'addressRegion">TX<',
    		'addressRegion">UT<',
    		'addressRegion">VT<',
    		'addressRegion">VA<',
    		'addressRegion">WA<',
    		'addressRegion">WV<',
    		'addressRegion">WI<',
    		'addressRegion">WY<',
    	);
    
    	$html = str_replace($state_long,$state_short,$html);
    
    	return $html;
    }

    Please have a look now.

    Regards
    Naveen

    #538844

    Naveen Giri
    Moderator
    Post count: 1559

    Hi Foster,

    I hope it has been fixed for you. I will close this task here.

    Let me know if you have any further concerns.

    Thanks

Viewing 6 posts - 1 through 6 (of 6 total)

We have moved to a support ticketing system and our forums are now closed.

Open Support Ticket