Je crée un formulaire de paiement de style madlib en utilisant les champs de paiement de personnalisation de WooTheme en utilisant des actions et des filtres .
Les champs de facturation du modèle de paiement form-billing.php
s'affichent avec cet appel:
<?php foreach ($checkout->checkout_fields['billing'] as $key => $field) : ?>
<?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
<?php endforeach; ?>
Comment changer l'ordre d'affichage des champs?
L'ordre actuel (par défaut) des champs est le suivant:
nom de
famille
société (caché pour moi)
ville /
code postal
pays
état
email
téléphone
Ordre par défaut:
Je veux que les champs soient dans un ordre plus naturel pour les Américains (où j'habite), donc:
prénom
nom de famille
société (caché pour moi)
ville / ville
état
code postal
pays
email
téléphone
Comment puis-je le faire au mieux?
$fields['billing']['billing_country']['priority'] = 10;
$fields['billing']['billing_phone']['priority'] = 20;
Voir ici https://wordpress.org/support/topic/change-order-of-billing-fields-on-checkout-page/Merci à Dbranes pour la réponse.
Remplacer:
Avec:
la source
Vous pouvez en faire une copie dans votre thème et modifier le modèle qui rend le formulaire de paiement.
Adapté de la documentation du plugin :
[mise à jour]
Dans ce fichier, juste avant que les champs en cours d' impression, il y a ce crochet d'action:
do_action('woocommerce_before_checkout_billing_form', $checkout);
.Il suffit donc d'ajouter cette action dans le thème
functions.php
ou dans un plugin personnalisé et de réorganiser les champs comme l'OP le montre dans sa réponse. Pas besoin de remplacer le modèle, ou oui si d'autres personnalisations sont nécessaires.la source
<?php do_action('woocommerce_checkout_billing'); ?>
gros.