Start Wordpress Plugins E-Commerce Gravity Forms SWISS QR-Rechnung für Gravity PDF

Gravity Forms SWISS QR-Rechnung für Gravity PDF

0
Gravity Forms SWISS QR-Rechnung für Gravity PDF

Gravity erstellt eine Schweizer QR-Rechnung für Gravity PDF – eine echte QR-Rechnung, kein QR-Code auf einer Seite

Fügt dem von Ihrem Formular bereits erstellten PDF eine vollständige Swiss QR-Rechnung hinzu: den Zahlteil und die Quittung, 210 × 105 mm an der unteren Schnittkante, mit dem Swiss QR Code genau 46 × 46 mm und dem Schweizer Kreuz in der Mitte. Ihr Kunde scannt es mit einer beliebigen Banking-App oder schneidet es ab und gibt es am Schalter ab.

Gebaut nach dem Umsetzungsrichtlinien QR-Rechnung Version 2.4, in Kraft ab 14. November 2026 – die Version, mit der die meisten Implementierungen noch nicht Schritt gehalten haben. Und anhand der eigenen Arbeitsbeispiele des Standards überprüft und nicht anhand einer Lektüre davon.

Warum Sie es lieben werden

  • Der gesamte Zahlungsteil, auf den Millimeter genau. Bon 62 mm, Zahlteil 148 mm, die obligatorischen 5 mm Blankoränder, die Betrags- und Zahlerfelder in den vorgeschriebenen Größen, der Annahmestellenbereich, Schnittlinien mit Scherensymbol und der Hinweis „Vor Einzahlung trennen“. Das Dokument erwartet eine Schweizer Bank.
  • Version 2.4, und das ist wichtig. Gegenüber der weit verbreiteten Version 2.3 haben sich drei Dinge geändert, die alle eine Rechnung ungültig machen können: die QR-Referenz und die QR-IBAN
    Nur CHF Jetzt ist die strukturierte Adresse obligatorischund Rätoromanisch wurde ein fünfte Korrespondenzsprache. Alle drei werden erzwungen und eine Konfiguration, die mit ihnen kollidiert, wird auf dem Bildschirm benannt.
  • Verifiziert anhand der eigenen Beispiele des Standards. Anhang A druckt zwei vollständig bearbeitete Datensätze; Diese Implementierung reproduziert beide Byte für Byte – einschließlich des Details, das handschriftliche Implementierungen stört, nämlich dass die Versionszeile im Code erhalten bleibt 0200 und nicht 0240.
  • Die Referenz wird pro Rechnung erstellt. Geben Sie Ihre Rechnungsnummer in ein Feld mit Zusammenführungs-Tags ein, und die 27-stellige QR-Referenz wird zusammengestellt und ihre Prüfziffer berechnet. Richten Sie dasselbe Feld auf eine Referenz, die bereits vorhanden ist, und eine vollständige, gültige Referenz wird erkannt und unverändert weitergegeben, anstatt verstümmelt zu werden.
  • QR-IBAN richtig gehandhabt. Eine IBAN im reservierten Institutsbereich verpflichtet zur Verwendung einer QR-Referenz, und seit 2.4 diese auf CHF beschränkt, ist „QR-IBAN plus EUR“ nicht mehr möglich. Sie werden darüber informiert, bevor Sie etwas konfigurieren, nicht durch eine Rechnung, die Ihre Bank ablehnt.
  • Fünf Sprachen, je Formular wählbar. Deutsch, Französisch, Italienisch, Rätoromanisch und Englisch. Die Überschriften sind vorgeschriebene Formulierungen, keine Übersetzungen, und der Rechnungssteller wählt die Sprache aus – so kann ein deutschsprachiges WordPress einen italienischen Zahlungsteil drucken.
  • ✍️ Unbekannter Betrag oder unbekannter Zahler ist kein Problem. Beides ist legitim: Der Zahlteil druckt dann ein farbloses Feld mit schwarzen Eckmarkierungen in den exakten Größen, die die Norm vorgibt, zum handschriftlichen Ausfüllen aus. Ein Spendenformular funktioniert ebenso wie eine Rechnung.
  • Ein Apostroph kann Ihre Rechnung nicht zerstören. Der Standard erlaubt eine bestimmte Teilmenge von Unicode und WordPress fügt ungefragt Zeichen außerhalb davon ein. Diese werden in ihre einfachen Äquivalente umgewandelt und nicht gelöscht, sodass ein Name seine Bedeutung behält.
  • Nichts zu installieren. Kein Composer-Schritt, nein bcmathkein API-Schlüssel, kein externer Dienst, kein Anbieterverzeichnis, das mit einem anderen Plugin kollidieren könnte. Payload, Prüfziffern und Layout sind alle im Plugin enthalten – weshalb es weiterhin läuft PHP 7.4. Der QR-Encoder stammt von Gravity PDF selbst.
  • Übersetzungsbereit. Englisch und Deutsch inklusive, vollständig internationalisiert.

Hauptmerkmale

Geometrie, die Sie messen können

Dies sind keine Näherungswerte – sie wurden aus einem erstellten PDF nachgelesen:

  • Swiss QR Code genau 46 × 46 mm ohne Ruhezone im Inneren, Fehlerkorrekturstufe M und mindestens 5 mm Freiraum auf jeder Seite.
  • Modulgröße 0,667 mm für eine typische Nutzlast deutlich über den 0,4 mm, die der Standard für zuverlässiges Scannen erfordert.
  • Schweizer Kreuz 7 × 7 mmgenau auf den Code zentriert.
  • Betragsfeld 40 × 15 mm auf dem Zahlteil und 30 × 10 mm auf dem Beleg; Zahlkasten 65 × 25 mm und 52 × 20 mm; Eckmarkierungen bei 0,75 pt.
  • Akzeptanzstellenbereich 20 mm hoch, „Akzeptanzstelle“ rechtsbündig wie vorgeschrieben.

Referenzen im Buch

  • QRR — die 27-stellige QR-Referenz, Prüfziffer durch Modulo 10 rekursiv. Erfordert eine QR-IBAN und seit Version 2.4 CHF.
  • SCOR — die Gläubigerreferenz von ISO 11649, Prüfziffern von ISO 7064 MOD 97-10. Erfordert eine normale IBAN; CHF oder EUR.
  • NICHT – überhaupt keine Referenz.

Oder lassen Sie einfach das Add-on anhand der IBAN entscheiden, wie es die empfohlene Einstellung tut.

Die gemeinsame Seite „(e)Rechnungseinstellungen“.

Jedes Add-on dieser Familie, das eine globale Konfiguration benötigt, würde ansonsten eine eigene Registerkarte hinzufügen. Stattdessen gibt es eine Seite, zu der jedes Plugin einen oder mehrere Abschnitte beisteuert. Dieses trägt den Gläubigerblock bei – und Ihr eigenes Plugin kann einen Abschnitt mit einem einzigen Filter hinzufügen:

add_filter( 'einvoicepress_settings_sections', function ( $sections ) {

    $sections[] = array(
        'title'    => 'My Section',
        'priority' => 30,
        'fields'   => array(
            array( 'name' => 'my_plugin_value', 'type' => 'text', 'label' => 'My value' ),
        ),
    );

    return $sections;
} );

Lesen Sie einen Wert von überall aus mit EInvoicePress_Settings::get( ‚my_plugin_value‘ ).

Die Kennungen werden validiert und nicht nur gespeichert

  • IBAN — Prüfziffern und Länderformat sowie die eigene Beschränkung der QR-Rechnung auf Schweizer und Liechtensteiner Konten.
  • QR-Referenz – 27 Ziffern und die rekursive Modulo-10-Prüfziffer.
  • Gläubigerreferenz – Struktur plus die Prüfziffern ISO 7064 MOD 97-10 von ISO 11649.

Ein Tippfehler wird beim Speichern aufgedeckt und nicht Monate später durch eine Zahlung, die nie eintrifft.

Ein wiederverwendbarer Feldtyp der Einstellungs-API – zwei Dateien

Die QR-Referenz wird als eigenständiges Paket geliefert, in das Sie kopieren können beliebig Gravity Forms-Plugin:

  • class.sp-qrr-validator.php — die Regeln, einschließlich der Prüfzifferntabelle
  • class.gf-settings-field-qrr.php – der Feldtyp „Einstellungen-API“.
$fields[] = array(
    'name'  => 'qr_reference',
    'type'  => 'qrr',
    'label' => __( 'QR reference', 'your-textdomain' ),
    'class' => 'medium',
);

