Skip to main content
Skip table of contents

Personnalisation de l'extension

Afin de faciliter la personnalisation du plugin, différents filtres et actions ont été créés. Nous recommandons d'insérer le custom code dans le fichier functions.php de votre thème-enfant afin de garantir que ce code ne soit pas effacé lors de la mise à jour du plugin ou du thème.

Filtres relatifs au post de type d'hébergements

Filtres relatifs au formulaire de recherche

Filtres relatifs à la sélection du type d'hébergement

  • hb_available_accommodation_markup

  • hb_first_available_accom_num

Filtres relatifs à la sélection des services supplémentaires

Filtres relatifs au formulaire de détails client/résa

Filtres relatifs à l'étape de paiement

Filtres relatifs au résumé de la réservation et à la zone du bouton final "Réservez maintenant"

  • hb_resa_summary_markup

  • hb_resa_summary_no_external_payment_markup

  • hb_resa_summary_external_payment_markup

  • hb_policies_area_markup

  • hb_confirm_area_markup

Filtres relatifs à la facture

Filtres relatifs aux actions associées à la réservation et au client

Filtres relatifs aux shorcodes [hb_accommodation_list], [hb_rates], [hb_availability]

Filtres relatifs aux rôles ajoutés par HBook ("Reservation manager", "Reservation reader", "Pricing manager", et "HBook manager")

Filters relatis aux emails automatiques

  • hb_email_actions : permet d'ajouter des actions qui déclenchent l'envoi d'un email (comme par exemple de cliquer sur "Marquer comme payée")

  • hb_scheduled_min_hour : pour modifier la fenêtre d’envoi des emails automatiques (heure minimum)

  • hb_scheduled_max_hour : pour modifier la fenêtre d’envoi des emails automatiques (heure maximum)

Filtres relatifs à la synchronisation iCal

  • hb_ical_agenda_check_in_time : pour modifier l’heure d’arrivée, partagée dans l’export iCal au format “agenda”. Défaut: 15h.

  • hb_ical_agenda_check_out_time : pour modifier l’heure de départ, partagée dans l’export iCal au format “agenda”. Défaut: 11h.

  • hb_ical_additional_info : pour ajouter des informations à filtrer lors de l’import iCal. Ces informations filtées seront affichées dans la colonne “Commentaires”.

  • hb_ical_additional_non_standard_properties: pour ajouter des informations permettant de filtrer tout champ de propriété non standard ("X-PROPERTY-NAME") lors de l'importation d'un événement à partir du calendrier iCal. Les informations filtrées seront affichées dans la colonne "Commentaires" de la réservation.

  • hb_ical_nb_years_history : pour modifier le nombre d’années rétrospectives à inclure dans l’export iCal lorsque d’un export incluant les réservations passées (paramètre “future_only” à “no”). Défaut: 2 ans.

Divers

Fonctions JS

Le plugin HBook appelle aussi les deux fonctions JavaScript suivantes:


hb_accommodation_taxonomies

Ceci est un filtre qui s'applique aux taxonomies Paramètre qui est passé dans la fonction register_post_type utilisée pour créer les posts de Types d'Hébergement.

Paramètre:

  • $taxonomies: (tableau) liste des taxonomies.

Exemple:
Ajout des catégories pour les postes de Type d'Hébergement.

CODE
function categories_for_accommodation( $taxonomies ) {
	$taxonomies[] = 'category';
	return $taxonomies;
}
add_filter( 'hb_accommodation_taxonomies', 'categories_for_accommodation' );

Merci de noter que par défaut les posts utilisant un "custom post type" ne sont pas inclus dans les pages d'archives. Afin d'ajouter ces posts (si vous souhaitez par exemple avoir une page pour une catégorie), vous devrez ajouter le code suivant:

CODE
function hbook_add_custom_types( $query ) {
	if( (is_category() || is_tag()) && $query->is_archive() && empty( $query->query_vars['suppress_filters'] ) ) {
	$query->set( 'post_type', array(
	'post', 'hb_accommodation'
		));
	}
	return $query;
}
add_filter( 'pre_get_posts', 'hbook_add_custom_types' );

hb_accommodation_has_archive

Ce filtre s'applique au paramètre has_archive qui est passé à la fonction register_post_type utilisée pour créer les posts de Types d'Hébergement.

Paramètres: aucun

Exemple:
Pour désactiver l'archive pour les posts de type d'hébergement:

CODE
function hb_disable_archive() {
	return false;
}
add_filter( 'hb_accommodation_has_archive', 'hb_disable_archive' );

hb_accommodation_supports

Ce filtre s'applique au paramètre supports qui est passé à la fonction register_post_type utilisée pour créer les posts de Types d'Hébergement.

Paramètre:

  • $supports: (tableau) liste des éléments.

Exemple:
Ajout des "excerpts" pour les posts de type d'hébergement.

CODE
function support_for_excerpts( $supports ) {
	$supports[] = 'excerpt';
	return $supports;
}
add_filter( 'hb_accommodation_supports', 'support_for_excerpts' );

hb_search_form_markup

Ce filtre s'applique au balisage HTML du formulaire de recherche.

Paramètres :

  • $output: (chaîne de caractères) le code HTML du formulaire.

  • $form_id: (chaîne de caractères) l'id du formulaire tel que passé au shortcode [hb_booking_form] grâce au paramètre form_id.


hb_search_form_title

Ce filtre s'applique au titre du formulaire de recherche.

Paramètre:

  • $title: (chaîne de caractères) le code HTML du titre du formulaire.

Exemple:
Changer en h2.

CODE
function change_title_tag( $title ) {
	return str_replace( 'h3', 'h2', $title );
}
add_filter( 'hb_search_form_title', 'change_title_tag' );

Ce filtre s'applique aux noms de chaque service supplémentaire (les services supplémentaires sont montrés après la selection de l'hébergement).

Paramètres: $display_name, $option, $price

  • $display_name: (chaîne de caractères) nom de l'extra tel qu'il sera affiché

  • $extra: (tableau) information concernant l'extra

  • $price: (tableau) prix de l'extra


hb_extras_form_markup

Ce filtre s'applique au balisage HTML du formulaire qui affiche les services supplémentaires.

Paramètre:

  • $output: (chaîne de caractères) le code HTML du formulaire.


hb_resa_extra_formatting

Ce filtre est appliqué aux noms de chaque service supplémentaire choisi (dans les emails envoyés par HBook).

Paramètres:

  • $formatted_extra_name: (chaîne de caractères) le nom formaté du service supplémentaire

  • $extra_name: (chaîne de caractères) le nom du service supplémentaire

  • $extra_value: (chaîne de caractères) la valeur de l'option choisie

  • $option_choice_name: (chaîne de caractères) le nom de l'option choisie


hb_details_form_markup

Ce filtre s'applique au balisage HTML du formulaire de détails client/réservation.

Paramètre:

  • $output: (chaîne de caractères) le code HTML du formulaire.


hb_payment_types

Ce filtre peut être utilisé pour modifier l'ordre des méthodes de paiement listée, lorsque vous offrez le choix au client (paiement à l'arrivée, d'un acompte ou de la totalité)

Paramètre:

  • $types: (tableau) liste des méthodes de paiement autorisés. L'ordre par défaut est: array( 'offline', 'store_credit_card', 'deposit', 'full' ).

Exemple:
Modification de l'ordre afin que le paiement hors ligne (à l'arrivée par exemple) soit affiché en dernier.

CODE
function custom_payment_type_order( $types ) {
	$types = array( 'deposit', 'full', 'store_credit_card', 'offline' );
	return $types;
}
add_filter( 'hb_payment_types', 'custom_payment_type_order' );

hb_active_payment_gateways

Ce filtre s'applique à la liste des passerelles de paiement qui ont été activées.

Paramètre:

  • $gateways: (tableau) liste des types de paiement actifs.

Exemple:
Inverser l'ordre des options de passerelles de paiement, dans le formulaire de paiement, lorsque plusieurs d'entre elles sont activées.

CODE
function custom_payment_gateway_order( $gateways ) {
	$gateways = array_reverse( $gateways );
	return $gateways;
}
add_filter( 'hb_active_payment_gateways', 'custom_payment_gateway_order' );

hb_stripe_credit_cards_icons

Ce filtre est appliqué à l’ensemble des icones affichées pour le paiement par carte bancaire Stripe.

Paramètre:

  • $icons: (tableau) liste des icones des cartes de crédits. Valeur par défaut: array( 'mastercard', 'visa', 'americanexpress' ). Les valeurs possibles sont : 'amazon', 'americanexpress', 'delta', 'diners', discover', 'ebay', ''jcb', maestro', 'mastercard', 'solo', 'visa', 'visaelectron', 'switch'

Exemple:
Afficher uniquement les images pour Visa et Mastercard.

CODE
function custom_stripe_payment_icons( $types ) {
	$icons = array( 'visa', 'mastercard' );
	return $icons;
}
add_filter( 'hb_stripe_credit_cards_icons', 'custom_stripe_payment_icons' );

hb_policies_area_markup

Ce filtre s’applique à la section du processus de réservation qui affiche les cases à cocher pour accepter les CGV ou politique de confidentialité.

Paramètre:

  • $output: (chaîne de caractères) le code HTML du formulaire.

Exemple:
Ajouter une case à cocher pour une inscription à une newsletter MailChimp. L’utilisation de l’extension MC4WP est nécessaire. Merci de consulter cet article de notre base de connaissances à ce sujet.

CODE
function add_mailchimp_to_details_form( $output ) {
    $output .= '<h3 class="hb-title hb-title-terms">Our newsletter</h3>';
    $output .= '<p>';
    $output .= '<label>';
    $output .= '<input type="checkbox" name="mc4wp-subscribe" value="1" />';
    $output .= 'Yes! Subscribe me to the your monthly newsletter.</label>';
    $output .= '</p>';
    return $output;
}

add_filter( 'hb_policies_area_markup', 'add_mailchimp_to_details_form' );

hb_invoice_table_style

Ce filtre s'applique aux styles de la facture. Vous trouverez les styles appliqués dans wp-content/plugins/hbook/utils/utils.php. Cherchez la fonction nommée "get_invoice_table".

Paramètres:

  • $style: (chaîne de caractères) l'ensemble des styles CSS appliqués.

  • $resa: (tableau) l'information de réservation


hb_create_reservation

Cette action est exécutée lorsqu'une nouvelle réservation est ajoutée à la table de réservations de la base de donnée.

Paramètre:

  • $resa_info: (tableau) toutes les informations de la nouvelle réservation.


hb_create_customer

Cette action est exécutée lorsqu'un nouveau client est ajouté à la table de clients de la base de donnée.

Paramètre:

  • $customer_info: (tableau) toutes les informations du nouveau client.


hb_reservations_updated

Cette action est exécutée lorsque la table de réservation de la base de données est mise à jour.

Paramètres: aucun


hb_blocked_accom_updated

Cette action est exécutée lorsque la table contenant les hébergements bloqués est mise à jour.

Paramètres: aucun


hb_accommodation_list_markup

Ce filtre peut être utilisé pour modifier l’affichage de la liste de type d’hébergements.

Paramètre:

  • $output: (chaîne de caractères) qui contient le HTML qui sera affiché.

Exemple:
Pour ouvrir la page du type d’hébergement (lien) dans le même onglet plutôt que dans un nouvel onglet.

Dans le fichier functions.php de votre thème enfant, vous ajouterez:

CODE
function change_target_self( $output ) {
	return str_replace( '_blank', '_self', $output );
}
add_filter( 'hb_accommodation_list_markup', 'change_target_self' );

hb_resa_manager_capabilities

Ce filtre est appliqué à la liste des capacités de l'utilisateur ayant le rôle "Gestion des réservations".

Paramètre:

  • $capabilities: (array) contient la liste des différentes "capabilities".

Exemple:
Si votre thème redirige automatiquement tout utilisateur avec la capacité "read" vers le front-end, vous pouvez ajouter des capacités qui sont celles des roles "Contributor" ou "Author". Pour consulter l'ensemble des capacités et roles WordPress, se référer à cet article du Codex.

CODE
function hb_add_capabiliites_to_manager( $capabilities ) {
	$added_capabilities = array( 'edit_posts', 'delete_pots' );
	$capabilities = array_merge( $added_capabilities, $capabilities );
	return $capabilities;
}
add_filter( 'hb_resa_manager_capabilities', 'hb_add_capabiliites_to_manager' );

hb_email_actions

Ce filtre est appliqué à l'ensemble des actions que vous pouvez voir dans la colonne "Actions " du menu HBook > Emails.

Paramètre:

  • $actions: (tableau) contient les différentes actions avec: une clé (chaine de caractères) => valeur (chaine de caractères). Les clés à utiliser sont 'action_value' et 'action_text'.

Exemple:

Ajouter un envoi d’email pour l’action “Marquer comme payé”.

CODE
function add_action_to_email_actions( $actions ) {
	$actions[] = array(
		'action_value' => 'resa_marked_paid',
		'action_text' => esc_html__( 'Reservation marked as paid', 'hbook-admin' ),
	);
	return $actions;
}
add_filter( 'hb_email_actions', 'add_action_to_email_actions' );

Puis dans la fonction public function hb_update_resa_paid() que vous trouverez dans le répertoire hbook/admin-pages/admin-ajax-actions.php, vous ajouterez

CODE
$this->utils->send_email( 'resa_marked_paid', $_POST['resa_id'] );

Cette fonction deviendra donc:

CODE
public function hb_update_resa_paid() {
	if ( $this->hb_verify_nonce() && $this->hb_user_can_manage_resa() ) {
		if ( $this->hbdb->update_resa_paid( $_POST['resa_id'], $_POST['resa_price'], $_POST['resa_paid'] ) !== false ) {
			echo( 'paid updated' );
			$this->utils->send_email( 'resa_marked_paid', $_POST['resa_id'] );
		} else {
			echo( 'Database error.' );
		}
	}
	die;
}

hb_scheduled_min_hour

Les emails programmés sont envoyés par défaut entre 7h et 23h (fuseau horaire défini dans WordPress), dès qu’une visite sur votre site a lieu (côté admin ou côté client).
Defaut: 7 (7am). Attend un nombre entre 0 et 23.

Paramètre: Aucun.

Exemple:

CODE
function change_minimum_scheduled_hour() {
	return 9;
}
add_filter( 'hb_scheduled_min_hour', 'change_minimum_scheduled_hour' );

hb_scheduled_max_hour

Les emails programmés sont envoyés par défaut entre 7h et 23h (fuseau horaire défini dans WordPress), dès qu’une visite sur votre site a lieu (côté admin ou côté client).
Defaut: 11 (11pm). Attend un nombre entre 0 et 23.

Paramètre: Aucun.

Exemple:

CODE
function change_maximum_scheduled_hour() {
	return 20;
}
add_filter( 'hb_scheduled_max_hour', 'change_maximum_scheduled_hour' );

hb_language_list

Ce filtre s'applique à la liste des langues gérées par HBook dans le cas d'un site multi-langues.

Paramètre:

  • $langs: (tableau) une clé (chaîne de caractères) => valeur (chaîne de caractères) tableau qui contient les informations concernant les différentes langues (la clé est la locale de la langue, la valeur est le nom de la langue).

