Contrato de datos de precios

Los precios son meta datos de la entrada, almacenados como texto, con una clave por formato de ración.

Las claves

Clave meta Formato Tipos de menú
precio-racion-completa Ración completa a_la_carte_menu, terrace_menu, breakfast, desserts, bar_menu
precio-media-racion Media ración a_la_carte_menu, terrace_menu, breakfast, desserts, bar_menu
precio-unidad Unidad a_la_carte_menu, terrace_menu, breakfast, desserts, bar_menu
precio-copa Copa wine_list, cocktails, beverages
precio-chupito Chupito beverages
precio-botella Botella wine_list, beverages
precio-botella-magnum Magnum wine_list
precio-botella-benjamin Benjamín wine_list
precio-menu Precio de menú tasting_menu, set_menu
precio-maridaje Precio de maridaje tasting_menu

En los cócteles, precio-copa es el precio único y se etiqueta como Price en las herramientas de importación masiva.

Los valores son cadenas

Los precios se almacenan exactamente como se introducen, saneados como texto. Pueden contener un símbolo de moneda, una coma o un punto decimal, y calificadores de texto libre como 10,80€ (6 unidades).

No asumas un número analizable. El código que realice cálculos con precios debe definir su propio análisis y gestionar los valores que no pueda analizar.

Vacío frente a cero

Valor almacenado Significado
Vacío / ausente El formato no se ofrece; no se muestra nada
0 Un precio real de cero; se muestra como tal

Trata un valor meta vacío como ausencia, no como cero.

Leer precios

$full = get_post_meta( $post_id, 'precio-racion-completa', true );

if ( '' !== trim( (string) $full ) ) {
    // The item is offered in a full portion.
}

Escribir precios

Los precios son meta datos ordinarios de la entrada y pueden escribirse con update_post_meta(). Merece la pena igualar dos comportamientos de las herramientas propias del producto:

  • La importación masiva omite las celdas vacías, por lo que una importación nunca deja en blanco un precio almacenado.
  • La edición de listas en línea escribe una sola clave para una única entrada.

Precios entre traducciones

Los campos de precio están configurados para mantenerse sincronizados entre las traducciones de un elemento de menú. Lee un precio desde cualquier traducción y espera el mismo valor; escribe en el elemento de origen en lugar de en un registro traducido.

Precios y referencias de mercado

La carta de vinos almacena además valores de referencia no públicos:

Clave meta Significado
supermarket_price Precio de venta recomendado
min_restaurant_price Precio mínimo recomendado para el restaurante
avg_restaurant_price Precio medio del restaurante
max_restaurant_price Precio máximo recomendado para el restaurante

Se trata de orientación interna y no se muestra a los clientes. No los muestres en una plantilla pública.

Presentación de precios

La salida pública empareja cada precio con un icono que identifica su formato. El generador de PDF añade dos ajustes por tipo de menú —un prefijo y un sufijo aplicados a cada precio— que residen en los propios ajustes del generador y no en el valor meta.

Dos filtros permiten anular los iconos de precio del PDF:

Filtro Propósito
pom_rm_pdf_menu_price_icon_url Proporciona una URL para un icono de precio
pom_rm_pdf_menu_price_icon_markup Proporciona el marcado para un icono de precio

Guía de integración

  • Lee las claves del tipo de menú que estés manejando; no asumas que existen las diez.
  • Presenta los formatos vacíos como ausentes, nunca como 0.
  • Conserva la cadena almacenada al mostrarla; reformatearla cambia silenciosamente el menú.
  • Si debes calcular, analiza a la defensiva y falla de forma visible en lugar de adivinar.