Personalizar el proceso de reserva en Mybooking
El proceso de reservas de Mybooking, tanto en el plugin como en el tema oficial, se implementa con un set de plantillas que se encargan de renderizar cada una de las páginas y componentes del proceso. Dichas plantillas pueden ser sobreescritas ya sea en un child theme como en un tema propio que estemos desarrollando.
Introducción
El plugin de Mybooking está construido siguiendo la misma filosofía que Woocommerce: ofrece una serie de templates que conformna el sistema de reservas los cuales se pueden modificar con solo incluir una carpeta con el nombre mybooking-templates
en la raíz del tema activo, donde copiamos los templates que deseamos sobreescribir:
Además, Mybooking proporciona un mecanismo extra para aquellos casos en los que, por las características del proyecto, construir un tema hijo no es posible o recomendable. En este caso podemos crear la carpeta mybooking-templates
en el wp-content
de nuestra instancia de WordPress y copiar allí los archivos.
Este sistema doble permite personalizar el proceso de reservas tanto en proyectos basados en Mybooking Theme como en integraciones de temas comerciales o proyectos más sencillos donde solo queremos modificar uno o dos de los templates.
Aconsejamos trabajar sobre un child theme siempre que sea posible y dejar la opción de a carpeta en la raíz de la instancia como último recurso.
Cómo funciona
Mybooking Reservation Engine contiene una serie de templates que representan cada paso y componente del sistema de reservas, desde el selector de fechas hasta el formulario de contacto. Existen dos tipo de templates: los que presentan los componentes y micro templates y los que muestran las vistas públicas del proceso. Estos últimos son los que se facilitan la interacción al usuario y se implementan por medio de shortcodes:
Cuando instalas y activas nuestro plugin y configuras el sistema de reservas las vistas que aparecen en el frontend son generadas por las plantillas del plugin, pero cuando se detecta otra carpeta mybooking-templates
en el tema activo los templates duplicados que existan tendrán preferencia sobre su original en el plugin:
Modificar un template
Los templates están escritos en HTML y contienen fragmentos de JavaScript que hacen las llamadas al API de Mybooking. Puedes modificar la estructura de cada documento y añadir o suprimir API calls según los requisitos del proyecto.
Para modificar un template tan solo hay que copiarlo y guardar el duplicado en la carpeta mybooking-templates
de nuestro tema con el mismo nombre que el original.
Documentación del API de Mybooking ->
Listado de templates
Al contrario que en la estructura de ficheros, aquí se muestran los templates ordenados por categorías para facilitar la explicación.
Selectores de fechas
mybooking-plugin-selector-widget.php | Contenedor para el formulario de selección de fechas |
mybooking-plugin-selector-widget-tmpl.php | Llamadas al API y layout para el selector de fechas |
mybooking-plugin-selector-wizard-container.php | Contenedor para el modal del selector optimizado |
mybooking-plugin-selector-wizard-widget.php | Contenedor para el formulario de selección optimizado |
mybooking-plugin-selector-wizard-widget-tmpl.php | Llamadas al API y layout para el selector de fechas optimizado |
mybooking-plugin-transfer-selector-widget.php | Contenedor para el selector de fechas para transfer |
mybooking-plugin-transfer-selector-widget-tmpl.php | Llamadas al API y layout para el selector de fechas de transfer |
mybooking-plugin-transfer-modify-reservation.php | Contenedor para el modificador de fechas para transfer |
mybooking-plugin-transfer-modify-reservation-tmpl.php | Llamadas al API y layout para el modificador para transfer |
mybooking-plugin-modify-reservation.php | Contenedor para el modificador de fechas |
mybooking-plugin-modify-reservation-tmpl.php | Llamadas al API y layout para el modificador de fechas |
Proceso de reservas para renting
mybooking-plugin-choose-product.php | Contenedor para la página de escoger producto |
mybooking-plugin-choose-product-tmpl.php | Llamadas al API y layout para escoger producto |
mybooking-plugin-complete.php | Contenedor para la página de completar la reserva |
mybooking-plugin-complete-tmpl.php | Llamadas al API y layout para completar reserva |
mybooking-plugin-summary.php | Contenedor para la página de resumen de la reserva |
mybooking-plugin-summary-tmpl.php | Llamadas al API y layout para el resumen de la reserva |
mybooking-plugin-reservation.php | Contenedor para la página de mi reserva |
mybooking-plugin-reservation-tmpl.php | Llamadas al API y layout para la página mi reserva |
mybooking-plugin-products.php | Catálogo de productos para renting |
mybooking-plugin-routes-product.php | Página de producto de renting |
mybooking-plugin-product-widget.php | Contenedor para el calendario único de producto de renting |
mybooking-plugin-product-widget-tmpl.php | Calendario único de producto de renting |
mybooking-plugin-products-search.php | Contenedor para el buscador de producto de renting |
mybooking-plugin-products-search-tmpl.php | Llamadas al API y layout para el buscador |
Proceso de reservas para actividades
mybooking-plugin-activities.php | Catálogo de productos para actividades |
mybooking-plugin-activities-shopping-cart.php | Contenedor para la página de completar la reserva |
mybooking-plugin-activities-shopping-cart-tmpl.php | Llamadas al API y layout para completar reserva |
mybooking-plugin-activities-summary.php | Contenedor para la página de resumen de la reserva |
mybooking-plugin-activities-summary-tmpl.php | Llamadas al API y layout para el resumen de la reserva |
mybooking-plugin-activities-order.php | Contenedor para la página de la reserva |
mybooking-plugin-activities-order-tmpl.php | Llamadas al API y layout para la página de reserva |
mybooking-plugin-routes-activity.php | Página de producto de actividades |
mybooking-plugin-activities-activity-widget.php | Contenedor para calendario único de producto de actividades |
mybooking-plugin-activities-activity-widget-tmpl.php | Calendario único de producto de renting |
mybooking-plugin-activities-search.php | Contenedor para el buscador de producto de actividades |
mybooking-plugin-activities-search-tmpl.php | Llamadas al API y layout para el buscador |
Proceso de reservas para transfer
mybooking-plugin-transfer-choose-vehicle.php | Contenedor para la página de escoger producto |
mybooking-plugin-transfer-choose-vehicle-tmpl.php | Llamadas al API y layout para escoger producto |
mybooking-plugin-transfer-checkout.php | Contenedor para la página de completar la reserva |
mybooking-plugin-transfer-checkout-tmpl.php | Llamadas al API y layout para completar reserva |
mybooking-plugin-transfer-summary.php | Contenedor para la página de resumen de la reserva |
mybooking-plugin-transfer-summary-tmpl.php | Llamadas al API y layout para el resumen de la reserva |
mybooking-plugin-transfer-reservation.php | Contenedor para la página de la reserva |
mybooking-plugin-transfer-reservation-tmpl.php | Llamadas al API y layout para la página de reserva |
Globales
mybooking-plugin-profile-change-password.php | API y layout para el formulario de cambiar password |
mybooking-plugin-profile-password-forgotten.php | API y layout para el formulario de recuperar password |
mybooking-plugin-contact-widget.php | Llamadas al API y layout para el formulario de contacto |
Módulos
mybooking-plugin-cookies-notice.php | API y layout para el aviso de cookies |
mybooking-plugin-content-slider.php | API y layout para el CPT carrusel de contenido |
mybooking-plugin-product-slider.php | API y layout para el CPT carrusel de producto DEPRECATED |
mybooking-plugin-promotions-popup.php | API y layout para el CPT aviso emergente |
mybooking-plugin-testimonials.php | API y layout para el CPT carrusel de testimonios |