Filter-Referenz

Filter-Referenz

Für die individuelle, WordPress-konforme Anpassung des Importvorgangs stehen diverse Filter- und Action-Hooks zur Verfügung.

Über die folgenden Filter können eigene Callback-Funktionen eingebunden werden, mit denen Daten vor dem eigentlichen Import verändert werden. Diese Funktionen werden normalerweise in der Datei functions.php des Themes hinterlegt.

Beispiel
function my_callback( $objects) {
  // ... eigene Anpassungen
  return $objects;
}
add_filter( 'immonex_oi2wp_import_properties_xml_before_import', 'my_callback', 10, 1 );

Alle Objekte

Filter: immonex_oi2wp_import_properties_xml_before_import

Mit diesem Filter können die XML-Daten aller Objekte eines Importarchivs vor dem Import ausgewertet oder modifiziert werden.

Parameter
  • SimpleXMLElement[] $immobilien Array mit SimpleXML-Objekten aller Immobilien des aktuellen Import-Archivs.

Aktuelles Objekt

Filter: immonex_oi2wp_property_xml_before_import

Mit diesem Filter können die XML-Daten des aktuell zu verarbeitenden Objekts vor dem Import modifiziert werden. Soll die Immobilie nicht importiert werden, ist von der Callback-Funktion false zurückzuliefern.

Parameter
  • SimpleXMLElement $immobilie SimpleXML-Objekt der aktuellen Immobilie.

  • array $infos Array mit Informationen zum aktuell verarbeiteten ZIP-Archiv.

    • string $infos['zip_file'] Die aktuell zu verarbeitende ZIP-Datei.
    • string $infos['import_folder'] Das Import-Verzeichnis.
    • string $infos['subdir_name'] Das zu verwendende Unterverzeichnis.
    • string $infos['unzip_dir'] Der Entpack-Pfad.

Einzelne Post-Elemente

Filter: immonex_oi2wp_add_post_data_element

Dieser Filter wird angewendet auf ein einzelnes Element der Daten, die direkt im WordPress-Beitrag (Post) des Immobilienobjekts gespeichert werden (z. B. Titel, Beschreibung, Eintragsdatum etc.).

Parameter
  • mixed $value Elementwert.

  • SimpleXMLElement $immobilie SimpleXML-Objekt der aktuellen Immobilie.

  • Mapping $mapping Mapping-Daten des aktuellen Elements.

RAW Post-Daten

Filter: immonex_oi2wp_add_property_post_data

Dieser Filter wird angewendet auf das komplette Array der Daten, die direkt im WordPress-Beitrag (Post) des Immobilienobjekts gespeichert werden (z. B. Titel, Beschreibung, Eintragsdatum etc.).

Parameter
  • array $post_raw Zu speichernde Post-Daten gem. WordPress-Codex.
  • SimpleXMLElement $immobilie SimpleXML-Objekt der aktuellen Immobilie.

Objekteigenschaft

Filter: immonex_oi2wp_add_property_taxonomy_term

Dieser Filter wird bei der Zuweisung einer Objekteigenschaft als Taxonomie-Begriff (z. B. Immobilienart, Nutzungsart etc.) auf den jeweiligen String angewendet.

Parameter
  • string $value Taxonomie-Begriff (Term).
  • SimpleXMLElement $immobilie SimpleXML-Objekt der aktuellen Immobilie.
  • Mapping $mapping Mapping-Daten des aktuellen Elements.
  • integer $post_id Die Post-ID des Beitrags der Immobilie.
  • Term[] $terms Liste der während der Verarbeitung erstellten vorheriger Terms.
    • integer $terms[]['term_id'] Term-ID.
    • string $terms[]['taxonomy'] Taxonomie (aus Mapping dest-Feld).

Neue Objekteigenschaft

Filter: immonex_oi2wp_insert_taxonomy_term

Dieser Filter wird beim Hinzufügen eines neuen Taxonomie-Begriffs auf das entspr. Array (Begriff, Taxonomiename und zus. Argumente) angewendet. Liefert die Callback-Funktion false zurück, wird der betreffende Begriff nicht importiert.

Parameter
  • array $term Assoziatives Array mit Daten des neuen Taxonomie-Begriffs.
    • string $term['term_value'] Der übergeordnete Term-Name.
    • string $term['taxonomy'] Taxonomie (aus Mapping dest-Feld).
    • array $term['args'] Assoziatives Array mit Daten des neuen Taxonomie-Begriffs.
      • string $term['args']['slug'] Slug des übergeordneten Term-Namens.
    • Mapping $term['mapping'] Mapping-Daten des aktuellen Elements.
  • SimpleXMLElement $immobilie SimpleXML-Objekt der aktuellen Immobilie.

Hinzufügen eines Custom-Fields

Filter: immonex_oi2wp_add_property_custom_field

Dieser Filter wird auf das jeweilige Array beim Hinzufügen eines Custom-Fields (benutzerdefinierte Eigenschaft) zu einem Immobilienobjekt angewendet. Liefert die Callback-Funktion false zurück, wird das betreffende Custom-Field nicht importiert.

Parameter
  • array $custom_field Assoziatives Array mit Daten des neuen Custom-Fields.
    • string $custom_field['mapping_source'] Quellpfed (aus Mapping source-Feld).
    • string $custom_field['mapping_destination'] Importziel (aus Mapping dest-Feld).
    • string $custom_field['mapping_parent'] Übergeordneter Titel.
    • string $custom_field['meta_key'] Bezeichner (aus Mapping dest-Feld, parent-Feld, oder title-Feld).
    • string $custom_field['meta_value'] Wert nach ausgeführten Filtern.
    • string $custom_field['meta_value_before_filter'] Wert ohne ausgeführte Filter.
    • string|boolean $custom_field['meta_name'] Name (aus Mapping name-Feld).
    • string|boolean $custom_field['meta_group'] Gruppe (aus Mapping group-Feld).
    • boolean $custom_field['unique'] Eindeutiges Feld, wenn nicht verknüpft.
    • boolean $custom_field['join_multiple_values'] Mehrere Werte verknüpfen.
    • string $custom_field['join_divider'] Trennzeichen beim Zusammensetzen.
  • SimpleXMLElement $immobilie SimpleXML-Objekt der aktuellen Immobilie.
  • integer $post_id Die Post-ID des Beitrags der Immobilie.

Dateianhänge

Filter: immonex_oi2wp_attachment_before_import

Dieser Filter wird auf das jeweilige SimpleXML-Element vor dem Importieren eines Anhangs (Bilddatei, Dokument, URL etc.) angewendet. Liefert die Callback-Funktion false zurück, wird der betr. Anhang nicht importiert.

Parameter
  • SimpleXMLElement $anhang SimpleXML-Objekt des zu importierenden Anhangs.
  • integer $post_id Die Post-ID des Beitrags der Immobilie.

Typen der Dateianhänge erweitern

Filter: immonex_oi2wp_misc_file_formats

Mit diesem Filter kann die Liste alternativer Typen von Dateianhängen erweitert werden, die beim Import berücksichtigt werden sollen.

Standardmäßig werden neben den Bilddateien nur PDF-Dateien importiert.

Dateitypen werden in Form des MIME-Subtyps bzw. der gängigen Dateiendung hinzugefügt.

Ein von der Callback-Funktion zurückgeliefertes Array könnte bspw. folgendermaßen aussehen:

function my_callback( $file_formats ) {
  return array_merge( $file_formats, array( 'XLS', 'DWG', 'ZIP' ) );
}
add_filter( 'immonex_oi2wp_misc_file_formats', 'my_callback', 10, 1 );
Parameter
  • array $file_formats Liste erlaubter Dateitypen als MIME-Subtyp bzw. Dateisuffix.

Reihenfolge der Immobilien umkehren

Filter: immonex_oi2wp_reverse_property_post_time_order

Beim Import wird für den Erstellungs-Zeitstempel der Immobilien-Beiträge auf den in der XML-Datei hinterlegten Datumseintrag immobilie->verwaltung_techn->stand_vom zurückgegriffen.

Da Beiträge gleichen Typs mit identischem Erstellungs-Datum inkl. identischer Uhrzeit problematisch sind, wird pro importiertem Objekt bei gleichem Datum jeweils eine Sekunde addiert.

Das kann bedeuten, dass bei einer Auflistung der Objekte mit Sortierung nach Datum/Zeit abwärts die Objekte in umgekehrter Reihenfolge angezeigt werden: Immobilien, die in der Import-XML-Datei oben sind, sind in der Ausgabeliste unten.

Diese Reihenfolge kann bei Bedarf mit diesem Filter umgekehrt werden.

Parameter
  • boolean $reverse_order Reihenfolge umkehren? (Standard: false)

Benutzerdefinierter Mapping-Ordner

Filter: immonex_oi2wp_mapping_folders

Dieser Filter-Hook bietet die Möglichkeit, neben dem Standardverzeichnis für Mapping-Dateien wp-content/uploads/immonex-openimmo-import/mappings auch benutzerdefinierte Ordner als Mapping-Quellen anzugeben.

Parameter
  • array $mapping_folder Liste mit absoluten Pfadangaben aller Ordner, in denen Mapping-Dateien (CSV) enthalten sind.

Benutzerbezogene Importordner ändern

Filter: immonex_oi2wp_user_import_base_dir

Das reguläre Basisverzeichnis für benutzerbezogene Importordner ist wp-content/uploads/immonex-openimmo-import/users.

Mit diesem Filter kann ein beliebiges anderes Verzeichnis festgelegt werden, sofern hier die passenden Dateisystem-Zugriffsrechte gegeben sind.

Absolute Pfadangabe ohne abschließenden Slash.

Der abschließende Ordnername muss immer users lauten, beispielsweise /var/www/site1/immonex-import/users.

Parameter
  • string $users_folder Absoluter Pfad des alternativen Basisverzeichnisses mit /users als abschließendem Ordnernamen

Importordner ändern

Filter: immonex_oi2wp_import_folders

Damit Dateien in Ordnern außerhalb des globalen Importordners wp-content/uploads/immonex-openimmo-import/ verarbeiten werden, kann mit diesem Filter die Liste der Importverzeichnisse verändert werden.

Parameter
  • array $import_folders Liste mit absoluten Pfadangaben aller Ordner, in denen nach zu verarbeitenden Import-ZIP-Dateien gesucht wird.

Gesamtes ZIP-Archiv

Filter: immonex_oi2wp_zip_archive_before_import

Aufruf bevor ein Import-ZIP-Archiv verarbeitet wird. Wird von der Filterfunktion false zurückgeliefert, dann wird die Verarbeitung der Datei übersprungen.

Parameter
  • string $zip_file Dateiname des zu verarbeitenden ZIP-Archivs inkl. kompletten Dateisystem-Pfad.
  • array $infos Weitere Angaben zum anstehenden Import.
    • string $infos['import_folder'] Importverzeichnis.
    • string $infos['subdir_name'] Verwendeter Unterordner im Importverzeichnis.
    • string $infos['unzip_dir'] Entpackverzeichnis.
    • string $infos['archive_file'] Archivdatei.
    • string $infos['log_file'] Logdatei.

RAW XML bearbeiten

Filter: immonex_oi2wp_raw_xml_before_import

Mit diesem Filter kann die XML-Datei vor der Verarbeitung modifiziert werden.
Zurückgeliefert werden muss der Dateiname oder der neue Dateiname.

Parameter
  • string $xml_file XML-Dateiname inkl. Pfad.

Zeitraum für Bereinigung

Filter: immonex_oi2wp_delete_zip_file_if_older_than

Über diesen Hook kann der Zeitraum definiert werden, nach dem fehlerhafte ZIP-Archive automatisch gelöscht werden sollen. Standard: Datei ist älter als drei Stunden.

Parameter
  • string $datetime strtotime-kompatible Angabe, die immer mit einem Minuszeichen beginnt (z. B. -3 hours)

Zurücksetzen von Custom Field verhindern

Filter: immonex_oi2wp_reset_post_exclude_meta

Beim Aktualisieren eines Immobilienobjekts werden standardmäßig zunächst alle zugehörigen Custom Fields (Metadaten) bis auf die OpenImmo-OBID gelöscht. Mit diesem Filter-Hook können bei Bedarf weitere Angaben vom Zurücksetzen ausgenommen werden.

function my_callback( $exclude_meta ) {
  return array_merge( $exclude_meta, // System Meta-Angaben bleiben erhalten
    array(
      '_my_custom_field1',
      '_my_other_field2',
    )
  );
}
add_filter( 'immonex_oi2wp_reset_post_exclude_meta', 'my_callback', 10, 1 );
Parameter
  • array $exclude_meta Liste mit Feldnamen.

URLs virtueller Touren

Filter: immonex_oi2wp_additional_virtual_tour_url_parts

Die URLs virtueller Touren werden standardmäßig anhand der folgenden Teil-Zeichenketten (Dienstanbieter) erkannt: ogulo, immoviewer, matterport, archilogic, feelestate, virtualtours.immobilienscout24.

Diese Liste kann mit dem genannten Filter um eigene Angaben erweitert werden.

Parameter
  • array $fragments Liste mit Textfragmenten, die typischerweise in den übertragenen URLs der virtuellen Touren enthalten sind. Beispiel Domain: array( '360.mysite.de' ).

Template virtuelle Touren

Filter: immonex_oi2wp_virtual_tour_embed_code

Für die Einbindung virtueller Touren wird standardmäßig der folgende Embed-Code verwendet, der mit diesem Filter bei Bedarf individuell angepasst werden kann:

<div class="immonex-virtual-tour-iframe-wrap">
<iframe src="{url}" width="100%" height="450" frameborder="0" allowfullscreen mozallowfullscreen webkitallowfullscreen ></iframe> </div>

Die enthaltene Variable {url} wird beim Import entsprechend ersetzt. Eigene Variablen können ebenfalls auf diese Weise eingebunden werden – siehe Variablen für virtuelle Touren.

Parameter
  • string $template Vorlage.

Variablen für virtuelle Touren

Filter: immonex_oi2wp_virtual_tour_embed_code_args

Die Werte für die Variablen, die im Vorlagen-Code für virtuelle Touren beim Import ersetzt werden, können mit diesem Filter modifiziert bzw. erweitert werden.

Parameter
  • array $vars Assoziatives Array mit Variablennamen und den zugehörigen Werten. Standard:
    • string $vars['url'] URL aus der Import-XML-Datei.

Koordinaten Unschärfe

Filter: immonex_oi2wp_enable_geocode_blurring

Werden die Koordinaten eines Objektstandorts ohne Freigabe der Adressveröffentlichung erst beim Import per Geokodierung ermittelt, ist hierbei eine leichte „Unschärfe“ vorgesehen, damit sich bei einer kartenbasierten Darstellung nicht alle Marker dieser Objekte auf der exakt gleichen Position (Ortsmitte) befinden und sich so komplett überlagern.

Mit diesem Filter kann die Unschärfe deaktiviert werden.

Parameter
  • boolean $blur Unschärfe aktivieren true oder deaktivieren false.