Exemple:
Si vous utilisez un plugin multi-langue qui n'est pas Polylang ou WPML et pour lequel les langues ne sont pas détectées automatiquement par HBook:

CODE
function new_language_list( $langs ) {
	$added_languages = array(
			'fr_FR' => 'French',
			'it_IT' => 'Italian',
			'es_ES' => 'Spanish',
			'de_DE' => 'German'
	);
	$langs = array_merge( $added_languages, $langs );
	return $langs;
}
add_filter( 'hb_language_list', 'new_language_list' );

hb_uncompleted_resa_deletion_delay

Ce filtre permet de modifier le délai avant suppression d’une réservation pour laquelle le paiement n’a pas été finalisé, et qui est montrée avec le statut “En cours” (le client a fermé l’onglet, a abandonné le paiement, etc.). Par défaut, HBook supprime toute réservation dont le statut est resté “En cours”, après un délai d’1 heure.

Valeur par défaut: 1 heure

Valeur attendue: (entier + "MINUTE" ou "HOUR")

Exemple:
Supprimer les réservations non finalisées après 30 minutes.

CODE
function custom_uncompleted_resa_deletion_delay( $default_delay ) {
	return '30 MINUTE';
}
add_filter( 'hb_uncompleted_resa_deletion_delay', 'custom_uncompleted_resa_deletion_delay' );

hb_old_resa_logs_deletion_delay

Ce filtre permet de modifier le délai avant suppression des logs des changements de statuts de réservation. Ces logs servent aux développeurs (et à nous-même) pour analyser le parcours de statut d’une réservation ou faire un debug.

Valeur par défaut: 14 jours.

Valeur attendue: (entier + "DAY")

Exemple:
Conserver les logs pendant 28 jours.

CODE
function custom_resa_logs_deletion_delay( $default_delay ) {
	return '28 DAY';
}
add_filter( 'hb_old_resa_logs_deletion_delay', 'custom_resa_logs_deletion_delay' );

hb_retina_scale_factor

Paramètre:

  • $retina_scale_factor: (entier) le facteur d'échelle appliqué aux images affichées par HBook (par défaut, l'échelle est de 1).

Exemple:
Afficher les images pour les appareils supportant le retina x 3.

CODE
function custom_retina_scale_factor( $retina_scale_factor ) {
	return 3;
}
add_filter( 'hb_retina_scale_factor', 'custom_retina_scale_factor' );

hb_image_sizes

Ce filtre peut être utile si vous avez choisi dans HBook > Divers > Divers que vous utilisiez un redimensionnemnt des images "Statique". Lorsque vous choisissez "Statique", HBook n'utilise pas AquaResizer.

Paramètre:

  • $sizes: (tableau) une clé (chaîne de caractères) => valeur (chaîne de caractères) tableau contenant les différentes tailles, chaque taille ayant les clés "width" et "height"


hb_ical_agenda_check_in_time

Si vous utilisez le paramètre de requête “agenda” pour inclure des heures dans le format des informations partagées pour les propriétés iCal DTSTART et DTEND, vous souhaiterez peut-être modifier l'heure transmise à DTSTART (heure de départ). Par défaut, nous transmettons “15” (3pm).

Paramètre: Aucun.

La valeur par défaut est 15 (3pm). Attendez vous un nombre compris entre 0 et 23.

CODE
function change_agenda_check_in_time() {
	return 16;
}
add_filter( 'hb_ical_agenda_check_in_time', 'change_agenda_check_in_time' );

hb_ical_agenda_check_out_time

Si vous utilisez le paramètre de requête “agenda” pour inclure des heures dans le format des informations partagées pour les propriétés iCal DTSTART et DTEND, vous souhaiterez peut-être modifier l'heure transmise à DTEND (heure de départ). Par défaut, nous transmettons “11” (11 heures).

Paramètre: Aucun.

La valeur par défaut est 11 (11am). Attendez vous un nombre compris entre 0 et 23.