Nichts anderes reist mit ihnen: keine Herstellerbibliothek, kein API-Schlüssel, keine Datenbanktabelle, kein Netzwerk. Jede Klassendeklaration und jede Typregistrierung ist geschützt, sodass zwei Plugins, die dasselbe Paket tragen, nebeneinander existieren und nicht kollidieren. Gleiches gilt für die iban Und iso11649 Pakete, die dieses Plugin enthält.

Hinweishinweise

Ein Schalter ergibt die Variante, die die Richtlinien für eine nicht zu bezahlende Rechnung definieren: den auf 0,00 festgelegten Betrag und den vorgeschriebenen Wortlaut in der gewählten Sprache. Die 0,00 garantiert auch, dass eine Umwandlung in eine eBill nicht zur Zahlung freigegeben werden kann.

Entwickelt für die tatsächliche Funktionsweise von Gravity PDF

Ein Gravity-PDF-Dokument wird nicht erstellt, wenn das Formular gesendet wird, sondern immer dann, wenn jemand danach fragt, möglicherweise Jahre später und mehrmals. Der Zahlungsteil wird daher zum Renderzeitpunkt erstellt, der der einzige Zeitpunkt ist, an dem das fertige Dokument vorliegt. Gravity PDF verwendet bereits gespeicherte Dateien wieder, sodass ein Dokument, das vor dem Hinzufügen des Feeds erstellt wurde, seinen alten Inhalt behält; Ein Feed-Schalter baut es wieder auf, standardmäßig ausgeschaltet, sodass im Normalbetrieb nichts langsamer wird. Und ein Dokument wird nie zweimal verlängert, egal wie oft die Hooks innerhalb einer Anfrage ausgelöst werden.

Es beeinträchtigt nicht Ihre Rechnungsvorlage

Der Zahlungsteil nimmt genau den Bereich ein, in dem sich eine Seitenfußzeile befindet, und die Richtlinien erlauben in diesem Bereich nichts außer den vorgeschriebenen Überschriften und Werten. Die laufende Kopf- und Fußzeile der Vorlage ist daher ausgeschaltet – nur für die Zahlungsteilseite. Ihre Rechnungsseiten bleiben erhalten.

Entwicklerfreundlich

  • Das gesamte Layout ist ein filterbares Array benannter Konstanten (sp_swissqr_geometry), sodass jede Position angepasst werden kann, ohne den Code zu berühren.
  • Die Payload-Klasse ist frei von WordPress, Gravity Forms und mPDF, sodass die Regeln des Standards eigenständig angewendet werden können.
  • Weitere Filter für die Position des Blocks auf dem Blatt (sp_swissqr_origin) und für die Schriftartkandidatenliste (sp_swissqr_fonts).
  • Es passiert nie etwas: Während eine Benachrichtigung gesendet wird, wird häufig eine PDF-Datei generiert, sodass jedes Problem als Daten zurückkommt und in das Gravity Forms-Protokoll geschrieben wird.

Was ist enthalten

  • Das Plugin – ein Gravity Forms-Feed-Add-on für Gravity PDF, plus das Shared (e)Rechnungseinstellungen Seite, die andere Plugins erweitern können.
  • Tragbar qrr, iban Und iso11649 Feldtypen der Einstellungs-API mit ihren abhängigkeitsfreien Validatoren – wiederverwendbar in Ihren eigenen Plugins.
  • Englische und deutsche Übersetzungen (.po / .mo).
  • Vollständige Dokumentation in Englisch und Deutsch (README + Funktionsübersicht), einschließlich der Entwicklerreferenz, aller Hooks und einer klaren Angabe, welche Layoutnummern normativ und welche anpassbar sind.
  • Sauberer, gut strukturierter, objektorientierter und stark kommentierter Code – leicht zu lesen, zu erweitern und zu prüfen.

Anforderungen & Kompatibilität

  • WordPress mit Schwerkraftformen ≥ 2,5
  • Schwerkraft-PDF ≥ 6 (das kostenlose Core-Plugin reicht)
  • PHP ≥ 7.4 – keine Erweiterungen über eine Standard-WordPress-Installation hinaus, insbesondere keine
    bcmath
  • Die Gravity Forms-Währung muss es sein CHF oder EURund das Gläubigerkonto a Schweizer oder liechtensteinische IBAN
  • Kein ausgehender Netzwerkzugriff, kein API-Schlüssel, kein Drittanbieterdienst – der Code wird auf Ihrem eigenen Server berechnet
  • Funktioniert neben dem Begleiter EPC-QR, SEPA-Felder,
    Feld „Umsatzsteuer-ID“., SIRET-Feld, LEI-Feld Und
    ABN-Feld Add-ons, die dieselbe Einstellungsseite ohne Konflikte teilen.

