Afficher le widget minicart Woocommerce dans la barre latérale de la page de paiement? Et, comment sécuriser cette mise à jour en surchargeant le widget?
Avant de poser la question ici, je tiens à dire que j’ai déjà posé la question dans stackoverflow et le forum wordpress, mais que je n’ai pas eu de réponse. Alors finalement je suis venu ici.
J'ai installé le plugin woocommerce dans mon wordpress 3.5.2. Tout va bien avec woocommerce. J'ai créé un dossier appelé woocommerce et collé tous les fichiers contenus dans les fichiers de modèle woocommerce dans mon dossier de modèles. Mais il y a quelque chose sur lequel je suis totalement collé. Dans la page de paiement de woocommerce, je souhaite afficher les totaux du panier dans la barre latérale. Mais cela ne se voit pas là. Dans d'autres pages, cela fonctionne bien. Alors quelqu'un peut-il me dire ce qui ne va pas ici? Toute aide et suggestions seront vraiment appréciées. Merci
Mettre à jour
Voici la capture d'écran du widget Panier woocommerce dans la barre latérale, qui peut être affichée dans toutes les pages sauf la page de paiement.
Modifier:
De plus, comment rendre cette modification sécurisée contre les mises à jour?
Le widget Panier ne s'affiche pas car il est configuré pour ne pas s'afficher sur le cart and checkout page
. Si vous voulez changer cela, regardez class-wc-widget-cart.php
, vous trouverez la ligne suivante:
if ( is_cart() || is_checkout() ) return;
Changez le en:
if ( is_cart() ) return;
Pour afficher le widget sur la page de paiement.
Remarque: Si cela est fait dans le dossier plugins/woocommerce/classes/widgets, cela sera écrasé lors des mises à jour.
Modifier: informations supplémentaires sur la substitution du widget et la mise à jour sécurisée des modifications
Source: http://www.skyverge.com/blog/overriddin-woocommerce-widgets/ (Option 5)
- Dupliquer
class-wc-widget-cart.php
; - Copiez le doublon dans un dossier de votre thème, par exemple:
cust_woo_widgets
- Apportez les modifications ci-dessus au fichier.
En outre, apportez les modifications suivantes au widget en double:
class Custom_WooCommerce_Widget_Cart extends WooCommerce_Widget_Cart { function widget( $args, $instance ) { // copy the widget function from woocommerce/classes/widgets/class-wc-widget-cart.php } }
Mettez le code suivant dans votre
functions.php
:add_action( 'widgets_init', 'override_woocommerce_widgets', 15 ); function override_woocommerce_widgets() { if ( class_exists( 'WooCommerce_Widget_Cart' ) ) { unregister_widget( 'WooCommerce_Widget_Cart' ); include_once( 'cust_woo_widgets/widget-cart.php' ); register_widget( 'Custom_WooCommerce_Widget_Cart' ); } }
Remarque: voir la source pour plus d'informations. non testé.
J'ai ajouté le code suivant à mon functions.php et maintenant le panier est affiché sur toutes mes pages.
add_filter( 'woocommerce_widget_cart_is_hidden', 'always_show_cart', 40, 0 );
function always_show_cart() {
return false;
}
Il n'est pas recommandé de modifier le fichier principal du plug-in, car vos modifications seront perdues lors de la mise à jour. Utilisez le code suivant pour afficher le widget Panier dans la barre latérale de la page de paiement.
add_filter('woocommerce_widget_cart_is_hidden', 'show_cart_on_checkout');
function show_cart_on_checkout()
{
return is_cart();
}