Wordpress Woocommerce签出字段-如何在选择选项中传递数据属性

Wordpress Woocommerce签出字段-如何在选择选项中传递数据属性,wordpress,woocommerce,Wordpress,Woocommerce,在WoocomerCE结帐时,我有两个默认选择字段:billing_state和billing_city 当我选择一个账单州时,我需要账单城市只包含它的孩子。我使用select2插件来选择项目 例如,当我选择意大利时,我希望在罗马城和米兰城只出现 <select name="billing_state" id="billing_state"> <option value="1">USA</option> <option value="2">

在WoocomerCE结帐时,我有两个默认选择字段:billing_state和billing_city

当我选择一个账单州时,我需要账单城市只包含它的孩子。我使用select2插件来选择项目

例如,当我选择意大利时,我希望在罗马城和米兰城只出现

<select name="billing_state" id="billing_state">
  <option value="1">USA</option>
  <option value="2">Italy</option>
</select>

<select name="billing_city" id="billing_city">
  <option value="1" data-parent="1">New York</option>
  <option value="2" data-parent="1">Washington</option>
  <option value="3" data-parent="2">Rome</option>
  <option value="4" data-parent="2">Milan</option>
</select>

如果无法通过默认的woo commerce字段完成此操作,我想可以使用自定义计费\u city\u自定义选择来处理此选择。

安装以下woo commerce插件:

将下面的代码放入function.php文件中

add_filter( 'wc_city_select_cities', 'my_cities' );

/*** Replace XX with the country code. Instead of YYY, ZZZ use actual  state codes.*/


function my_cities( $cities ) {
    $cities['XX'] = array(
        'YYY' => array(
            'City ',
            'Another City'
        ),
        'ZZZ' => array(
            'City 3',
            'City 4'
        )
    );
    return $cities;
}

Below is an example of it:

add_filter( 'wc_city_select_cities', 'my_cities' ); 

function my_cities( $cities ) {
    $cities['US'] = array(
        'AL' => array(
            'City1 of Alabama1',
            'City2 of Alabama1'
        ),
        'NJ' => array(
            'City1 of New Jersey',
            'City2 of New Jersey'
        ),
        'OK' => array(
            'City1 of Oklahoma',
            'City2 of Oklahoma',
            'City3 of Oklahoma',
            'City4 of Oklahoma'
        )
    );
    return $cities;
}

我已经设法使用这个插件。最初它不起作用,因为我禁用了国家/地区和邮政编码字段(在重新排序字段时不要取消设置或删除它们)。允许启用所有默认字段,但如果需要,可以通过css隐藏它们。我发现的另一个类似的插件是
add_filter( 'wc_city_select_cities', 'my_cities' );

/*** Replace XX with the country code. Instead of YYY, ZZZ use actual  state codes.*/


function my_cities( $cities ) {
    $cities['XX'] = array(
        'YYY' => array(
            'City ',
            'Another City'
        ),
        'ZZZ' => array(
            'City 3',
            'City 4'
        )
    );
    return $cities;
}

Below is an example of it:

add_filter( 'wc_city_select_cities', 'my_cities' ); 

function my_cities( $cities ) {
    $cities['US'] = array(
        'AL' => array(
            'City1 of Alabama1',
            'City2 of Alabama1'
        ),
        'NJ' => array(
            'City1 of New Jersey',
            'City2 of New Jersey'
        ),
        'OK' => array(
            'City1 of Oklahoma',
            'City2 of Oklahoma',
            'City3 of Oklahoma',
            'City4 of Oklahoma'
        )
    );
    return $cities;
}