Ajouter une classe css personnalisée aux champs de paiement WooCommerce
Je voudrais être en mesure d'ajouter des classe CSS de mon Thème caisse des champs. Je suis en utilisant twitter Bootstrap et je voudrais être en mesure d'utiliser leur .formulaire de contrôle de la classe.
J'ai regardé dans le thème dossier modèles dans form-billing.php
mais je ne suis pas sûr de l'endroit où ajouter le .form-control
classe pour chaque champ de texte.
Voici le code pour form-billing.php
<?php
/**
* Checkout billing information form
*
* @author WooThemes
* @package WooCommerce/Templates
* @version 2.1.2
*/
if ( ! defined( 'ABSPATH' ) ) exit; //Exit if accessed directly
?>
<div class="woocommerce-billing-fields">
<?php if ( WC()->cart->ship_to_billing_address_only() && WC()->cart->needs_shipping() ) : ?>
<h3><?php _e( 'Billing & Shipping', 'woocommerce' ); ?></h3>
<?php else : ?>
<h3><?php _e( 'Billing Details', 'woocommerce' ); ?></h3>
<?php endif; ?>
<?php do_action( 'woocommerce_before_checkout_billing_form', $checkout ); ?>
<?php foreach ( $checkout->checkout_fields['billing'] as $key => $field ) : ?>
<?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
<?php endforeach; ?>
<?php do_action('woocommerce_after_checkout_billing_form', $checkout ); ?>
<?php if ( ! is_user_logged_in() && $checkout->enable_signup ) : ?>
<?php if ( $checkout->enable_guest_checkout ) : ?>
<p class="form-row form-row-wide create-account">
<input class="input-checkbox" id="createaccount" <?php checked( ( true === $checkout->get_value( 'createaccount' ) || ( true === apply_filters( 'woocommerce_create_account_default_checked', false ) ) ), true) ?> type="checkbox" name="createaccount" value="1" /> <label for="createaccount" class="checkbox"><?php _e( 'Create an account?', 'woocommerce' ); ?></label>
</p>
<?php endif; ?>
<?php do_action( 'woocommerce_before_checkout_registration_form', $checkout ); ?>
<?php if ( ! empty( $checkout->checkout_fields['account'] ) ) : ?>
<div class="create-account">
<p><?php _e( 'Create an account by entering the information below. If you are a returning customer please login at the top of the page.', 'woocommerce' ); ?></p>
<?php foreach ( $checkout->checkout_fields['account'] as $key => $field ) : ?>
<?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
<?php endforeach; ?>
<div class="clear"></div>
</div>
<?php endif; ?>
<?php do_action( 'woocommerce_after_checkout_registration_form', $checkout ); ?>
<?php endif; ?>
</div>
Dois-je chercher dans un autre fichier de modèle?
Grâce
source d'informationauteur NateW | 2014-05-29
Vous devez vous connecter pour publier un commentaire.
icc97 la réponse est presque là, mais ne fonctionne pas.
J'ai pris icc97 réponse, et débogué:
@Arachides souligné, que, si nous voulons ajouter des classes CSS pour certains types d'entrée?
Après l'expérimentation avec les solutions posté ici, jusqu'à présent, (merci à tout le monde!), Je suis venu avec un mod à l'aide d'un simple commutateur "cas", dans laquelle la logique est pris de
/woocommerce/includes/wc-template-functions.php
. La fonction de nous permettre de cibler tous les types d'entrée à la fois, que ce soit par défaut les types d'entrée ou même personnalisé.Il n'y a pas besoin de réécrire le
woocommerce_form_field
fonction pour simplement changer la$defaults
args pour les types d'entrée. Il est valable de mentionner que cette fonction peut également nous permettre d'ajouter beaucoup plus que juste des classes css pour les champs.-- Voici donc la fonction --
La fonction ci-dessus complètement résolu la question du ciblage de la caisse des entrées d'un formulaire à la fois, qui est vraiment simple pour le formulaire de commande par défaut les types d'entrée ou même personnalisé de nouveaux. Il ne semble pas être possible si, pour imprimer chaque type d'entrée sortie html, sans création d'une nouvelle fonction @abhisek montre sur sa réponse.
Bonus
Il semble que la fonction peut également affecter d'autres formes champs imprimé par Thème des fonctions du ou des modèles en dehors de la page de paiement.
J'ai réussi à conditionnellement appliquer la fonction, sur la page de paiement à l'aide de la
is_page()
fonction. Votre page de paiement peuvent avoir un autre slug, le changement que de réfléchir en conséquence.Si vous avez besoin d'appliquer uniquement la fonction de la page de paiement, procédez comme suit:
Commentaire add_filter()
//add_filter('woocommerce_form_field_args','wc_form_field_args', 10, 3);
Et l'utilisation add_action au lieu
add_action('woocommerce_form_field_args', 'wc_form_field_args', 10, 3);
Après cela, la fonction n'affecte que la page de paiement formulaire.
@Chetan de lien et de l'exécuter réponse ne sorte de vous donner ce que vous voulez, mais comme toujours, ils ne sont jamais très bonnes réponses.
La meilleure ressource pour c'est le Thème du Codex page sur Personnalisation de la caisse des champs à l'aide des actions et des filtres.
Dans la "Personnalisation de Thème Caisse Étiquettes de Champ et le Texte de l'espace Réservé" dans Chetan de la page, vous avez le code suivant que vous devez ajouter à votre functions.php je l'ai modifiée de telle manière qu'il devrait faire ce que vous voulez, mais je n'ai pas testé le code: