Zmena default country na základe jazyka

Poznáš to. Nahádžeš do košíka XY veci za super ceny, prídeš na pokladňu a po zvolení krajiny sa ti cena navýši o DPH. No na vraždu. Našťastie však existuje jednoduchý snippet, ktorým si vieme upraviť polohu zákazníka a to na základe aktuálne zvoleného jazyka. Kód je písaný pre multijazyčný plugin WPML. 

				
					add_filter( 'woocommerce_customer_default_location', 'lava_change_default_location_country', 10, 1 );

function lava_change_default_location_country() {
	$current_lang = apply_filters( 'wpml_current_language', NULL );
	if($current_lang == 'sk') {
		return "SK";
	} else {
		return "CZ";
	}
	
}
				
			

Použijeme filter wocommerce_customer_default_location. Ten totiž platí pre celý web. Hook default_checkout_billing_country bohužiaľ funguje len na podstránke pokladne, takže ním nedosiahneme to, čo chceme. 

Vo funkcií potom získame kód aktuálne zvoleného jazyka. Keďže sa mi nepodarilo zistiť, ako z WPML vytiahnuť kód krajiny a nie jazyka, použil som takýto jednoduchý if. Lebo $current_lang v českej verzií nevráti cz, ale cs. A kopec iných takýchto prípadov by sme našli, kedy by nám to nesedelo. Všetky kódy štátov pre Woocommerce tu. Pre WPML sa mi taký pekný zoznam nepodarilo nájsť. 

Podobné články

2 Odpovede

    1. Ja bohuzial s polylangom nerobim, takze netusim, aku ma funkciu na vyvolanie kodu aktualneho jazyka. A tiez, ci ma rovnake language codes ako wpml.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *