2017-11-17 10 views
0

국가/지역/도시의 드롭 다운을 찾고 있습니다. 인구가 많은 국가는 자동으로 인구가 늘지만 도시는 잘 통과하지 못합니다. 기본적으로 국가를 얻을 수 있습니다.자동 값 드롭 다운 국가/주/도시 woocommerce 점포

  // 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

에 대한 실제 개발과 너무 광범위 당신은 국가에 의해 도시을받지 않습니다, 그래서 우리는 재생할 수없는 너의 문제는 쉽게. 귀하의 코드가 무엇을하고 무엇을 기대하는지에 대해 자세히 설명하십시오. – JHBonarius

+0

달성하려는 내용을 자세히 기술하십시오. –

답변

0

실제 코드를 사용하면 "남아프리카"(ZA)의 모든 기존 상태를 한 상태로 바꿉니다. 그래서 당신은 뭔가를 얻고있다 :

enter image description here

당신은 조금 당신의 코드를 이런 식으로 변경해야한다이 상태 추가하려면 :

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; 
} 

코드의 function.php 파일에 간다 당신의 활성 어린이 테마 (또는 테마) 또는 모든 플러그인 파일에서도 사용할 수 있습니다.

테스트를 거쳐 작동합니다. 당신은 대신이 시간을 얻을 것이다 : (

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; 
} 

코드 활성 자식 테마의 function.php 파일에 간다 :

이제 enter image description here

은 도시 자동이를 사용해야 채워하기 또는 테마) 또는 모든 플러그인 파일에서.

테스트 광고가 작동 ...

그러나 이것은 완전한 예가 아니다 유래

+0

답장을 보내 주셔서 감사합니다. 나는 주를 얻을 수 있지만 예를 들어 도시는 얻을 수 없습니다. – Ferna

+0

@Ferna 그렇습니다. 너무 광범위하고 실제 개발입니다. WC_Countries 클래스와 WC_Checkout 클래스를 확장하는 플러그인을 만들어야합니다. 개발자가 아닌 다른 개발자가 아닌 개발자가 아닌 다른 개발자도 무료로 사용할 수 있습니다. 플러그인 종료 여부를 확인할 수 있습니다 ... StackOverFlow는 무료 코딩 서비스가 아닙니다. 그것은 당신에게 행운을 빕니다. – LoicTheAztec

+0

나는 배우기 위해 여기에있다. 그리고 그 폭이 notice.Thanks에 투옥 할 것 인 지. – Ferna