Estou criando um formulário de checkout no estilo madlib usando os campos de checkout do WooTheme, personalizando usando ações e filtros .
Os campos de cobrança no modelo de checkout form-billing.php
são exibidos com esta chamada:
<?php foreach ($checkout->checkout_fields['billing'] as $key => $field) : ?>
<?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
<?php endforeach; ?>
Como pode alterar a ordem em que os campos são exibidos?
A ordem do campo atual (padrão) é:
nome
sobrenome
empresa (oculto para mim)
cidade
CEP do
país país
e
-
mail
telefone
Ordem padrão:
Quero que os campos para estar em uma ordem mais natural para os americanos (onde moro), assim:
primeiro nome
sobrenome
empresa (escondido para mim)
vila / cidade
estado
CEP
país
e-mail
telefone
Como posso fazer isso da melhor maneira?
$fields['billing']['billing_country']['priority'] = 10;
$fields['billing']['billing_phone']['priority'] = 20;
Veja aqui https://wordpress.org/support/topic/change-order-of-billing-fields-on-checkout-page/Obrigado a Dbranes pela resposta.
Substituir:
Com:
fonte
Você pode fazer uma cópia no seu tema e editar o modelo que renderiza o formulário de pagamento.
Adaptado da documentação do plugin :
[atualizar]
Neste arquivo, pouco antes de os campos serem impressos, há este gancho de acção:
do_action('woocommerce_before_checkout_billing_form', $checkout);
.Portanto, é apenas uma questão de adicionar essa ação no tema
functions.php
ou em um plug-in personalizado e reordenar os campos, conforme o OP mostra em sua resposta. Não há necessidade de substituir o modelo ou sim, se forem necessárias personalizações adicionais.fonte
<?php do_action('woocommerce_checkout_billing'); ?>
por atacado.