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.
Filtros relativos a la página del tipo de alojamiento
hb_accommodation_cpt
hb_accommodation_public
Filtros para el formulario de búsqueda
Filtros para la selección del tipo de alojamiento
hb_available_accommodation_markup
hb_first_available_accom_num
Filtros para la selección de los servicios adicionales
Filtros para el formulario de datos del cliente/reserva
hb_details_form_markup_before_field
hb_details_form_markup_after_field
Filtros relativos a la etapa del pago
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_confirm_area_markup
Filtros para la factura
hb_invoice_table_markup
Filtros relativos a las acciones asociadas a la reserva y al cliente
Filtros relativos a los shorcodes [hb_accommodation_list], [hb_rates], [hb_availability]
hb_rates_markup
hb_availability_on_click_refresh
Filtros relativos a los roles añadidos por HBook
hb_resa_reader_capabilities
hb_pricing_manager_capabilities
hb_hbook_manager_capabilities
Filtros para los emails automáticos
hb_email_actions : to add actions upon which an email is sent automatically
hb_scheduled_min_hour : to change the sending window minimum hour of the day
hb_scheduled_max_hour : to change the sending window maximum hour of the day. Default is 11pm
Filtros para la sincronización iCal
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 : para cambiar la hora de salida compartida cuando se utiliza el parámetro de consulta "agenda". Por defecto es 11am.
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 : 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 : 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.
Varios
hb_strings : to add external strings for translation in HBook > Text
Fonciones Js
El plugin HBook también nombra las dos funciones JavaScript siguientes:
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' );
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' );
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' );
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.
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' );
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
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_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
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.
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' );
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' );
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' );
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 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' );
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
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.
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.
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
hb_blocked_accom_updated
Esta acción está executada cuando la tabla que contiene los alojamientos bloqueados está actualizada.
Ajuste: ningún
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' );
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
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
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'.
Ejemplo:
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' );
Y después en la función public function hb_update_resa_paid() que encontrará en el directorio hbook/admin-pages/admin-ajax-actions.php, añadirá:
$this->utils->send_email( 'resa_marked_paid', $_POST['resa_id'] );
Así está función se convertirá en:
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
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' );
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' );
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' );
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' );
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' );
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' );
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' );
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' );
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' );
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' );
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' );
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.
JavaScript functions
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();
}
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();
}