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.