1. Home
  2. Support/Hilfe
  3. WP-ImmoMakler erweitern
  4. Filter-Hooks – Nützliche Beispiele für die Anwendung

Filter-Hooks – Nützliche Beispiele für die Anwendung

WP-ImmoMakler® ist mit  vielen WordPress Filter-Hooks und Action-Hooks versehen (vollständige Liste siehe unten), durch die sich von außerhalb des Plugin-Codes in das Verhalten der Ausgabe, aber auch vor allem das Verhalten des Importers eingreifen lässt.

Folgend sind ein paar nützliche Filter aufgeführt. Kopieren Sie die für Sie relevanten Code-Beispiele in die  functions.php Ihres Child-Skin-Plugins unter /wp-content/plugins/immomakler-child/functions.php und passen Sie sie an Ihre Bedürfnisse an. Gerne nennen wir Ihnen auf Anfrage die genauen Filter für Ihre speziellen WünscheQ

Custom Fields (Post Meta) für Queries verfügbar machen

Um die Suchperformance deutlich zu steigern sind ab WP-ImmoMakler® Version 5.8 nicht mehr alle Immobilien-Werte als eigener Post Meta Key verfügbar.
Mit folgendem Filter können einzelne Felder als eigenes Post Meta Feld angelegt werden, um sie für Meta Queries verfügbar zu machen:

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;
}

Felder in der erweiterten Suche (Post Meta Fields) definieren

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
                                              ),
        );
}

Größe der Immobilienbilder festlegen

Mit  'crop' => true werden die Bilder auf die angegebene Größe zugeschnitten. Mit 'crop' => false wird in die angegebenen Grenzen skaliert.

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 ]; // max. 350px breit, max. 250px hoch, aber nicht geschnitten
    $images_sizes['immomakler-archive-thumb-big'] = [ 'width' => 475, 'height' => 300, 'crop' => true ]; // max. 475px breit, max. 30px hoch, Überhänge abgeschnitten
    $images_sizes['immomakler-archive-big']       = [ 'width' => 900, 'height' => 600, 'crop' => ['center', 'top'] ]; // max. 900px breit, max. 600px hoch, Überhänge abgeschnitten (horizontal mittig geschnitten und nur unten abgeschnitten)
    return $images_sizes;
}

Die Standardgrößen sind:

array(
    'immomakler-gallery-big'       => array( 'width' => 900, 'height' => 900, 'crop' => false ),
    'immomakler-gallery-thumb'     => array( 'width' => 195, 'height' => 110, 'crop' => false ),
    'immomakler-archive-thumb'     => array( 'width' => 360, 'height' => 390, 'crop' => false ),
    'immomakler-archive-thumb-big' => array( 'width' => 475, 'height' => 475, 'crop' => false ),
    'immomakler-person-thumb'      => array( 'width' => 360, 'height' => 390, 'crop' => false )
)

Änderungsdatum bei Immobiliendaten-Updates auf den aktuellen Tag setzen

Standardmäßig bleibt eine Immobilie auch nach einem Update ganz hinten in der Liste, zum Datum der Erstveröffentlichung auf der Website. Wenn sie aber nach einem Update wieder vorn eingereiht werden soll, nutzen Sie diesen Filter.

add_filter ('immomakler_preserve_post_date_on_update', '__return_false');

Ländereintrag „Ausland“ generieren

Standardmäßig werden Länder als Taxonomy generiert, die dann unter der URL /immobilien-in/spanien/ gelistet werden können. Für eine Kategorie /immobilien-in/ausland/ nutzen Sie folgenden Filter. Das Hauptland (nicht-Ausland) können Sie im WP-Backend unter WP-ImmoMakler® > Einstellungen > Import einstellen.

add_filter ('immomakler_mark_foreign_countries', '__return_true');

Anpassen der galleria.io-Options für die Exposé-Slideshow

add_filter('immomakler_galleria_options', 'immomakler_custom_galleria_options');
function immomakler_custom_galleria_options( $options ) {
    $options['transition'] = 'fade';
    $options['autoplay'] = '3000';
    return $options;
}

Eigene Objektarten generieren

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 anhand benutzerdefinierter Felder aus der Maklersoftware generieren

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;
}

Eine eigene Taxonomy generieren

Diese in folgendem Beispiel erstellte WordPress Taxonomy “immomakler_search_plz” kann dann z.B. wie oben beschrieben unter “Auswahlfelder in der Suchmaske” eingebunden werden oder in einem Shortcode verwendet werden:

[immomakler-archive vermarktungsart=kauf plz="12345,12355,12347"]
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' );
    }
}

Liste der verfügbaren Filter-Hooks

Für die genaue Verwendung, Ausführungsstelle und die verfügbaren Parameter der einzelnen Filter suchen Sie bitte nach dem entsprechenden Filter-Namen im Plugin-Code.

Über die Anwendung von WordPress Filter-Hooks

immomakler_allow_delete_post
immomakler_append_anbieternr_to_anid
immomakler_append_anbieternr_to_obid
immomakler_append_language_to_obid
immomakler_archive_on_delete
immomakler_archive_title
immomakler_attachment_caption
immomakler_attachment_data_path
immomakler_attachment_description
immomakler_attachment_icon_class
immomakler_attachment_nodes_before_processing
immomakler_attachment_title
immomakler_auto_publish_post
immomakler_available_taxonomies
immomakler_available_themes
immomakler_back_to_archive_link
immomakler_bebaubar_nach_mapping
immomakler_cart_add_to_cart
immomakler_cart_archive_title
immomakler_cart_archive_title_search
immomakler_cart_cookie_lifetime
immomakler_cart_searchable
immomakler_cart_show_cart
immomakler_cart_widget_item
immomakler_contact_form_with_posts
immomakler_contact_form_without_posts
immomakler_contactform_agb
immomakler_contactform_cc
immomakler_contactform_customer_is_sender
immomakler_contactform_enabled_fields
immomakler_contactform_mail_no_posts_subject
immomakler_contactform_mail_to_email
immomakler_contactform_mail_to_name
immomakler_contactform_mail_with_posts_subject
immomakler_contactform_mailfailed
immomakler_contactform_mailsent
immomakler_contactform_mandatory_fields
immomakler_contactform_message_text
immomakler_contactform_submit_value
immomakler_contactform_validationfailed
immomakler_contactform_widerruf
immomakler_contactform_widerruf_in_multiple_request
immomakler_country_taxonomy
immomakler_currency
immomakler_custom_max_execution_time
immomakler_default_currency
immomakler_default_order
immomakler_default_property_image_path_filename
immomakler_delete_imported_files_after_days
immomakler_disable_frontend
immomakler_email_attachments
immomakler_enqueue_bootstrap_js
immomakler_epass_diagram_size
immomakler_erschliessung_mapping
immomakler_feature_list_args
immomakler_feature_taxonomy
immomakler_find_duplicate_by
immomakler_galleria_options
immomakler_galleria_theme_file
immomakler_geocode_address
immomakler_geocode_address_if_hidden
immomakler_geocode_with_bundesland
immomakler_googlemaps_api_key
immomakler_hide_address
immomakler_home_country_iso
immomakler_image_sizes
immomakler_immomakler_object_type_add_objektart
immomakler_immomakler_object_type_add_objektart_detail
immomakler_import_basedir_abspath
immomakler_import_dir_abspath
immomakler_import_dir_max_depth
immomakler_import_notifications_recipient_email
immomakler_import_notifications_recipient_name
immomakler_import_post_type
immomakler_importer_only
immomakler_insert_attachment_args
immomakler_is_immomakler_archive
immomakler_is_immomakler_single
immomakler_iso_land_mapping
immomakler_language_code
immomakler_language_code_default
immomakler_link_icon_class
immomakler_list_files_sorted_by_field
immomakler_location_taxonomy
immomakler_log_import_to_file
immomakler_map_address_with_bundesland
immomakler_map_address_with_sublocality
immomakler_mark_as_reference_instead_of_delete
immomakler_max_attachments
immomakler_number_of_columns_archive
immomakler_number_of_columns_single
immomakler_nutzungsart_taxonomy
immomakler_object_country_slug
immomakler_object_feature_slug
immomakler_object_location_slug
immomakler_object_nutzungsart_slug
immomakler_object_status_message
immomakler_object_status_slug
immomakler_object_terms_country
immomakler_object_terms_feature
immomakler_object_terms_location
immomakler_object_terms_nutzungsart
immomakler_object_terms_status
immomakler_object_terms_types
immomakler_object_terms_vermarktungsart
immomakler_object_type_hierarchical
immomakler_object_type_slug
immomakler_object_vermarktung_slug
immomakler_objektart_list_args
immomakler_objektart_mapping
immomakler_opengraph_facebook_admins
immomakler_openimmo_data
immomakler_openimmo_data_before_set_post_meta
immomakler_openimmofeedback_key_for_oobj_id
immomakler_options_defaults
immomakler_options_sanitize
immomakler_person_post_type
immomakler_post_author
immomakler_post_title
immomakler_post_type_immomakler_object_args
immomakler_post_type_immomakler_person_args
immomakler_posts_per_page
immomakler_preis_zeiteinheit
immomakler_preserve_post_date_on_update
immomakler_property_subtitle
immomakler_property_type_taxonomy
immomakler_protect_duplicate_property_posts
immomakler_radiussearch_default_radius
immomakler_radiussearch_radius_values
immomakler_recaptcha_validationfailed
immomakler_search_archive_title
immomakler_search_button_text
immomakler_search_dropdown_show_children
immomakler_search_enabled_ranges
immomakler_search_enabled_taxonomies
immomakler_searchagents_confirmation_flash_message
immomakler_searchagents_no_confirm_mail_sent_flash_message
immomakler_searchagents_notification_email_body
immomakler_searchagents_notification_email_subject
immomakler_searchagents_please_confirm_email_subject
immomakler_searchagents_please_confirm_flash_message
immomakler_searchagents_unsubscribe_flash_message
immomakler_seo_permalinks
immomakler_settings_tabs
immomakler_show_ui_country
immomakler_show_ui_feature
immomakler_show_ui_location
immomakler_show_ui_nutzungsart
immomakler_show_ui_status
immomakler_show_ui_type
immomakler_show_ui_vermarktung
immomakler_single_title
immomakler_skin_bootstrap3_vertical_archive_layout
immomakler_status_taxonomy
immomakler_taxomomy_immomakler_object_country_args
immomakler_taxomomy_immomakler_object_feature_args
immomakler_taxomomy_immomakler_object_location_args
immomakler_taxomomy_immomakler_object_nutzungsart_args
immomakler_taxomomy_immomakler_object_status_args
immomakler_taxomomy_immomakler_object_type_args
immomakler_taxomomy_immomakler_object_vermarktung_args
immomakler_theme_bootstrap3_vertical_archive_layout
immomakler_use_timestamp_for_file_id
immomakler_user_defined_fields
immomakler_vermarktung_taxonomy
immomakler_video_links
immomakler_zustand_mapping

Liste der verfügbaren Action-Hooks

Für die genaue Verwendung, Ausführungsstelle und die verfügbaren Parameter der einzelnen Actions suchen Sie bitte nach dem entsprechenden Action-Namen im Plugin-Code.

Über die Anwendung von WordPress Action-Hooks

immomakler_after_archive
immomakler_after_archive_item
immomakler_after_archive_items
immomakler_after_archive_no_items
immomakler_after_archiving_existing_post
immomakler_after_import_filelist
immomakler_after_import_zipfile
immomakler_after_pagination
immomakler_after_post_create
immomakler_after_save_attachments
immomakler_after_single
immomakler_after_single_details
immomakler_archive_property_actions
immomakler_archive_property_details_bottom
immomakler_archive_property_details_top
immomakler_before_archive
immomakler_before_archive_item
immomakler_before_archive_items
immomakler_before_archive_items_references
immomakler_before_archive_no_items
immomakler_before_contactform
immomakler_before_delete_post
immomakler_before_import_zipfile
immomakler_before_publish_post
immomakler_before_single
immomakler_before_single_details
immomakler_before_update_post
immomakler_end_epass
immomakler_search_form_after_ranges
immomakler_search_form_after_taxonomies
immomakler_search_form_begin
immomakler_search_form_end
immomakler_searchagents_after_form
immomakler_searchagents_before_form
immomakler_single_contact_begin
immomakler_single_contact_bottom
immomakler_single_description_end
immomakler_single_details_before_price
immomakler_single_details_begin
immomakler_single_details_end
immomakler_single_property_actions
Bitte geben Sie uns Ihr Feedback! Konnte dieser Artikel Ihre Fragen beantworten?

Ähnliche Artikel