Restaurante O Chanto
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla aliquet magna id erat congue malesuada. Integer dolor ipsum, bibendum eget odio vitae, eleifend rutrum est. Aenean interdum facilisis lacus vel tempor. Etiam aliquam, eros ac porta elementum, magna magna euismod purus, eu feugiat leo metus ac dolor. Nunc consequat nisi mi. Etiam accumsan sapien at porta pharetra. In hac habitasse platea dictumst.
Restaurante O Chanto
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla aliquet magna id erat congue malesuada. Integer dolor ipsum, bibendum eget odio vitae, eleifend rutrum est. Aenean interdum facilisis lacus vel tempor. Etiam aliquam, eros ac porta elementum, magna magna euismod purus, eu feugiat leo metus ac dolor. Nunc consequat nisi mi. Etiam accumsan sapien at porta pharetra. In hac habitasse platea dictumst.

Contáctamos y te diremos todo lo que necesitas saber!
Servicios
Mapa
<?php
// Función para obtener todos los metaboxes y sus valores
function obtener_todos_los_metaboxes($post_id) {
$custom_fields = get_post_meta($post_id);
return $custom_fields;
}
// Función para obtener datos del meta key
function obtener_datos_servicios($post_id, $meta_key) {
// Obtener los valores del meta key
$meta_values = get_post_meta($post_id, $meta_key, true);
return $meta_values;
}
// Función para mostrar los servicios con iconos y encabezados
function mostrar_servicios($post_id, $service_mappings, $label_mappings) {
$output = '';
// Obtener la taxonomÃa del tipo de establecimiento
$terms = wp_get_post_terms($post_id, 'tipos', array('fields' => 'slugs'));
if (is_wp_error($terms) || empty($terms)) {
return '<div>No se ha encontrado el tipo de establecimiento.</div>';
}
// Listar los términos obtenidos
// $output .= '<div>Tipos encontrados: ' . implode(', ', $terms) . '</div>';
$tipo_establecimiento = $terms[0]; // Suponiendo que solo hay un tipo de establecimiento por post
// Filtrar los campos según el tipo de establecimiento
$filtered_mappings = isset($service_mappings[$tipo_establecimiento]) ? $service_mappings[$tipo_establecimiento] : [];
foreach ($filtered_mappings as $meta_key => $icon_mappings) {
$servicios = obtener_datos_servicios($post_id, $meta_key);
if (!empty($servicios) && is_array($servicios)) {
// Decodificar los valores serializados si es necesario
if (is_string($servicios)) {
$servicios = maybe_unserialize($servicios);
}
$output .= '<div class="servicio-grupo">';
$output .= '<h3 class="servicio-encabezado">' . esc_html($label_mappings[$meta_key]) . '</h3>';
$output .= '<div class="servicio-items">';
foreach ($servicios as $item) {
if (is_array($item)) {
foreach ($item as $name) {
$icon_class = get_icon_class_for_label($name, $icon_mappings);
if (!empty($icon_class)) {
$output .= '<div class="servicio-item">';
$output .= '<i class="' . esc_attr($icon_class) . '"></i> ' . esc_html($name);
$output .= '</div>';
}
}
} else {
$icon_class = get_icon_class_for_label($item, $icon_mappings);
if (!empty($icon_class)) {
$output .= '<div class="servicio-item">';
$output .= '<i class="' . esc_attr($icon_class) . '"></i> ' . esc_html($item);
$output .= '</div>';
}
}
}
$output .= '</div>'; // Cierra el contenedor de items
$output .= '</div>'; // Cierra el contenedor de grupo
} else {
$output .= '<div class="servicio-grupo">';
$output .= '<h3 class="servicio-encabezado">' . esc_html($label_mappings[$meta_key]) . '</h3>';
$output .= '<div>No hay ' . esc_html($meta_key) . ' disponibles.</div>';
$output .= '</div>';
}
}
return $output;
}
// Función para obtener la clase de icono para una etiqueta
function get_icon_class_for_label($label, $icon_mappings) {
foreach ($icon_mappings as $mapping) {
if ($mapping['label'] === $label) {
return $mapping['icon_class'];
}
}
return ''; // Devuelve una cadena vacÃa si no se encuentra el icono
}
// Definición de iconos mapeados según el tipo de establecimiento
$service_mappings = [
'restaurante' => [
'tipos-cocina-restaurante' => [
['label' => 'Tradicional', 'icon_class' => 'fas fa-utensils'],
['label' => 'China', 'icon_class' => 'fas fa-utensils'],
['label' => 'Europea', 'icon_class' => 'fas fa-utensils'],
// Agrega más mapeos de iconos aquÃ
],
'cocina-dietas' => [
['label' => 'Vegetarianas', 'icon_class' => 'fas fa-seedling'],
['label' => 'Veganas', 'icon_class' => 'fas fa-seedling'],
['label' => 'Sin gluten', 'icon_class' => 'fas fa-bread-slice'],
// Agrega más mapeos de iconos aquÃ
],
'ventajas-restaurante' => [
['label' => 'Reservas', 'icon_class' => 'fas fa-book'],
['label' => 'Aparcamiento disponible', 'icon_class' => 'fas fa-car'],
['label' => 'Acceso discapacitados', 'icon_class' => 'fas fa-wheelchair'],
['label' => 'Wifi gratis', 'icon_class' => 'fas fa-wifi'],
['label' => 'Acepta tarjetas de crédito', 'icon_class' => 'fas fa-credit-card'],
// Agrega más mapeos de iconos aquÃ
],
],
'visita-guiada' => [
'idiomas-de-la-visita-guiada' => [
['label' => 'Español', 'icon_class' => 'fas fa-language'],
['label' => 'Inglés', 'icon_class' => 'fas fa-language'],
['label' => 'Francés', 'icon_class' => 'fas fa-language'],
// Agrega más mapeos de iconos aquÃ
],
'incluido-en-la-visita-guiada' => [
['label' => 'Transporte en autobús o minibús', 'icon_class' => 'fas fa-bus'],
['label' => 'Traslado de equipaje', 'icon_class' => 'fas fa-luggage-cart'],
['label' => 'VehÃculo de apoyo', 'icon_class' => 'fas fa-truck'],
['label' => 'Seguro de viaje', 'icon_class' => 'fas fa-shield-alt'],
['label' => 'Tickets Museo', 'icon_class' => 'fas fa-ticket-alt'],
// Agrega más mapeos de iconos aquÃ
],
'no-incluido-en-la-visita-guiada' => [
['label' => 'Almuerzo', 'icon_class' => 'fas fa-utensils'],
// Agrega más mapeos de iconos aquÃ
],
'accesibilidad-de-la-visita-guiada' => [
['label' => 'No es accesible en silla de ruedas', 'icon_class' => 'fas fa-wheelchair'],
// Agrega más mapeos de iconos aquÃ
],
],
'hotel' => [
'incluido-hotel' => [
['label' => 'Desayuno gratis', 'icon_class' => 'fas fa-coffee'],
// Agrega más mapeos de iconos aquÃ
],
'equipamiento' => [
['label' => 'Aparcamiento disponible', 'icon_class' => 'fas fa-car'],
['label' => 'Piscina', 'icon_class' => 'fas fa-swimmer'],
['label' => 'Bañera', 'icon_class' => 'fas fa-bath'],
['label' => 'Wifi gratis', 'icon_class' => 'fas fa-wifi'],
['label' => 'Gimnasio', 'icon_class' => 'fas fa-dumbbell'],
// Agrega más mapeos de iconos aquÃ
],
'categoria' => [
['label' => '1 Estrella', 'icon_class' => 'fas fa-star'],
['label' => '2 Estrellas', 'icon_class' => 'fas fa-star'],
['label' => '3 Estrellas', 'icon_class' => 'fas fa-star'],
['label' => '4 Estrellas', 'icon_class' => 'fas fa-star'],
['label' => '5 Estrellas', 'icon_class' => 'fas fa-star'],
// Agrega más mapeos de iconos aquÃ
],
'opciones' => [
['label' => 'Reservas', 'icon_class' => 'fas fa-book'],
['label' => 'Acepta tarjetas de crédito', 'icon_class' => 'fas fa-credit-card'],
// Agrega más mapeos de iconos aquÃ
],
],
];
// Definición de los labels de cada metakey
$label_mappings = [
'tipos-cocina-restaurante' => 'Tipos de Cocina',
'cocina-dietas' => 'Dietas Especiales',
'ventajas-restaurante' => 'Ventajas del Restaurante',
'idiomas-de-la-visita-guiada' => 'Idiomas de la Visita Guiada',
'incluido-en-la-visita-guiada' => 'Incluido en la Visita Guiada',
'no-incluido-en-la-visita-guiada' => 'No Incluido en la Visita Guiada',
'accesibilidad-de-la-visita-guiada' => 'Accesibilidad de la Visita Guiada',
'incluido-hotel' => 'Servicios Incluidos en el Hotel',
'equipamiento' => 'Equipamiento del Hotel',
'categoria' => 'CategorÃa del Hotel',
'opciones' => 'Opciones del Hotel',
];
// Obtener el ID del post actual
$post_id = get_the_ID(); // Asegúrate de que este código se ejecute en el contexto de un post
// Mostrar los servicios
echo mostrar_servicios($post_id, $service_mappings, $label_mappings);
?>
<style>
.servicio-grupo {
margin-bottom: 20px;
padding: 10px;
border: 1px solid #e0e0e0;
border-radius: 5px;
}
.servicio-encabezado {
font-size: 1.2em;
margin-bottom: 10px;
font-weight: bold;
color: #333;
text-align: center;
}
.servicio-items {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.servicio-item {
display: flex;
align-items: center;
margin-bottom: 10px;
width: calc(50% - 10px); /* Dos columnas con un pequeño espacio entre ellas */
}
.servicio-item i {
margin-right: 8px;
font-size: 20px;
}
/* Estilos para móvil */
@media (max-width: 600px) {
.servicio-item {
width: 100%; /* Una columna en dispositivos móviles */
flex-direction: column;
align-items: flex-start;
}
.servicio-item i {
margin-bottom: 5px;
}
}
</style>
Servicios
Mapa
Restaurante O Chanto
Restaurante O Chanto
I am a buttonFeatured title or feature
Featured title or feature
I am a buttonEncuentra lo que buscas
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis.
Find The Class You Want
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis.
Lo último de nuestro blog
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis.

Earum fugit est nisi similique rem.
Quod ipsum sequi possimus omnis beatae. Nobis ducimus atque est quaerat qui. Velit natus saepe pariatur omnis consequatur corporis. Dolor…Leer más

Saepe omnis odio et beatae.
Id minus voluptatem qui. Excepturi aliquid maxime commodi sunt. Dolor rerum cupiditate est aut eos deserunt. Sunt ut sit assumenda…Leer más

Id in incidunt repellat sequi.
Rerum et ipsa expedita laborum amet exercitationem. Cumque ullam tempora alias ipsam et. Voluptate est ad aut nihil ipsa. Dolorem…Leer más
Lo último de nuestro blog (copia portada)
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis.

Earum fugit est nisi similique rem.
Quod ipsum sequi possimus omnis beatae. Nobis ducimus atque est quaerat qui. Velit natus saepe pariatur omnis consequatur corporis. Dolor…Leer más

Saepe omnis odio et beatae.
Id minus voluptatem qui. Excepturi aliquid maxime commodi sunt. Dolor rerum cupiditate est aut eos deserunt. Sunt ut sit assumenda…Leer más

Id in incidunt repellat sequi.
Rerum et ipsa expedita laborum amet exercitationem. Cumque ullam tempora alias ipsam et. Voluptate est ad aut nihil ipsa. Dolorem…Leer más
Otros servicios próximos en
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis.






