Last active
June 7, 2023 12:08
-
-
Save harslannet/8582ee5c0f68b5c458f80b6d110d47a5 to your computer and use it in GitHub Desktop.
WooCommerce Türkiye ilçelerini sepet, ödeme ve hesabım sayfasında select elementi ile seçilen şehre göre listeleme
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Temanızın functions.php dosyasına ekleyebilirsiniz, tercihen child temaya. | |
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); | |
add_filter( 'woocommerce_billing_fields', 'custom_override_billing_fields'); | |
add_filter( 'woocommerce_shipping_fields', 'custom_override_shipping_fields'); | |
add_filter( "woocommerce_add_cart_item_data", "custom_override_cart_page_fields"); | |
function custom_override_checkout_fields( $fields ) { | |
$fields['billing']['billing_city'] = array( | |
'label' => __('İlçe', 'woocommerce'), | |
'placeholder' => _x('İlçe', 'placeholder', 'woocommerce'), | |
'required' => true, | |
'class' => array('form-row-wide'), | |
'clear' => true, | |
'input_class' => array( | |
'wc-enhanced-select', | |
) | |
); | |
wc_enqueue_js( " | |
jQuery( ':input.wc-enhanced-select' ).filter( ':not(.enhanced)' ).each( function() { | |
var select2_args = { minimumResultsForSearch: 5 }; | |
jQuery( this ).select2( select2_args ).addClass( 'enhanced' ); | |
});" ); | |
$fields['billing']['billing_city']['type'] = 'select'; | |
$fields['billing']['billing_city']['options'] = array( | |
'State' => 'City' | |
); | |
return $fields; | |
} | |
function custom_override_billing_fields( $fields ) { | |
$fields['billing_city'] = array( | |
'label' => __('İlçe', 'woocommerce'), | |
'placeholder' => _x('İlçe', 'placeholder', 'woocommerce'), | |
'required' => true, | |
'class' => array('form-row-wide'), | |
'clear' => true, | |
'input_class' => array( | |
'wc-enhanced-select', | |
) | |
); | |
wc_enqueue_js( " | |
jQuery( ':input.wc-enhanced-select' ).filter( ':not(.enhanced)' ).each( function() { | |
var select2_args = { minimumResultsForSearch: 5 }; | |
jQuery( this ).select2( select2_args ).addClass( 'enhanced' ); | |
});" ); | |
$fields['billing_city']['type'] = 'select'; | |
$fields['billing_city']['options'] = array( | |
'State' => 'City' | |
); | |
return $fields; | |
} | |
function custom_override_shipping_fields( $fields ) { | |
$fields['shipping_city'] = array( | |
'label' => __('İlçe', 'woocommerce'), | |
'placeholder' => _x('İlçe', 'placeholder', 'woocommerce'), | |
'required' => true, | |
'class' => array('form-row-wide'), | |
'clear' => true, | |
'input_class' => array( | |
'wc-enhanced-select', | |
) | |
); | |
wc_enqueue_js( " | |
jQuery( ':input.wc-enhanced-select' ).filter( ':not(.enhanced)' ).each( function() { | |
var select2_args = { minimumResultsForSearch: 5 }; | |
jQuery( this ).select2( select2_args ).addClass( 'enhanced' ); | |
});" ); | |
$fields['shipping_city']['type'] = 'select'; | |
$fields['shipping_city']['options'] = array( | |
'State' => 'City' | |
); | |
return $fields; | |
} | |
function custom_override_cart_page_fields( $fields ) { | |
$fields['calc_shipping_city'] = array( | |
'label' => __('İlçe', 'woocommerce'), | |
'placeholder' => _x('İlçe', 'placeholder', 'woocommerce'), | |
'required' => true, | |
'class' => array('form-row-wide'), | |
'clear' => true, | |
'input_class' => array( | |
'wc-enhanced-select', | |
) | |
); | |
wc_enqueue_js( " | |
jQuery( ':input.wc-enhanced-select' ).filter( ':not(.enhanced)' ).each( function() { | |
var select2_args = { minimumResultsForSearch: 5 }; | |
jQuery( this ).select2( select2_args ).addClass( 'enhanced' ); | |
});" ); | |
$fields['calc_shipping_city']['type'] = 'select'; | |
$fields['calc_shipping_city']['options'] = array( | |
'State' => 'City' | |
); | |
return $fields; | |
} | |
add_action('wp_footer', 'custom_checkout_script'); | |
function custom_checkout_script() { | |
if (is_cart() || is_checkout() || is_wc_endpoint_url( 'edit-address' )) { | |
?> | |
<script> | |
jQuery(document).ready(function($){ | |
var cities = { | |
'TR01' : ['Aladağ','Ceyhan','Çukurova','Feke','İmamoğlu','Karaisalı','Karataş','Kozan','Pozantı','Saimbeyli','Sarıçam','Seyhan','Tufanbeyli','Yumurtalık','Yüreğir'], | |
'TR02' : ['Besni','Çelikhan','Gerger','Gölbaşı','Kahta','Merkez','Samsat','Sincik','Tut'], | |
'TR03' : ['Başmakçı','Bayat','Bolvadin','Çay','Çobanlar','Dazkırı','Dinar','Emirdağ','Evciler','Hocalar','İhsaniye','İscehisar','Kızılören','Merkez','Sandıklı','Sinanpaşa','Sultandağı','Şuhut'], | |
'TR04' : ['Diyadin','Doğubayazıt','Eleşkirt','Hamur','Merkez','Patnos','Taşlıçay','Tutak'], | |
'TR05' : ['Göynücek','Gümüşhacıköy','Hamamözü','Merkez','Merzifon','Suluova','Taşova'], | |
'TR06' : ['Akyurt','Altındağ','Ayaş','Bala','Beypazarı','Çamlıdere','Çankaya','Çubuk','Elmadağ','Etimesgut','Evren','Gölbaşı','Güdül','Haymana','Kahramankazan','Kalecik','Keçiören','Kızılcahamam','Mamak','Nallıhan','Polatlı','Pursaklar','Sincan','Şereflikoçhisar','Yenimahalle'], | |
'TR07' : ['Akseki','Aksu','Alanya','Demre','Döşemealtı','Elmalı','Finike','Gazipaşa','Gündoğmuş','İbradı','Kaş','Kemer','Kepez','Konyaaltı','Korkuteli','Kumluca','Manavgat','Muratpaşa','Serik'], | |
'TR08' : ['Ardanuç','Arhavi','Borçka','Hopa','Kemalpaşa','Merkez','Murgul','Şavşat','Yusufeli'], | |
'TR09' : ['Bozdoğan','Buharkent','Çine','Didim','Efeler','Germencik','İncirliova','Karacasu','Karpuzlu','Koçarlı','Köşk','Kuşadası','Kuyucak','Nazilli','Söke','Sultanhisar','Yenipazar'], | |
'TR10' : ['Altıeylül','Ayvalık','Balya','Bandırma','Bigadiç','Burhaniye','Dursunbey','Edremit','Erdek','Gömeç','Gönen','Havran','İvrindi','Karesi','Kepsut','Manyas','Marmara','Savaştepe','Sındırgı','Susurluk'], | |
'TR11' : ['Bozüyük','Gölpazarı','İnhisar','Merkez','Osmaneli','Pazaryeri','Söğüt','Yenipazar'], | |
'TR12' : ['Adaklı','Genç','Karlıova','Kiğı','Merkez','Solhan','Yayladere','Yedisu'], | |
'TR13' : ['Adilcevaz','Ahlat','Güroymak','Hizan','Merkez','Mutki','Tatvan'], | |
'TR14' : ['Dörtdivan','Gerede','Göynük','Kıbrıscık','Mengen','Merkez','Mudurnu','Seben','Yeniçağa'], | |
'TR15' : ['Ağlasun','Altınyayla','Bucak','Çavdır','Çeltikçi','Gölhisar','Karamanlı','Kemer','Merkez','Tefenni','Yeşilova'], | |
'TR16' : ['Büyükorhan','Gemlik','Gürsu','Harmancık','İnegöl','İznik','Karacabey','Keles','Kestel','Mudanya','Mustafakemalpaşa','Nilüfer','Orhaneli','Orhangazi','Osmangazi','Yenişehir','Yıldırım'], | |
'TR17' : ['Ayvacık','Bayramiç','Biga','Bozcaada','Çan','Eceabat','Ezine','Gelibolu','Gökçeada','Lapseki','Merkez','Yenice'], | |
'TR18' : ['Atkaracalar','Bayramören','Çerkeş','Eldivan','Ilgaz','Kızılırmak','Korgun','Kurşunlu','Merkez','Orta','Şabanözü','Yapraklı'], | |
'TR19' : ['Alaca','Bayat','Boğazkale','Dodurga','İskilip','Kargı','Laçin','Mecitözü','Merkez','Oğuzlar','Ortaköy','Osmancık','Sungurlu','Uğurludağ'], | |
'TR20' : ['Acıpayam','Babadağ','Baklan','Bekilli','Beyağaç','Bozkurt','Buldan','Çal','Çameli','Çardak','Çivril','Güney','Honaz','Kale','Merkezefendi','Pamukkale','Sarayköy','Serinhisar','Tavas'], | |
'TR21' : ['Bağlar','Bismil','Çermik','Çınar','Çüngüş','Dicle','Eğil','Ergani','Hani','Hazro','Kayapınar','Kocaköy','Kulp','Lice','Silvan','Sur','Yenişehir'], | |
'TR22' : ['Enez','Havsa','İpsala','Keşan','Lalapaşa','Meriç','Merkez','Süloğlu','Uzunköprü'], | |
'TR23' : ['Ağın','Alacakaya','Arıcak','Baskil','Karakoçan','Keban','Kovancılar','Maden','Merkez','Palu','Sivrice'], | |
'TR24' : ['Çayırlı','İliç','Kemah','Kemaliye','Merkez','Otlukbeli','Refahiye','Tercan','Üzümlü'], | |
'TR25' : ['Aşkale','Aziziye','Çat','Hınıs','Horasan','İspir','Karaçoban','Karayazı','Köprüköy','Narman','Oltu','Olur','Palandöken','Pasinler','Pazaryolu','Şenkaya','Tekman','Tortum','Uzundere','Yakutiye'], | |
'TR26' : ['Alpu','Beylikova','Çifteler','Günyüzü','Han','İnönü','Mahmudiye','Mihalgazi','Mihalıççık','Odunpazarı','Sarıcakaya','Seyitgazi','Sivrihisar','Tepebaşı'], | |
'TR27' : ['Araban','İslahiye','Karkamış','Nizip','Nurdağı','Oğuzeli','Şahinbey','Şehitkamil','Yavuzeli'], | |
'TR28' : ['Alucra','Bulancak','Çamoluk','Çanakçı','Dereli','Doğankent','Espiye','Eynesil','Görele','Güce','Keşap','Merkez','Piraziz','Şebinkarahisar','Tirebolu','Yağlıdere'], | |
'TR29' : ['Kelkit','Köse','Kürtün','Merkez','Şiran','Torul'], | |
'TR30' : ['Çukurca','Derecik','Merkez','Şemdinli','Yüksekova'], | |
'TR31' : ['Altınözü','Antakya','Arsuz','Belen','Defne','Dörtyol','Erzin','Hassa','İskenderun','Kırıkhan','Kumlu','Payas','Reyhanlı','Samandağ','Yayladağı'], | |
'TR32' : ['Aksu','Atabey','Eğirdir','Gelendost','Gönen','Keçiborlu','Merkez','Senirkent','Sütçüler','Şarkikaraağaç','Uluborlu','Yalvaç','Yenişarbademli'], | |
'TR33' : ['Akdeniz','Anamur','Aydıncık','Bozyazı','Çamlıyayla','Erdemli','Gülnar','Mezitli','Mut','Silifke','Tarsus','Toroslar','Yenişehir'], | |
'TR34' : ['Adalar','Arnavutköy','Ataşehir','Avcılar','Bağcılar','Bahçelievler','Bakırköy','Başakşehir','Bayrampaşa','Beşiktaş','Beykoz','Beylikdüzü','Beyoğlu','Büyükçekmece','Çatalca','Çekmeköy','Esenler','Esenyurt','Eyüpsultan','Fatih','Gaziosmanpaşa','Güngören','Kadıköy','Kağıthane','Kartal','Küçükçekmece','Maltepe','Pendik','Sancaktepe','Sarıyer','Silivri','Sultanbeyli','Sultangazi','Şile','Şişli','Tuzla','Ümraniye','Üsküdar','Zeytinburnu'], | |
'TR35' : ['Aliağa','Balçova','Bayındır','Bayraklı','Bergama','Beydağ','Bornova','Buca','Çeşme','Çiğli','Dikili','Foça','Gaziemir','Güzelbahçe','Karabağlar','Karaburun','Karşıyaka','Kemalpaşa','Kınık','Kiraz','Konak','Menderes','Menemen','Narlıdere','Ödemiş','Seferihisar','Selçuk','Tire','Torbalı','Urla'], | |
'TR36' : ['Akyaka','Arpaçay','Digor','Kağızman','Merkez','Sarıkamış','Selim','Susuz'], | |
'TR37' : ['Abana','Ağlı','Araç','Azdavay','Bozkurt','Cide','Çatalzeytin','Daday','Devrekani','Doğanyurt','Hanönü','İhsangazi','İnebolu','Küre','Merkez','Pınarbaşı','Seydiler','Şenpazar','Taşköprü','Tosya'], | |
'TR38' : ['Akkışla','Bünyan','Develi','Felahiye','Hacılar','İncesu','Kocasinan','Melikgazi','Özvatan','Pınarbaşı','Sarıoğlan','Sarız','Talas','Tomarza','Yahyalı','Yeşilhisar'], | |
'TR39' : ['Babaeski','Demirköy','Kofçaz','Lüleburgaz','Merkez','Pehlivanköy','Pınarhisar','Vize'], | |
'TR40' : ['Akçakent','Akpınar','Boztepe','Çiçekdağı','Kaman','Merkez','Mucur'], | |
'TR41' : ['Başiskele','Çayırova','Darıca','Derince','Dilovası','Gebze','Gölcük','İzmit','Kandıra','Karamürsel','Kartepe','Körfez'], | |
'TR42' : ['Ahırlı','Akören','Akşehir','Altınekin','Beyşehir','Bozkır','Cihanbeyli','Çeltik','Çumra','Derbent','Derebucak','Doğanhisar','Emirgazi','Ereğli','Güneysınır','Hadim','Halkapınar','Hüyük','Ilgın','Kadınhanı','Karapınar','Karatay','Kulu','Meram','Sarayönü','Selçuklu','Seydişehir','Taşkent','Tuzlukçu','Yalıhüyük','Yunak'], | |
'TR43' : ['Altıntaş','Aslanapa','Çavdarhisar','Domaniç','Dumlupınar','Emet','Gediz','Hisarcık','Merkez','Pazarlar','Simav','Şaphane','Tavşanlı'], | |
'TR44' : ['Akçadağ','Arapgir','Arguvan','Battalgazi','Darende','Doğanşehir','Doğanyol','Hekimhan','Kale','Kuluncak','Pütürge','Yazıhan','Yeşilyurt'], | |
'TR45' : ['Ahmetli','Akhisar','Alaşehir','Demirci','Gölmarmara','Gördes','Kırkağaç','Köprübaşı','Kula','Salihli','Sarıgöl','Saruhanlı','Selendi','Soma','Şehzadeler','Turgutlu','Yunusemre'], | |
'TR46' : ['Afşin','Andırın','Çağlayancerit','Dulkadiroğlu','Ekinözü','Elbistan','Göksun','Nurhak','Onikişubat','Pazarcık','Türkoğlu'], | |
'TR47' : ['Artuklu','Dargeçit','Derik','Kızıltepe','Mazıdağı','Midyat','Nusaybin','Ömerli','Savur','Yeşilli'], | |
'TR48' : ['Bodrum','Dalaman','Datça','Fethiye','Kavaklıdere','Köyceğiz','Marmaris','Menteşe','Milas','Ortaca','Seydikemer','Ula','Yatağan'], | |
'TR49' : ['Bulanık','Hasköy','Korkut','Malazgirt','Merkez','Varto'], | |
'TR50' : ['Acıgöl','Avanos','Derinkuyu','Gülşehir','Hacıbektaş','Kozaklı','Merkez','Ürgüp'], | |
'TR51' : ['Altunhisar','Bor','Çamardı','Çiftlik','Merkez','Ulukışla'], | |
'TR52' : ['Akkuş','Altınordu','Aybastı','Çamaş','Çatalpınar','Çaybaşı','Fatsa','Gölköy','Gülyalı','Gürgentepe','İkizce','Kabadüz','Kabataş','Korgan','Kumru','Mesudiye','Perşembe','Ulubey','Ünye'], | |
'TR53' : ['Ardeşen','Çamlıhemşin','Çayeli','Derepazarı','Fındıklı','Güneysu','Hemşin','İkizdere','İyidere','Kalkandere','Merkez','Pazar'], | |
'TR54' : ['Adapazarı','Akyazı','Arifiye','Erenler','Ferizli','Geyve','Hendek','Karapürçek','Karasu','Kaynarca','Kocaali','Pamukova','Sapanca','Serdivan','Söğütlü','Taraklı'], | |
'TR55' : ['19 Mayıs','Alaçam','Asarcık','Atakum','Ayvacık','Bafra','Canik','Çarşamba','Havza','İlkadım','Kavak','Ladik','Salıpazarı','Tekkeköy','Terme','Vezirköprü','Yakakent'], | |
'TR56' : ['Baykan','Eruh','Kurtalan','Merkez','Pervari','Şirvan','Tillo'], | |
'TR57' : ['Ayancık','Boyabat','Dikmen','Durağan','Erfelek','Gerze','Merkez','Saraydüzü','Türkeli'], | |
'TR58' : ['Akıncılar','Altınyayla','Divriği','Doğanşar','Gemerek','Gölova','Gürün','Hafik','İmranlı','Kangal','Koyulhisar','Merkez','Suşehri','Şarkışla','Ulaş','Yıldızeli','Zara'], | |
'TR59' : ['Çerkezköy','Çorlu','Ergene','Hayrabolu','Kapaklı','Malkara','Marmaraereğlisi','Muratlı','Saray','Süleymanpaşa','Şarköy'], | |
'TR60' : ['Almus','Artova','Başçiftlik','Erbaa','Merkez','Niksar','Pazar','Reşadiye','Sulusaray','Turhal','Yeşilyurt','Zile'], | |
'TR61' : ['Akçaabat','Araklı','Arsin','Beşikdüzü','Çarşıbaşı','Çaykara','Dernekpazarı','Düzköy','Hayrat','Köprübaşı','Maçka','Of','Ortahisar','Sürmene','Şalpazarı','Tonya','Vakfıkebir','Yomra'], | |
'TR62' : ['Çemişgezek','Hozat','Mazgirt','Merkez','Nazımiye','Ovacık','Pertek','Pülümür'], | |
'TR63' : ['Akçakale','Birecik','Bozova','Ceylanpınar','Eyyübiye','Halfeti','Haliliye','Harran','Hilvan','Karaköprü','Siverek','Suruç','Viranşehir'], | |
'TR64' : ['Banaz','Eşme','Karahallı','Merkez','Sivaslı','Ulubey'], | |
'TR65' : ['Bahçesaray','Başkale','Çaldıran','Çatak','Edremit','Erciş','Gevaş','Gürpınar','İpekyolu','Muradiye','Özalp','Saray','Tuşba'], | |
'TR66' : ['Akdağmadeni','Aydıncık','Boğazlıyan','Çandır','Çayıralan','Çekerek','Kadışehri','Merkez','Saraykent','Sarıkaya','Sorgun','Şefaatli','Yenifakılı','Yerköy'], | |
'TR67' : ['Alaplı','Çaycuma','Devrek','Ereğli','Gökçebey','Kilimli','Kozlu','Merkez'], | |
'TR68' : ['Ağaçören','Eskil','Gülağaç','Güzelyurt','Merkez','Ortaköy','Sarıyahşi','Sultanhanı'], | |
'TR69' : ['Aydıntepe','Demirözü','Merkez'], | |
'TR70' : ['Ayrancı','Başyayla','Ermenek','Kazımkarabekir','Merkez','Sarıveliler'], | |
'TR71' : ['Bahşılı','Balışeyh','Çelebi','Delice','Karakeçili','Keskin','Merkez','Sulakyurt','Yahşihan'], | |
'TR72' : ['Beşiri','Gercüş','Hasankeyf','Kozluk','Merkez','Sason'], | |
'TR73' : ['Beytüşşebap','Cizre','Güçlükonak','İdil','Merkez','Silopi','Uludere'], | |
'TR74' : ['Amasra','Kurucaşile','Merkez','Ulus'], | |
'TR75' : ['Çıldır','Damal','Göle','Hanak','Merkez','Posof'], | |
'TR76' : ['Aralık','Karakoyunlu','Merkez','Tuzluca'], | |
'TR77' : ['Altınova','Armutlu','Çınarcık','Çiftlikköy','Merkez','Termal'], | |
'TR78' : ['Eflani','Eskipazar','Merkez','Ovacık','Safranbolu','Yenice'], | |
'TR79' : ['Elbeyli','Merkez','Musabeyli','Polateli'], | |
'TR80' : ['Bahçe','Düziçi','Hasanbeyli','Kadirli','Merkez','Sumbas','Toprakkale'], | |
'TR81' : ['Akçakoca','Cumayeri','Çilimli','Gölyaka','Gümüşova','Kaynaşlı','Merkez','Yığılca'] | |
}; | |
var billing_state = $('#billing_state'); | |
var billing_city = $('#billing_city'); | |
var shipping_state = $('#shipping_state'); | |
var shipping_city = $('#shipping_city'); | |
billing_state.on('change', function() { | |
if(billing_state.val() == '' || billing_state.val() == null){ | |
billing_city.empty(); | |
billing_city.append($('<option></option>').val('').html('Önce Şehir Seçin')); | |
} | |
else{ | |
billing_city.empty(); | |
billing_city.append($('<option></option>').val('').html('İlçe Seç')); | |
if (cities[$(this).val()] && cities[$(this).val()].length) { | |
$.each(cities[$(this).val()], function(key, value) { | |
billing_city.append($('<option></option>').val(value).html(value)); | |
}); | |
} | |
} | |
}); | |
shipping_state.on('change', function() { | |
if(shipping_state.val() == '' || shipping_state.val() == null){ | |
shipping_city.empty(); | |
shipping_city.append($('<option></option>').val('').html('Önce Şehir Seçin')); | |
} | |
else{ | |
shipping_city.empty(); | |
shipping_city.append($('<option></option>').val('').html('İlçe Seç')); | |
if (cities[$(this).val()] && cities[$(this).val()].length) { | |
$.each(cities[$(this).val()], function(key, value) { | |
shipping_city.append($('<option></option>').val(value).html(value)); | |
}); | |
} | |
} | |
}); | |
}); | |
</script> | |
<?php } | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment