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[]
$immobilienArray 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
$immobilieSimpleXML-Objekt der aktuellen Immobilie.array
$infosArray 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.
- string
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
$valueElementwert.SimpleXMLElement
$immobilieSimpleXML-Objekt der aktuellen Immobilie.Mapping
$mappingMapping-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_rawZu speichernde Post-Daten gem. WordPress-Codex. - SimpleXMLElement
$immobilieSimpleXML-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
$valueTaxonomie-Begriff (Term). - SimpleXMLElement
$immobilieSimpleXML-Objekt der aktuellen Immobilie. - Mapping
$mappingMapping-Daten des aktuellen Elements. - integer
$post_idDie Post-ID des Beitrags der Immobilie. - Term[]
$termsListe der während der Verarbeitung erstellten vorheriger Terms.- integer
$terms[]['term_id']Term-ID. - string
$terms[]['taxonomy']Taxonomie (aus Mappingdest-Feld).
- integer
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
$termAssoziatives Array mit Daten des neuen Taxonomie-Begriffs.- string
$term['term_value']Der übergeordnete Term-Name. - string
$term['taxonomy']Taxonomie (aus Mappingdest-Feld). - array
$term['args']Assoziatives Array mit Daten des neuen Taxonomie-Begriffs.- string
$term['args']['slug']Slug des übergeordneten Term-Namens.
- string
- Mapping
$term['mapping']Mapping-Daten des aktuellen Elements.
- string
- SimpleXMLElement
$immobilieSimpleXML-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_fieldAssoziatives Array mit Daten des neuen Custom-Fields.- string
$custom_field['mapping_source']Quellpfed (aus Mappingsource-Feld). - string
$custom_field['mapping_destination']Importziel (aus Mappingdest-Feld). - string
$custom_field['mapping_parent']Übergeordneter Titel. - string
$custom_field['meta_key']Bezeichner (aus Mappingdest-Feld,parent-Feld, odertitle-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 Mappingname-Feld). - string|boolean
$custom_field['meta_group']Gruppe (aus Mappinggroup-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.
- string
- SimpleXMLElement
$immobilieSimpleXML-Objekt der aktuellen Immobilie. - integer
$post_idDie 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
$anhangSimpleXML-Objekt des zu importierenden Anhangs. - integer
$post_idDie 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_formatsListe 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_orderReihenfolge 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_folderListe 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_folderAbsoluter Pfad des alternativen Basisverzeichnisses mit/usersals 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_foldersListe 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_fileDateiname des zu verarbeitenden ZIP-Archivs inkl. kompletten Dateisystem-Pfad. - array
$infosWeitere 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.
- string
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_fileXML-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
$datetimestrtotime-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_metaListe 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
$fragmentsListe 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
$templateVorlage.
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
$varsAssoziatives Array mit Variablennamen und den zugehörigen Werten. Standard:- string
$vars['url']URL aus der Import-XML-Datei.
- string
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
$blurUnschärfe aktivierentrueoder deaktivierenfalse.