# 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.

<a id="filtres-relatifs-au-post-de-type-dhébergements"></a>

## Filtres relatifs au post de type d'hébergements

- hb\_accommodation\_cpt
- hb\_accommodation\_public
- [hb\_accommodation\_has\_archive](#hb-accommodation-has-archive)
- [hb\_accommodation\_supports](#hb-accommodation-supports)
- [hb\_accommodation\_taxonomies](#hb-accommodation-taxonomies)

<a id="filtres-relatifs-au-formulaire-de-recherche"></a>

## Filtres relatifs au formulaire de recherche

- [hb\_search\_form\_markup](#hb-search-form-markup)
- [hb\_search\_form\_title](#hb-search-form-title)

<a id="filtres-relatifs-à-la-sélection-du-type-dhébergement"></a>

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

- hb\_available\_accommodation\_markup
- hb\_first\_available\_accom\_num

<a id="filtres-relatifs-à-la-sélection-des-services-supplémentaires"></a>

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

- [hb\_extra\_name](#hb-extra-name)
- [hb\_extras\_form\_markup](#hb-extras-form-markup)
- [hb\_extras\_types\_order](#hb_extras_types_order)
- [hb\_resa\_extra\_formatting](#hb-resa-extra-formatting)

<a id="filtres-relatifs-au-formulaire-de-détails-client-résa"></a>

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

Ces filtres peuvent être utiles si vous souhaitez ajouter du contenu **avant ou après un champ spécifique** :

- hb\_details\_form\_markup\_before\_field
- hb\_details\_form\_markup\_after\_field

Ce filtre peut être utile si vous souhaitez **modifier** la sortie d'un **champ spécifique** :

- hb\_details\_form\_markup\_field

Ce filtre peut être utile si vous souhaitez **modifier** le résultat du **formulaire de détails client/résa** :

- [hb\_details\_form\_markup](#hb-details-form-markup)

<a id="filtres-relatifs-à-létape-de-paiement"></a>

## Filtres relatifs à l'étape de paiement

- [hb\_payment\_types](#hb-payment-types)
- [hb\_stripe\_credit\_cards\_icons](#hb-stripe-credit-cards-icons)

<a id="filtres-relatifs-au-résumé-de-la-réservation-et-à-la-zone-du-bouton-final-réservez-maintenant"></a>

## 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-policies-area-markup)
- hb\_confirm\_area\_markup

<a id="filtres-relatifs-à-la-facture"></a>

## Filtres relatifs à la facture

- [hb\_invoice\_table\_style](#hb-invoice-table-style)
- hb\_invoice\_table\_markup

<a id="filtres-relatifs-aux-actions-associées-à-la-réservation-et-au-client"></a>

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

- [hb\_create\_reservation](#hb-create-reservation)
- [hb\_create\_customer](#hb-create-customer)
- [hb\_reservations\_updated](#hb-reservations-updated)
- [hb\_blocked\_accom\_updated](#hb-blocked-accom-updated)

<a id="filtres-relatifs-aux-shorcodes-hb_accommodation_list-hb_rates-hb_availability"></a>

## Filtres relatifs aux shorcodes \[hb\_accommodation\_list\], \[hb\_rates\], \[hb\_availability\]

- [hb\_accommodation\_list\_markup](#hb-accommodation-list-markup)
- hb\_rates\_markup
- hb\_availability\_on\_click\_refresh

<a id="filtres-relatifs-aux-rôles-ajoutés-par-hbook-reservation-manager-reservation-reader-pricing-manager-et-hbook-manager"></a>

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

- hb\_resa\_reader\_capabilities
- [hb\_resa\_manager\_capabilities](#hb-resa-manager-capabilities)
- hb\_pricing\_manager\_capabilities
- hb\_hbook\_manager\_capabilities

<a id="filters-relatis-aux-emails-automatiques"></a>

## Filters relatis aux emails automatiques

- [hb\_email\_actions](#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](#hb-scheduled-min-hour) : pour modifier la fenêtre d’envoi des emails automatiques (heure minimum)
- [hb\_scheduled\_max\_hour](#hb-scheduled-max-hour) : pour modifier la fenêtre d’envoi des emails automatiques (heure maximum)

<a id="filtres-relatifs-à-la-synchronisation-ical"></a>

## Filtres relatifs à la synchronisation iCal

- [hb\_ical\_agenda\_check\_in\_time](#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](#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](#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](#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](#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.

<a id="divers"></a>

## Divers

- [hb\_language\_list](#hb-language-list)
- [hb\_uncompleted\_resa\_deletion\_delay](#hb-uncompleted-resa-deletion-delay)
- [hb\_old\_resa\_logs\_deletion\_delay](#hb-old-resa-logs-deletion-delay)
- [hb\_retina\_scale\_factor](#hb-retina-scale-factor)
- [hb\_image\_sizes](#hb-image-sizes)
- [hb\_strings](#hb-strings)

<a id="fonctions-js"></a>

## Fonctions JS

Le plugin HBook appelle aussi les deux fonctions JavaScript suivantes:

- [hbook\_show\_accom\_list](#hbook-show-accom-list)
- [hbook\_reservation\_done](#hbook-reservation-done)

* * *

<a id="hb_accommodation_taxonomies"></a>

#### 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.

```
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:

```
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' );
```

* * *

<a id="hb_accommodation_has_archive"></a>

#### 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:

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

* * *

<a id="hb_accommodation_supports"></a>

#### 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.

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

* * *

<a id="hb_search_form_markup"></a>

#### 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**.

* * *

<a id="hb_search_form_title"></a>

#### 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.

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

* * *

<a id="hb_extra_name"></a>

#### hb\_extra\_name

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

* * *

<a id="hb_extras_form_markup"></a>

#### 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.

* * *

<a id="hb_extras_types_order"></a>

#### hb\_extras\_types\_order

Les services supplémentaires sont regroupés par type d'entrée (case à cocher, menu déroulant, boutons radio).

- Les options **individuelles** sont affichées avec des cases à cocher : elles concernent les services supplémentaires qui ne sont pas des quantités et pour lesquels il n'y a pas de choix multiples.
- Les options de **quantité** sont affichées dans un menu déroulant : elles concernent les services supplémentaires qui sont quantifiés (par jour, par personne/par jour, etc.).
- Les options **multiples** sont affichées avec des boutons radio : elles correspondent à des services supplémentaires qui offrent plusieurs choix.

L'ordre d'affichage par défaut est : individuelle, quantité, multiple. Ce filtre est utile pour avoir un ordre d'affichage différent des différents types de services supplémentaires.

**Paramètre:**

**$types** : (tableau) liste des différents types, par ordre d'affichage. L'ordre par défaut est : tableau ('single', 'quantity', 'multiple' ).

**Exemple**:

Modification de l'ordre par défaut pour afficher d'abord le menu déroulant (quantité), puis les cases à cocher (individuelle) et enfin toutes les options avec des boutons radio (multiple) :

```
function custom_extras_types_order( $types ) {
	$types = array( 'quantity', 'single', 'multiple' );
	return $types;
}
add_filter( 'hb_extras_types_order', 'custom_extras_types_order' );
```

* * *

<a id="hb_resa_extra_formatting"></a>

#### 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

* * *

<a id="hb_details_form_markup_field"></a>

#### hb\_details\_form\_markup\_field

Ce filtre est appliqué au balisage HTML d'un champ de champs de détails.

**Paramètre**:

- **$output**: *(chaîne de caractères)* le code HTML du champ spécifique.
- **$field**: *(tableau)* les attributs du champ.

**Exemple**:

Définissez une valeur par défaut pour le champ de saisie. Dans cet exemple, il s'agit d'une heure d'arrivée par défaut, pour un champ réservé à l'usage exclusif de l'administrateur.

```
add_filter( 'hb_details_form_markup_field', 'myfunction_set_default_arrival_time', 10, 2 );

function myfunction_set_default_arrival_time( $markup, $field ) {
    if ( $field['id'] == 'arrival_time' ) {
        $markup = str_replace( 'value=""', 'value="15:00"', $markup );
    }
    return $markup;
}
```

* * *

<a id="hb_details_form_markup"></a>

#### 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.

* * *

<a id="hb_payment_types"></a>

#### 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.

```
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' );
```

* * *

<a id="hb_active_payment_gateways"></a>

#### 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.

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

* * *

<a id="hb_stripe_credit_cards_icons"></a>

#### 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.

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

* * *

<a id="hb_policies_area_markup"></a>

#### 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](https://maestrel.atlassian.net/wiki/spaces/BC/pages/48398510/Comment+utiliser+MailChimp+avec+HBook) de notre base de connaissances à ce sujet.

```
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' );
```

* * *

<a id="hb_invoice_table_style"></a>

#### 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

* * *

<a id="hb_create_reservation"></a>

#### 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.

* * *

<a id="hb_create_customer"></a>

#### 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.

* * *

<a id="hb_reservations_updated"></a>

#### 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

* * *

<a id="hb_blocked_accom_updated"></a>

#### 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

* * *

<a id="hb_accommodation_list_markup"></a>

#### 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:

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

* * *

<a id="hb_resa_manager_capabilities"></a>

#### 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](https://codex.wordpress.org/Roles_and_Capabilities).

```
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' );
```

* * *

<a id="hb_email_actions"></a>

#### 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'*.

* * *

<a id="hb_scheduled_min_hour"></a>

#### 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:**

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

* * *

<a id="hb_scheduled_max_hour"></a>

#### 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:**

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

* * *

<a id="hb_language_list"></a>

#### 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:

```
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' );
```

* * *

<a id="hb_uncompleted_resa_deletion_delay"></a>

#### 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.

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

* * *

<a id="hb_old_resa_logs_deletion_delay"></a>

#### 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.

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

```

* * *

<a id="hb_retina_scale_factor"></a>

#### 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.

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

* * *

<a id="hb_image_sizes"></a>

#### 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"

* * *

<a id="hb_strings"></a>

#### hb\_strings

Vous pouvez utiliser ce filtre pour ajouter des chaînes externes à traduire dans **HBook > Texte**. Celui-ci attend en retour un tableau contenant le titre des sections et les chaînes pour cette nouvelle section.

**Exemple:**

```
function add_my_custom_section_strings() {
  return array(
    'title' => esc_html__( 'My custom section', 'hbook-admin' ),
    'strings' => array(
      'custom_section_text_1' => esc_html__( 'Label for my first text', 'hbook-admin' ),
      'custom_section_text_2' => esc_html__( 'Label for my second text', 'hbook-admin' ),
      'custom_section_text_3' => esc_html__( 'Label for my third text', 'hbook-admin' ),
    )
  );
}
add_filter( 'hb_strings', 'add_my_custom_section_strings' );
```

* * *

<a id="hb_ical_agenda_check_in_time"></a>

#### 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.

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

* * *

<a id="hb_ical_agenda_check_out_time"></a>

#### 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.

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

* * *

<a id="hb_ical_additional_info"></a>

#### 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".

```
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' );

```

* * *

<a id="hb_ical_additional_non_standard_properties"></a>

#### 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".

```
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' );
```

* * *

<a id="hb_ical_nb_years_history"></a>

#### 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).

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

* * *

<a id="fonctions-javascript"></a>

## Fonctions JavaScript

<a id="hbook_show_accom_list"></a>

#### 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:

```
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:

```
function hbook_show_accom_list() {
	my_js_function();
}
```

* * *

<a id="hbook_reservation_done"></a>

#### 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:

```
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:

```
function hbook_reservation_done() {
	my_js_function();
}
```