2017-07-13 11 views
0
add_filter("woocommerce_checkout_fields", "order_fields"); 

function order_fields($fields) { 

$order = array(
    "billing_first_name", 
    "billing_last_name", 
    "billing_company", 
    "billing_email", 
    "billing_country", 
    "billing_address_1", 
    "billing_state", 
    "billing_postcode", 
    "billing_city" 
); 
foreach($order as $field) 
{ 
    $ordered_fields[$field] = $fields["billing"][$field]; 
} 

$fields["billing"] = $ordered_fields; 
return $fields; 

} 

リフレッシュページでは、ページが完全にフィールドの順序をロードするときと同じようになります。私に提案してください。事前リオーダーチェックアウトフィールドの問題woocommerce

答えて

0

おかげであなたは、並べ替えと一緒に設定された優先度を必要としています。これを試して。

add_filter("woocommerce_checkout_fields", "order_fields",99); 

    function order_fields($fields) { 

    $order = array(
     "billing_first_name"=>10, 
     "billing_last_name"=>20, 
     "billing_company"=>30, 
     "billing_email"=>40, 
     "billing_country"=>50, 
     "billing_address_1"=>60, 
     "billing_state"=>70, 
     "billing_postcode"=>80, 
     "billing_city=>90" 
    ); 
    foreach($order as $field=>$priority) 
    { 
     $ordered_fields[$field] = $fields["billing"][$field]; 
     $ordered_fields[$field]['priority']=$priority; 
    } 

    $fields["billing"] = $ordered_fields; 
    return $fields; 

    } 
+0

お返事ありがとうございます。電子メールフィールドを除くすべてのフィールドの順序を変更します。 –

0
 add_filter('woocommerce_default_address_fields', 'bbloomer_move_checkout_fields_woo_3'); 

function bbloomer_move_checkout_fields_woo_3($fields) { 

    $fields['first_name']['priority'] = 10; 
    $fields['last_name']['priority'] = 20; 
    $fields['company']['priority'] = 30; 
    $fields['email']['priority'] = 35; 
    $fields['country']['priority'] = 40; 
    $fields['address_1']['priority'] = 50; 
    $fields['state']['priority'] = 60; 
    $fields['postcode']['priority'] = 70; 
    $fields['city']['priority'] = 80; 

    return $fields; 
} 
function ld_wc_filter_billing_fields($address_fields) { 
    $address_fields['billing_email']['priority'] = 35; 
    return $address_fields; 
} 
add_filter('woocommerce_billing_fields', 'ld_wc_filter_billing_fields', 10, 1); 

私はたくさん検索し、このコードを取得しています。このコードは、私が望むように私のためにうまくいく。