Pre-orders
El módulo de reservas permite marcar productos como reserva, mostrar la fecha de lanzamiento y cambiar el texto del botón. Útil para tiendas con electrónica, libros, juegos y otros productos ofrecidos antes de su lanzamiento.
Configuración global
Sección titulada «Configuración global»Vaya a Polski > Módulos y active Reservas (clave de módulo pre_order). Desde Polski PRO 1.22.0 los módulos PRO tienen sus propias filas; la clave del módulo es pre_order. Los ajustes de más abajo son los campos de esa fila; al guardar la fila se escriben en la opción polski_preorder. El módulo se entrega apagado, porque cambia lo que se le dice a un comprador.
Los valores por producto (la marca y la fecha de lanzamiento) están en la pestaña Polski Pro del editor de productos, consulte Per-product settings.
| Ajuste | Valor predeterminado | Descripción |
|---|---|---|
| Texto del botón | “Zamów w przedsprzedaży” | Texto global del botón para los productos en reserva |
| Texto de disponibilidad | “Dostępne od {date}” | Texto de plantilla mostrado en lugar del estado del stock |
| Formato de fecha | d.m.Y |
Formato de visualización de la fecha de lanzamiento |
| Bloquear carrito mixto | Sí | Impide añadir productos estándar a un carrito con reservas |
| Mensaje de bloqueo | “Produkty w przedsprzedaży muszą być zamawiane osobno.” | Mensaje mostrado al intentar mezclar |
Configuración del producto
Sección titulada «Configuración del producto»Campos meta
Sección titulada «Campos meta»Los ajustes de reserva se encuentran en el editor del producto, en la pestaña General del panel de datos del producto.
| Campo meta | Clave | Tipo | Descripción |
|---|---|---|---|
| Activar reserva | _polski_preorder_enabled |
bool |
Marca el producto como reserva |
| Fecha de lanzamiento | _polski_preorder_release_date |
string (Y-m-d) |
Fecha a partir de la cual el producto está disponible de forma estándar |
| Texto del botón | _polski_preorder_button_text |
string |
Sobrescribe el texto global del botón para este producto |
| Texto de disponibilidad | _polski_preorder_availability_text |
string |
Sobrescribe el texto global de disponibilidad |
Configuración mediante WP-CLI
Sección titulada «Configuración mediante WP-CLI»wp post meta update 123 _polski_preorder_enabled "yes"wp post meta update 123 _polski_preorder_release_date "2026-06-15"wp post meta update 123 _polski_preorder_button_text "Zamów teraz - premiera 15 czerwca"Configuración programática
Sección titulada «Configuración programática»update_post_meta($product_id, '_polski_preorder_enabled', 'yes');update_post_meta($product_id, '_polski_preorder_release_date', '2026-06-15');Visualización en el frontend
Sección titulada «Visualización en el frontend»Botón de compra
Sección titulada «Botón de compra»Cuando un producto está marcado como reserva, el texto del botón “Añadir al carrito” cambia al texto de reserva configurado. Esto se aplica a:
- Página de producto individual
- Páginas de archivo, categoría y etiqueta
- Resultados de búsqueda
- Bloques de WooCommerce (Product Grid, Product Collection)
Texto de disponibilidad
Sección titulada «Texto de disponibilidad»En lugar del estado del stock estándar (“Hay existencias”, “Agotado”), se muestra el texto de disponibilidad con la fecha de lanzamiento. El marcador de posición {date} se reemplaza por la fecha formateada.
Ejemplo de visualización:
Dostępne od 15.06.2026
Desactivación automática
Sección titulada «Desactivación automática»Una vez pasada la fecha de lanzamiento, el producto vuelve automáticamente al modo estándar. La desactivación la gestiona una tarea de WP-Cron que se ejecuta a diario a las 00:01.
/** * Akcja wywoływana po automatycznej dezaktywacji przedsprzedaży. * * @param int $product_id ID produktu * @param string $release_date Data premiery (Y-m-d) */do_action('polski_pro/preorder/deactivated', int $product_id, string $release_date);Ejemplo - notificar a los clientes sobre la disponibilidad:
add_action('polski_pro/preorder/deactivated', function (int $product_id, string $release_date): void { $subscribers = get_post_meta($product_id, '_polski_preorder_subscribers', true); if (is_array($subscribers)) { foreach ($subscribers as $email) { wp_mail( $email, 'Produkt jest już dostępny!', sprintf('Produkt %s jest teraz dostępny do zakupu.', get_the_title($product_id)) ); } }}, 10, 2);Validación del carrito
Sección titulada «Validación del carrito»Bloqueo de productos mixtos
Sección titulada «Bloqueo de productos mixtos»Cuando la opción “Bloquear carrito mixto” está activada, el cliente no puede añadir al carrito simultáneamente:
- Productos en reserva y productos estándar
- Productos en reserva con distintas fechas de lanzamiento (opcional)
Al intentar añadir un tipo de producto diferente, se muestra el mensaje de bloqueo y el producto no se añade.
Hook de validación
Sección titulada «Hook de validación»/** * Filtruje, czy koszyk może zawierać mieszane typy produktów. * * @param bool $allow Czy pozwolić na mieszanie (domyślnie false) * @param int $product_id ID dodawanego produktu * @param array $cart_items Aktualne produkty w koszyku */apply_filters('polski_pro/preorder/allow_mixed_cart', bool $allow, int $product_id, array $cart_items): bool;Ejemplo - permitir mezclar para usuarios VIP:
add_filter('polski_pro/preorder/allow_mixed_cart', function (bool $allow, int $product_id, array $cart_items): bool { if (current_user_can('manage_woocommerce')) { return true; } return $allow;}, 10, 3);Shortcode
Sección titulada «Shortcode»Mostrar una cuenta atrás hasta la fecha de lanzamiento:
[polski_preorder_countdown product_id="123" format="days" label="Do premiery pozostało:"]| Parámetro | Obligatorio | Descripción |
|---|---|---|
product_id |
No | ID del producto (por defecto, el actual) |
format |
No | Formato: days, full (días, horas, minutos) |
label |
No | Texto de la etiqueta antes de la cuenta atrás |
Filtro del texto del botón
Sección titulada «Filtro del texto del botón»/** * Filtruje tekst przycisku przedsprzedaży. * * @param string $text Tekst przycisku * @param \WC_Product $product Obiekt produktu */apply_filters('polski_pro/preorder/button_text', string $text, \WC_Product $product): string;Ejemplo - texto dinámico con precio:
add_filter('polski_pro/preorder/button_text', function (string $text, \WC_Product $product): string { return sprintf('Zamów za %s - premiera wkrótce', $product->get_price_html());}, 10, 2);Filtro del texto de disponibilidad
Sección titulada «Filtro del texto de disponibilidad»/** * Filtruje tekst dostępności przedsprzedaży. * * @param string $text Tekst dostępności * @param string $release_date Data premiery (Y-m-d) * @param \WC_Product $product Obiekt produktu */apply_filters('polski_pro/preorder/availability_text', string $text, string $release_date, \WC_Product $product): string;Compatibilidad con variantes
Sección titulada «Compatibilidad con variantes»El módulo de reservas funciona con productos variables. Cada variante puede tener ajustes de reserva independientes:
- Variante A - estándar (disponible de inmediato)
- Variante B - reserva (lanzamiento en 2 semanas)
Se permite mezclar variantes en reserva y estándar dentro de un mismo producto - la validación del carrito solo se aplica a la mezcla de productos diferentes.
Solución de problemas
Sección titulada «Solución de problemas»El producto no cambia automáticamente tras la fecha de lanzamiento
Compruebe que WP-Cron funciona correctamente. Si usa un CRON externo, asegúrese de que wp-cron.php se llama con regularidad. Como alternativa, ejecute manualmente: wp cron event run polski_pro_preorder_check.
El cliente añadió productos en reserva y productos normales al carrito Compruebe que la opción “Bloquear carrito mixto” está activada. Vacíe la caché si usa plugins de caché que almacenan fragmentos del carrito.
La fecha de lanzamiento se muestra en un formato incorrecto
Compruebe el ajuste “Formato de fecha” en la configuración del módulo. El formato utiliza los marcadores de posición estándar de PHP date().
Próximos pasos
Sección titulada «Próximos pasos»- Reportar problemas: GitHub Issues
- Módulos relacionados: Paquetes y complementos