Filter & Actions: Beispiele
WP-ImmoMakler stellt zahlreiche WordPress-Filter-Hooks und Action-Hooks bereit, mit denen Sie Ausgaben und Importer-Verhalten aus eigenem Code heraus anpassen können. Alle Code-Beispiele gehören in die Datei /wp-content/plugins/immomakler-child/functions.php Ihres WP-ImmoMakler Child-Skin-Plugins.
Weiterleitung nach erfolgreicher Kontaktanfrage
Abschnitt betitelt „Weiterleitung nach erfolgreicher Kontaktanfrage“Nach dem Absenden des Kontaktformulars zur einer eigenen Bestätigungsseite weiterleiten:
add_filter('immomakler_contactform_mailsent', 'immomakler_mailsent', 10, 3);function immomakler_mailsent($text, $requested_items, $values) { $objektid = $requested_items[0]; return $text . '<script>location.href="/anfrage-gesendet/?id=' . get_post_meta($objektid, 'objektnr_extern', true) . '";</script>';}Analytics-Events bei Formular-Einsendung auslösen
Abschnitt betitelt „Analytics-Events bei Formular-Einsendung auslösen“Google Analytics
Abschnitt betitelt „Google Analytics“add_filter('immomakler_contactform_mailsent', 'immomakler_contactform_mailsent_analytics_event', 10, 2);function immomakler_contactform_mailsent_analytics_event($response, $requested_items) { return $response . '<script>ga("send", "event", "Direktanfrage", "versendet", "' . get_post_meta($requested_items[0], 'objektnr_extern', true) . '");</script>';}Google Tag Manager
Abschnitt betitelt „Google Tag Manager“add_filter('immomakler_contactform_mailsent', 'immomakler_contactform_mailsent_gtm_event', 10, 2);function immomakler_contactform_mailsent_gtm_event($response, $requested_items) { return $response . '<script>gtag("event", "form_submit_wp_immomakler", { objekt_id: "' . esc_attr(get_post_meta($requested_items[0], 'objektnr_extern', true)) . '" });</script>';}Eigene Felder durchsuchbar machen
Abschnitt betitelt „Eigene Felder durchsuchbar machen“Damit benutzerdefinierte Meta-Felder in WP_Query-Suchanfragen berücksichtigt werden:
add_filter('immomakler_searchable_postmeta_keys', 'custom_immomakler_searchable_postmeta_keys');function custom_immomakler_searchable_postmeta_keys($immomakler_metakeys) { $immomakler_metakeys[] = 'verwaltung_objekt-user_defined_simplefield-objekt_des_tages'; return $immomakler_metakeys;}Erweiterte Suchfelder definieren
Abschnitt betitelt „Erweiterte Suchfelder definieren“Slider-basierte Suchfelder für Fläche, Zimmerzahl und Preis konfigurieren:
add_filter('immomakler_search_enabled_ranges', 'my_immomakler_search_ranges');function my_immomakler_search_ranges($ranges) { return array( 'immomakler_search_size' => array( 'label' => 'Fläche', 'slug' => 'qm', 'unit' => 'm²', 'decimals' => 0, 'meta_key' => 'flaeche', 'slider_step' => 5, ), 'immomakler_search_rooms' => array( 'label' => 'Anzahl Zimmer', 'slug' => 'zimmer', 'unit' => '', 'decimals' => 1, 'meta_key' => 'anzahl_zimmer', 'slider_step' => 0.5, ), 'immomakler_search_price_rent' => array( 'label' => 'Kaltmiete', 'slug' => 'kaltmiete', 'unit' => '€', 'decimals' => 0, 'meta_key' => 'kaltmiete', 'slider_step' => 100, ), 'immomakler_search_price_buy' => array( 'label' => 'Kaufpreis', 'slug' => 'kaufpreis', 'unit' => '€', 'decimals' => 0, 'meta_key' => 'kaufpreis', 'slider_step' => 25000, ), );}Bildgrößen anpassen
Abschnitt betitelt „Bildgrößen anpassen“add_filter('immomakler_image_sizes', 'custom_immomakler_image_sizes');function custom_immomakler_image_sizes($images_sizes) { $images_sizes['immomakler-archive-thumb'] = [ 'width' => 350, 'height' => 250, 'crop' => false, ]; $images_sizes['immomakler-archive-thumb-big'] = [ 'width' => 475, 'height' => 300, 'crop' => true, ]; $images_sizes['immomakler-archive-big'] = [ 'width' => 900, 'height' => 600, 'crop' => ['center', 'top'], ]; return $images_sizes;}Änderungsdatum bei Objekt-Updates aktualisieren
Abschnitt betitelt „Änderungsdatum bei Objekt-Updates aktualisieren“Standardmäßig bleibt das ursprüngliche Veröffentlichungsdatum erhalten. Um das Änderungsdatum bei jedem Import-Update zu aktualisieren:
add_filter('immomakler_preserve_post_date_on_update', '__return_false');Ausland-Eintrag bei Taxonomien erzeugen
Abschnitt betitelt „Ausland-Eintrag bei Taxonomien erzeugen“add_filter('immomakler_mark_foreign_countries', '__return_true');Eigene Objekttypen erstellen
Abschnitt betitelt „Eigene Objekttypen erstellen“add_filter('immomakler_object_terms_types', 'custom_immomakler_object_terms_types', 10, 2);function custom_immomakler_object_terms_types($object_types, $openimmo_data) { if ($openimmo_data['gewerbe']) { $object_types[] = 'Gewerbe'; } if ($openimmo_data['verwaltung_objekt-user_defined_simplefield-xyz'] == 'PREMIUM') { $object_types[] = 'Premiumimmobilie'; } return $object_types;}Eigene Nutzungsarten erstellen
Abschnitt betitelt „Eigene Nutzungsarten erstellen“add_filter('immomakler_object_terms_nutzungsart', 'custom_immomakler_object_terms_nutzungsart', 10, 2);function custom_immomakler_object_terms_nutzungsart($object_nutzungsart, $openimmo_data) { if ($openimmo_data['verwaltung_objekt-user_defined_simplefield-xyz'] == 'PRIVAT') { $object_nutzungsart[] = 'Privat'; } if ($openimmo_data['verwaltung_objekt-user_defined_simplefield-xyz'] == 'INSTITUTIONELL') { $object_nutzungsart[] = 'Institutionell'; } return $object_nutzungsart;}Eigene Taxonomie registrieren und befüllen
Abschnitt betitelt „Eigene Taxonomie registrieren und befüllen“Beispiel: eine Postleitzahl-Taxonomie anlegen und beim Import automatisch befüllen:
add_action('init', 'custom_immomakler_register_taxonomies');function custom_immomakler_register_taxonomies() { register_taxonomy('immomakler_search_plz', 'immomakler_object', array( 'labels' => array( 'name' => _x('Postleitzahlen', 'taxonomy general name'), 'singular_name' => _x('Postleitzahl', 'taxonomy singular name'), 'all_items' => _x('Alle Postleitzahlen', 'taxonomy choose all'), ), 'rewrite' => array( 'slug' => 'immobilien-plz', 'hierarchical' => false, 'with_front' => false, ), 'hierarchical' => false, 'query_var' => 'plz', 'public' => true, 'show_ui' => true, ));}
add_action('immomakler_after_post_create', 'custom_immomakler_index', 10, 2);function custom_immomakler_index($post_id, $openimmo_data) { if (!empty($openimmo_data['plz'])) { wp_set_object_terms($post_id, $openimmo_data['plz'], 'immomakler_search_plz'); }}Vollständige Hooks-Referenz
Abschnitt betitelt „Vollständige Hooks-Referenz“Eine vollständige, nach Kategorien gruppierte Übersicht aller verfügbaren Filter- und Action-Hooks finden Sie unter Filter- und Action-Hooks.
Das könnte Sie auch interessieren
Abschnitt betitelt „Das könnte Sie auch interessieren“- Filter- und Action-Hooks — vollständige Referenz aller Hooks, gruppiert nach Kategorien
- Anpassungen updatesicher gestalten — Child-Skin-Plugin als sicherer Ort für eigenen Code
- Templates anpassen — Skin-Dateien für tiefgreifende Layout-Änderungen überschreiben
- Kontaktformular-Hooks — Hooks rund um Anfragen und E-Mail-Versand