Beschreibung

Über dieses Plugin

IDF vCard verbindet ACF-Felder einer Profilseite mit dem vCard-3.0-Standard. Im Plugin-Admin werden benannte Mapping-Sets gepflegt; auf der Profilseite wählt der Shortcode das Set per set-Attribut aus und liefert QR-Code und .vcf-Download. Leere oder nicht gemappte Felder bleiben in der vCard weg.

Features

  • Mapping-Sets: Pro Set ein Name, ein Slug und eine ACF-zu-vCard-Tabelle. Sets sind nicht an einen CPT gebunden: Derselbe Slug kann auf beliebigen Profilseiten genutzt werden.
  • Bezugs-CPT (optional): Filtert die ACF-Feld-Auswahl im Editor auf einen Post-Type, damit das Mapping übersichtlich bleibt. Im Frontend irrelevant.
  • vCard 3.0 nach RFC 2426: Strukturierte N- und ADR-Properties, Telefon-/E-Mail-Typen, X-SOCIALPROFILE für LinkedIn, Xing, GitHub, Bluesky, Mastodon.
  • QR-Code als Inline-SVG: Shortcode [idf_vcard_qr set="..."] rendert die vCard direkt auf der Seite (SVG-Erzeugung über das Plugin IDF QR-Codes).
  • .vcf-Download mit Foto: Shortcode [idf_vcard_download set="..."] liefert die vollständige vCard inklusive PHOTO und LOGO aus ACF-Bildfeldern.
  • Globale QR-Defaults: Größe, Fehlerkorrektur, Farben und Quiet-Zone zentral einstellbar, pro Shortcode-Aufruf überschreibbar.
  • Filter für Entwickler: idf/vcard/properties, idf/vcard/build, idf/vcard/qr_options, idf/vcard/filename.
  • Voraussetzungen: WordPress 6.0+, PHP 8.1+, Advanced Custom Fields, IDF QR-Codes 1.1.0+. Optional IDF Home für Lizenzprüfung und automatische Updates.

Changelog

v0.7.0

Hinzugefügt

  • Felder verknüpfter Beiträge sind im Mapping-Editor wählbar. Ist ein Bezugs-CPT gesetzt, steht je Relationship- oder Post-Object-Feld dieses CPT eine eigene Gruppe „Aus verknuepftem Beitrag“ in jeder Auswahl: der Titel und alle Felder der Post-Types, auf die das Feld zeigen darf, samt Unterfeldern von ACF-Gruppen. Bisher ließ sich eine Quelle relation_feld>ziel_feld nur über die Abilities setzen.
  • Ohne Bezugs-CPT bleibt es bei den Abilities, sonst käme jedes Relationship-Feld der Site mit allen Zielfeldern in jede der rund vierzig Auswahlen.

v0.6.0

Behoben

  • Unterfelder von ACF-Gruppen gelten als registriert. ACF speichert sie als gruppe_unterfeld, und so liest get_field() sie auch. Die Feldliste kannte bisher nur die oberste Ebene, deshalb meldeten create-set und update-set jedes Unterfeld als „nicht registriert“, auf thueringer-landkost.de etwa die Anschrift der Marke. Eine Warnung, die immer kommt, übersieht man auch dann, wenn ein Feld wirklich fehlt.

Geändert

  • Der Mapping-Editor bietet die Unterfelder von ACF-Gruppen zur Auswahl an, bezeichnet als „Gruppe: Unterfeld“, auch bei einer Gruppe in der Gruppe. Unterfelder von Repeater und Flexible Content bleiben außen vor, weil ihr Name eine Zeilennummer trägt.

v0.5.0

Hinzugefügt

  • Werte aus einem verknüpften Beitrag. Ein Mapping-Wert darf relation_feld>ziel_feld lauten: gelesen wird das Zielfeld am ersten Beitrag, auf den das Relationship- oder Post-Object-Feld zeigt, post_title liefert dessen Titel. Auf thueringer-landkost.de kommen so Firma und Anschrift aus der Marke in die vCard der Team-Seiten. Bilder (Foto, Logo) gehen auf demselben Weg.
  • Die Abilities create-set und update-set nehmen die neue Form an und weisen eine Quelle mit mehr als einem > oder einer leeren Seite ab. Die Warnung zu nicht registrierten Feldern prüft das Relationship-Feld im Bezugs-CPT und das Zielfeld gegen alle Felder der Site.
  • Der Mapping-Editor im Backend zeigt eine solche Quelle mit dem Zusatz „Feld am verknuepften Beitrag“ und behält sie beim Speichern. Die Hilfe erklärt die Form.

