1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

WP 5.x Warenkorb Button austauschen

Dieses Thema im Forum "Konfiguration" wurde erstellt von damogless, 25. August 2021.

  1. damogless

    damogless Member

    Registriert seit:
    25. August 2021
    Beiträge:
    8
    Zustimmungen:
    0
    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?
     
  2. Henk1060

    Henk1060 Well-Known Member

    Registriert seit:
    4. September 2014
    Beiträge:
    3.927
    Zustimmungen:
    349
    du kannst ja mal nach
    WOOCOMMERCE REQUEST A QUOTE
    suchen

    ob es da was kostenlos gibt ist eine andere frage.
     
  3. damogless

    damogless Member

    Registriert seit:
    25. August 2021
    Beiträge:
    8
    Zustimmungen:
    0
    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?
     
  4. danielgoehr

    danielgoehr Well-Known Member

    Registriert seit:
    13. Juli 2016
    Beiträge:
    2.674
    Zustimmungen:
    128
    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").
     
  5. damogless

    damogless Member

    Registriert seit:
    25. August 2021
    Beiträge:
    8
    Zustimmungen:
    0
    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?
     
  6. danielgoehr

    danielgoehr Well-Known Member

    Registriert seit:
    13. Juli 2016
    Beiträge:
    2.674
    Zustimmungen:
    128
    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-child-theme-anlegen-so-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/17259052/modify-woocommerce-is-purchasable/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:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    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!
     
    damogless gefällt das.
  7. damogless

    damogless Member

    Registriert seit:
    25. August 2021
    Beiträge:
    8
    Zustimmungen:
    0
    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.
     
  8. danielgoehr

    danielgoehr Well-Known Member

    Registriert seit:
    13. Juli 2016
    Beiträge:
    2.674
    Zustimmungen:
    128
    Klingt auf jeden Fall nach einem kreativen Workaround :)

    Die Unterkategorien kannst du notfalls wahrscheinlich einfach per CSS ausblenden.
     
  9. damogless

    damogless Member

    Registriert seit:
    25. August 2021
    Beiträge:
    8
    Zustimmungen:
    0
    Danke noch einmal für Deine Hilfe :)
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden