2017-08-06 33 views
0

私はWoocommerceを使用しており、ユーザーが選択する必要がある500の町や都市のドロップダウンを含むようにTowns/Citiesチェックアウトフォームを編集しました。検索ボックスを実装して、自分の町を検索できるようにするにはどうすればよいですか?このため Exampleドロップダウンに検索ボックスを追加するWordpress

example

私は次のコード

add_filter('woocommerce_default_address_fields' , 'customize_checkout_city_field'); 
function customize_checkout_city_field($address_fields) { 

    // Set HERE the cities (one line by city) 
    $towns_cities_arr = array(
     '0' => __('Select your city', 'my_theme_slug'), 
     'paris' => 'Paris', 
     'versailles' => 'Versailles', 
     'cannes' => 'Cannes', 
    ); 

    // Customizing 'billing_city' field 
    $address_fields['city']['type'] = 'select'; 
    $address_fields['city']['class'] = array('form-row-last', 'my-custom-class'); // your class here 
    $address_fields['city']['label'] = __('Town/city', 'my_theme_slug'); 
    $address_fields['city']['options'] = $towns_cities_arr; 


    // Returning Checkout customized fields 
    return $address_fields; 

} 
+0

ご覧になるサンプルコードはありますか? –

+0

@CodeApprenticeはフォームフィールド – Jonathan

答えて

1

これを使用して、Woocommerceにそのフィールドをカスタマイズしています。基本的

、どのように私はこのような何かを作成してくださいあなたが使いたいプラグインはSelect2です https://select2.github.io/examples.html

あなたはすでにmy-custom-classというフィールドにカスタムクラスを持っています

あなたがする必要があるのはselect2ライブラリをインポートすることだけです。あなたのテーマfunctions.phpでこれを行うことができます。

function mytheme_enqueue_custom_scripts() { 

    wp_enqueue_style('select2-css', 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css'); 

    wp_enqueue_script('select2-js', 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js'); 

} 
add_action('wp_enqueue_scripts', 'mytheme_enqueue_custom_scripts'); 

次に、jQueryをいくつか追加して初期化します。

<script type="text/javascript"> 

    jQuery(document).ready(function($) { 
     $(".my-custom-class").select2(); 
    }); 

</script> 
+1

を生成する関連コードを追加しました.Woocommerceはすでにselect2を含んでいるようですが、これはCountryフィールドに使用していると思います。上品な部分はクラスが正しい要素に追加されるようにしていましたが(それでも正しいものが何であるかわからない)、上のクラスは正しいクラスを追加しましたが、ドロップダウンを検索可能にしませんでした。ドロップダウンですでにwoocommerceによって設定されていたクラスを 'select'(jqueryスクリプト内)に設定するだけでした。そんなやり方で私のために働いた。 – Jonathan

関連する問題