# ¿Cómo utilizar la caché con HBook?

El uso de un plugin de caché de WordPress o los plugins de caché incorporados de su alojamiento requiere un ajuste para trabajar bien con HBook. Se trata de dos aspectos: 

- el almacenamiento en caché de las URL del calendario iCal de HBook: es importante que estas URL no se almacenen en caché para que siempre se devuelva un calendario actualizado cuando las plataformas externas (AirBnb, Booking.com, etc.) llamen a las URL del calendario iCal de HBook.
- los calendarios mostrados en su página web, ya sea el "Calendario de disponibilidad" (\[hb\_availability\] shortcode o bloque) o el selector de fechas del formulario de reserva (\[hb\_booking\_form\] shortcode o bloque). Desea mostrar siempre la disponibilidad exacta en sus calendarios front-end de HBook.

En función de la estructura de su página web y de la herramienta de almacenamiento en caché que tenga instalada, le recomendamos que implemente las siguientes: 

- Excluya de la caché cualquier URL que no deba almacenarse en caché. Debe excluir las URL de las páginas en las que tenga un calendario de disponibilidad de HBook. Esta es la opción más sencilla y es adecuada si no tiene calendarios HBook en muchas páginas de su página web
- utilizar una función de su herramienta de caché para vaciar la caché cada vez que se reciba o modifique una reserva y cada vez que se añada una fecha bloqueada. Esta opción es más apropiada si tiene muchas páginas en su página web que muestren calendarios HBook. Y es también la mejor forma de proceder para las URLs de los calendarios iCal de HBook, ya que no todas las herramientas de caché permiten tener parámetros de consulta en su configuración para Excluir URLs de la caché.

Puede utilizar nuestros filtros para ejecutar la función que borrará/vaciará la caché, cada vez que se reciba o actualice una reserva. Los filtros que se deben utilizar son "hb\_reservations\_updated" y "hb\_blocked\_accom\_updated".   

> [!INFO]
> Para ver una lista de todos los filtros de HBook, consulte [esta página](https://maestrel.atlassian.net/wiki/x/hgO2Ag?atlOrigin=eyJpIjoiZWVkNThlYTA4NmQwNGY0ZjgyNWNmMWZlZmU0OTA2YmMiLCJwIjoiYyJ9).

A continuación encontrará un par de ejemplos de las herramientas de almacenamiento en caché más populares:

<a id="litespeed-referencia-documentalhttps-docslitespeedtechcom"></a>

### LiteSpeed [(referencia documental)](https://docs.litespeedtech.com)

- Excluir "feed" de la caché en **"No almacenar en caché las cadenas de consulta"** en la configuración de "Excluir" para la Caché.
- Utilice una función - Añada este código en el archivo functions.php de su tema hijo :

```
function my_custom_flush_cache() {
  do_action( 'litespeed_purge_all' );
}

add_filter( 'hb_reservations_updated', 'my_custom_flush_cache' );
add_filter( 'hb_blocked_accom_updated', 'my_custom_flush_cache' );
```

<a id="sg-optimizer-supercache"></a>

### SG Optimizer SuperCache

- Puede consultar la sección "Excluir URL de la caché" de [este artículo](https://www.siteground.com/tutorials/wordpress/sg-optimizer/supercacher/) de la caché de SG Optimizer para excluir páginas. Así es como se debe establecer:

![caching_speed_optimizer.png](./attachments/caching_speed_optimizer.png)

- Utilice una función - Añada este código en el archivo functions.php de su tema hijo:

```
function my_custom_flush_cache() {
    if (function_exists('sg_cachepress_purge_cache')) {
      sg_cachepress_purge_cache();
    }
}

add_filter( 'hb_reservations_updated', 'my_custom_flush_cache' );
add_filter( 'hb_blocked_accom_updated', 'my_custom_flush_cache' );
```

  
 

<a id="wpfastest-cache-referencia-documentalhttps-wwwwpfastestcachecom-tutorial-delete-the-cache-by-calling-the-function"></a>

### WPFastest Cache ([referencia documental)](https://www.wpfastestcache.com/tutorial/delete-the-cache-by-calling-the-function))

- Puede consultar [este artículo](https://www.wpfastestcache.com/features/exclude-page) de la caché de WPFastest Cache para excluir páginas.
- Utilice una función - Añada este código en el archivo functions.php de su tema hijo :

```
function my_custom_flush_cache() {
    if ( function_exists( 'wpfc_clear_all_cache' ) ) {
        wpfc_clear_all_cache();
    }
}

add_filter( 'hb_reservations_updated', 'my_custom_flush_cache' );
add_filter( 'hb_blocked_accom_updated', 'my_custom_flush_cache' );
```

<a id="wprocket"></a>

### WPRocket

- Puede consultar [este artículo](https://docs.wp-rocket.me/article/54-exclude-pages-from-the-cache) de WPRocket para excluir páginas.
- Utilice una función - Añada este código en el archivo functions.php de su tema hijo:

```
function my_custom_flush_cache() {
    if ( function_exists( 'rocket_clean_domain' ) ) {
        rocket_clean_domain();
    }
}

add_filter( 'hb_reservations_updated', 'my_custom_flush_cache' );
add_filter( 'hb_blocked_accom_updated', 'my_custom_flush_cache' );
```

<a id="wp-super-cache"></a>

### **WP Super Cache**

- Puede consultar [este artículo](https://odd.blog/wp-super-cache-developers/) de WP Super Cache para excluir páginas.
- Utilice una función - Añada este código en el archivo functions.php de su tema hijo:

```
function my_custom_flush_cache() {
    if ( function_exists( 'wp_cache_clear_cache' ) ) {
        wp_cache_clear_cache();
     }
}

add_filter( 'hb_reservations_updated', 'my_custom_flush_cache' );
add_filter( 'hb_blocked_accom_updated', 'my_custom_flush_cache' );
```

<a id="wp-optimize"></a>

### **WP Optimize**

- Puede consultar [este artículo](https://getwpo.com/documentation/#advanced-settings-exclude-urls) de WP Optimize para excluir páginas.
- Utilice una función - Añada este código en el archivo functions.php de su tema hijo:

```
function my_custom_flush_cache() {
    if ( function_exists( 'get_page_cache' ) ) {
        WP_Optimize()->get_page_cache()->purge();
    }
}

add_filter( 'hb_reservations_updated', 'my_custom_flush_cache' );
add_filter( 'hb_blocked_accom_updated', 'my_custom_flush_cache' );
```

<a id="w3-total-cache"></a>

### W3 Total Cache

- Puede consultar [este artículo](https://www.redbridgenet.com/how-to-exclude-specific-pages-from-w3-total-cache/) de W3 Total Cache para excluir páginas. Aquí es donde añadirá cualquier URL que desee excluir.

![w3-cache-exclude-url.png](./attachments/w3-cache-exclude-url.png)

- Utilice una función - Añada este código en el archivo functions.php de su tema hijo:

```
function my_custom_flush_cache() {
    if ( defined( 'W3TC' ) ) {
        $w3_plugin_totalcache->flush_all();
    }
}

add_filter( 'hb_reservations_updated', 'my_custom_flush_cache' ); 
add_filter( 'hb_blocked_accom_updated', 'my_custom_flush_cache' );
```

Si no sabe si el plugin de caché que desea utilizar tiene esta función de descarga, puede consultar su documentación o ponerse en contacto con su equipo de soporte. No dude en ponerse en contacto con nosotros si lo necesita.