Wie füge ich in WooCommerce einen Preiszusatz (price suffix) hinzu?

Wenn Sie in WooCommerce den Preis um einen einfachen Zusatz erweitern wollen, ist dies ganz einfach zu lösen. Um einen Zusatz wie „pro Person“ zum Preis in WooCommerce hinzuzufügen, können Sie die folgenden Schritte befolgen:

Öffnen Sie die functions.php-Datei Ihres aktuellen WordPress-Themas, um dort den Code hinzuzufügen. Dies kann über das WordPress-Dashboard unter „Design > Theme Editor“ erfolgen. Oder Sie laden per FTP die functions.php-Datei herunter und bearbeiten diese in einem anderen Editor.

Version 1 – Alle Produkte mit gleichem Preiszusatz

Fügen Sie den folgenden Code in ein, um den Zusatz „pro Person“ an alle Preise anzufügen:

add_filter( 'woocommerce_get_price_html', 'change_product_price_html', 10, 2 );
function change_product_price_html( $price_html, $product ) {
    $price_html = '' . $product->get_price() . ' pro Person';
    return $price_html;
}

In diesem Beispiel wird „pro Person“ am Ende des Preises bei allen Produkten hinzugefügt. Sie können „pro Person“ auch in alle anderen Zusätze verändern.

Version 2 – Ausgewählte Produkte mit Preiszusatz

Um den Zusatz „pro Person“ nur bei einzelnen Produkten anzuzeigen, können Sie eine Bedingung hinzufügen, die prüft, ob das Produkt diese Anforderung erfüllt. Hier ist eine angepasste Funktion, die dies umsetzt:

add_filter( 'woocommerce_get_price_html', 'change_product_price_html', 10, 2 );
function change_product_price_html( $price_html, $product ) {
    // Überprüfen, ob das Produkt die Bedingung erfüllt
    if ( $product->get_id() === 123 ) { // Hier ersetzen Sie "123" durch die ID des betreffenden Produkts.
        $price_html = '' . $product->get_price() . ' pro Person';
    }
    return $price_html;
}

In diesem Beispiel wird „pro Person“ nur dann am Ende des Preises hinzugefügt, wenn das Produkt die ID „123“ hat. Geben Sie statt 123 die ID Ihres Produktes an, bei dem diese Funktion angewendet werden soll.

Version 3 – Produkte einer bestimmten Kategorie mit Preiszusatz

Wenn Sie den Zusatz „pro Person“ nur bei Produkten einer bestimmten Kategorie anzeigen möchten, können Sie den folgenden Code verwenden:

add_filter( 'woocommerce_get_price_html', 'change_product_price_html', 10, 2 );
function change_product_price_html( $price_html, $product ) {
    // Überprüfen, ob das Produkt zur Kategorie "Meine Kategorie" gehört
    if ( has_term( 'Meine Kategorie', 'product_cat', $product->get_id() ) ) {
        $price_html = '' . $product->get_price() . ' pro Person';
    }
    return $price_html;
}

In diesem Beispiel wird „pro Person“ nur dann am Ende des Preises hinzugefügt, wenn das Produkt zur Kategorie „Meine Kategorie“ gehört. Sie können den Namen der Kategorie durch den Namen Ihrer gewünschten Kategorie ersetzen.

Haben Sie die Anpassungen an Ihrer functions.php-Datei durchgeführt speichern Sie diese im Theme Editor oder laden Sie Ihre Änderungen per FTP wieder auf Ihren Server.

Hinweis: Wenn Sie bereits ein Child-Theme erstellt haben, fügen Sie den Code in die functions.php-Datei des Child-Themes ein, um sicherzustellen, dass die Änderungen nicht beim nächsten Update des Haupt-Themas überschrieben werden.

2 Kommentare zu “Wie füge ich in WooCommerce einen Preiszusatz (price suffix) hinzu?

  1. Dani sagt:

    Hallo,
    vielen Dank für den großartigen Tipp! Das hat mich gerettet 🙂
    Wenn ich das jetzt noch innerhalb einer Kategorie auf die Variationen-Preise anwenden möchte, was muss ich denn da noch wo ergänzen? Ich bin leider nicht fit in php 🙁

    • Joerg Martin sagt:

      Hallo Dani, vielen Dank für das Feedback.

      Um einen Preiszusatz für spezifische Produktvarianten in WooCommerce hinzuzufügen, können Sie den folgenden Code versuchen:

      add_filter('woocommerce_available_variation', 'custom_price_suffix_for_variations', 10, 3);
      function custom_price_suffix_for_variations($data, $product, $variation) {
      // Überprüfen, ob das Produkt zur Kategorie "Meine Kategorie" gehört
      if (has_term('Meine Kategorie', 'product_cat', $variation->get_id())) {
      $data['price_html'] .= ' pro Person';
      }
      return $data;
      }

      Dieser Code nutzt den WooCommerce-Filter woocommerce_available_variation, der speziell für Produktvarianten gedacht ist. Der Filter modifiziert die Preisinformationen für jede verfügbare Variante, sodass der Preiszusatz nur für die Varianten hinzugefügt wird, die zur angegebenen Kategorie gehören.

Haben Sie Fragen oder Feedback? Schreiben Sie hier:

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.