Hooks und Templates

Zuletzt aktualisiert: September 2026, Plugin 1.5.2

Jeder Filter und jede Action, die das kostenlose Plugin bereitstellt, mit Signatur und Zweck, gefolgt von den Templates, die ein Theme überschreiben kann, und den Variablen, die jedes davon erhält. Generiert aus den Docblocks in includes/; das Präfix lautet durchgehend wbs_dataverse_connect_.

Filter

Collections und Lesen

FilterArgumenteZweck
wbs_dataverse_connect_collections$collectionsCollections im Code registrieren (key => config); Collections aus der Einstellungsseite mit demselben Key überschreiben sie.
wbs_dataverse_connect_normalize_collection$clean, $key, $configLetzte Station der Collection-Normalisierung; Add-ons reichen hier zusätzliche Konfigurationsschlüssel durch.
wbs_dataverse_connect_field_label$label, $column, $configDie Beschriftung einer Spalte in Cards, Detailtabellen und der Toolbar, nach Metadaten und Heuristik.
wbs_dataverse_connect_record_vm$vm, $config, $recordDas View Model eines Datensatzes, bevor die Templates es ausgeben (id, name, slug, url, image, fields, files, record).
wbs_dataverse_connect_access_filter$expression, $config, $scopeOData-Ausdruck, der per AND in jeden Lesezugriff auf eine Collection eingefügt wird; $scope ist list oder single. Standardmäßig leer.
wbs_dataverse_connect_can_view$allowed, $config, $scopeZugriff auf eine Collection, einen Datensatz, ein Formular oder eine Mediendatei für den aktuellen Besucher freigeben oder sperren; $scope ist collection, record, form oder media.
wbs_dataverse_connect_denied_notice$html, $config, $scopeMarkup, das angezeigt wird, wenn can_view abgelehnt hat; Add-ons ersetzen es durch eine Anmeldeaufforderung.
wbs_dataverse_connect_metadata_ttl$secondsWie lange Tabellen-Metadaten im Cache bleiben. Standard: ein Tag.
wbs_dataverse_connect_metadata_attributes$attrs, $table, $contextDie Attributzuordnung einer Tabelle nach dem Abruf (label, type, required, format, maxlength, options, targets).

Formulare und Schreiben

FilterArgumenteZweck
wbs_dataverse_connect_forms$formsFormulare im Code registrieren (key => config); Formulare aus der Einstellungsseite überschreiben sie.
wbs_dataverse_connect_normalize_form$clean, $key, $configLetzte Station der Formular-Normalisierung; Add-ons reichen hier zusätzliche Konfigurationsschlüssel durch.
wbs_dataverse_connect_form_view$view, $config, $recordDas View Model eines gerenderten Formulars: Felder mit Beschriftungen, Optionen und Werten, Modus, Datensatz-ID, Turnstile Site Key.
wbs_dataverse_connect_form_record$record, $config, $valuesLetzte Station vor dem Schreiben: die Nutzlast aus column => value; $config['mode'] unterscheidet ein Anlegen von einer Aktualisierung.
wbs_dataverse_connect_bridge_maps$mapsDie Zuordnungen der WBS-Forms-Bridge, indiziert nach Formular-Slug.
wbs_dataverse_connect_bridge_record$record, $map, $submission, $form_idLetzte Station vor einem Anlegen über die Bridge.

Verbindung, Admin und Einstellungen

FilterArgumenteZweck
wbs_dataverse_connect_connection$conn, $contextDie Verbindung (tenant_id, client_id, client_secret, env_url, auth) für die Anfrage, die $context beschreibt (Typ collection, form, admin oder metadata, plus Konfiguration).
wbs_dataverse_connect_token_args$args, $connDie wp_remote_post-Argumente der Token-Anfrage; hier lässt sich das Client Secret gegen eine Zertifikats-Assertion tauschen.
wbs_dataverse_connect_admin_tabs$tabsTabs der Einstellungsseite (slug => label); ein hinzugefügter Tab wird über die Action render_tab_{slug} gerendert.
wbs_dataverse_connect_save_collection$config, $postDie Collection-Konfiguration, die gleich gespeichert wird, mit den POST-Daten (unslashed) für zusätzliche Zeilen.
wbs_dataverse_connect_save_form$config, $postDasselbe für Formulare.
wbs_dataverse_connect_blocks_data$dataDaten, die an den Block-Editor übergeben werden: Collections und Formulare als value/label-Paare, URLs der Einstellungsseite.
wbs_dataverse_connect_review_due$duefalse zurückgeben, um die einmalige Bewertungsanfrage auf einer Site zu unterdrücken.

Health, Medien und Webhooks

FilterArgumenteZweck
wbs_dataverse_connect_alert_recipients$toE-Mail-Adressen, an die Ausfall- und Wiederherstellungsmeldungen gehen.
wbs_dataverse_connect_alert_cooldown$secondsCooldown, bevor zur selben Ausfallepisode erneut gemeldet wird. Standard: sechs Stunden.
wbs_dataverse_connect_media_ttl$secondsWie lange über den Proxy ausgelieferte Bilder und Dateien im Cache bleiben, im Transient und per Cache-Control. Standard: ein Tag.
wbs_dataverse_connect_media_max_bytes$bytesObergrenze für eine über den Proxy ausgelieferte Datei. Standard: 32 MB.
wbs_dataverse_connect_media_inline_types$inlineMIME-Typen, die inline ausgeliefert werden; alles andere wird als Anhang heruntergeladen.
wbs_dataverse_connect_webhook_payload$payload, $event, $hookDie Nachricht, die gleich gesendet wird ({event, site, time, data}); $hook ist der empfangende Webhook, null bei einer Vorschau.
wbs_dataverse_connect_webhook_args$args, $hook, $eventDie wp_remote_post-Argumente einer Zustellung, bevor der Body signiert wird.

Actions

ActionArgumenteWird ausgelöst
wbs_dataverse_connect_record_created$key, $entity_set, $id, $recordNachdem ein Formular oder die Bridge einen Datensatz angelegt hat; $key ist der Formular-Key oder bridge:<slug>.
wbs_dataverse_connect_record_updated$key, $entity_set, $id, $recordNachdem ein Formular im Update-Modus einen Datensatz per PATCH geändert hat.
wbs_dataverse_connect_bridge_created$id, $form_id, $recordNachdem die WBS-Forms-Bridge eine Einsendung geschrieben hat (älteres Gegenstück zu record_created).
wbs_dataverse_connect_health_event$kind, $stateBei jedem erfassten Ausfall und jeder Wiederherstellung; $kind ist failure oder recovery.
wbs_dataverse_connect_webhook_dispatched$event, $data, $sentNachdem ein Ereignis an seine Webhooks übergeben wurde, mit der Anzahl der Zustellungen.
wbs_dataverse_connect_collection_fields$editingInnerhalb der Tabelle des Collection-Editors, vor dem Submit-Button; $editing ist die Konfiguration oder null beim Hinzufügen.
wbs_dataverse_connect_form_fields$editingDasselbe für den Formular-Editor.
wbs_dataverse_connect_render_tab_{slug}keineRendert den Inhalt eines Tabs, der über admin_tabs hinzugefügt wurde.

Die Bridge verarbeitet wbs_forms_after_submit($form_id, $fields, $meta) aus WBS Forms und beantwortet den Filter wbs_forms_submission_handled nach einem erfolgreichen Anlegen mit true.

Client-Funktionen

Add-ons und Theme-Code verwenden denselben Client wie das Plugin. Jeder Lesezugriff läuft über den Cache und den Health Monitor; Schreibzugriffe werden nie gecacht. Die Request-Funktionen geben das dekodierte Array oder einen WP_Error zurück; die Helfer unten geben zurück, was in ihrer Zeile steht.

FunktionZweck
wbs_dataverse_connect_get($path, $ttl = null, $context = [])Gecachter GET relativ zur API-Basis; $ttl null ist der Site-Standard, 0 überspringt den Cache; $context['headers'] ergänzt zusätzliche Request-Header.
wbs_dataverse_connect_post($path, $body, $context = [])Anlegen. Gibt ['id' => guid] zurück.
wbs_dataverse_connect_patch($path, $body, $context = [])Aktualisierung eines einzelnen adressierten Datensatzes wie contacts(guid); mit ['headers' => ['If-Match' => '*']] werden Upserts unterbunden.
wbs_dataverse_connect_get_raw($path, $context = [])Rohbytes einer $value-Anfrage, für Medien; gibt body, type, name und status zurück.
wbs_dataverse_connect_typed_value($field, $raw, $context = [])Typisiert einen übermittelten Wert für die Web API anhand einer normalisierten Feldspezifikation; null bei leer, WP_Error bei ungültig.
wbs_dataverse_connect_render_form($config, $record_id = '')Rendert ein Formular, das an einen Datensatz gebunden ist.
wbs_dataverse_connect_template($name, $vars = [])Lädt ein Template mit Theme-Override.

Templates

Templates liegen in wbs-connect-for-dataverse/templates/. Kopieren Sie eine Datei nach your-theme/wbs-connect-for-dataverse/ (Child-Themes funktionieren) und bearbeiten Sie die Kopie. Die Variablen werden in den Template-Scope extrahiert; alles in einem View Model ist bereits formatiert, das Template escapt nur und gibt aus.

TemplateVariablen
collection-list.php$cards (vorgerendertes Card-HTML), $columns (1 bis 4)
collection-card.php$vm: id, name, slug, url (Detail-Link oder leer), image, fields (Liste aus column, label, value), files, record (die Rohzeile)
collection-toolbar.php$toolbar: action, hidden (Inputs als name => value), search (null oder name, id, value, label), filters (Liste aus column, name, id, label, options, value), sort (null oder name, id, options, value, label), count (int oder null), active, reset_url
collection-pagination.php$pagination: page, has_prev, has_next, prev_url, next_url, count
record-detail.php$vm wie oben, mit files als Liste aus column, label, url, name; $form (vorgerendertes Formular-HTML oder leer)
form.php$config (normalisierte Formular-Konfiguration), $record_id (GUID oder leer), $rest_url, $nonce; das Template ruft wbs_dataverse_connect_form_view() für die typisierten Felder auf

Frontend-Klassen tragen das Präfix dvc-. Der Submit-Handler des Formulars in assets/wbs-connect-for-dataverse.js liest die data-dvc-*-Attribute des Formularelements; ein eigenes form.php funktioniert also weiter, solange es diese Attribute behält.

Siehe auch