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
Section titled “Configuración global”Vaya a WooCommerce > Ajustes > Polski PRO > Reservas.
| 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
Section titled “Configuración del producto”Campos meta
Section titled “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
Section titled “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
Section titled “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
Section titled “Visualización en el frontend”Botón de compra
Section titled “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
Section titled “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
Section titled “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
Section titled “Validación del carrito”Bloqueo de productos mixtos
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “Próximos pasos”- Reportar problemas: GitHub Issues
- Módulos relacionados: Paquetes y complementos