WooCommerce Preis ab statt von bis

 

In diesem Beitrag erfährst du, wie du bei variablen Produkten ein „ab“ vor dem Preis setzen kannst und das jetzige „von bis“ unterbindest.

Wenn du mit variablen Produkten arbeitest, werden dir die Preise im Shop standardmäßig als „von bis“-Variante angezeigt.
Beispiel: 100-200 €

Sofern du allerdings bei variablen Produkten in deinem Shop, ein „ab“ vor dem Preis haben möchtest, kannst du dass mit zwei möglichen Methoden tun.
Beispiel: ab 100 €

Die erste Methode gelingt dir mit einem kleinen PHP-Code, hierfür habe ich dir drei Varianten fertiggestellt. Die zweite Methode gelingt mit CSS-Befehlen.

In jedem Fall solltest du dafür ein Child-Theme aufsetzen, um bei kommenden Updates eigene Änderungen weiterhin zu behalten. Ein schönes Tutorial hierfür habe ich auf www.elmastudio.de gefunden.

Allerdings nutze ich für PHP-Codes statt dem Child-Theme, gerne das Code Snippets Plugin von Shea Bunge mit dem man kinderleicht seine PHP-Codes managen kann.
Für CSS-Befehle (ab WordPress Version 4.7) nutze ich gerne den WordPress eigenen Customizer, dort die Registerkarte „Zusätzliches CSS“.
Pfad: Design > Customizer > „Zusätzliches CSS“.

 

Produkt-Preis „ab:“

WooCommerce zeigt seit langem (Version 2.1) nicht mehr die geliebte „ab“-Variante an, stattdessen wird nur noch die „von – bis“-Variante unterstützt. 

Um das alte 2.0 Format mit dem „ab“ zurückzubekommen, ist für uns die Lösung von Gerhard Potgieter interessant, auch öffentlich auf github.com nachzulesen. Den bereich mit dem Sale Price habe ich herausgenommen, da ich diesen in der ersten Variante für unnötig halte.

Für die Variante mit dem „ab” vor dem Preis statt der „von – bis“-Variante, fügst du den folgenden Code, einfach in die functions.php deines Child-Themes ein oder nutzt dafür das oben genannte Code Snippets Plugin.

Die Codes betreffen nur Variable Produkte.

Produkt-Preis „ab:“ via CSS

Das „ab:“ kannst du auch mit CSS erzeugen. Allerdings macht diese Variante nur dann Sinn, wenn vor jedem Preis ein „ab:“ gewollt ist. Hierfür wird der CSS-Klasse ein :before angefügt. Mit dem Element content kann man nun vor dem Preis das „ab:“ erzeugen.

Um das ganze mit CSS zu realisieren fügst du den folgenden Code, einfach in die style.css deines Child-Themes ein oder nutzt dafür den oben genannten WordPress eigenen Customizer.

oder

Produkt-Preis „ab:“ und „statt:“ durchgestrichen

Eine weitere abgeänderte Version, die mir persönlich besser als die erste gefällt ist die folgende, mit dem „statt“ nach dem Regulären-Preis bei Angebotspreisen.

Dieser Code streicht den Regulären-Preis durch und setzt diesen hinter den Angebotspreis. Hierbei nimmt der Code den maximalsten Wert aus allen Regulären-Preisen und den minimalsten Wert aus allen Angebotspreisen.
Beispiel: ab: 100 € statt 300 €

Produkt-Preis „statt:“ und „jetzt ab:“

Eine dritte Möglichkeit und die letzte in diesem Beitrag ist die Version „statt“ und „jetzt ab:“. Die ähnelt dem oberen, ist aber nur noch Geschmackssache.

Wenn du den maximalsten Wert aus allen Regulären-Preisen, in den der Variante ändern möchtest, kannst du diesen im Code ab // Sale Price steuern, indem du den wc_price( $prices[1] ) Wert in wc_price( $prices[0] ) änderst.

Wenn du Fragen oder Anmerkungen zu diesem Beitrag hast, lass es mich in einem Kommentar wissen. Bis bald!

Nächster Beitrag

