Recibos en su tienda online
Las plantillas de recibos de WCPOS no se limitan a la caja. Los clientes de la tienda online pueden ver y descargar el recibo o la factura de su pedido desde Mi cuenta o desde la página de confirmación del pedido, usando una plantilla personalizada desde WP Admin → POS → Plantillas.
El acceso a recibos desde la tienda online —el botón Mi cuenta y el shortcode [wcpos_receipt]— está disponible en WCPOS 1.9.11. El ajuste Permitir que los clientes descarguen recibos y el selector Plantilla de recibo para clientes, descritos a continuación, se añadieron en 1.9.12; en la versión 1.9.11, el botón está activado de forma predeterminada y no hay ningún ajuste para controlarlo. Las versiones anteriores solo generan recibos dentro del POS.
El personal de caja y otros miembros del equipo no necesitan nada de esto: la pantalla Pedidos del POS ya muestra todos los pedidos de WooCommerce, incluidos los pedidos online, y permite ver, imprimir o enviar por correo electrónico el recibo desde el menú de tres puntos. Esta página aborda lo contrario: permitir que los clientes descarguen ellos mismos el recibo desde el sitio web.
Botón de descarga de Mi cuenta
El botón Recibo está desactivado de forma predeterminada. Actívelo en POS > Ajustes > General, en la sección Clientes: habilite Permitir que los clientes descarguen recibos. Una vez habilitado, los clientes que hayan iniciado sesión verán un botón Recibo junto a los pedidos aptos en Mi cuenta → Pedidos y, al hacer clic en él, se descargará un PDF (receipt-1234.pdf) generado con la plantilla de recibo.
El botón aparece en los pedidos Procesando, Completado y Reembolsado — estados en los que el pedido se ha pagado. No aparece en los pedidos pendientes de pago, cancelados ni fallidos. (Un desarrollador puede cambiar los estados en los que aparece.)
También se necesita una plantilla de recibo Activa; si no hay ninguna plantilla activa, no hay nada que renderizar, por lo que el botón permanece oculto incluso cuando el ajuste está activado.
El shortcode [wcpos_receipt] siguiente funciona independientemente de que este ajuste esté activado o no; el interruptor solo controla el botón automático de Mi cuenta.
El shortcode [wcpos_receipt]
Para añadir un enlace al recibo en la página de confirmación del pedido ("gracias") o en la página Mi cuenta → ver pedido, utilice:
[wcpos_receipt]
Sin atributos, el shortcode detecta automáticamente el pedido actual en cualquiera de las dos páginas y muestra un enlace Download receipt (PDF). En otras páginas no muestra nada. Un order_id explícito solo funciona para un cliente que haya iniciado sesión y sea propietario de ese pedido.
Atributos
| Atributo | Predeterminado | Función |
|---|---|---|
order_id | (detectado automáticamente) | Enlace a un pedido específico. Solo funciona para clientes que hayan iniciado sesión y sean propietarios del pedido. |
link_text | Download receipt (PDF) | El texto del enlace. |
format | pdf | pdf descarga un PDF; html abre la vista imprimible del recibo. |
template | (valor predeterminado de la tienda) | Generar con un ID de plantilla específico en lugar del valor predeterminado de la tienda. |
class | wcpos-receipt-link | Clase CSS del enlace. |
id | (ninguno) | id de HTML para el enlace. |
Ejemplos
Un enlace de descarga en la página de confirmación del pedido:
[wcpos_receipt link_text="Download your invoice"]
Un enlace al recibo en pantalla (imprimible) en lugar de un PDF:
[wcpos_receipt format="html" link_text="View your receipt"]
Generar con una plantilla específica; por ejemplo, una plantilla de factura A4 en lugar del recibo de caja de 80mm:
[wcpos_receipt template="123" link_text="Download invoice (PDF)"]
El ID de la plantilla es el número de la URL de la pantalla de edición de la plantilla (post=123) en WP Admin → POS → Plantillas.
¿Qué plantilla reciben los clientes?
Justo debajo del interruptor, Plantilla de recibo para clientes permite elegir qué plantilla usa la descarga. De forma predeterminada, se usa Usar la plantilla de recibo activa, por lo que los clientes reciben la misma plantilla que utiliza el POS; al cambiar la plantilla activa, sus recibos se actualizan automáticamente.
Para dar a los pedidos en línea un aspecto distinto, seleccione una plantilla específica en el menú desplegable. La descarga del cliente usará siempre esa plantilla, independientemente de la que el personal de caja seleccione en el menú desplegable de la caja. Si la plantilla del cliente es un recibo estrecho de estilo térmico, el PDF también será estrecho; para los pedidos en línea puede ser preferible un documento de página completa, y la plantilla Factura de la galería está diseñada para A4/Letter.
El ajuste controla el botón Mi cuenta. Para un enlace puntual en una página específica, aún se puede anular la plantilla con el atributo template del shortcode, o cambiarla para todo el sitio (incluido el botón) con el filtro para desarrolladores que aparece a continuación.
Las plantillas se generan a partir de los mismos datos del recibo que utiliza el POS, por lo que se conservan el logotipo, la identidad de la tienda, los ajustes fiscales y las personalizaciones.
Seguridad
Los enlaces de recibos incluyen la clave única del pedido, el mismo mecanismo que WooCommerce utiliza para sus páginas de confirmación de pedido; por ello, quienes finalicen la compra como invitados sin una cuenta aún pueden utilizar el enlace de la página de confirmación. Quien no disponga del enlace debe iniciar sesión como cliente del pedido. Los shortcodes con order_id explícito solo se muestran al propietario de ese pedido que haya iniciado sesión.
Como todas las páginas de pago de WCPOS, la URL del recibo utiliza las reglas de reescritura de WordPress. Los sitios que usan enlaces permanentes Simples (Ajustes → Enlaces permanentes) deben cambiar a cualquier otra estructura de enlaces permanentes.
Para desarrolladores
Tres filtros controlan las interfaces de la tienda. Se aplican sobre los ajustes anteriores y resultan útiles para lógica condicional que los ajustes no pueden expresar (por pedido, por cliente, etc.):
// Force the My Account Receipt button on or off, overriding the setting.
// The filter's default value is the "Let customers download receipts" setting,
// so you only need this to override it — e.g. show the button for one user role.
add_filter( 'woocommerce_pos_storefront_receipt_my_account_button', '__return_true' );
// Change which order statuses show the button (default: processing, completed, refunded).
add_filter( 'woocommerce_pos_storefront_receipt_order_statuses', function ( $statuses, $order ) {
$statuses[] = 'on-hold';
return $statuses;
}, 10, 2 );
// Use a different template for storefront PDF downloads, overriding the
// "Receipt template for customers" setting. Receives and returns the full
// template array (null when none is configured).
add_filter( 'woocommerce_pos_storefront_receipt_template', function ( $template, $order ) {
return \WCPOS\WooCommercePOS\Templates::get_template( 123 );
}, 10, 2 );
La propia ruta del PDF es /wcpos-checkout/wcpos-receipt/{order_id}?key={order_key}&format=pdf: el mismo punto de acceso protegido por la clave del pedido que el POS utiliza para los recibos, donde format=pdf devuelve el PDF generado en lugar de la vista en pantalla.