2017-11-17 3 views
0

Auf der Suche nach Drop-Down-Land/Staat/Stadt. Ich bekomme Land State automatisch bevölkert, aber Städte nicht gut durch. Standardmäßig kann Land abgerufen werden.Drop-Down von Auto-Werten Land/Staat/Stadt Woocommerce Storefront

  // State-Country additions 

     /** 
     * Code goes in functions.php or a custom plugin. 
     */ 

     add_filter('woocommerce_states', 'SA_woocommerce_states'); 
     function SA_woocommerce_states($states) { 
      $states['ZA'] = array(
       'EC' => __('Eastern Cape', 'woocommerce'), 

     ); 
      return $states; 
     } 

     // Change "city" checkout billing and shipping fields to a dropdown 

     add_filter('woocommerce_checkout_fields', 'override_checkout_city_fields'); 
     function override_checkout_city_fields($fields) { 

      // Define here in the array your desired cities (Here an example of cities) 
      $option_cities = array(
       '' => __('Select your city'), 
       'a' => 'a', 

     ); 

      $fields['billing']['billing_city']['type'] = 'select'; 
      $fields['billing']['billing_city']['options'] = $option_cities; 
      $fields['shipping']['shipping_city']['type'] = 'select'; 
      $fields['shipping']['shipping_city']['options'] = $option_cities; 

      return $fields; 
     } 
+0

Dies ist kein vollständiges Beispiel ist, so dass wir nicht reproduzieren können dein problem leicht. Bitte erläutern Sie, was Ihr Code tut und was Sie stattdessen erwarten. – JHBonarius

+0

Bitte erläutern Sie, was Sie erreichen möchten. –

Antwort

0

Mit Ihrem aktuellen Code, den Sie alle bestehenden Zustände von "South Africa" ​​(ZA) durch einen Staat ersetzen. So sind Sie immer so etwas wie:

enter image description here

Um diesen Zustand zu addieren Sie benötigen, sollten Sie Ihren Code ein wenig auf diese Weise zu ändern:

add_filter('woocommerce_states', 'sa_woocommerce_states'); 
add_filter('woocommerce_countries_allowed_country_states', 'sa_woocommerce_states'); 
function SA_woocommerce_states($states) { 
    $states['ZA']['EC'] = __('Eastern Cape', 'woocommerce'); 
    return $states; 
} 

-Code geht in function.php Datei Ihrer aktives Kindthema (oder Theme) oder auch in einer beliebigen Plugin-Datei.

Getestet und funktioniert. Sie werden, dass anstelle dieses Mal erhalten:

enter image description here

nun die Städte Auto bekommen bevölkert Sie diese verwenden sollten:

add_filter('woocommerce_default_address_fields', 'override_checkout_city_fields', 10, 1); 
function override_checkout_city_fields($fields) { 

    // Define here in the array your desired cities (Here an example of cities) 
    $option_cities = array(
     '' => __('Select your city'), 
     'a' => 'a', 

    ); 

    $fields['city']['type'] = 'select'; 
    $fields['city']['options'] = $option_cities; 

    return $fields; 
} 

-Code geht in function.php Datei Ihrer aktiven Kind Thema (oder Thema) oder auch in einer beliebigen Plugin-Datei.

getestet Anzeige funktioniert ...

Aber Sie werden nicht Städte von Staaten erhalten, da dies eine wirkliche Entwicklung ist und zu breit für Stackoverflow

+0

Vielen Dank für Ihre Antwort. Ich bin in der Lage, Staaten, aber nicht Städte, die zum Beispiel ein ist. – Ferna

+0

@Ferna Ja, das ist zu weit gefasst und eine echte Entwicklung ... Sie sollten ein Plugin erstellen, das WC_Countries Class und WC_Checkout Class auch erweitert ... Sie sollten einen Entwickler besser einstellen, da Sie dies nicht kostenlos im Internet bekommen. Möglicherweise können Sie überprüfen, ob Plugins beendet werden. Denken Sie daran, dass StackOverFlow kein kostenloser Codierungsdienst ist. Das sagte viel Glück für Sie – LoicTheAztec

+0

Ich bin hier, um zu lernen, und wenn seine breite wird zur Kenntnis nehmen. Danke – Ferna

Verwandte Themen