Woocommerce Shortcodes oder Shortcode Plugin

  1. Super DANKE, hab lange gesucht, es gibt auch Plugins, die Darstellungen ändern können, aber dann nicht mit allen Themes funktionieren, die erste Variante läuft prima ;o)

  2. Orcun

    Sehr gut beschrieben, habe schon länger nach so etwas gesucht. Weiter so 🙂

  3. Horst

    Hallo,

    große klasse. Danach habe ich schon lange gesucht und ich habe es sogar hinbekommen 🙂

    Aber eine Frage habe ich noch.
    Ich möchte gerne den Einheitspreis mit ab ausweisen statt dem kompletten von bis der Variablen. Wie mache ich das denn wohl?

    Viele Grüße

  4. Horst

    Hi. Danke. Das sehe ich mir mal an.

    Ich nutze Woocommerce German Market. Da habe ich die Möglichkeit einen Preis pro Einheit, also einen Basispreis, anzugeben. Ansich würde es mir schon reichen, wenn ich den irgendwie ausweisen könnte.

    • Mit Woocommerce German Market habe ich bisher leider noch keine Erfahrungen gemacht. Dennoch denke ich, das man dass im Produkt selber im Feld „Produktdaten“ einstellen kann – unter dem Reiter „Preis pro Einheit“. Ob der dann ausgewiesen oder angezeigt wird, kann ich dir nicht genau sagen.

  5. Das Plugin ersetzt den kompletten Preis, ich glaube er meint, dass die Information extra zu sehen ist, also so in der Art.

    Saftflasche
    2,oo Euro
    (1 Euro/Liter)

    Oder hab ich das falsch verstanden?

  6. Mhh ja klar sorry ich brauche ja bloß „(1 Euro/Liter)“ da reinschreiben…. mein Fehler ;o)

  7. Horst

    Ja genau.

    Bei mir jetzt:

    ab: 12,00 € 1 Euro/Liter

    Ich möchte aber dort stehen haben:

    ab 1 Euro/Liter

    Also der eigentliche Preis soll komplett weg.

    Ich weiß, es ist ne Krücke, aber ich weiß mir nicht anders zu helfen.

    LG

    • Naja es gibt eine Lösung mit einem CSS-Befehl. span.amount {display: none;}den mal in deine CSS-Datei einbinden oder falls du mit einem Child arbeitest dort einfügen.Ansonsten bietet das JetPack Plugin ein Modul an, der dann unter Design > CSS bearbeiten zu finden ist, welches ich gerne bevorzuge… Dort einfügen und der Preis verschwindet 😉

  8. Horst

    cool. Danke 🙂

    Mit nem Child würde ich gerne arbeiten, aber ich schnalle das nicht 😉

  9. Lena

    Jippy! Es hat geklappt! Und das obwohl ich kein Plan von php habe 😀 Danke!

  10. Peter

    Prima… das funktioniert perfekt.
    Eigentlich habe ich aber nach einer Möglichkeit gesucht, den Versandpreis maximal zu deckeln, so wie hier:
    https://gist.github.com/ChromeOrange/56ce4571836429af330d
    beschrieben geht es leider nicht…
    Hat jemand eine Idee wie das gelöst werden könnte?

  11. Peter

    Hallo Adem,
    danke für die schnelle Antwort. Habe ich gerade entsprechend deiner Anleitung versucht, leider ging es nicht auf deutsch…
    aber unabhängig von der Sprache, scheint es mir mit der Erweiterung nicht möglich Versandkosten so zu steuern, das z.B.
    ein produkt zu je ein Euro versendet wird und, wenn der Kunde 5 oder mehr des jeweiligen produkts bestellt, die Versandkosten 5 Euro nicht überschreiten.
    Also auch bei 20 Produkten lediglich die 5 Euro Versandkosten anfallen.
    Eine Totale Deckelung sozusagen…
    Ratlos
    LG. P

  12. mic

    Hallo,

    vielen Dank für die Anleitung!
    Tatsächlich wird auf meiner Website (Virtue-Theme mit WooCommerce) „von … bis“ durch „ab:“ ersetzt. Lieber wäre es mir, wenn hinter dem ab kein : (Doppelpunkt) steht.
    Dazu habe ich dann bei sprintf( __( ‚ab: %1$s‘, ‚woocommerce‘ ) den Doppelpunkt hinter „ab“ gelöscht. Resultat: Der Preis wird doppelt angezeigt, einmal durchgestrichen.
    Wie kann ich das Problem lösen.

    Gruß
    mic

  13. Ina C

    Hallo Adem,
    bei mir klappt es auch … fast.
    Bei mir steht jetzt immer noch:

    ab: €39,99-ab: €59,99

    Wie bekomme ich den Teil „-ab: €59,99“ weg?

    Danke im Voraus!

  14. Christian

    Hallo, tolle Sache. Kann man es auch so gestalten? -> „Ab 10.00 bis 15.00 EURO“ Schöne Grüße Christian

  15. falk

    Hallo,

    super funktioniert!

    Allerdings:

    ab:183,00 € – 441,00 €

    Kann ich den 2. Preis irgendwie entfernen?

    Danke

Schreibe einen Kommentar

Präsentiert von WordPress & Theme erstellt von Anders Norén