Ya he hablado antes del plugin WooCommerce PDF Invoices & Packing Slips, entre otras cosas porque es un plugin que me encanta: resuelve muy bien el problema de las facturas en WooCommerce y es muy flexible, así que lo uso en muchos proyectos (tanto propios como de mis clientes).
Parte de esa flexibilidad radica en que la plantilla para las facturas se puede personalizar al 100% con un poco de PHP y HTML, pero la verdadera potencia del plugin radica en que, como los plugins de calidad, hace uso de hooks, que permiten hacer muchas cosas con un poquito de código. Y hoy vamos a ver una de esas cosas: cómo añadir las notas del pedido en la factura con WooCommerce PDF Invoices & Packing Slips.
Tabla de contenidos
WooCommerce PDF Invoices & Packing Slips
Acerca del plugin, su funcionamiento y sus bondades no me voy a extender demasiado, entre otras cosas porque ya le he dedicado un artículo completo. Si quieres ampliar la información sobre este tema, te lo dejo aquí:
Pero sí voy a hablar de una característica de este plugin que no mencioné en su día por ser algo más técnica, y es que incorpora hooks.
Si no sabes lo que son los hooks, no te agobies: lo cierto es que es algo bastante técnico. Para no dejar a nadie perdido diré que son unos sitios especiales del código que nos permiten «enganchar» nuestro propio código dentro del suyo (de ahí el nombre de hook).
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
Añadir las notas del pedido en la factura (y en el albarán)
En este caso vamos a hacer uso del hook wpo_wcpdf_after_order_details, incorporado después del detalle de productos facturados y del total, y antes del pie de factura. Si eres curioso por naturaleza (como lo soy yo) puedes encontrar este hook en el archivo templates/pdf/Simple/invoice.php. La magia está en la línea:
Así que, como decía más arriba, vamos a aprovechar ese hook para «enganchar» ahí la información que queramos, en este caso las notas del pedido que haya incluido el cliente.
Como el hook también está presente en el archivo packing-slip.php, esta información aparecerá tanto en el albarán como en la factura. Si sólo quieres que aparezca en uno de ellos simplemente hay que añadir un condicional. Es programación básica en PHP.
Pues bien, ya sólo queda añadir un par de líneas de código, que harán el resto:
Así de sencillo, ni más ni menos. El resultado:
Un resultado que, por supuesto, se puede mejorar estéticamente como queramos. Basta con un poco de HTML, CSS y PHP básicos.
Como siempre, para cualquier duda, consulta o pregunta tienes a tu disposición el formulario de contacto.
Jose Ignacio dice
Hola Enrique,
Muchas gracias por este artículo. Bueno, y por todos los demás.
Tengo una cuestión que no se como resolver con este plugin.
Yo lo quiero utilizar para facturas de empresa y no consigo que en la factura desaparezca el nombre y apellido de la persona. Y así que solo me salga el de la empresa.
Gracias de nuevo.
Enrique Ros dice
Hola Jose Ignacio
Para eso tendrás que modificar la plantilla, aunque requiere conocimientos (básicos) de PHP.
Un saludo.
Ester dice
Buenos días Enrique,
En mi caso el plugin da un error al exportar y/o imprimir las facturas o albaranes, todos los símbolos y letras acentuadas salen con símbolo de interrogación (?). ¿Sabrías indicarme cómo solucionarlo?
¡Gracias de antemano y saludos!
Enrique J. Ros dice
Hola Ester
El plugin genera un PDF un utf-8, pero si la fuente que utilizas no tiene los caracteres necesarios puede suceder eso (si usas una fuente que por ejemplo no tenga la letra «ñ», no podrá imprimir esa letra aunque el PDF la soporte). También puede ser que te falte la librería MB String de PHP. ¿Has echado un vistazo a la página de estado del plugin (en WooCommerce > Facturas PDF > Estado)? Quizá ahí tengas una pista del problema.
Un saludo.
Manuel dice
Hola Enrique! por favor, donde tengo que añadir el código, en que parte del archivo invoice.php?
Muchas gracias!
Enrique J. Ros dice
Hola Manuel
No, el código no va ahí. Echa un vistazo a esto.
Un saludo
manuel dice
Hola Enrique, he creado el plugin con Pluginception, pero no me salen las notas de orden…. he pegado esto en el plugin
order_notes();
}
add_action( ‘wpo_wcpdf_after_order_details’, ‘ejr_notas_pedido_factura’ );
Un saludo!
manuel dice
Bueno he pegado todo el código que has puesto… Es que al ponerlo en comentarios se omiten partes.
Enrique J. Ros dice
Hola Manuel
Ten en cuenta que, si lo estás probando en pedidos que ya tienen la factura emitida, el icono sólo muestra la factura existente, no la actualiza. Debes generar la factura de nuevo con el botón de dentro.
Un saludo
John diaz dice
Saludos se podría ver en un video la inserción del código y poder hacer para que en la factura la lo que escribí en la orden?
leticia dice
Muchas gracias por el post, es muy aclarador. Tengo una duda, ¿habría posibilidad de que se pusiera un pie de pagina o una nota en la factura de determinados productos? Ahora lo hago manual una por una pero es una tortura…. tengo determinados productos que van con iva especifico o sin iva, entonces al pie de pagina tengo que explicar porque lleva o no y referencia de norma legal.
Gracias!
Enrique J. Ros dice
Hola Leticia
El plugin permite añadir notas en el pie de las facturas, pero no de forma condicional. Sin embargo, es posible hacerlo mediante código. Contacta con el soporte del plugin, ellos te podrán ayudar.
Un saludo,