Filtres & Hooks : exemples pratiques
WP-ImmoMakler fournit de nombreux filter hooks et action hooks WordPress qui vous permettent de personnaliser les sorties et le comportement de l’importateur depuis votre propre code. Tous les exemples de code appartiennent au fichier /wp-content/plugins/immomakler-child/functions.php de votre WP-ImmoMakler Child-Skin-Plugin.
Redirection après une demande de contact réussie
Section intitulée « Redirection après une demande de contact réussie »Rediriger vers une page de confirmation personnalisée après l’envoi du formulaire de contact :
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>';}Déclencher des événements analytics lors de l’envoi du formulaire
Section intitulée « Déclencher des événements analytics lors de l’envoi du formulaire »Google Analytics
Section intitulée « 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
Section intitulée « 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>';}Rendre les champs personnalisés interrogeables
Section intitulée « Rendre les champs personnalisés interrogeables »Pour que les champs meta personnalisés soient pris en compte dans les requêtes de recherche WP_Query :
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;}Définir des champs de recherche avancés
Section intitulée « Définir des champs de recherche avancés »Configurer des champs de recherche basés sur des sliders pour la surface, le nombre de pièces et le prix :
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, ), );}Personnaliser les tailles d’image
Section intitulée « Personnaliser les tailles d’image »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;}Indiquez pour la hauteur, si possible, au moins 1,5 fois la largeur (sans recadrage). Si la hauteur est inférieure à la largeur, pour les photos au format paysage, la hauteur limite l’image et celle-ci est générée plus étroite que prévu — à l’affichage, elle est alors agrandie et apparaît floue. Pour en savoir plus, consultez Traitement des images du bien immobilier.
Mettre à jour la date de modification lors des mises à jour de bien immobilier
Section intitulée « Mettre à jour la date de modification lors des mises à jour de bien immobilier »Par défaut, la date de publication d’origine est conservée. Pour mettre à jour la date de modification à chaque mise à jour d’importation :
add_filter('immomakler_preserve_post_date_on_update', '__return_false');Créer une entrée de pays étranger dans les taxonomies
Section intitulée « Créer une entrée de pays étranger dans les taxonomies »add_filter('immomakler_mark_foreign_countries', '__return_true');Créer des types de bien personnalisés
Section intitulée « Créer des types de bien personnalisés »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;}Créer des types d’utilisation personnalisés
Section intitulée « Créer des types d’utilisation personnalisés »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;}Enregistrer et remplir une taxonomie personnalisée
Section intitulée « Enregistrer et remplir une taxonomie personnalisée »Exemple : créer une taxonomie de codes postaux et la remplir automatiquement lors de l’importation :
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'); }}Référence complète des hooks
Section intitulée « Référence complète des hooks »Vous trouverez un aperçu complet de tous les filter hooks et action hooks disponibles, regroupés par catégories, sous Filtres et Action-Hooks.
Cela pourrait aussi vous intéresser
Section intitulée « Cela pourrait aussi vous intéresser »- Filtres et Action-Hooks — référence complète de tous les hooks, regroupés par catégories
- Rendre les personnalisations compatibles avec les mises à jour — le Child-Skin-Plugin comme emplacement sécurisé pour votre code personnalisé
- Personnaliser les templates — surcharger les fichiers skin pour des modifications de mise en page approfondies
- Hooks du formulaire de contact — hooks liés aux demandes et à l’envoi d’e-mails