CODE
function change_agenda_check_out_time() {
	return 10;
}
add_filter( 'hb_ical_agenda_check_out_time', 'change_agenda_check_out_time' );

hb_ical_additional_info

Paramètre:

  • $default_comment_data: (tableau) un tableau listant les mots-clés recherchés dans le champ “DESCRIPTION” d’un évènement iCal d’un calendrier externe. Si trouvé, HBook affichera cette information dans la colonne “Commentaires” de la résevation.

Exemple avec des données fictives "Immatriculation de véhicule" et "Application spéciale".

CODE
function my_platforms_comment_data ( $default_comment_data ) {
    $additional_data = array(
      'Immatriculation de véhicule',
      'Application spéciale'
    );
    $updated_comment_data = array_merge( $default_comment_data, $additional_data );
    return $updated_comment_data;
}
add_filter( 'hb_ical_additional_info', 'my_platforms_comment_data' );

hb_ical_additional_non_standard_properties

Paramètre:

  • $other_ical_non_standard_properties: (tableau) un tableau listant les mots-clés recherchés dans un évènement iCal d’un calendrier externe. Si trouvé, HBook affichera cette information dans la colonne “Commentaires” de la résevation.

Exemple avec des données fictives "X-EXTRAS" y "X-TOTAL-AMOUNT".

CODE
function my_platforms_non_standard_properties ( $other_ical_non_standard_properties ) {
    $additional_properties = array(
      'X-EXTRAS',
      'X-TOTAL-AMOUNT'
    );
    $updated_other_non_standard_properties = array_merge( $other_ical_non_standard_properties, $additional_properties );
    return $updated_other_non_standard_properties;
}
add_filter( 'hb_ical_additional_non_standard_properties', 'my_platforms_non_standard_properties' );

hb_ical_nb_years_history

Si vous utilisez le paramètre de requête “future_only” pour inclure les réservations passées/dates bloquées dans l'exportation iCal, vous pouvez modifier le nombre d'années incluses dans l'exportation. Par défaut, HBook inclut 2 ans d'historique, lorsque le paramètre “future_only” est passé à "no" comme valeur (pour remplacer la valeur par défaut d'inclure seulement les réservations futures et les dates bloquées).

CODE
function custom_ical_nb_years_history ( $default_delay ) {
    return '6';
}
add_filter( 'hb_ical_nb_years_history', 'custom_ical_nb_years_history' );

Fonctions JavaScript

hbook_show_accom_list

Le plugin HBook essaie d'appeler cette fonction chaque fois que la liste des types d'hébergement disponible est montrée.

Exemple:
Lancer une fonction JavaScript après que la liste des types d'hébergement disponible a été affichée.

Ajoutez dans le fichier functions.php de votre thème-enfant:

CODE
add_action( 'wp_enqueue_scripts', 'enqueue_my_js_scripts' );

function enqueue_my_js_scripts() {
	wp_enqueue_script( 'my-script', get_stylesheet_directory_uri() . '/my-script.js', array(), null, true );
}

et dans le répertoire du thème-enfant, créez un fichier my-script.js file qui contiendra:

CODE
function hbook_show_accom_list() {
	my_js_function();
}

hbook_reservation_done

HBook essaie d'appeler cette fonction chaque fois qu'une réservation est complétée avec succès par un client.

Exemple:
Lancer une fonction JavaScript après qu'une réservation a été reçue. Ceci peut être utilisé par exemple si vous avez un code de conversion de Google Analytics, un snippet de Adwords...

Ajoutez dans le fichier functions.php de votre thème-enfant:

CODE
add_action( 'wp_enqueue_scripts', 'enqueue_my_js_scripts' );

function enqueue_my_js_scripts() {
	wp_enqueue_script( 'my-script', get_stylesheet_directory_uri() . '/my-script.js', array(), null, true );
}

et dans le répertoire du thème-enfant, créez un fichier my-script.js file qui contiendra:

CODE
function hbook_reservation_done() {
	my_js_function();
}
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.