Exemples utiles d’utilisation de crochets de filtre
WP-ImmoMakler® offre de nombreux filtres WordPress et de crochets d’action (voir la liste complète ci-dessous) qui vous permettent de modifier le comportement de sortie et d’importation, de l’extérieur du code du plug-in.
Voici la liste de quelques filtres utiles. Copiez les exemples de code pertinents dans le fichier functions.php de votre plug-in Child-Skin sous wp-content/plugins/immomakler-child/functions.php et personnalisez-les en fonction de vos besoins. Sur demande, nous vous indiquerons les filtres qui répondent le mieux à vos attentes.
Rendre les champs personnalisés (post-méta) disponibles pour les requêtes
À partir de la version 5.8 de WP-ImmoMakler®, toutes les valeurs immobilières ne sont plus disponibles en tant que Post Meta Key individuelle pour améliorer les performances de recherche.
Les filtres suivants vous permettent de créer des champs post-méta individuels en vue de les rendre disponibles pour les méta-requêtes :
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;
}
Créer des champs de sélection dans le masque de recherche (taxonomies)
Taxonomies disponibles, voir ci-dessous.
add_filter('immomakler_search_enabled_taxonomies', 'my_immomakler_search_taxonomies');
function my_immomakler_search_taxonomies( $taxomonies ) {
return array(
'immomakler_object_vermarktung',
'immomakler_object_nutzungsart',
'immomakler_object_type',
'immomakler_object_location',
);
}
Définir des champs pour la recherche avancée (champs post-méta)
add_filter('immomakler_search_enabled_ranges', 'my_immomakler_search_ranges');
function my_immomakler_search_ranges( $ranges ) {
return array(
'immomakler_search_size' => array(
'label' => 'Wohnfläche',
'slug' => 'qm',
'unit' => 'm²',
'decimals' => 0,
'meta_key' => 'wohnflaeche',
'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
),
);
}
Définir les filtres de tri standard pour la vue Liste
add_filter('immomakler_default_order', 'custom_immomakler_default_order');
function custom_immomakler_default_order( $im_order ) {
return 'priceasc'; // möglich sind: 'priceasc', 'pricedesc', 'dateasc', 'datedesc'
}
Définir la taille des images de bien immobilier
‘crop’ => true permet de rogner les images à la taille spécifiée ‘crop’ => false permet de définir les limites.
add_filter('immomakler_image_sizes', 'custom_immomakler_image_sizes');
function custom_immomakler_image_sizes( $images_sizes ) {
$images_sizes['immomakler-archive-thumb'] = array( 'width' => 350, 'height' => 250, 'crop' => false );
return $images_sizes;
}
Les tailles par défaut sont :
array(
'immomakler-gallery-big' => array( 'width' => 900, 'height' => 900, 'crop' => false ),
'immomakler-gallery-thumb' => array( 'width' => 100, 'height' => 60, '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' => 190, 'height' => 190, 'crop' => false )
)
Fixer la date de changement pour la mise à jour des données immobilières à la date du jour.
Un bien immobilier figure par défaut en bas de la liste, même après une mise à jour (date de la première publication sur le site web). Utilisez ce filtre si vous souhaitez qu’il figure en haut de la liste suite à une mise à jour.
add_filter ('immomakler_preserve_post_date_on_update', '__return_false');
Création de l’entrée du pays « Étranger »
Les pays sont générés comme taxonomie par défaut et peuvent être listés sous l’URL /immobilien-in/spanien/. Vous pouvez utiliser le filtre suivant pour une catégorie /immobilien-in/ausland/. Vous pouvez définir le pays principal (non étranger) dans le back-end WP en sélectionnant « WP-ImmoMakler® > Paramètres > Importation.
add_filter ('immomakler_mark_foreign_countries', '__return_true');
Personnalisation des options galleria.io pour le diaporama de la fiche de présentation
add_filter('immomakler_galleria_options', 'immomakler_custom_galleria_options');
function immomakler_custom_galleria_options( $options ) {
$options['transition'] = 'fade';
$options['autoplay'] = '3000';
return $options;
}
Création de 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éation de types d’utilisation personnalisés au moyen de champs personnalisés du logiciel immobilier.
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;
}
Création d’une taxonomie personnalisée
L’exemple de taxonomie WordPress suivant, « immomakler_search_zip_code », peut être intégré, par exemple, sous « champs de sélection dans le masque de recherche », comme expliqué ci-dessus, ou utilisé dans un shortcode :
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' );
}
}