Para poder ordenar los campos, del checkout en woocommerce, hay que hacer uso del hook "woocommerce_checkout_fields" en el archivo functions.php.
Ejemplo:
add_filter('woocommerce_checkout_fields', 'order_fields');
function order_fields($fields)
{
/* Order fields billing */
$ordered_fields = array();
$order = array(
'billing_first_name', 'billing_last_name',
'billing_company', 'billing_address_1',
'billing_address_2', 'billing_city',
'billing_state', 'billing_postcode',
'billing_country', 'billing_email',
'billing_phone',
);
foreach ($order as $field) {
$ordered_fields[$field] = $fields['billing'][$field];
}
$fields['billing'] = $ordered_fields;
/* Order fields shipping */
$ordered_fields = array();
$order = array(
'shipping_first_name', 'shipping_last_name',
'shipping_company', 'shipping_address_1',
'shipping_address_2', 'shipping_city',
'shipping_country', 'shipping_state',
'shipping_postcode',
);
foreach ($order as $field) {
$ordered_fields[$field] = $fields['shipping'][$field];
}
$fields['shipping'] = $ordered_fields;
return $fields;
}
En el ejemplo anterior ordeno los campos de la sección "datos de facturación" y la sección de "datos de envío".