Warenkorb Button austauschen

  • Hallo,
    Folgendes Problem:
    Wir bauen einen reinen Dienstleistungsshop auf. Für einige Produkte haben wir Preise, für andere nicht.
    Für die Produkte für die wir keine Preise haben soll statt der "In den Warenkorb" Button ein anderer Button erscheinen, mit "Angebot anfordern", der dann auf ein WSForm verlinkt ist.

    Hat jemand eine Idee, wie man das durchführen kann?

    Ich habe gelesen, dass es wohl eine If / else Abfrage geben soll. Keine Ahnung ob das stimmt und ob das so möglich ist. Evtl. gibt es da auch ein Plugin?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Danke. Hab ich mir angesehen.
    Das geht schon in die Richtige Richtung.
    Wenn ich das nutze werden aber entweder alle Preise angezeigt (auch die die keinen Preis haben sollen (0,00€)) oder alle ausgeblendet. Ich kann keine Differenzierung vornehmen auch nicht in der pro Version.

    Der Quote Button soll nur für Produkte angezeigt werden, wo kein Preis angegegeben wurde.

    Gibt es noch eine andere Lösung?

  • Wie gut sind denn deine PHP-Kenntnisse?

    Ich würde es folgendermaßen lösen:
    Du ergänzt ein Custom Field im Produkt (z.B. eine Checkbox) mit dem du festlegen kannst, ob das Produkt einen Preis und einen Warenkorb-Button haben soll oder einen "Angebot anfordern"-Button.

    Diese Checkbox kannst du dann z.B. im Template abfragen und abhängig davon den einen oder den anderen Button ausgeben.
    Alternativ zum Bearbeiten der Templates kannst du auch Hooks und Filter von Woocommerce verwenden (z.B. "woocommerce_is_purchasable" und "woocommerce_before_add_to_cart_button").

  • Hui Danke,
    meine PHP Kenntnisse sind ungefähr so gut, wie meine Ur-Oma mit einem Glasfaserkabel zurecht kommt :(
    Aber dein Tipp bringt mich erst einmal in eine kongrete Richtung. Muss mich einlesen und viel Probieren. Kannst Du das evtl. etwas näher ausführen, vielleicht mit einem Beispiel, an dem ich mich langhangeln kann?

  • Ich glaube, näher ausführen sprengt den Rahmen des Formus etwas.

    Aber ich kann die ein paar grobe Hinweise zum Einstieg geben :)

    1. Du brauchst einen Ort, an dem du eigenen Code ausführen kannst. Üblicherweise ist das entweder die functions.php deines Child-Themes (Wichtig: Nicht die Dateien des "normalen" Themes anpassen) oder eines eigenen Plugins.
    Beide Varianten unterscheiden sich eigentlich nur in Details und sind sonst gleichwertig.
    https://www.elmastudio.de/ein-wordpress-…-gehts-richtig/
    https://codex.wordpress.org/Writing_a_Plugin

    2. Jetzt brauchst du das Custom Field, mit dem du auswähslen kannst, welche Art von Produkt du hast. Wenn du eher wenig bis keine PHP-Kentnisse hast, würde ich dir das Plugin ACF empfehlen. Man kann das zwar auch händisch programmieren, ACF macht es aber wesentlich einfacher.
    https://www.advancedcustomfields.com/
    https://themeisle.com/blog/custom-fields-woocommerce/

    3. Anhand des Wertes des Custom Fields entfernst du dann den "Add-To-Cart"-Button mit dem entsprechenden Filter. Hier ist ein Fall beschrieben, der deinem recht ähnlich ist und an dem du dich orientieren kannst:
    https://stackoverflow.com/questions/1725…asable/48177212

    4. Jetzt musst du stattdessen deinen Button bzw. Link einfügen, der auf das Kontaktformular verlinkt. Dafür kannst du (zum Beispiel) den "woocommerce_before_add_to_cart_button"-Hook verwenden. Das sieht dann in etwas so aus:

    Code
    add_action( 'woocommerce_before_add_to_cart_button', 'wpde_before_add_to_cart_btn' );
    
    
    function wpde_before_add_to_cart_btn(){
     $markup = '<a class="wpde-button-class" href="https://dein-link.de">Angebot anfordern</a>';
     echo $markup;
    }

    5. Den Link musst du dann noch mit CSS ein bisschen hübsch machen, so dass er aussieht wie der "normale" Add-To-Cart-Button.

    Ganz wichtig bei all diesen Anpassungen: Mach auf jeden Fall regelmäßig Backups, bevor du etwas anfasst!

  • Vielen Dank für deine Ausführungen. Das ist mit Sicherheit ein machbarer Weg. Nur leider steige ich da nicht durch :D

    Ich habe gestern Abend den ganzen Abend probiert und bin auf eine andere Lösung gekommen.
    Ich habe 3 Hauptkategorien. Zu jeder Kategorie, habe ich eine Unterkategorie angelegt. Mit Elementor habe ich ein zusätzliches Template für ein Einzelprodukt angelegt, welches keinen Warenkorbbutton, sondern einen Button "Angebot anfordern" enthält.
    Dann habe ich die Produkte, die dafür in Frage kommen der Unterkategorie zugewiesen.
    Tataaaa :)

    Jetzt muss ich nur noch herausfinden, wie ich die Unterkategorie in der Kategorieansicht ausblende.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!