🔐 Recibo del Pedido con un Click en WooCommerce

Si tienes una tienda en WooCommerce, seguro que más de una vez un cliente ha querido guardar una captura de su pedido. Claro, puede hacerlo manualmente, pero ¿qué tal si le facilitamos las cosas? Con un solo clic, podemos generar una captura limpia del pedido, eliminando elementos innecesarios como botones, cabecera, pie de página y el menú de «Mi cuenta». Además, agregaremos los datos de nuestra tienda y un aviso aclarando que se trata de un recibo informativo, no una factura legal. En este artículo, te mostraré cómo hacerlo fácilmente con un botón en la página de pedidos.

recibos woocommerce

¿Necesitas facturas legales y automáticas en tu tienda WooCommerce? Click aquí.

¿Qué Hace Este Código?

El código que te comparto añade un botón en la página de pedidos de WooCommerce que, cuando se presiona, captura los detalles del pedido y los guarda como una imagen (.png).

Esto es útil para que los clientes puedan almacenar fácilmente su información sin necesidad de imprimir o copiar datos manualmente.

capturar pedido woocommerce recibos

Cómo Funciona el Código

Voy a explicarte paso a paso lo que hace este código:

  1. Añadir el Botón «Capturar Detalles del Pedido»
    • Se inserta un botón en la página de pedidos del usuario en WooCommerce.
    • Se utiliza el hook woocommerce_order_details_before_order_table para colocar el botón justo antes de la tabla del pedido.
  2. Importar la Librería html2canvas
    • La función de captura utiliza html2canvas, una librería de JavaScript que permite tomar capturas de pantalla de elementos HTML.
  3. Preparar la Captura de Pantalla
    • Cuando el usuario hace clic en el botón, se selecciona el contenedor donde están los detalles del pedido.
    • Se ocultan los elementos innecesarios (botón, enlaces, acciones de pedido) para que la imagen sea más limpia.
    • Se añade un mensaje que dice: «ESTO NO ES UNA FACTURA LEGAL, SOLO UN RECIBO», ideal para evitar confusiones.
  4. Generar la Imagen del Pedido
    • Se clona el contenido del pedido dentro de un contenedor especial con estilos personalizados.
    • Se incluyen los detalles de la tienda (nombre, dirección, contacto).
  5. Descargar la Captura en PNG
    • Una vez que html2canvas genera la imagen, se crea un enlace de descarga automática con el nombre pedido_ID.png, donde ID es el número del pedido.
    • Luego, se eliminan los estilos temporales y el contenedor usado para la captura.

¿Cómo Eliminar Otros Elementos del Pedido de la Captura?

Si en tu tienda WooCommerce tienes otros elementos personalizados en la página de pedidos y quieres ocultarlos en la captura, puedes hacerlo fácilmente identificando sus clases o IDs y agregándolos a la lista de estilos ocultos en el código.

Paso 1: Identificar el Elemento a Ocultar

Para ocultar cualquier elemento extra en la captura, primero necesitas identificar su clase o ID. Sigue estos pasos:

  1. Abre la página de pedidos en tu tienda WooCommerce.
  2. Haz clic derecho sobre el elemento que deseas ocultar y selecciona «Inspeccionar» (en Chrome) o «Inspeccionar elemento» (en Firefox).
  3. Busca el atributo class o id del elemento en el código HTML.

Por ejemplo, si tienes un botón adicional con la clase .mi-boton-personalizado, así se vería en el inspector:

<button class="mi-boton-personalizado">Descargar PDF</button>

Paso 2: Agregar la Clase o ID al Código

Una vez identificada la clase o el ID del elemento que deseas ocultar, agrégalo a la sección de estilos ocultos en el código.

Ubicación en el código:
Dentro del bloque donde se define estilosOcultos.innerHTML, simplemente añade la nueva clase o ID con display: none !important;.

Ejemplo de cómo se ocultan más elementos personalizados:

estilosOcultos = document.createElement("style");
estilosOcultos.innerHTML = `
.woocommerce-button,
.capturar-pedidos,
.order-actions--heading,
.order-again,
.order-actions--heading td,
.mi-boton-personalizado, /* Ocultar botón personalizado */
#elemento-que-quiero-ocultar, /* Ocultar un elemento específico por su ID */
.otra-clase-a-ocultar /* Ocultar otro elemento por su clase */
{
display: none !important;
}
`;

Nota: Si el elemento que quieres ocultar tiene un id, usa #id-del-elemento en lugar de .nombre-de-clase.

Siguiendo estos pasos puedes limpiar aún más la captura, eliminando cualquier otro botón, enlace o sección innecesaria que no quieras que aparezca en la imagen. Solo necesitas inspeccionar la página, identificar la clase o ID del elemento y agregarlo a la sección de estilos en el código.

El siguiente código tienes que agregarlo en el functions.php de tu tema hijo o utilizar un plugin como CODE SNIPPETS. También puedes crear tu propio plugin con unos simples pasos.

🔐 Este contenido es solo para suscriptores premium.

*Actualmente no se aceptan nuevos suscriptores.

Nos vemos en el siguiente tutorial. Un saludo.

ℹ️ Nota:
Estos códigos de la zona premium se mantienen regularmente. Si usas un código y no te funciona correctamente, puedes abrir un ticket de soporte explicando los detalles y lo vemos.
5/5 - (4 votos)
Compartir Artículo

Un comentario

  1. Fran Salas Master WP 1 año atrás

    Deja un comentario opinando que te parece este sistema.

¿Tienes una duda o sugerencia sobre este artículo?

Puedes dejar un comentario de forma anónima, sin necesidad de registrarte ni proporcionar ningún dato personal. Tu mensaje se publicará como “Usuario Anónimo No Premium”, un perfil que agrupa a todos los visitantes no registrados.

Importante: para evitar el spam automático, todos los comentarios anónimos deben comenzar con el símbolo #. Ejemplo: # Tengo una duda sobre los shortcodes personalizados...

Este espacio está destinado exclusivamente a preguntas concretas, dudas o sugerencias relacionadas con el contenido del artículo. Por respeto a los demás lectores, no se publicarán temas sin relación.

Privacidad y normas:
  • No tienes que agregar tu nombre, correo ni ningún otro dato identificativo.
  • No se permiten enlaces en comentarios anónimos.
  • No se permiten símbolos especiales como < o > (menor y mayor que), ya que se consideran intentos de insertar código y serán bloqueados.
  • Todos los comentarios anónimos pasan por revisión antes de ser publicados y solo se aprobarán si aportan valor al contenido del artículo.
¿Quieres comentar con tu nombre y que tu mensaje se publique al instante? Inicia sesión o regístrate.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

0%