Preise und Checkout-Funktionen im Woocommerce ausblenden

17

Ich weiß, dass diese Frage zu weit gefasst ist, aber ich suche nach einer Richtung. Mein Kunde hat einen Woocommerce-Shop mit 30-40 Produkten. Aus irgendeinem Grund möchten sie nicht mehr online verkaufen, sondern die Produktseiten, Informationen usw. auf ihrer Website behalten.

Gibt es eine Möglichkeit, mithilfe von Hooks oder auf andere Weise Dinge wie Preise zu verbergen, Warenkorbknöpfe hinzuzufügen usw. im Woocommerce? Oder sollte ich einfach die PHP-Vorlagendateien bearbeiten?

Meilen
quelle

Antworten:

23

Zum Glück hat Woocommerce viele Haken, dies entfernt Preise und Knöpfe:

remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );

Sie können darin graben content-product.phpund content-single-product.phpwenn Sie mehr Sachen entfernen müssen.

Ich kann mir vorstellen, dass es mehr als nur die Preise / Schaltflächen gibt, die Sie ausblenden / entfernen möchten (wie Seiten / Funktionen). Dieses Tutorial gibt Ihnen einige Hinweise

Ewout
quelle
Habe ich Recht, wenn ich denke, dass diese Hooks in functions.php eingefügt werden müssen? Wenn ja, gibt es einen bestimmten Abschnitt, in den ich sie einfügen muss? Wenn sie funktionieren, ist die Funktionalität des Einkaufswagens wahrscheinlich nicht mehr sichtbar, abgesehen von einigem Styling, ist das richtig?
James
1
Ja, Sie können sie in die Datei functions.php einfügen, und es spielt keine Rolle, wo Sie sie in eine andere Funktion einfügen. Normalerweise ist der gesamte Weg am Ende der Datei am sichersten, solange Sie sie nicht nach dem letzten platzieren ?>. Dadurch wird die Warenkorbseite nicht entfernt, es wird jedoch die Möglichkeit ausgeschlossen, dem Warenkorb etwas hinzuzufügen. Wenn Sie die Warenkorbseite nicht überall mögen, sollten Sie relativ sicher sein.
Ewout
Es klappt. Aber das ist merkwürdig. Nachdem Sie dies angewendet haben, werden die Produktbilder nicht mehr angezeigt. Es zeigt eine leere Stelle für ihren Standort, und wenn ich mit der Maus über sie gehe und sie anklicke, zeigen sie mir das richtige Bild. Hast du eine Idee, warum das passiert?
Brethlosze
13

Wenn Sie den obigen Code erweitern (danke an Ewout), werden mit dem folgenden Code alle Preise und "In den Warenkorb" -Knöpfe für alle Woocommerce-Produkte entfernt und es wird erklärt, warum. Ich brauchte den Code für eine Website, die Direktvertriebsprodukte anbietet, und um deren Regeln einzuhalten, kann ich der Öffentlichkeit keine Preise anzeigen.

Fügen Sie den Filter zur Datei functions.php Ihres Themas hinzu.

    add_filter('woocommerce_get_price_html','members_only_price');

    function members_only_price($price){

if(is_user_logged_in() ){
    return $price;
}

else {
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
    return 'Only <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Registered Users</a> are able to view pricing.';
      }

}
Angela
quelle
Das ist merkwürdig. Nachdem Sie dies angewendet haben, werden die Produktbilder nicht mehr angezeigt. Es zeigt eine leere Stelle für ihren Standort, und wenn ich mit der Maus über sie gehe und sie anklicke, zeigen sie mir das richtige Bild. Hast du eine Idee, warum das passiert?
Brethlosze
Dieser Code funktioniert nicht in WooCommerce v 3.2.1:-)
Steve
1
add_filter( 'woocommerce_is_purchasable', '__return_false' );
add_filter( 'woocommerce_get_price_html', '__return_empty_string' );

Dadurch wird das Auschecken vollständig verhindert und alle Preise werden ausgeblendet, indem:

  • Alles Produkt nicht mehr käuflich machen (Zeile 1)
  • Preis HTML leeren (Zeile 2)
Nabil Kadimi
quelle