第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

根據(jù) WooCommerce 結(jié)賬中選擇的城市顯示子區(qū)域下拉列表

根據(jù) WooCommerce 結(jié)賬中選擇的城市顯示子區(qū)域下拉列表

PHP
Cats萌萌 2023-12-15 16:27:24
我正在創(chuàng)建一個(gè) WooCommerce 插件,我想根據(jù)結(jié)賬頁(yè)面中選擇的客戶(hù)城市動(dòng)態(tài)顯示子區(qū)域。這是我的代碼嘗試:add_filter( 'woocommerce_checkout_fields', 'dvs_city_list' );function dvs_city_list( $fields ) {     $fields["billing"]["billing_city"]["type"] = 'select';    $fields["billing"]["billing_city"]["input_class"] = array(    'state_select' => 'state_select'    );      $fields["billing"]["billing_city"]["options"] = array(        'Lahore' => 'Lahore',        'Karachi' => 'Karachi'    ),    return $fields;}add_filter( 'woocommerce_checkout_fields', 'dvs_area_list' );function dvs_area_list( $fields ) {     $fields['billing']['billing_area']['label'] = 'Area';    $fields['billing']['billing_area']['required'] = 'True';    $fields["billing"]["billing_area"]["type"] = 'select';    $fields["billing"]["billing_area"]["class"][0] = 'form-row-last';    $fields['billing']['billing_area']['priority'] = 50;    $fields["billing"]["billing_area"]["input_class"] = array(    'state_select' => 'state_select'    );        $city = $_REQUEST['billing_city'];        if ($city == 'Lahore') {        $fields["billing"]["billing_area"]["options"] = array(        'Naval Town' => 'Naval Town',        'Bahria Town' => 'Bahria Town',        'Faisal Town' => 'Faisal Town'        );    }    else ($city == 'Karachi') {    $fields["billing"]["billing_area"]["options"] = array(        'Walton Road' => 'Walton Road',        'Zest Road' => 'Zest Road'        );     }     return $fields;}這是截圖但我收到這個(gè)錯(cuò)誤注意:未定義索引:…wp-content/plugins/custom-plugin/index.php 第 35 行中的 billing_city如何修復(fù)這個(gè)錯(cuò)誤?我做錯(cuò)了什么?
查看完整描述

1 回答

?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊

要從另一個(gè)選擇字段同步自定義結(jié)帳選擇字段,需要使用 jQuery。


您還可以合并這兩個(gè)函數(shù),因?yàn)樗鼈兪褂孟嗤你^子。


在下面的第一個(gè)函數(shù)中,我們保留您可以在任何地方調(diào)用的城市/地區(qū)設(shè)置。最后一個(gè)功能啟用“計(jì)費(fèi)區(qū)域”上的動(dòng)態(tài)選項(xiàng)更改。下拉列表取決于所選城市:


function cities_areas_settings() {

    $text_domain = 'woocommerce';


    return array(

        __('Lahore', $text_domain) => array(

            __('Naval Town', $text_domain),

            __('Bahria Town', $text_domain),

            __('Faisal Town', $text_domain),

        ),

        __('Karachi', $text_domain) => array(

            __('Walton Road', $text_domain),

            __('Zest Road', $text_domain),

        )

    );

}


add_filter( 'woocommerce_checkout_fields', 'custom_checkout_fields' );

function custom_checkout_fields( $fields ) {

    // Initializing

    $text_domain   = 'woocommerce';

    $option_cities = array();

    $lahore_areas  = array( '' => __('Choose your area', $text_domain) );


    // Load settings and prepare options arrays

    foreach( cities_areas_settings() as $city => $areas ) {

        $option_cities[$city] = $city;

        if( $city === 'Lahore' ) {

            foreach( $areas as $area ) {

                $lahore_areas[$area] = $area;

            }

        }

    }


    // 1. Billing City field

    $fields['billing']['billing_city']['type']        = 'select';

    $fields['billing']['billing_city']['class']       = array('form-row-first');

    $fields['billing']['billing_city']['input_class'] = array('state_select');

    $fields['billing']['billing_city']['options']     = $option_cities;


    // 2. Billing Area Field

    $fields['billing']['billing_area'] = array(

        'type'        => 'select',

        'label'       => __('Area', $text_domain),

        'class'       => array('form-row-last'),

        'input_class' => array('state_select'),

        'options'     => $lahore_areas,

        'required'    => true,

        'default'     => '',

        'priority'    => 50,

    );


    return $fields;

}


add_action('wp_footer', 'custom_checkout_js_script');

function custom_checkout_js_script() {

    if( is_checkout() && ! is_wc_endpoint_url() ) :

    // Initializing

    $text_domain   = 'woocommerce';

    $karachi_areas = array( '' => __('Choose your area', $text_domain) );


    $settings = cities_areas_settings(); // Load settings


    // Prepare 'Karachi' options dropdown

    foreach( cities_areas_settings()['Karachi'] as $area ) {

        $karachi_areas[$area] = $area;

    }


    ?>

    <script language="javascript">

    jQuery( function($){

        var a = 'select[name="billing_city"]',

            b = 'select[name="billing_area"]',

            o = <?php echo json_encode($karachi_areas); ?>,

            s = $(b).html();


        // Utility function to fill dynamically the select field options

        function dynamicSelectOptions( opt ){

            var options = '';

            $.each( opt, function( key, value ){

                options += '<option value="'+key+'">'+value+'</option>';

            });

            $(b).html(options);

        }


        // On Start (once DOM is loaded)

        if ( $(a).val() === 'Karachi' ) {

            dynamicSelectOptions( o );

        }


        console.log($(a).val());


        // On billing city change live event

        $('form.woocommerce-checkout').on('change', a, function() {

            console.log($(this).val());

            if ( $(this).val() === 'Karachi' ) {

                dynamicSelectOptions( o );

            } else {

                $(b).html(s);

            }

        });

    });

    </script>

    <?php

    endif;

}

代碼位于活動(dòng)子主題(或活動(dòng)主題)的functions.php 文件中。經(jīng)過(guò)測(cè)試并有效。


查看完整回答
反對(duì) 回復(fù) 2023-12-15
  • 1 回答
  • 0 關(guān)注
  • 222 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)