web-dev-qa-db-fra.com

Comment modifier le panier WooCommerce, les pages de commande (partie du thème principal)

J'ai fait des recherches et peaufiné mon thème personnalisé Wordpress et les modèles WooCommerce remplacés par WooCommerce, maintenant installés, pour rectifier un ensemble de problèmes de mise en forme mineurs qui se produisent sur les pages WooCommerce. le panier et la caisse, qui oui ils utilisent cart.php (et quelle que soit la caisse php), mais utilise également le principal Wordpress thème page.php. J'ai pu utiliser is_woocommerce() dans des emplacements conditionnels, mais pas ici, car j'ai appris que la documentation WooCommerce indiquait qu'elle ne pouvait pas être utilisée dans les caisses et les paniers.

is_woocommerce () - Renvoie true si une page utilise des modèles WooCommerce (le panier et la caisse sont des pages standard avec des codes courts et ne sont donc pas incluses). http://docs.woothemes.com/document/conditional-tags/

Alors, comment puis-je modifier l'apparence de ces pages? J'ai un "Voir tous les articles" et une date/heure en haut, ainsi que l'encadré des catégories de page.php que je ne souhaite pas afficher pour des raisons évidentes à la caisse et dans le panier, car elles n'ont aucun sens. Quelles sont mes options?

Puis-je lui faire utiliser un autre modèle que page.php?

Est-ce une option? Est-ce une mauvaise pratique ... cela provoque-t-il plus de charge sur chaque page avec cette boucle? Où est-ce que je le mets? http://saiyedfaishal.wordpress.com/2014/01/06/check-if-it-is-woocommerce-page/

Quelle est la meilleure façon de s'y prendre? Merci pour toute aide! Cette question est un peu liée à - Comment modifier l'action woocommerce_before_cart

23
mikato

Vous pouvez utiliser la fonction: wc_get_page_id ('cart') pour obtenir l'ID de la page. Cette fonction utilisera la mise en page en tant que page 'panier' et non la limace. Cela signifie que cela continuera à fonctionner également lorsque vous configurerez une URL différente pour votre "panier" sur la page des paramètres. Cela fonctionne pour toutes sortes de pages spéciales de Woocommerce, telles que "Caisse", "Boutique", etc.

exemple:

if (wc_get_page_id( 'cart' ) == get_the_ID()) {
  // Do something.
}
18

Une autre façon de remplacer totalement le fichier cart.php est de copier:

woocommerce/templates/cart/cart.php to   
yourtheme/woocommerce/cart/cart.php

Ensuite, faites ce que vous avez besoin sur yourtheme/woocommerce/cart/cart.php

38
ken

Vous pouvez utiliser la balise conditionnelle is_cart () :

if (! is_cart() ) {
  // Do something.
}
8
PimPiet

WooCommerce propose plusieurs options pour modifier le panier et les pages de paiement. Voici les trois que je recommanderais:

Utiliser Balises conditionnelles WooCommerce

is_cart() et is_checkout() fonctions retournent la valeur true sur leur page. Exemple:

if ( is_cart() || is_checkout() ) {
    echo "This is the cart, or checkout page!";
}

Modifier le fichier modèle

Le fichier de modèle de panier principal se trouve à l'adresse wp-content/themes/{current-theme}/woocommerce/cart/cart.php

Le fichier principal de modèle de paiement se trouve à l'adresse wp-content/themes/{current-theme}/woocommerce/checkout/form-checkout.php

Pour les éditer, copiez-les d'abord dans votre thème enfant.

Utilisation wp-content/themes/{current-theme}/page-{slug}.php

page-{slug}.php est le deuxième modèle qui sera utilisé, après celui attribué manuellement via le tableau de bord WP).

Ceci est plus sûr que mes autres solutions, car si vous supprimez WooCommerce, mais oubliez de supprimer ce fichier, le code qu'il contient (qui peut dépendre des fonctions de WooCommerce) ne sera pas interrompu, car il n'est jamais appelé (sauf si vous avez une page avec limace {slug}).

Par exemple:

  • wp-content/themes/{current-theme}/page-cart.php
  • wp-content/themes/{current-theme}/page-checkout.php
3
ratskin

J'ai trouvé que cela fonctionne bien comme conditionnel dans page.php qui inclut le panier WooCommerce et les écrans de paiement.

!is_page(array('cart', 'checkout'))
2
mikato

J'ai utilisé le modèle page-checkout.php pour modifier l'en-tête de ma page de panier. Je l'ai renommé en page-cart.php dans mon/wp-content/themes/childtheme/woocommerce /. Cela vous donne plus de contrôle sur le HTML enveloppant, l'en-tête et le pied de page.

1
fryvisuals