Zum Inhalt springen
11. Juli 2026·4 Min. Lesezeit

Nachnahme in WooCommerce nur für bestimmte Landkreise aktivieren

Praktische Anleitung: Sie beschränken die Nachnahme-Zahlung (Cash on Delivery) in WooCommerce nach Landkreis, mit Versandzonen oder einem einfachen Snippet, ganz ohne unnötige Plugins.

Nachnahme (Cash on Delivery) verkauft sich in Rumänien gut, aber Sie möchten sie nicht überall anbieten. Vielleicht deckt Ihr Kurierdienst Nachnahme nur in bestimmten Regionen ab, vielleicht haben Sie zu viele verweigerte Pakete in manchen Landkreisen, oder Sie möchten Nachnahme nur lokal anbieten und im restlichen Land Online-Zahlung. Die gute Nachricht: WooCommerce erlaubt genau das.

Das Problem ist, dass WooCommerce keinen Schalter "Nachnahme in Cluj und Timiș akzeptieren, aber nicht im Rest des Landes" hat. Die Zahlungsmethode Cash on Delivery ist mit den Versandmethoden verknüpft, nicht direkt mit dem Landkreis. Sobald Sie das verstanden haben, ist der Rest einfach. Ich zeige Ihnen zwei saubere Wege: einen ohne Code, über die Versandzonen, und einen mit einem kleinen Snippet, das nach dem Landkreis aus der Adresse filtert. Wählen Sie den, der zu Ihrem Shop passt.

Warum Sie "Nachnahme pro Landkreis" nicht direkt anhaken können

In WooCommerce hat das Gateway Cash on Delivery (Nachnahme bei Lieferung) nur eine relevante Einstellung zur Einschränkung: "Aktivieren für Versandmethoden". Es gibt kein Feld für den Landkreis in den Zahlungseinstellungen.

Das bedeutet, die eigentliche Logik lautet:

  • Der Landkreis des Kunden bestimmt, in welche Versandzone die Bestellung fällt.
  • Die Versandzone bestimmt, welche Versandmethoden der Kunde sieht.
  • Die Versandmethode bestimmt, ob Nachnahme erscheint oder nicht.

Sie "aktivieren" Nachnahme also nicht direkt pro Landkreis — Sie bauen Zonen nach Landkreisen und verknüpfen Nachnahme mit den Methoden in diesen Zonen. Klingt umständlich, ist aber stabil, hängt von keinem Plugin ab und geht bei Updates nicht kaputt. Für RO ist wichtig, dass unter Einstellungen > Allgemein das Adressfeld den Landkreis (state) verlangt, sonst hat die Filterung keine Grundlage.

Methode 1 (ohne Code): Versandzonen + "Aktivieren für Versandmethoden"

Der sauberste Ansatz, empfohlen, wenn Sie keinen Code anfassen möchten.

  • Gehen Sie zu WooCommerce > Einstellungen > Versand > Versandzonen.
  • Erstellen Sie eine Zone "Nachnahme erlaubt" und fügen Sie ihr nur die Landkreise hinzu, in denen Sie Nachnahme akzeptieren (z. B. Cluj, Timiș, Ilfov, Bukarest). WooCommerce lässt Sie einzelne Bundesländer/Landkreise in der Region der Zone hinzufügen.
  • Fügen Sie in dieser Zone die Versandmethode hinzu, mit der Nachnahme funktionieren soll (z. B. "Kurierversand").
  • Erstellen Sie eine zweite Zone (oder verwenden Sie "Nicht abgedeckte Standorte") für den Rest des Landes, mit denselben Versandmethoden, aber dort werden Sie Nachnahme blockieren.
  • Gehen Sie zu WooCommerce > Einstellungen > Zahlungen > Cash on Delivery > "Aktivieren für Versandmethoden" und wählen Sie NUR die Methode aus der Zone "Nachnahme erlaubt".

Ergebnis: Der Kunde aus Cluj sieht Nachnahme, der aus Vaslui nicht. Ohne Code, ohne Plugin.

Methode 2 (mit Code): ein Snippet, das nach Landkreis filtert

Wenn die Zonen Ihren Versand zu sehr verkomplizieren (Sie haben bereits Tarife nach Zonen und möchten sie nicht verdoppeln), können Sie Nachnahme direkt anhand des Landkreises aus der Adresse ausblenden. Fügen Sie das Snippet in die functions.php des Child-Themes oder in ein Snippet-Plugin (Code Snippets) ein:

```php

add_filter( 'woocommerce_available_payment_gateways', 'mpo_ramburs_pe_judete' );

function mpo_ramburs_pe_judete( $gateways ) {

if ( is_admin() && ! wp_doing_ajax() ) {

return $gateways;

}

// Die Landkreise, in denen Sie Nachnahme AKZEPTIEREN (WooCommerce-Codes)

$judete_permise = array( 'CJ', 'TM', 'IF', 'B' );

$judet = WC()->customer ? WC()->customer->get_shipping_state() : '';

if ( ! in_array( $judet, $judete_permise, true ) && isset( $gateways['cod'] ) ) {

unset( $gateways['cod'] );

}

return $gateways;

}

```

Die Codes sind die von WooCommerce: Cluj = CJ, Timiș = TM, Ilfov = IF, Bukarest = B, Iași = IS, Constanța = CT usw. Sie ändern die Liste und fertig. Wenn Sie es umgekehrt möchten (Nachnahme überall, AUSSER einigen Landkreisen), setzen Sie die verbotenen Landkreise ins Array und kehren die Bedingung mit in_array um.

Testen und häufige Fallstricke

Bevor Sie sich freuen, dass es funktioniert, prüfen Sie:

  • Testen Sie mit echten Adressen aus verschiedenen Landkreisen. Legen Sie ein Produkt in den Warenkorb, gehen Sie zur Kasse und ändern Sie den Versand-Landkreis — die Zahlungsmethoden aktualisieren sich per AJAX, Sie sollten also sehen, wie Nachnahme live erscheint und verschwindet.
  • Achten Sie auf Rechnungs- vs. Lieferlandkreis. Das obige Snippet schaut auf den Lieferlandkreis (shipping_state). Wenn Ihr Shop nur die Rechnungsadresse verwendet, ändern Sie zu get_billing_state().
  • Der Cache kann Sie täuschen. Wenn Sie ein Cache-Plugin oder CDN verwenden, leeren Sie es nach Änderungen, sonst sehen Sie die alte Version der Kasse.
  • Vergessen Sie nicht die Nachnahmegebühr. Die Einschränkung nach Landkreis regelt, wer bar zahlen kann, aber wenn Sie eine Nachnahmegebühr hinzufügen möchten, ist das eine separate Einstellung (Gebühr pro Zahlungsmethode oder per Snippet mit woocommerce_cart_calculate_fees).

Testen Sie immer in einer Testumgebung, bevor Sie live gehen, besonders wenn Sie die functions.php anfassen.

Wann sich Hilfe lohnt (und wie wir arbeiten)

Wenn Sie nur ein einfaches Regelwerk haben — ein paar Landkreise mit Nachnahme, der Rest Online-Zahlung — lösen Sie das in wenigen Minuten selbst mit den obigen Methoden. Hilfe lohnt sich, wenn die Logik komplizierter wird: Nachnahme nur ab einem bestimmten Wert, eine andere Regel nach Produktkategorien, plus eine variable Nachnahmegebühr je Zone. Dort spart ein Plugin für bedingte Zahlungen oder maßgeschneiderter Code Stunden und verhindert verlorene Bestellungen durch sich widersprechende Regeln.

Bei MPO Web Studio bauen und betreuen wir WooCommerce-Shops remote, für Kunden im ganzen Land. Wir richten Ihnen die Zonen, die Nachnahme nach Landkreis und die Gebühren korrekt ein, oder zeigen Ihnen an einer Demo, wie es aussehen würde, bevor Sie irgendetwas bezahlen. Wenn Sie Unterstützung möchten, schreiben Sie uns auf WhatsApp, und wir sagen Ihnen ehrlich, ob es etwas ist, das Sie selbst in 10 Minuten erledigen, oder ob sich ein Eingriff wirklich lohnt.

Häufig gestellte Fragen

Kann ich Nachnahme im ganzen Land akzeptieren, außer in ein paar Landkreisen?+

Ja. Mit dem Snippet ist es einfacher: Sie setzen die VERBOTENEN Landkreise ins Array und kehren die Bedingung um — wenn der Landkreis des Kunden in der Liste steht, entfernen Sie das Gateway cod. Mit den Zonen machen Sie es umgekehrt: Sie legen die Ausnahmen in eine separate Zone ohne die mit Nachnahme verknüpfte Versandmethode.

Welche Landkreis-Codes verwendet WooCommerce für Rumänien?+

Kurze Codes: Cluj CJ, Timiș TM, Ilfov IF, Bukarest B, Iași IS, Constanța CT, Brașov BV, Prahova PH, Bihor BH und so weiter. Die vollständige Liste finden Sie in der RO-Bundesländerdatei von WooCommerce oder indem Sie den Wert im Landkreis-Auswahlfeld an der Kasse betrachten.

Schaut die Filterung auf die Rechnungs- oder die Lieferadresse?+

Das hängt davon ab, was Sie wählen. Im Snippet verwendet get_shipping_state() die Lieferadresse, get_billing_state() die Rechnungsadresse. Für Nachnahme ist die Lieferadresse logisch, denn dorthin geht das Paket. Wählen Sie je nachdem, welche Felder Sie an der Kasse abfragen.

Braucht man dafür ein Plugin?+

Für einfache Fälle nicht. Die Methode mit Versandzonen ist vollständig nativ in WooCommerce, und das Snippet erfordert nur Zugriff auf die functions.php oder ein kostenloses Snippet-Plugin. Ein dediziertes Plugin für bedingte Zahlungen lohnt sich erst, wenn Sie kombinierte Regeln haben (Wert + Kategorie + Landkreis).

Warum erscheint Nachnahme gar nicht, obwohl ich alles eingerichtet habe?+

Am häufigsten: Der Kassen-Cache wurde nicht geleert, der Landkreis des Kunden stimmt nicht genau mit dem Code in der Liste überein, oder Sie haben das Landkreisfeld (state) in den Einstellungen deaktiviert gelassen. Leeren Sie den Cache und prüfen Sie an der Kasse, ob sich die Zahlungsmethode beim Ändern des Landkreises aktualisiert.

Kostenloser Leitfaden

7 Fehler, die Kunden von Ihrer Website vertreiben

Geben Sie Ihre E-Mail-Adresse ein und Sie erhalten den Leitfaden sofort hier. Kein Spam.

Mit dem Absenden akzeptieren Sie die Datenschutzerklärung.
MDas MPO-TeamWir antworten persönlich

Möchten Sie sehen, wie die Website Ihres Unternehmens aussehen könnte?

Schreiben Sie uns auf WhatsApp und wir erstellen Ihnen kostenlos eine Demo-Website mit dem Namen Ihres Unternehmens. Erst ansehen, dann entscheiden — völlig unverbindlich.

Kostenlose Demo-Website anfragenNormalerweise antworten wir innerhalb weniger Minuten