Support und Updates

Sauberer, gut dokumentierter Code, der leicht zu warten ist. Sofort einsatzbereit für die Lokalisierung. Entwickelt, um dem offiziellen Add-on-Framework und den Settings API-Konventionen von Gravity Forms zu folgen und die dokumentierten Filter von Gravity PDF zu verwenden, damit es kompatibel bleibt, während sich Ihr Stack weiterentwickelt.

Ein Hinweis zum Kleingedruckten: Dieses Add-on folgt beide normative Dokumente – die Implementierungsrichtlinien für die Daten und den Style Guide für die Typografie, bis hin zum Zeilenabstand pro Element, was eine typografische Faustregel nicht ergeben würde. Wenn die beiden nicht einer Meinung sind – und das ist in zwei Glossareinträgen der Fall – gewinnen die Richtlinien und die Begründung wird im Code niedergeschrieben. Die wenigen Werte, die in keinem Dokument behoben werden, sind benannte Konstanten hinter einem Filter, sodass das Layout an eine gedruckte Referenz angepasst werden kann, ohne das Plugin zu ändern.

Änderungsprotokoll

1.1.0

  • Die Seite mit den gemeinsamen Einstellungen verfügt über neue optionale Firmenfelder (Rechtsform, Handelsname, Registerdetails, GLN/DUNS, eine elektronische Adresse) und eine optionale SEPA-Gläubiger-Identifikationsnummer neben dem Bankkonto, verschlüsselt auf die gleiche Weise wie die IBAN.
  • Intern: Der Einstiegspunkt, der die QR-Rechnung anhängt, implementiert jetzt eine kleine gemeinsame Schnittstelle, die von allen QR-Add-ons der Familie verwendet wird. Keine Änderung an der QR-Rechnung selbst.

1.0.0

  • Erstveröffentlichung. Feed-Add-on, das eine vollständige Schweizer QR-Rechnung – Zahlungsteil und Quittung – an ein Gravity-PDF-Dokument anhängt.
  • Basierend auf den Umsetzungsrichtlinien QR-Rechnung Version 2.4, in Kraft ab 14. November 2026, mit den drei wesentlichen Änderungen: QR-Referenz und QR-IBAN auf CHF beschränkt, strukturierte Adresse obligatorisch, Rätoromanisch als fünfte Korrespondenzsprache.
  • Die Nutzlast wurde Byte für Byte anhand der beiden ausgearbeiteten Beispiele von Anhang A überprüft. Die Geometrie wird durch Rückvermessung anhand einer erstellten PDF-Datei überprüft.
  • Keine Herstellerabhängigkeit: Payload, Prüfziffern und Layout im Plugin implementiert, also kein Composer-Schritt und nein bcmathund PHP 7.4 reicht aus.
  • QR-Referenz, Gläubigerreferenz oder keine Referenz, wobei die Referenz entweder pro Rechnung aus einem Zusammenführungs-Tag erstellt oder als vollständiger Wert übernommen wird.
  • Fünf Korrespondenzsprachen, ausgewählt pro Feed und unabhängig vom Gebietsschema der Website.
  • Eckmarkierungsfelder in ihren normativen Größen, wenn der Betrag oder der Zahler nicht im Code enthalten ist, und die Avisvariante.
  • Die Zeichensatzbeschränkung wurde angewendet, wobei typografische Zeichen transkribiert und nicht gelöscht wurden.
  • Neues tragbares Gerät qrr Einstellungen-API-Paket; kopiert iban Und iso11649
    Pakete.
  • Layout durch drei Filter anpassbar; optionaler Neuaufbau bereits gespeicherter PDFs.
  • Deutsche Übersetzung.

Bewertung: 0
Verkäufe bisher: 0

Quellangabe

LIVE VORSCHAUJETZT KAUFEN

{{ reviewsOverall }} / 5 Users (0 votes)
Rating0
What people say... Leave your rating
Order by:

Be the first to leave a review.

User Avatar User Avatar
Verified
{{{ review.rating_title }}}
{{{review.rating_comment | nl2br}}}

This review has no replies yet.

Avatar
Show more
Show more
{{ pageNumber+1 }}
Leave your rating

Your browser does not support images upload. Please choose a modern one

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein