我的帐户页面中的城市的WooCommerce下拉列表

时间:2020-04-28 18:15:42

标签: php wordpress woocommerce hook-woocommerce

我正在尝试添加一个下拉列表,并通过遵循this code在结帐页面上成功完成了操作,

,但我无法在“我的帐户”页面上使用它。我知道该代码与“我的帐户”不同,但无法弄清楚如何进行调整。

我正在看this code。我添加了一些版本,现在确实显示了一个下拉列表,唯一的选择是“数组”,而不是城市列表。

这是我的代码:

// Billing and Shipping fields on my account edit-addresses and checkout

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

    $fields['city']['options'] = array(
    '' => __( 'Select your city' ),
    'Burnaby' => 'Burnaby',
    'Coquitlam' => 'Coquitlam',
    'Langley' => 'Langley',
    'New Westminster' => 'New Westminster',
    'North Vancouver' => 'North Vancouver',
    'Pitt Meadows' => 'Pitt Meadows',
    'Port Coquitlam' => 'Port Coquitlam',
    'Port Moody' => 'Port Moody',
    'Richmond' => 'Richmond',
    'Surrey' => 'Surrey',
    'West Vancouver' => 'West Vancouver'
);

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

    return $address_fields;
}

1 个答案:

答案 0 :(得分:1)

您将$fields['city']['options']添加到$address_fields['city']['options'] = $fields;时出错了

// Billing and Shipping fields on my account edit-addresses and checkout
function custom_override_default_address_fields( $address_fields ) {

    $option_cities = array(
        '' => __( 'Select your city' ),
        'Burnaby' => 'Burnaby',
        'Coquitlam' => 'Coquitlam',
        'Langley' => 'Langley',
        'New Westminster' => 'New Westminster',
        'North Vancouver' => 'North Vancouver',
        'Pitt Meadows' => 'Pitt Meadows',
        'Port Coquitlam' => 'Port Coquitlam',
        'Port Moody' => 'Port Moody',
        'Richmond' => 'Richmond',
        'Surrey' => 'Surrey',
        'West Vancouver' => 'West Vancouver'
    );

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

    return $address_fields;
}
add_filter( 'woocommerce_default_address_fields' , 'custom_override_default_address_fields' );