v0.4.1

Behoben

  • Das Attribut size von [idf_vcard_qr] wirkt. Bisher stand die Breite an einem Inline-Element und griff nicht, der Code erschien in voller Modulgröße: auf thueringer-landkost.de 325 bis 385 px statt der eingestellten 160 px.
  • Der Code wird nie kleiner als 3 px je Modul samt Rand, damit eine Handykamera ihn vom Bildschirm liest. Eine lange vCard ergibt deshalb einen größeren Code als size, bei 77 Modulen etwa 231 px.

v0.4.0

Hinzugefügt

  • Mapping-Sets lassen sich über den MCP-Adapter pflegen. Neue Abilities idf-vcard/list-sets, get-set, create-set, update-set, delete-set und list-properties, dazu get-settings (QR-Standardwerte lesen) und render-vcard (vCard eines Beitrags erzeugen, wie der Download-Link sie liefert). Bisher ging das nur im Backend; auf thueringer-landkost.de hing daran der Knopf „Kontakt speichern" der Team-Seiten.
  • Gespeichert wird über denselben Weg wie im Backend. Anders als dort werden unbekannte Properties abgewiesen statt still verworfen, und ACF-Felder, die im Bezugs-CPT nicht registriert sind, kommen als Warnung zurück.
  • Schreibende Abilities stehen im Aktivitätsprotokoll des MCP-Adapters, sofern er installiert ist.

v0.3.1

Behoben

  • Der Dependency-Checker heisst jetzt IDF_VCARD_Dependency_Checker. Der geteilte Klassenname IDF_Dependency_Checker, den fast alle IDF-Plugins mitbringen, wird nicht mehr angefasst. Die eigene Kopie war durch ihre bedingte Deklaration selbst geschuetzt, wirkte aber als Ausloeser: sobald sie die geteilte Klasse zuerst deklarierte, starb die frueh gebundene Kopie eines anderen IDF-Plugins. Sobald ein zweites IDF-Plugin dieselbe Klasse deklarierte, starb jeder Request mit "Cannot declare class IDF_Dependency_Checker" - auf k1.de hat das am 03.09.2026 zweimal die ganze Website lahmgelegt, weil die Aktivierung durchlief und der Fehler erst im Folge-Request entstand. Die Installationsreihenfolge der IDF-Plugins ist damit ohne Bedeutung.

v0.3.0

Geändert

  • Admin-Menü: ein Eintrag unter IDF Home statt eines eigenen Top-Level-Menüs mit vier Untereinträgen. Einstellungen, Hilfe und Deinstallation sind jetzt Reiter auf der Mapping-Sets-Seite.
  • Ohne IDF Home bleibt das eigene Top-Level-Menü als Rückfalloption erhalten, mit derselben Oberfläche.
  • Alle bisherigen Seiten-URLs bleiben gültig.

v0.2.0

Geändert

  • Mappings sind jetzt eigenständige Sets mit Namen und Slug - im Shortcode per set="..." gewählt, nicht länger automatisch über den Post-Type aufgelöst.
  • Set-Editor hat einen optionalen Bezugs-CPT, der die ACF-Feld-Auswahl im Editor filtert. Im Frontend bleibt das Set CPT-agnostisch.
  • Admin-Bereich: Übersicht aller Sets mit Bearbeiten/Löschen/Neu-Anlegen statt CPT-Tabs.

v0.1.0

Hinzugefügt

  • ACF-Felder werden auf vCard-3.0-Properties gemappt; leere Felder bleiben in der vCard weg.
  • vCard als Inline-SVG-QR-Code und als .vcf-Download auf jeder Profilseite.
  • Foto und Logo aus ACF-Bildfeldern landen im Download-vCf, nicht im QR.
  • Admin-Bereich „vCards" mit Mapping-Editor, globalen QR-Defaults und Hilfe-Seite.
Info
  • Version: 0.7.0
  • Version vom: 2. November 2026
  • WordPress-Version: 6.0
  • Getestet bis WP-Version: 6.5
  • PHP-Version: 8.1
  • Kompatible Themes: alle
  • Erforderliche Plugins: Advanced Custom Fields (ACF)
  • Mitwirkende: Joerg Martin