Last active
February 9, 2021 10:24
-
-
Save jwad93/33f08821423926f432880a518131023b to your computer and use it in GitHub Desktop.
Add cities (of Pakistan) dropdown to WooCommerce checkout form
This file contains 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
/** | |
* Change the checkout city field to a dropdown field. | |
*/ | |
function jeroen_sormani_change_city_to_dropdown( $fields ) { | |
$city_args = wp_parse_args( array( | |
'type' => 'select', | |
'options' => array( | |
'Abbottabad' => 'Abbottabad', | |
'Adezai' => 'Adezai', | |
'Ali Bandar' => 'Ali Bandar', | |
'Amir Chah' => 'Amir Chah', | |
'Attock' => 'Attock', | |
'Ayubia' => 'Ayubia', | |
'Bahawalpur' => 'Bahawalpur', | |
'Baden' => 'Baden', | |
'Bagh' => 'Bagh', | |
'Bahawalnagar' => 'Bahawalnagar', | |
'Burewala' => 'Burewala', | |
'Banda Daud Shah' => 'Banda Daud Shah', | |
'Bannu district|Bannu' => 'Bannu district|Bannu', | |
'Batagram' => 'Batagram', | |
'Bazdar' => 'Bazdar', | |
'Bela' => 'Bela', | |
'Bellpat' => 'Bellpat', | |
'Bhag' => 'Bhag', | |
'Bhakkar' => 'Bhakkar', | |
'Bhalwal' => 'Bhalwal', | |
'Bhimber' => 'Bhimber', | |
'Birote' => 'Birote', | |
'Buner' => 'Buner', | |
'Burj' => 'Burj', | |
'Chiniot' => 'Chiniot', | |
'Chachro' => 'Chachro', | |
'Chagai' => 'Chagai', | |
'Chah Sandan' => 'Chah Sandan', | |
'Chailianwala' => 'Chailianwala', | |
'Chakdara' => 'Chakdara', | |
'Chakku' => 'Chakku', | |
'Chakwal' => 'Chakwal', | |
'Chaman' => 'Chaman', | |
'Charsadda' => 'Charsadda', | |
'Chhatr' => 'Chhatr', | |
'Chichawatni' => 'Chichawatni', | |
'Chitral' => 'Chitral', | |
'Dadu' => 'Dadu', | |
'Dera Ghazi Khan' => 'Dera Ghazi Khan', | |
'Dera Ismail Khan' => 'Dera Ismail Khan', | |
'Dalbandin' => 'Dalbandin', | |
'Dargai' => 'Dargai', | |
'Darya Khan' => 'Darya Khan', | |
'Daska' => 'Daska', | |
'Dera Bugti' => 'Dera Bugti', | |
'Dhana Sar' => 'Dhana Sar', | |
'Digri' => 'Digri', | |
'Dina City|Dina' => 'Dina City|Dina', | |
'Dinga' => 'Dinga', | |
'Diplo' => 'Diplo', | |
'Diwana' => 'Diwana', | |
'Dokri' => 'Dokri', | |
'Drosh' => 'Drosh', | |
'Duki' => 'Duki', | |
'Dushi' => 'Dushi', | |
'Duzab' => 'Duzab', | |
'Faisalabad' => 'Faisalabad', | |
'Fateh Jang' => 'Fateh Jang', | |
'Ghotki' => 'Ghotki', | |
'Gwadar' => 'Gwadar', | |
'Gujranwala' => 'Gujranwala', | |
'Gujrat' => 'Gujrat', | |
'Gadra' => 'Gadra', | |
'Gajar' => 'Gajar', | |
'Gandava' => 'Gandava', | |
'Garhi Khairo' => 'Garhi Khairo', | |
'Garruck' => 'Garruck', | |
'Ghakhar Mandi' => 'Ghakhar Mandi', | |
'Ghanian' => 'Ghanian', | |
'Ghauspur' => 'Ghauspur', | |
'Ghazluna' => 'Ghazluna', | |
'Girdan' => 'Girdan', | |
'Gulistan' => 'Gulistan', | |
'Gwash' => 'Gwash', | |
'Hyderabad' => 'Hyderabad', | |
'Hala' => 'Hala', | |
'Haripur' => 'Haripur', | |
'Hab Chauki' => 'Hab Chauki', | |
'Hafizabad' => 'Hafizabad', | |
'Hameedabad' => 'Hameedabad', | |
'Hangu' => 'Hangu', | |
'Harnai' => 'Harnai', | |
'Hasilpur' => 'Hasilpur', | |
'Haveli Lakha' => 'Haveli Lakha', | |
'Hinglaj' => 'Hinglaj', | |
'Hoshab' => 'Hoshab', | |
'Islamabad' => 'Islamabad', | |
'Islamkot' => 'Islamkot', | |
'Ispikan' => 'Ispikan', | |
'Jacobabad' => 'Jacobabad', | |
'Jamshoro' => 'Jamshoro', | |
'Jhang' => 'Jhang', | |
'Jhelum' => 'Jhelum', | |
'Jamesabad' => 'Jamesabad', | |
'Jampur' => 'Jampur', | |
'Janghar' => 'Janghar', | |
'Jati(Mughalbhin)' => 'Jati(Mughalbhin)', | |
'Jauharabad' => 'Jauharabad', | |
'Jhal' => 'Jhal', | |
'Jhal Jhao' => 'Jhal Jhao', | |
'Jhatpat' => 'Jhatpat', | |
'Jhudo' => 'Jhudo', | |
'Jiwani' => 'Jiwani', | |
'Jungshahi' => 'Jungshahi', | |
'Karachi' => 'Karachi', | |
'Kotri' => 'Kotri', | |
'Kalam' => 'Kalam', | |
'Kalandi' => 'Kalandi', | |
'Kalat' => 'Kalat', | |
'Kamalia' => 'Kamalia', | |
'Kamararod' => 'Kamararod', | |
'Kamber' => 'Kamber', | |
'Kamokey' => 'Kamokey', | |
'Kanak' => 'Kanak', | |
'Kandi' => 'Kandi', | |
'Kandiaro' => 'Kandiaro', | |
'Kanpur' => 'Kanpur', | |
'Kapip' => 'Kapip', | |
'Kappar' => 'Kappar', | |
'Karak City' => 'Karak City', | |
'Karodi' => 'Karodi', | |
'Kashmor' => 'Kashmor', | |
'Kasur' => 'Kasur', | |
'Katuri' => 'Katuri', | |
'Keti Bandar' => 'Keti Bandar', | |
'Khairpur' => 'Khairpur', | |
'Khanaspur' => 'Khanaspur', | |
'Khanewal' => 'Khanewal', | |
'Kharan' => 'Kharan', | |
'kharian' => 'kharian', | |
'Khokhropur' => 'Khokhropur', | |
'Khora' => 'Khora', | |
'Khushab' => 'Khushab', | |
'Khuzdar' => 'Khuzdar', | |
'Kikki' => 'Kikki', | |
'Klupro' => 'Klupro', | |
'Kohan' => 'Kohan', | |
'Kohat' => 'Kohat', | |
'Kohistan' => 'Kohistan', | |
'Kohlu' => 'Kohlu', | |
'Korak' => 'Korak', | |
'Korangi' => 'Korangi', | |
'Kot Sarae' => 'Kot Sarae', | |
'Kotli' => 'Kotli', | |
'Lahore' => 'Lahore', | |
'Larkana' => 'Larkana', | |
'Lahri' => 'Lahri', | |
'Lakki Marwat' => 'Lakki Marwat', | |
'Lasbela' => 'Lasbela', | |
'Latamber' => 'Latamber', | |
'Layyah' => 'Layyah', | |
'Leiah' => 'Leiah', | |
'Liari' => 'Liari', | |
'Lodhran' => 'Lodhran', | |
'Loralai' => 'Loralai', | |
'Lower Dir' => 'Lower Dir', | |
'Shadan Lund' => 'Shadan Lund', | |
'Multan' => 'Multan', | |
'Mandi Bahauddin' => 'Mandi Bahauddin', | |
'Mansehra' => 'Mansehra', | |
'Mian Chanu' => 'Mian Chanu', | |
'Mirpur' => 'Mirpur', | |
'Moro' => 'Moro', | |
'Mardan' => 'Mardan', | |
'Mach' => 'Mach', | |
'Madyan' => 'Madyan', | |
'Malakand' => 'Malakand', | |
'Mand' => 'Mand', | |
'Manguchar' => 'Manguchar', | |
'Manguchar' => 'Mashki Chah', | |
'Maslti' => 'Maslti', | |
'Mastuj' => 'Mastuj', | |
'Mastung' => 'Mastung', | |
'Mathi' => 'Mathi', | |
'Matiari' => 'Matiari', | |
'Mehar' => 'Mehar', | |
'Mekhtar' => 'Mekhtar', | |
'Merui' => 'Merui', | |
'Mianwali' => 'Mianwali', | |
'Mianez' => 'Mianez', | |
'Mirpur Batoro' => 'Mirpur Batoro', | |
'Mirpur Khas' => 'Mirpur Khas', | |
'Mirpur Sakro' => 'Mirpur Sakro', | |
'Mithi' => 'Mithi', | |
'Mongora' => 'Mongora', | |
'Murgha Kibzai' => 'Murgha Kibzai', | |
'Muridke' => 'Muridke', | |
'Musa Khel Bazar' => 'Musa Khel Bazar', | |
'Muzaffar Garh' => 'Muzaffar Garh', | |
'Muzaffarabad' => 'Muzaffarabad', | |
'Nawabshah' => 'Nawabshah', | |
'Nazimabad' => 'Nazimabad', | |
'Nowshera' => 'Nowshera', | |
'Nagar Parkar' => 'Nagar Parkar', | |
'Nagha Kalat' => 'Nagha Kalat', | |
'Nal' => 'Nal', | |
'Naokot' => 'Naokot', | |
'Nasirabad' => 'Nasirabad', | |
'Nauroz Kalat' => 'Nauroz Kalat', | |
'Naushara' => 'Naushara', | |
'Nur Gamma' => 'Nur Gamma', | |
'Nushki' => 'Nushki', | |
'Nuttal' => 'Nuttal', | |
'Okara' => 'Okara', | |
'Ormara' => 'Ormara', | |
'Peshawar' => 'Peshawar', | |
'Panjgur' => 'Panjgur', | |
'Pasni City' => 'Pasni City', | |
'Paharpur' => 'Paharpur', | |
'Palantuk' => 'Palantuk', | |
'Pendoo' => 'Pendoo', | |
'Piharak' => 'Piharak', | |
'Pirmahal' =>'Pirmahal', | |
'Pishin' => 'Pishin', | |
'Plandri' => 'Plandri', | |
'Pokran' => 'Pokran', | |
'Pounch' => 'Pounch', | |
'Quetta' => 'Quetta', | |
'Qambar' => 'Qambar', | |
'Qamruddin Karez' => 'Qamruddin Karez', | |
'Qazi Ahmad' => 'Qazi Ahmad', | |
'Qila Abdullah' => 'Qila Abdullah', | |
'Qila Ladgasht' => 'Qila Ladgasht', | |
'Qila Safed' => 'Qila Safed', | |
'Qila Saifullah' => 'Qila Saifullah', | |
'Rawalpindi' => 'Rawalpindi', | |
'Rabwah' => 'Rabwah', | |
'Rahim Yar Khan' => 'Rahim Yar Khan', | |
'Rajan Pur' => 'Rajan Pur', | |
'Rakhni' => 'Rakhni', | |
'Ranipur' => 'Ranipur', | |
'Ratodero' => 'Ratodero', | |
'Rawalakot' => 'Rawalakot', | |
'Renala Khurd' => 'Renala Khurd', | |
'Robat Thana' => 'Robat Thana', | |
'Rodkhan' => 'Rodkhan', | |
'Rohri' => 'Rohri', | |
'Sialkot' => 'Sialkot', | |
'Sadiqabad' => 'Sadiqabad', | |
'Safdar Abad- (Dhaban Singh)' => 'Safdar Abad- (Dhaban Singh)', | |
'Sahiwal' => 'Sahiwal', | |
'Saidu Sharif' => 'Saidu Sharif', | |
'Saindak' => 'Saindak', | |
'Sakrand' => 'Sakrand', | |
'Sanjawi' => 'Sanjawi', | |
'Sargodha' => 'Sargodha', | |
'Saruna' => 'Saruna', | |
'Shabaz Kalat' => 'Shabaz Kalat', | |
'Shadadkhot' => 'Shadadkhot', | |
'Shahbandar' => 'Shahbandar', | |
'Shahpur' => 'Shahpur', | |
'Shahpur Chakar' => 'Shahpur Chakar', | |
'Shakargarh' => 'Shakargarh', | |
'Shangla' => 'Shangla', | |
'Sharam Jogizai' => 'Sharam Jogizai', | |
'Sheikhupura' => 'Sheikhupura', | |
'Shikarpur' => 'Shikarpur', | |
'Shingar' => 'Shingar', | |
'Shorap' => 'Shorap', | |
'Sibi' => 'Sibi', | |
'Sohawa' => 'Sohawa', | |
'Sonmiani' => 'Sonmiani', | |
'Sooianwala' => 'Sooianwala', | |
'Spezand' => 'Spezand', | |
'Spintangi' => 'Spintangi', | |
'Sui' => 'Sui', | |
'Sujawal' => 'Sujawal', | |
'Sukkur' => 'Sukkur', | |
'Suntsar' => 'Suntsar', | |
'Surab' => 'Surab', | |
'Swabi' => 'Swabi', | |
'Swat' => 'Swat', | |
'Tando Adam' => 'Tando Adam', | |
'Tando Bago' => 'Tando Bago', | |
'Tangi' => 'Tangi', | |
'Tank City' => 'Tank City', | |
'Tar Ahamd Rind' => 'Tar Ahamd Rind', | |
'Thalo' => 'Thalo', | |
'Thatta' => 'Thatta', | |
'Toba Tek Singh' => 'Toba Tek Singh', | |
'Tordher' => 'Tordher', | |
'Tujal' => 'Tujal', | |
'Tump' => 'Tump', | |
'Turbat' => 'Turbat', | |
'Umarao' => 'Umarao', | |
'Umarkot' => 'Umarkot', | |
'Upper Dir' => 'Upper Dir', | |
'Uthal' => 'Uthal', | |
'Vehari' => 'Vehari', | |
'Veirwaro' => 'Veirwaro', | |
'Vitakri' => 'Vitakri', | |
'Wadh' => 'Wadh', | |
'Wah Cantt' => 'Wah Cantt', | |
'Warah' => 'Warah', | |
'Washap' => 'Washap', | |
'Wasjuk' => 'Wasjuk', | |
'Wazirabad' => 'Wazirabad', | |
'Yakmach' => 'Yakmach', | |
'Zhob' => 'Zhob', | |
'Other' => 'Other' | |
), | |
'input_class' => array( | |
'wc-enhanced-select', | |
) | |
), $fields['shipping']['shipping_city'] ); | |
$fields['shipping']['shipping_city'] = $city_args; | |
$fields['billing']['billing_city'] = $city_args; // Also change for billing field | |
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' ); | |
});" ); | |
return $fields; | |
} | |
add_filter( 'woocommerce_checkout_fields', 'jeroen_sormani_change_city_to_dropdown' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment