Visser Labs – WooCommerce Plugins

  1. Startseite
  2. Wissensdatenbank
  3. WooCommerce Store Exporter Deluxe
  4. Verfügbare Hooks und Filter für weitere Anpassungen

Verfügbare Hooks und Filter für weitere Anpassungen

Store Exporter Deluxe löst während seines gesamten Exportprozesses eine große Anzahl von WordPress-Aktions- und Filter-Hooks aus. Nutzen Sie diese, um eigene Felder zu den Exportformularen hinzuzufügen, zu ändern, welche Daten exportiert werden, oder um einen völlig neuen Exporttyp zu integrieren, ohne die Plugin-Dateien direkt zu bearbeiten.

Dies ist eine Referenz für Entwickler. Sie geht davon aus, dass Sie mit dem Hinzufügen von Code über ein benutzerdefiniertes Plugin oder die functions.php Ihres Themes vertraut sind. Wenn Sie mit WordPress-Hooks nicht vertraut sind, lesen Sie zuerst das WordPress Plugin Handbook zu Hooks.

Seit Store Exporter Deluxe v5.4.3 werden die Admin-Bildschirme des Plugins (Übersicht, Schnell-Export, Geplante Exporte, Einstellungen usw.) von einer Vue-Single-Page-App unter WooCommerce → Store Export gerendert. Die meisten der unten aufgeführten Hooks werden immer noch von denselben zugrunde liegenden PHP-Funktionen ausgelöst, sodass sie unabhängig davon, welcher Admin-Bildschirm sie auslöst, auf die gleiche Weise funktionieren. Einige Hooks, die an das alte Exportformular und den Einstellungsbildschirm gebunden waren, werden überhaupt nicht mehr ausgelöst: Sehen Sie im Hinweis unter Aktionen unten, welche das sind. Die Abschnittsüberschriften gruppieren Hooks nach dem, was sie beeinflussen, nicht nach einem bestimmten Namen einer Registerkarte auf dem Bildschirm.

Wie Hooks in die Export-Pipeline passen

Jeder Export, egal ob über Schnell-Export, geplanten Export oder manuellen CRON ausgelöst, durchläuft dieselben drei Phasen:

  • Vorbereiten: Der Exporter öffnet die Ausgabedatei und schreibt die Spaltenüberschriften. Für XML- und RSS-Exporte steuern Filter wie wsed_export_xml_first_line und wsed_export_xml_store_node die öffnenden Tags und den Namen des Root-Knotens, bevor Zeilen hinzugefügt werden.
  • Verarbeiten: Der Exporter ruft Datensätze in Stapeln ab (standardmäßig 100 Datensätze gleichzeitig, konfigurierbar über die Stapelgrößen-Einstellung; geplante Exporte laufen nicht in Stapeln) und schreibt jede Zeile. Filter mit dem Namen *_item (wie woo_ce_product_item oder woo_ce_order_item) werden hier einmal pro Datensatz ausgeführt, sodass Sie Daten für diese Zeile ändern oder hinzufügen können.
  • Abschließen: Der Exporter schließt die Datei ab, z. B. durch Schließen des XML-Datensatzes mit wsed_export_xml_after_dataset, und übergibt sie dann zum Download, per E-Mail oder zur Archivierung.

Behalten Sie dies im Hinterkopf, wenn Sie einen Hook auswählen: Ein _item-Filter ändert einen Datensatz nach dem anderen während der Verarbeitung, während eine _options-Aktion (die während des Admin-Formulars ausgelöst wird, bevor die Vorbereitung überhaupt beginnt) nur das angezeigte Exportformular beeinflusst, nicht die Daten selbst.

Aktionen

Aktionen sind Hooks, die WordPress zu bestimmten Zeitpunkten während der Ausführung oder bei bestimmten Ereignissen ausführt.

Vor der Vue SPA-Neufassung in v5.4.3 hat Store Exporter Deluxe das Quick Export-Formular und den Einstellungsbildschirm mit älteren PHP-Vorlagen gerendert, die Hooks wie woo_ce_export_options und woo_ce_export_settings_after ausgelöst haben, damit Sie eigene Felder hinzufügen konnten. Diese Vorlagen sind nicht mehr Teil der aktuellen Admin-Oberfläche, daher werden diese Hooks nicht mehr ausgelöst. Wenn Sie sich auf einen davon verlassen haben, um ein benutzerdefiniertes Feld zum Exportformular oder zum Einstellungsbildschirm hinzuzufügen, öffnen Sie ein Support-Ticket, damit unser Team Ihnen helfen kann, eine funktionierende Alternative für Ihren Anwendungsfall zu finden.

Fünf weitere Filter wurden vollständig aus der Codebasis entfernt, anstatt wie die oben genannten Hooks unerreichbar zu bleiben. Diese wurden zwischen 2023 und 2024 in nicht zusammenhängenden Refactors vorgenommen, lange vor der Neufassung v5.4.3, und keiner von ihnen wurde zuerst als veraltet markiert: woo_ce_setup_dataset_options, woo_ce_extend_order_fields_custom_order_hover, woo_ce_extend_order_fields_custom_order_item_hover, woo_ce_extend_order_fields_custom_product_hover und woo_ce_get_order_items_variation_custom. Keiner dieser Filter wird im aktuellen Plugin ausgelöst. Die ähnlich benannten woo_ce_extend_order_fields_custom_user_hover, woo_ce_extend_product_fields_custom_product_hover und woo_ce_get_order_items_variation_taxonomy sind für verwandte Felder weiterhin verfügbar (siehe die Abschnitte Bestellung und Produkt unten). Wenn Sie einen der entfernten Filter benötigen, öffnen Sie ein Support-Ticket, damit unser Team Ihnen helfen kann, eine funktionierende Alternative zu finden.

Bearbeitungsbildschirm für geplante Exporte

Diese werden auf dem Bearbeitungsbildschirm für geplante Exporte ausgelöst, wo jeder geplante Export als eigener Beitrag gespeichert und verwaltet wird.

  • woo_ce_before_scheduled_export_general_options: Felder zur Registerkarte Allgemein hinzufügen
  • woo_ce_before_scheduled_export_type_options: Felder zur Registerkarte Typ hinzufügen
  • woo_ce_before_scheduled_export_method_options: Felder zur Registerkarte Methode hinzufügen
  • woo_ce_before_scheduled_export_frequency_options: Felder zur Registerkarte Frequenz hinzufügen

Filter

Filter sind Hooks, die Daten modifizieren, bevor sie verwendet werden, sei es, bevor sie zur Datenbank hinzugefügt oder in die Exportdatei geschrieben werden.

Allgemein

  • woo_ce_export_types: Eigene Exporttypen hinzufügen
  • woo_ce_sys_get_temp_dir: Überschreiben Sie das Standard-PHP-Verzeichnis für temporäre Dateien für benutzerdefinierte Pfade
  • woo_ce_template_header: Überschreiben Sie den Standard-Store Exporter Deluxe-Header-Titel
  • woo_ce_admin_order_actions: Eigene Schaltflächen zur Spalte Aktionen auf dem Bestellungsbildschirm hinzufügen
  • woo_ce_display_admin_footer_text: Ändern Sie die Nachricht in der Fußzeile des WP-Admin-Bereichs
  • woo_ce_modules_addons: Eigene Plugins zum Widget Export Modules hinzufügen
  • woo_ce_get_visitor_ip_address: Überschreiben Sie die erkannte CRON-IP-Adresse
  • woo_ce_get_line_ending: Überschreiben Sie das Standard-Zeilenendezeichen
  • woo_ce_wc_price_decimal_sep
  • woo_ce_wc_price_thousands_sep
  • woo_ce_get_export_type_count: Überschreiben Sie die Anzahl der Exporttypen
  • woo_ce_scheduled_export_data_tabs: Fügen Sie Ihre eigenen Tabs zum Bearbeitungsbildschirm für geplante Exporte hinzu
  • woo_ce_admin_user_capability: Überschreiben Sie die standardmäßig erforderliche Benutzerberechtigung, um den WooCommerce > Store Export-Bildschirm anzuzeigen
  • woo_ce_admin_dashboard_user_capability: Überschreiben Sie die standardmäßig erforderliche Benutzerberechtigung, um die Dashboard-Widgets für geplante Exporte und kürzlich geplante Exporte anzuzeigen

Marke

  • woo_ce_brand_term_taxonomy: Überschreiben Sie die Standard-Terminologie product_brand
  • woo_ce_get_product_brands_args: Fügen Sie Ihre eigenen WP_Query-Filter für den Markenexport hinzu

Kategorie

  • woo_ce_category_item: Fügen Sie Unterstützung für zusätzliche Kategorie-Spalten hinzu
  • woo_ce_get_product_categories_args: Fügen Sie Ihre eigenen WP_Query-Filter für den Kategorieexport hinzu

Gutschein

  • woo_ce_get_coupons_args: Fügen Sie Ihre eigenen WP_Query-Filter für den Gutscheinexport hinzu
  • woo_ce_coupon_item: Fügen Sie Unterstützung für zusätzliche Gutschein-Spalten hinzu
  • woo_ce_coupon_smart_coupons_valid_for
  • woocommerce_coupon_discount_types: Fügen Sie Ihre eigenen Gutschein-Rabattarten hinzu

Provision

  • woo_ce_get_commissions_args: Fügen Sie Ihre eigenen WP_Query-Filter für den Provisions-Export hinzu

CRON

  • woo_ce_cron_export_post_args: Überschreiben Sie die HTTP POST-Optionen
  • woo_ce_email_recipient_name: Überschreiben Sie den Standardnamen des E-Mail-Empfängers
  • woo_ce_email_contents: Überschreiben Sie die Standardnachricht für E-Mail-Inhalte
  • woo_ce_cron_export_ftp_switch: Wechseln Sie zwischen den FTP-Methoden ftp_put und ftp_fput
  • woo_ce_default_email_subject: Überschreiben Sie den Standard-Betreff der E-Mail
  • woo_ce_trigger_new_order_items_formatting

Kunde

  • woo_ce_customer_post_status: Überschreiben Sie den Standard-Kundenbeitragsstatus, der an WP_Query übergeben wird
  • woo_ce_extend_customer_fields_custom_customer_hover
  • woo_ce_extend_customer_fields_custom_user_hover

Reihenfolge

  • woo_ce_order_post_status: Überschreiben Sie den Standard-Bestellbeitragsstatus, der an WP_Query übergeben wird
  • woo_ce_extend_order_fields_product_addons
  • woo_ce_extend_order_fields_wccs
  • woo_ce_extend_order_fields_gf_label
  • woo_ce_extend_order_fields_gf_hover
  • woo_ce_extend_order_fields_attribute
  • woo_ce_extend_order_fields_custom_user_hover
  • woo_ce_get_orders_args: Fügen Sie Ihre eigenen WP_Query-Filter zum Bestellungs-Export hinzu
  • woo_ce_get_order_id
  • woo_ce_get_order_data_billing_address
  • woo_ce_get_order_data_shipping_address
  • woo_ce_order_items_combined
  • woo_ce_order_items_unique
  • woo_ce_order: Unterstützung für zusätzliche Bestellspalten hinzufügen
  • woo_ce_get_order_assoc_shipping_method_id
  • woo_ce_get_order_assoc_notes_date
  • woo_ce_get_order_assoc_notes_customer
  • woo_ce_get_order_assoc_notes_order
  • woo_ce_enable_addon_gravity_forms
  • woo_ce_get_order_items_variation_taxonomy
  • woo_ce_order_item_custom_meta
  • woo_ce_order_item
  • woo_ce_order_item_types: Fügen Sie Ihre eigenen Bestellposten-Typen hinzu
  • woo_ce_order_items_individual
  • woo_ce_add_unique_order_item_fields_on
  • woo_ce_add_unique_order_item_fields_exclusion
  • woo_ce_unique_order_item_column_id
  • woo_ce_unique_order_item_column_product_id
  • woo_ce_unique_order_item_columns
  • woo_ce_extend_order_items_unique_columns_gf_fields
  • woo_ce_get_order_shipping_methods

Produkt

  • woo_ce_get_export_type_product_count_post_types
  • woo_ce_extend_product_fields_custom_attribute_hover
  • woo_ce_extend_product_fields_custom_product_hover
  • woo_ce_get_products_post_type
  • woo_ce_get_products_status
  • woo_ce_get_products_args: Fügen Sie Ihre eigenen WP_Query-Filter zum Produkt-Export hinzu
  • woo_ce_product_item: Unterstützung für zusätzliche Produktspalten hinzufügen
  • woo_ce_get_product_assoc_categories_size
  • woo_ce_format_product_types
  • woo_ce_unique_product_gallery_column
  • woo_ce_format_description_excerpt_allowed_html
  • woo_ce_format_description_excerpt_allowed_protocols
  • woo_ce_format_description_excerpt

Produkt-Anbieter

  • woo_ce_get_product_vendors_args: Fügen Sie Ihre eigenen WP_Query-Filter zum Produkt-Anbieter-Export hinzu
  • woo_ce_product_vendor: Unterstützung für zusätzliche Produkt-Anbieter-Spalten hinzufügen
  • woo_ce_product_vendor_term_taxonomy: Überschreiben Sie die Standard-wcpv_product_vendors-Term-Taxonomie

Versandklasse

  • woo_ce_get_shipping_clases_args: Fügen Sie Ihre eigenen WP_Query-Filter zum Versandklassen-Export hinzu

Abonnement

  • woo_ce_get_subscriptions_args: Fügen Sie Ihre eigenen WP_Query-Filter zum Abonnement-Export hinzu
  • woo_ce_subscription: Unterstützung für zusätzliche Abonnement-Spalten hinzufügen
  • woo_ce_subscription_statuses
  • woo_ce_extend_subscription_fields_wc
  • woo_ce_extend_subscription_fields_custom_user_hover

Schlagwort

  • woo_ce_get_product_tags_args: Fügen Sie Ihre eigenen WP_Query-Filter zum Tags-Export hinzu

Benutzer

  • woo_ce_extend_user_fields_wc
  • woo_ce_extend_user_fields_custom_user_hover
  • woo_ce_get_users_args: Fügen Sie Ihre eigenen WP_Query-Filter zum Benutzer-Export hinzu
  • woo_ce_get_user_data_full_name
  • woo_ce_user: Unterstützung für zusätzliche Benutzer-Spalten hinzufügen

XML und RSS

Store Exporter Deluxe verfügt über zwei Code-Pfade zur Generierung von XML- und RSS-Ausgaben. Schnellexporte und geplante Exporte verwenden die unten aufgeführten Filter mit dem Präfix wsed_. Die gleichwertigen Filter mit dem Präfix woo_ce_ werden nur für Exporte ausgelöst, die über die Legacy-manuelle CRON-URL ausgelöst werden. Wenn Sie die XML- oder RSS-Ausgabe für einen Schnellexport oder einen geplanten Export anpassen, verwenden Sie die Version mit wsed_.

Manueller CRON-Export (Legacy)Schneller Export und geplante Exporte
woo_ce_export_xml_first_linewsed_export_xml_first_line
woo_ce_export_xml_store_nodewsed_export_xml_store_node
woo_ce_export_xml_before_datasetwsed_export_xml_before_dataset
woo_ce_export_xml_after_datasetwsed_export_xml_after_dataset
woo_ce_export_rss_first_line(keine Entsprechung für Schnellexport/geplante Exporte)
woo_ce_export_rss_channel_nodewsed_export_rss_channel_node

Die folgenden Knotenfilter gelten für beide Code-Pfade:

  • woo_ce_export_xml_product_node
  • woo_ce_export_xml_category_node
  • woo_ce_export_xml_tag_node
  • woo_ce_export_xml_brand_node
  • woo_ce_export_xml_order_node
  • woo_ce_export_xml_customer_node
  • woo_ce_export_xml_user_node
  • woo_ce_export_xml_coupon_node
  • woo_ce_export_xml_subscription_node
  • woo_ce_export_xml_product_vendor_node
  • woo_ce_export_xml_commission_node
  • woo_ce_export_xml_shipping_class_node

Beispiele für gängige Anpassungen

Diese Beispiele zeigen echte Signaturen, die gegen den aktuellen Plugin-Code verifiziert wurden. Fügen Sie sie einem benutzerdefinierten Plugin oder der functions.php-Datei Ihres Themes hinzu.

Eine benutzerdefinierte Spalte zum Produkt-Export hinzufügen

woo_ce_product_item wird während der Verarbeitungsphase einmal pro Produkt ausgeführt. Es empfängt das Zeilendaten-Array, die Produkt-ID und das WC_Product-Objekt:

add_filter( 'woo_ce_product_item', 'my_custom_product_column', 10, 3 );
function my_custom_product_column( $product, $product_id, $wc_product ) {
    $product['my_custom_field'] = get_post_meta( $product_id, '_my_custom_field', true );
    return $product;
}

Fügen Sie die passende Spalten-ID Ihrer Export-Feldliste im Abschnitt „Exportfelder“ hinzu, damit der neue Wert tatsächlich in der Ausgabe erscheint.

Das Hinzufügen eines eigenen Feldes zum Formular „Schnell-Export“ oder zum Bildschirm „Einstellungen“ ist derzeit nicht über einen Hook möglich. Die Vue SPA, die diese Bildschirme rendert, bietet hierfür noch keinen Erweiterungspunkt. Wenn Sie dies benötigen, öffnen Sie ein Support-Ticket, um Ihren Anwendungsfall zu besprechen.

Fügen Sie einen benutzerdefinierten Tab zum Bearbeitungsbildschirm für geplante Exporte hinzu

woo_ce_scheduled_export_data_tabs empfängt das Array der Tabs, die auf dem Bearbeitungsbildschirm für geplante Exporte angezeigt werden, wobei jeder Tab durch eine Tab-ID mit einem Label, einer Ziel-Element-ID und einer CSS-Klasse gekennzeichnet ist:

add_filter( 'woo_ce_scheduled_export_data_tabs', 'my_custom_scheduled_export_tab' );
function my_custom_scheduled_export_tab( $tabs ) {
    $tabs['my_tab'] = array(
        'label'  => __( 'My Tab', 'my-textdomain' ),
        'target' => 'my_tab_panel',
        'class'  => '',
    );
    return $tabs;
}

woo_ce_export_types fügt nur ein Label zur Liste der Exporttypen hinzu, die an Orten wie dem Typ-Zähler verwendet werden. Die Registrierung eines voll funktionsfähigen neuen Exporttyps bedeutet auch, einen passenden Fall zur internen Export-Dispatching hinzuzufügen, was kein einzelner Filter leisten kann. Wenn Sie einen wirklich neuen Exporttyp benötigen, öffnen Sie ein Support-Ticket, um Ihren Anwendungsfall zu besprechen.

FAQ

Muss ich die Interna des Plugins kennen, um diese Hooks zu verwenden?
Nein. Sie benötigen nur den Hook-Namen, wann er ausgelöst wird und welche Argumente er übergibt, die alle oben aufgeführt sind. Sie müssen nicht den Quellcode des Plugins lesen, um einen Hook zu verwenden.
Werden sich diese Hooks in einem zukünftigen Update ändern?
Hook-Namen gelten als Teil der öffentlichen API des Plugins und Visser Labs vermeidet es, sie ohne Vorankündigung umzubenennen. Nichtsdestotrotz sollten Sie benutzerdefinierten Code immer auf einer Staging-Website testen, nachdem Sie das Plugin aktualisiert haben.
Wo füge ich diesen Code hinzu?
Fügen Sie ihn zu einem benutzerdefinierten (standortspezifischen) Plugin hinzu oder zur functions.php Ihres aktiven Themes, wenn Sie keine Child-Theme-Struktur verwenden. Bearbeiten Sie nicht direkt die Dateien von Store Exporter Deluxe. Alle Änderungen dort gehen bei der nächsten Plugin-Aktualisierung verloren.

Benötigen Sie weitere Hilfe?

Wenn Sie Store Exporter Deluxe verwenden und Hilfe bei einer bestimmten Anpassung benötigen, öffnen Sie ein Support-Ticket und unser Team kann Sie auf den richtigen Hook für Ihren Anwendungsfall hinweisen.

Wenn Sie das kostenlose Store Exporter Plugin verwenden, stellen Sie Ihre Frage im WordPress.org Support-Forum.

War dieser Artikel hilfreich?

Verwandte Artikel

Ressourcen & Hilfe