it-swarm.com.de

Woocommerce-Minicart-Widget in der Seitenleiste der Checkout-Seite anzeigen? Und wie kann dieses Update durch Überschreiben des Widgets gesichert werden?

Bevor ich hier eine Frage stelle, möchte ich sagen, dass ich die Frage bereits im Stackoverflow- und WordPress-Forum gestellt habe, aber keine Antwort bekommen habe. Also bin ich endlich hierher gekommen.

Ich habe das woocommerce Plugin in meinem WordPress 3.5.2 installiert. Mit Woocommerce ist alles in Ordnung. Ich habe einen Ordner namens woocommerce erstellt und alle Dateien in die woocommerce-Vorlagendateien in meinem Vorlagenordner eingefügt. Aber es gibt etwas, woran ich total festgefahren bin. Auf der Woocommerce-Checkout-Seite möchte ich die Warenkorbsummen in der Seitenleiste anzeigen. Aber es wird dort nicht gezeigt. Auf anderen Seiten funktioniert es gut. Kann mir jemand bitte sagen, was hier falsch ist? Jede Hilfe und Anregungen wird sehr geschätzt. Vielen Dank

Aktualisieren

Hier ist der Screenshot für das Woocommerce-Warenkorb-Widget in der Seitenleiste, der auf allen Seiten außer der Checkout-Seite angezeigt werden kann.

enter image description here

Bearbeiten:
Wie kann diese Änderung zusätzlich vor Updates geschützt werden?

3
NewUser

Das Warenkorb-Widget wird nicht angezeigt, da es so konfiguriert ist, dass es nicht im cart and checkout page angezeigt wird. Wenn Sie das ändern wollen, schauen Sie sich class-wc-widget-cart.php an, dort finden Sie die folgende Zeile:

if ( is_cart() || is_checkout() ) return;  

Ändern Sie es in:

if ( is_cart() ) return;  

So zeigen Sie das Widget auf der Checkout-Seite an.

Hinweis: Dies wird bei Updates überschrieben, wenn dies im Ordner plugins/woocommerce/classes/widgets erfolgt.


Bearbeiten: Zusätzliche Informationen zum Überschreiben des Widgets und zum sicheren Aktualisieren von Änderungen
Quelle: http://www.skyverge.com/blog/overriddin-woocommerce-widgets/ (Option 5)

  1. class-wc-widget-cart.php duplizieren;
  2. Kopieren Sie das Duplikat in einen Ordner in Ihrem Design, zum Beispiel: cust_woo_widgets
  3. Nehmen Sie die obigen Änderungen an der Datei vor.
  4. Nehmen Sie außerdem die folgende Änderung am Widget-Duplikat vor:

    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
      }
    }
    
  5. Fügen Sie folgenden Code in Ihren functions.php ein:

    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' );
      } 
    }
    

Hinweis: Weitere Informationen finden Sie in der Quelle. ungetestet.

6
Nicolai

Ich habe meinen functions.php den folgenden Code hinzugefügt und jetzt wird der Einkaufswagen auf allen meinen Seiten angezeigt.

add_filter( 'woocommerce_widget_cart_is_hidden', 'always_show_cart', 40, 0 );
function always_show_cart() {
    return false;
}
1
Theunis

Es wird nicht empfohlen, die Kerndatei des Plugins zu ändern, da Ihre Änderungen beim Update verloren gehen. Verwenden Sie besser den folgenden Code, um das Warenkorb-Widget auf der Checkout-Seite in der Seitenleiste anzuzeigen

add_filter('woocommerce_widget_cart_is_hidden', 'show_cart_on_checkout');

    function show_cart_on_checkout()
    {
        return is_cart();
    }
0
mubashir