Inserto el shortcode del buscador o del calendario y no se ve nada
El plugin de Mybooking funciona de la siguiente forma:
- El motor de reservas está implementado en JavaScript en el fichero mybooking-js-engine-bundle.js
- Se añade un shortcode en una página que hace lo siguiente
- Añade una clase al body de la página indicando el componente que ha de activar
- Añade una contenedor dónde se representará la UI del componente.
- En algunos casos, añade un script al final del footer que es una microplantilla que se procesará por el motor de reservas JavaScript
| Componente | Clase del body | Contenedor | Microplantilla |
|---|---|---|---|
| [mybooking_rent_engine_selector] | mybooking-selector-widget | .widget_mybooking_renting_engine_selector | #widget_form_selector_tmpl |
En algunos temas de Wordpress o CPTs, hemos detectado que sólo inserta el contenedor pero no inserta la clase en el body ni la microplantilla. Puede ser que otros hooks puedan afectar. La forma de solucionarlo es ajustar el fichero functions.php para hacer la carga que hace el plugin de forma manual.
Buscador no aparece en ciertas páginas
Aquí hay un fragmento de código de un caso en el que las páginas creada con la plantilla furgonetas-general.php no estaban añadiendo la clase ni la microplantilla JS necesarias.
/**
* Mybooking integration - Template furgonetas-general.php
*/
function mybooking_body_class( $classes ) {
if ( is_page_template('furgonetas-general.php') ) {
$classes[] = 'mybooking-selector-widget';
}
return $classes;
}
add_filter( 'body_class', 'mybooking_body_class' );
/**
* Mybooking integration - Template furgonetas-general.php
*/
function mybooking_include_micro_templates() {
if ( is_page_template('furgonetas-general.php') ) {
if ( function_exists('mybooking_engine_get_template') ) {
mybooking_engine_get_template('mybooking-plugin-selector-widget-tmpl.php');
}
}
}
El calendario de producto no aparece en ciertas páginas
Aquí hay un fragmento de un caso en el que el CPT de embarcaciones no mostraba el widget del calendario del producto.
function mybooking_body_class ( $classes ) {
if ( 'embarcaciones' == get_post_type() ):
$classes[] = 'mybooking-product';
$classes[] = 'mybooking-contact-widget';
endif;
return $classes;
}
add_filter( 'body_class', 'mybooking_body_class' );
/**
* Load microtemplates
*
* @since 1.0.1
*/
function mybooking_include_micro_templates ( $classes ) {
if ( 'embarcaciones' == get_post_type() ):
if ( function_exists('mybooking_engine_get_template') ):
mybooking_engine_get_template('mybooking-plugin-product-widget-tmpl.php');
endif;
endif;
}
add_action( 'wp_footer', 'mybooking_include_micro_templates' );