Comment modifier le panier de WooCommerce, les pages de paiement (partie thème principal) )
j'ai fait des recherches et des retouches sur mon thème Wordpress personnalisé et j'ai dépassé les gabarits de WooCommerce avec Maintenant WooCommerce installé pour rectifier un tas de petits problèmes de formatage qui se produisent sur les pages de WooCommerce. Je suis en bas à la charrette et la caisse, qui Oui ils utilisent cart.php
(et n'importe quel checkout php), mais utilise aussi le thème principal Wordpress page.php
. J'ai été en mesure d'utiliser is_woocommerce()
dans les conditionnels d'autres endroits mais pas ici comme j'ai appris Les Docs de WooCommerce disent que ne peut pas être utilisé sur la caisse et le chariot.
is_woocommerce () - retourne true si sur une page qui utilise des gabarits de WooCommerce (cart et checkout sont des pages standards avec des shortcodes et ne sont donc pas inclus). http://docs.woothemes.com/document/conditional-tags/
Alors, comment puis-je modifier l'apparence de ces pages? J'ai un "voir Tous les Messages" et une date/heure en haut, et les catégories barre latérale de la page.php que je n'ai pas vous voulez vous présenter pour des raisons évidentes sur la caisse et le chariot car ils n'ont pas de sens du tout. Quelles sont mes options?
puis-je le faire utiliser un modèle différent de page.le php?
Est-ce une option? C'est une mauvaise pratique... ne provoque plus de charge sur chaque page de cette boucle? Où dois-je les mettre? http://saiyedfaishal.wordpress.com/2014/01/06/check-if-it-is-woocommerce-page/
Quelle est la meilleure façon de procéder? Merci pour tout à l'aide! Cette question Est quelque peu liée à - comment modifier l'action woocommerce_before_cart
6 réponses
Vous pouvez utiliser la fonction: wc_get_page_id ("panier") pour obtenir l'ID de la page. Cette fonction utilisera la page setup comme 'cart' page et pas la balle. Cela signifie qu'il continuera de fonctionner aussi lorsque vous configurez une url différente pour votre 'panier' sur la page des paramètres. Cela fonctionne pour tout type de page spéciale de Woocommerce, comme "checkout", "shop", etc.
exemple:
if (wc_get_page_id( 'cart' ) == get_the_ID()) {
// Do something.
}
une autre façon d'outrepasser totalement le chariot.php est à copier:
woocommerce/templates/cart/cart.php to
yourtheme/woocommerce/cart/cart.php
Puis faire ce que vous devez à la votretheme/thème/panier/panier.php
Vous pouvez utiliser le is_cart () balise conditionnelle:
if (! is_cart() ) {
// Do something.
}
j'ai trouvé que cela fonctionne bien comme un conditionnel à l'intérieur de page.php
Cela inclut le panier de WooCommerce et les écrans de caisse.
!is_page(array('cart', 'checkout'))
WooCommerce a un certain nombre d'options pour modifier le panier, et les pages de paiement. Voici les trois que j'avais recommend:
Utiliser Thème Les Balises
is_cart()
et is_checkout()
les fonctions retournent true sur leur page. Exemple:
if ( is_cart() || is_checkout() ) {
echo "This is the cart, or checkout page!";
}
Modifier le fichier de template
le fichier principal, cart template est situé à wp-content/themes/{current-theme}/woocommerce/cart/cart.php
le fichier principal du modèle de caisse est situé à wp-content/themes/{current-theme}/woocommerce/checkout/form-checkout.php
pour les éditer, copiez-les d'abord sur le thème de votre enfant.
Utiliser wp-content/themes/{current-theme}/page-{slug}.php
page-{slug}.php
est le deuxième modèle qui sera utilisé, venant après ceux assignés manuellement par le tableau de bord WP.
C'est plus sûr que mes autres solutions, parce que si vous supprimez WooCommerce, mais oubliez de supprimer ce fichier, le code à l'intérieur (qui peut dépendre des fonctions de WooCommerce) ne se brisera pas, parce qu'il n'est jamais appelé (à moins que de cause Vous avez une page avec slug {slug}
).
Par exemple:
wp-content/themes/{current-theme}/page-cart.php
wp-content/themes/{current-theme}/page-checkout.php
j'ai utilisé la page checkout.modèle php pour changer l'en-tête de ma page cart. Je l'ai renommé la page panier.php dans mon /wp-content/themes/childtheme/thème/. Cela vous donne plus de contrôle sur l'enrubannage html, l'en-tête et le pied de page.