# Personalización del plugin

Para facilitar la personalización del plugin, diferentes filtros y acciones han sido creados. Le recomendamos insertar el código custom en el **fichero functions.php de su child theme** para estar seguro de que este código no sea borado cuando se actualiza el plugin.

<a id="filtros-relativos-a-la-página-del-tipo-de-alojamiento"></a>

## Filtros relativos a la página del tipo de alojamiento

- 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="filtros-para-el-formulario-de-búsqueda"></a>

## Filtros para el formulario de búsqueda

- [hb\_search\_form\_markup](#hb_search_form_markup)
- [hb\_search\_form\_title](#hb_search_form_title)

<a id="filtros-para-la-selección-del-tipo-de-alojamiento"></a>

## Filtros para la selección del tipo de alojamiento

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

<a id="filtros-para-la-selección-de-los-servicios-adicionales"></a>

## Filtros para la selección de los servicios adicionales

- [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="filtros-para-el-formulario-de-datos-del-cliente-reserva"></a>

## Filtros para el formulario de datos del cliente/reserva

Estos filtros pueden ser útiles si desea añadir contenido **antes o después de un campo específico**:

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

Este filtro puede ser útil si desea **modificar** la salida de un **campo específico**:

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

Este filtro puede ser útil si desea **modificar** el resultado del **formulario de datos**:

- [hb\_details\_form\_markup](#hb_details_form_markup)

<a id="filtros-relativos-a-la-etapa-del-pago"></a>

## Filtros relativos a la etapa del pago

- [hb\_payment\_types](#hb_payment_types)
- [hb\_stripe\_credit\_cards\_icons](#hb_stripe_credit_cards_icons)

<a id="filtros-relativos-al-resumen-de-reserva-y-a-la-zona-del-botón-final-reserva-ahora"></a>

## Filtros relativos al resumen de reserva y a la zona del botón final "Reserva ahora"

- 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="filtros-para-la-factura"></a>

## Filtros para la factura

- [hb\_invoice\_table\_style](#hb_invoice_table_style)
- hb\_invoice\_table\_markup

<a id="filtros-relativos-a-las-acciones-asociadas-a-la-reserva-y-al-cliente"></a>

## Filtros relativos a las acciones asociadas a la reserva y al cliente

- [hb\_create\_reservation](#hb_create_reservation)
- [hb\_create\_customer](#ad0134e7-7112-4a5a-83e0-db214f6bb43d)
- [hb\_reservations\_updated](#dc25c0b2-13b1-4c81-ae4d-8add99db98fd)
- [hb\_blocked\_accom\_updated](#hb_blocked_accom_updated)

<a id="filtros-relativos-a-los-shorcodes-hb_accommodation_list-hb_rates-hb_availability"></a>

## Filtros relativos a los 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="filtros-relativos-a-los-roles-añadidos-por-hbook"></a>

## Filtros relativos a los roles añadidos por HBook

- hb\_resa\_reader\_capabilities
- [hb\_resa\_manager\_capabilities](#hb_resa_manager_capabilities)
- hb\_pricing\_manager\_capabilities
- hb\_hbook\_manager\_capabilities

<a id="filtros-para-los-emails-automáticos"></a>

## Filtros para los emails automáticos

- [hb\_email\_actions](#hb_email_actions) : to add actions upon which an email is sent automatically
- [hb\_scheduled\_min\_hour](#hb_scheduled_min_hour) : to change the sending window minimum hour of the day
- [hb\_scheduled\_max\_hour](#hb_scheduled_max_hour) : to change the sending window maximum hour of the day. Default is 11pm

<a id="filtros-para-la-sincronización-ical"></a>

## Filtros para la sincronización iCal

- [hb\_ical\_agenda\_check\_in\_time](#hb_ical_agenda_check_in_time) : para cambiar la hora de registro compartida cuando se utiliza el parámetro de consulta «agenda". Por defecto: 15pm.
- [hb\_ical\_agenda\_check\_out\_time](#hb_ical_agenda_check_out_time) : para cambiar la hora de salida compartida cuando se utiliza el parámetro de consulta "agenda". Por defecto es 11am.
- [hb\_ical\_additional\_info](#hb_ical_additional_info) : para añadir información para filtrar al importar un evento de calendario iCal. La información filtrada se mostrará en la columna "Comentarios" de la reserva.
- [hb\_ical\_additional\_non\_standard\_properties](#hb_ical_additional_non_standard_properties) : para añadir información para filtrar cualquier campo de propiedad no estándar ("X-PROPERTY-NAME") al importar un evento del calendario iCal. La información filtrada se mostrará en la columna “Comentarios” de la reserva.
- [hb\_ical\_nb\_years\_history](#hb_ical_nb_years_history) : para personalizar el número de años del pasado que se incluyen en la exportación al pasar el parámetro de consulta “future\_only” a “no”. Por defecto son 2 años.

<a id="varios"></a>

## Varios

- [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)
- [hb\_ical\_additional\_info](#hb_ical_additional_info)

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

## Fonciones Js

El plugin HBook también nombra las dos funciones JavaScript siguientes:

- [hbook\_show\_accom\_list](#hbook_show_accom_list)
- [hbook\_reservation\_done](#hbook_reservation_done)

* * *

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

#### hb\_accommodation\_taxonomies

Este es un filtro que se aplica a las **taxonomías**, parámetro que está passado en la función **register\_post\_type** utilizada para crear las páginas de Tipo de Alojamiento.

**Parámetro:**

- **$taxonomies:** *(tabla)* lista de las taxonomías.

**Ejemplo:**  
Añadiendo categorias para las páginas del alojamiento.

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

Por favor nota que por defecto las páginas que utilizan un "custom post type" no están incluidas en las páginas WordPress de tipo “Archive”. Para añadir estas páginas (si desea por ejemplo tener una página para una categoria), deberá añadir el código suguiente:

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

Este filtro se aplica al ajuste **has\_archive** que está pasado a la función **register\_post\_type** utilizada para crear las páginas de Tipo de Alojamiento.

**Parámetro:** ninguno

**Ejemplo:**  
Para desactivar el archivo para las páginas del tipo de alojamiento:

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

* * *

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

#### hb\_accommodation\_supports

Este filtro se aplica al ajuste **supports** que ha passado a la función **register\_post\_type** utilizada para crear las páginas del tipo de alojamiento.

**Parámetro:**

- **$supports:** *(tabla)* lista de elementos.

**Ejemplo:**  
Añadiendo "excerpts" para las páginas del tipo de alojamiento.

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

Este filtro se aplica al balizaja HTML del formulario de búsqueda.

**Parámetro:**

- **$output:** *(cadena de caracteres)* el código HTML del formulario.
- **$form\_id:** *(cadena de caracteres)* el ID del formulario de búsqueda tal como passado el shortcode **\[hb\_booking\_form\]** gracias al ajuste **form\_id**.

* * *

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

#### hb\_search\_form\_title

Este filtro se aplica al título del formulario de búsqueda.

**Parámetro:**

- **$title:** *(cadena de caracteres)* el código HTML del formulario.

**Ejemplo:**  

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

Este filtro se aplica a los nombres de cada servicio suplementario (los servicios suplementarios mostrados después del alojamiento).

**Parámetros:**

- $display\_name, $option, $price
- **$display\_name:** *(cadena de caracteres)* nombre del suplemento tal como será mostrado
- **$extra:** *(tabla)* dato del suplemento
- **$price:** *(tabla)* precio del suplemento

* * *

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

#### hb\_extras\_form\_markup

Este filtro se aplica al balizaje HTML del formulario que muestra los servicios suplementarios.

**Parámetro:**

- **$output:** *(cadena de caracteres)* el código HTML del formulario.

* * *

**hb\_extras\_types\_order**

Los servicios adicionales se agrupan por tipo de entrada (casilla de verificación, menú desplegable, botones de opción).

- Las opciones **únicas** se muestran con casillas de verificación: son para servicios adicionales que no son cantidades y para los que no hay opciones múltiples.
- Las opciones de **cantidad** se muestran con un menú desplegable: son para servicios adicionales que son cantidades (por día, por persona/por día, etc.).
- Las opciones **múltiples** se muestran con botones de radio: son para servicios adicionales que tienen opciones múltiples.

El orden de visualización predeterminado es: único, cantidad, múltiple. Este filtro es útil para tener un orden de visualización diferente de los distintos tipos de servicios adicionales.

**Parámetro:**

**$types**: (tabla) lista de los diferentes tipos, por orden de visualización. El orden predeterminado es: tabla( ‘single', ‘quantity’, 'multiple’ ).

**Ejemplo**:

Cambiando el orden predeterminado para mostrar primero el menú desplegable (cantidad), luego las casillas de verificación (únicas) y, por último, todas las opciones que tienen botones de opción (múltiples):

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

Este filtro se aplica a los nombres de cada servicio suplementario elegido (en los emails enviados por HBook).

**Parámetros:**

- **$formatted\_extra\_name:** *(cadena de caracteres)* el nombre formatado del servicio suplementario
- **$extra\_name:** *(cadena de caracteres)* el nombre del servicio suplementario
- **$extra\_value:** *(cadena de caracteres)* el valor de la opción elegida
- **$option\_choice\_name:** *(cadena de caracteres)* el nombre de la opción elegida

* * *

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

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

Este filtro se aplica al marcado HTML de un campo de campos de detalles.

**Parámetros**:

- **$output:** *(cadena de caracteres)* el código HTML del campo específico.
- **$field:** (tabla) los atributos del campo.

**Ejemplo**:

Establezca un valor predeterminado para un campo de entrada. En este ejemplo, se trata de una hora de llegada predeterminada, para un campo que es de uso exclusivo del administrador.

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

Este filtro se aplica al balizaje HTML del formulario de datos del cliente/reserva.

**Parámetro:**

- **$output:** *(cadena de caracteres)* el código HTML del formulario.

* * *

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

#### hb\_payment\_types

Este filtro puede ser utilizado para modificar el orden de lo metodos de pago listados, cuando offrece al cliente elegir (pago al llegar, depósito, pago por totalidad)

**Parámetro:**

- **$types:** *(tabla)* lista de los metódos de pago autorizados. El orden por defetco es: tabla('offline', 'store\_credit\_card', 'deposit', 'full').

**Ejemplo:**  
Modificación del orden para que el pago offline (a la llegada por ejemplo) sea mostrado en último.

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

Este filtro se aplica a la lista de pasarelas de pago activadas.

**Parámetro:**

- **$gateways:** *(tabla)* lista de tipos de pago activos.

**Ejemplo:**  
Invertir el orden de las opciones de las pasarelas de pago, en el formulario de pago, cuando se habilitan varias.

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

Este filtro sirve a modificar los iconos de tarjeta de crédito que quiere mostrar el la opción de pago con Stripe.

**Parámetro:**

- **$icons:** *(tabla)* lista de los iconos de tarjeta. Valor por defecto: array( 'mastercard', 'visa', 'americanexpress' ). Valores acceptadas : 'amazon', 'americanexpress', 'delta', ''diners', discover', 'ebay', ''jcb', maestro', 'mastercard', 'solo', 'visa', 'visaelectron', 'switch'

**Ejemplo:**  
Mostar solamente los iconos de visa y 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

Este filtro se aplica a la parte del proceso de reserva en el cuál el cliente accepta los Terminos y condiciones, y/o la Politica de privacidad.

**Parámetro:**

- **$output:** *(cadena)* el código HTML del formulario.

**Ejemplo:**  
Añadir una casilla para la inscripción a una lista de difusión de MailChimp. Ese necesita el uso del plugines MC4WP y también una personalización. Por favor, consulta [este artículo](https://maestrel.atlassian.net/wiki/spaces/ESKB/pages/65896485/C+mo+utilizar+MailChimp+con+HBook) de nuestra base de conocimientos.

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

Este filtro se aplica a los estilos de la factura. Se puede encontrar estos estilos en **wp-content/plugins/hbook/utils/utils.php**. Búsqua la función nombrada "get\_invoice\_table".

**Parámetros:**

- **$style:** *(cadena de caracteres)* todos los estilos CSS están aplicados.
- **$resa:** *(tabla)* los datos de la reserva

* * *

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

#### hb\_create\_reservation

Esta acción está executada cuando una nueva reserva está añadida a la tabla de reserva de la base de datos.

**Parámetro:**

- **$resa\_info:** *(tabla)* todos los datos de la nueva reserva.

* * *

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

#### hb\_create\_customer

Esta acción está executada cuando un nuevo cliente está añadido a la tabla de reserva de la base de datos.

**Parámetro:**

- **$customer\_info:** *(tabla)* todos los datos del nuevo cliente.

* * *

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

#### hb\_reservations\_updated

Esta acción está executada cuando la tabla de la reserva de la base de datos está actualizada.

**Parámetro:** ningún

* * *

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

#### hb\_blocked\_accom\_updated

Esta acción está executada cuando la tabla que contiene los alojamientos bloqueados está actualizada.

**Ajuste:** ningún

* * *

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

#### hb\_accommodation\_list\_markup

Este filtro puede ser utilizado para modificar como se muestra la lista de tipos de alojamientos.

**Parámetro:**

- **$output:** *(cadena)* contiene el output del marcador HTML de la lista de alojamientos.

**Ejemplo:**  
Para que el enlace de la viñeta del tipo de alojamiento se abra en la misma pestaña

En el fichero functions.php de su child theme, añadir:

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

Este filtro se aplica a la lista de las capacidades del usuario que tiene el papel "Gestion de las reservas".

**Parámetro:**

- **$capabilities:** *(tabla)* una llave *(cadena de caracteres)* => valor *(boolean)*. Esta tabla tiene una lista de capacidades (la llave es la capacidad y el valor es "true").

**Ejemplo:**  
Si su tema rediriga automáticamente cualquier usuario con la capacidad "read" hacia el front-end, se puede añadir capacidades que son para el "Contributor" o "Author". Para consultar todas las capacidades y roles WordPress, se puede consultar [https://codex.wordpress.org/Roles\_and\_Capabilities](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

Este filtro se aplica a todas las acciónes que puede ver en la columna "Acciones " del menú **HBook > Emails**.

**Parámetro:**

- **$actions:** *(tabla)* contiene la diferentes acciones con: una llave *(cadena de caracteres)* => valor *(cadena de caracteres)*. Las llaves a utilizar son *'action\_value'* y *'action\_text'*.

* * *

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

#### hb\_scheduled\_min\_hour

Los emails automáticos se envián, por defecto, entre las 7:00 y las 23:00 (Zona horaria ajustada en WordPress), al momento que se hace una visita a su web (admin o front-end).  
Valor por defecto es 7 (7am). Requiere un número entre 0 y 23.

**Parámetro:** Ninguno.

**Ejemplo:**

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

Los emails automáticos se envián, por defecto, entre las 7:00 y las 23:00 (Zona horaria ajustada en WordPress), al momento que se hace una visita a su web (admin o front-end).  
Valor por defecto es 23 (11pm). Requiere un número entre 0 y 23.

**Parámetro:** Ninguno.

**Ejemplo:**

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

* * *

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

#### hb\_ical\_agenda\_check\_in\_time

Si está utilizando el parámetro de consulta "agenda" para incluir horas en el formato de la información compartida para la propiedad iCal DTSTART y DTEND, puede que desee modificar la hora pasada a DTSTART (hora de entrada). Por defecto, se pasa "15" (3pm).

**Parámetro:** Ninguno.

Por defecto es 15 (3pm). Espere un número entre 0 y 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 está utilizando el parámetro de consulta "agenda" para incluir horas en el formato de la información compartida para la propiedad iCal DTSTART y DTEND, puede que desee modificar la hora pasada a DTEND (hora de entrada). Por defecto, se pasa "11" (11am).

**Parámetro:** Ninguno.

Por defecto es 11 (11am). Espere un número entre 0 y 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

**Parámetro:**

- **$default\_comment\_data:** *(tabla)* un array con los valores que HBook búscara en el campo DESCRIPTION del contenido iCal de un calendario externo. Si se encuentra la propiedad, HBook añadira el valor de ese campo en la columna “Comments” de la reserva.

Ejemplo con datos ficticios "Matriculación de vehículos" y "Solicitud especial".

```
function my_platforms_comment_data ( $default_comment_data ) {
    $additional_data = array(
      'Matriculación de vehículos',
      'Solicitud especial'
    );
    $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

**Parámetro**:

- **$other\_ical\_non\_standard\_properties:** *(tabla)* un array con los valores que HBook búscara en el contenido iCal de un calendario externo. Si se encuentra la propiedad, HBook añadira el valor de ese campo en la columna “Comments” de la reserva.

Ejemplo con datos ficticios "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 está utilizando el parámetro de consulta “future\_only” para incluir reservas pasadas/fechas bloqueadas en la exportación a iCal, puede que desee modificar el número de años incluidos en la exportación. Por defecto, HBook incluye 2 años de historial, cuando el parámetro “future\_only” se pasa con "no" como valor (para anular el valor por defecto de incluir sólo reservas futuras y fechas bloqueadas).

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

* * *

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

#### hb\_language\_list

Este filtro se aplica a la lista de los idiomas gestionados de HBook en el caso de una sitio web multilingüe.

**Parámetro:**

- **$langs:** *(tabla)* una llave *(cadena decarácteres)* => valor *(cadena de caracteres)* tabla que contiene los datos de los diferentes idiomas (la llave es la local del idioma, el valor es el nomnre del idioma).

**Ejemplo:**  
Si utiliza un plugin multi lengual que no sea Polylang o WPML y para el cual los idiomas no están detectados automáticamente por 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

- **Requiere un valor en retorno de tipo:** *(entero + "MINUTE" o "HOUR")* el plazo antés que HBook elimina una reserva que no ha sido finalizada. Se muestra con el estatus “Procesando” (el cliente cerró la pantalla, abandonó el proceso de pago, etc.)
- Por defecto, HBook elimina reservas abandonadas después de 1 hora

**Ejemplo:**  
Eliminar las reservas que no han sido finalizadas después de 30 minutos.

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

- **Requiere un valor en retorno de tipo:** *(entero +* *"DAY" or "MONTH")* el plazo de retención de los logs de los cambios de estatus de las reservas.
- Esos logs están útiles para nosotros o desarrolladores para hacer un debug. Por defecto, se borran después de 14 dias.

**Ejemplo:**  
Cambiar el plazo a 28 días antés de elminiar los logs.

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

**Parámetro:**

- **$retina\_scale\_factor:** *(entero)* el factor de escala aplicado a las imágenes por HBook (por defecto, la escala es de 1).

**Ejemplo:**  
Mostrar las imágenes para los aparatos que soportan la 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

**Parameter:**

- **Parámetro:**
  - **$sizes:** *(tabla)* una llave(cadena de caracteres) => valor (cadena de caracteres) tabla que contiene las diferentes tamaños, cada tamaño teniendo las llaves "width" et "height". Esto puede ser útil si ha elegido en **HBook > Misc > Misc** que quiere utilizar un redimensionamiento de las imágenes "Estáticas". Cuando elige "Estáticas", HBook no utiliza AquaResizer.

* * *

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

#### hb\_strings

Puede utilizar este filtro para añadir cadenas externas para su traducción en **HBook > Texto**. A cambio, espera una matriz con el título de las secciones y las cadenas para esta nueva sección.

**Ejemplo:**

```
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="javascript-functions"></a>

## JavaScript functions

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

#### hbook\_show\_accom\_list

El plugin HBook intenta llamar está función cada vez que la lista de los tipos de alojamiento se muestra.

**Ejemplo:**  
Activar una función JavaScript después que la lista de los tipos de alojamiento disponible ha sido mostrada.

Añade en el fichero functions.php de su child theme:

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

y en el directorio del child theme, crea un fichero my-script.js file que tendrá:

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

* * *

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

#### hbook\_reservation\_done

HBook intenta llamar está función cada vez que una reserva está comptada con succeso por el cliente.

**Ejemplo:**  
Activa una función JavaScript después que una reserva ha sido recibida. Esto puede ser utilizado por ejemplo si tiene un código de conversión de Google Analytics, un snippet de Adwords...

Añade en el fichero functions.php de su child theme:

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

y en el directorio del child theme, crea un fichero my-script.js file que tendrá:

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