Woocommerce 签出页面上帐单字段的更改顺序

Woocommerce 签出页面上帐单字段的更改顺序,woocommerce,Woocommerce,我正在使用WC过滤器来订购账单字段 过滤器似乎工作正常,但由于未知原因,它会立即恢复到默认顺序 add_filter("woocommerce_checkout_fields", "custom_order_fields"); function custom_order_fields($fields) { $order = array( "billing_first_name", "billing_last_name", "billi

我正在使用WC过滤器来订购账单字段

过滤器似乎工作正常,但由于未知原因,它会立即恢复到默认顺序

add_filter("woocommerce_checkout_fields", "custom_order_fields");

function custom_order_fields($fields) {
    $order = array(
        "billing_first_name", 
        "billing_last_name", 
        "billing_country",
        "billing_address_1", 
        "billing_address_2",  
        "billing_state",
        "billing_city",
        "billing_phone",
        "billing_email" 
    );

    foreach($order as $field)
    {
        $ordered_fields[$field] = $fields["billing"][$field];
    }

    $fields["billing"] = $ordered_fields;

    $fields['billing_first_name']['priority'] = 10;
    $fields['billing_last_name']['priority'] = 20;
    $fields['billing_country']['priority'] = 30;
    $fields['billing_address_1']['priority'] = 40;
    $fields['billing_address_2']['priority'] = 50;
    $fields['billing_state']['priority'] = 40;
    $fields['billing_city']['priority'] = 70;
    $fields['billing_phone']['priority'] = 80;
    $fields['billing_email']['priority'] = 90;

    return $fields;
}
这个怎么样

function custom_order_fields($fields) {
    $order = array(
        "billing_first_name", 
        "billing_last_name", 
        "billing_country",
        "billing_address_1", 
        "billing_address_2",  
        "billing_state",
        "billing_city",
        "billing_phone",
        "billing_email" 
    );

    foreach($order as $key => $field)
    {
        if (!empty($fields["billing"][$field]))
        $fields["billing"][$field]['priority'] = ($key + 1) * 10;
    }

    return $fields;
}
另一个解决方案是按如下方式构建阵列:
$order

function custom_order_fields($fields) {
    $order = array(
        "billing_first_name" => 10, 
        "billing_last_name" => 20, 
        "billing_country" => 30,
        "billing_address_1" => 40, 
        "billing_address_2" => 50,  
        "billing_state" => 60,
        "billing_city" => 70,
        "billing_phone" => 80,
        "billing_email" => 90 
    );

    foreach($order as $field => $priority)
    {
        if (!empty($fields["billing"][$field])) {
            $fields["billing"][$field]['priority'] = $priority;
        }
    }

    return $fields;
}

抱歉,无法工作,但我看到刷新页面时,我看到了新订单,但当完成加载页面时,将所有文件返回到defult