Si hay un plugin gratuito que prácticamente todo usuario de WooCommerce utiliza para crear y enviar facturas y albaranes de entrega es WooCommerce PDF Invoices & Packing Slips.
Sin tener que pagar por la versión premium del plugin sirve para la mayoría de las necesidades de facturación de cualquier Ecommerce, por eso es tan popular.
Pero hay algo que no se puede hacer por defecto, y es decidir para qué categorías de producto se enviará factura en PDF y para cuáles no, no existe ningún ajuste para configurar esto.
Sería algo muy útil, pues en un mismo Ecommerce no siempre todos los productos son susceptibles de creación y envío de factura.
Afortunadamente es fácil definir para qué categorías se generarán facturas y para cuáles no, creando una función que aplique filtros según la categoría.
Sería algo así:
//Filtrar para qué categorías se crean facturas PDF add_filter( 'wpo_wcpdf_custom_attachment_condition', 'wpo_wcpdf_disable_based_on_product_categories', 100, 4 ); function wpo_wcpdf_disable_based_on_product_categories( $condition, $order, $status, $template_type ) { // aplicamos la comprobación solo a las facturas if ($template_type != 'invoice') { return $condition; } // aquí ponemos para qué categorías se crearán facturas $invoice_cats = array('Cursos','Consultoría'); $items = $order->get_items(); $order_cats = array(); foreach ($items as $item_id => $item) { // obtenemos las categorías por producto $product = $order->get_product_from_item( $item ); if ($product) { $terms = get_the_terms( $product->get_id(), 'product_cat' ); if (empty($terms)) { continue; } else { foreach ($terms as $key => $term) { $order_cats[$term->term_id] = $term->name; } } } } // array de coincidencia de la categoría $cat_matches = array_intersect($invoice_cats, $order_cats); if ( count($cat_matches) > 0 ) { // si coinciden 1 o más se adjunta factura return $condition; } else { return false; } }
Solo tienes que personalizar en el código anterior la línea del array $invoice_cats
poniendo los nombres de las categorías para las que se debería enviar factura.
Luego puedes subir tu código a tu plugin de personalizaciones o crear un plugin solo para esto.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Según tu criterio, ¿cuál es mejor? ¿Este o el de YITH?
El de Yith es más completo, e incluye facturas rectificativas, algo que no incluye ningún otro plugin de facturas PDF y en España es imprescindible.
¿Se puede adaptar este código para que funcione con el plugin de YITH?. Gracias.
No, no tiene nada que ver, usa funciones del plugin
Hola,
¿Es posible enviar diferentes formatos de factura en función de la categoría?
P.e: Para Categoría 1 envio una factura con el logo y el pié de proveedor 1. Para Categoría 2 pues logo y pié del proveedor 2 más un texto específico de esta categoría.
Saludos,
Eso precisamente pregunté yo a soporte del plugin y me indicaron que eso está en la versión de pago
Hola Fernando, una pregunta, he subido este código pero entiendo que en el listado de pedidos de Woocommerce que no tengan las categorías para facturas no aparece el icono de facturación no? y si aparece a las categorías que necesitan factura. Es que me aparece el icono de factura en todas las categorias y solo puse una para facturar. Gracias por compartir tus conocimientos!!!
En realidad no tiene que ver el icono, porque aparece tanto si se genera factura como si no, la diferencia es si está creada o tienes que hacer clic en el icono para crearla (se diferencian en que el icono es distinto).
Si en la columna de número de factura no hay nada donde no debe haberlo, y no se crean facturas para las categorías que no deben es que está funcionando bien.
Hola, ya probé el plugin junto con el código personalizado y si funciona, gracias por la aportación. Pero tengo una consulta extra, ¿existe la posibilidad de agregar solo los productos de las categorías seleccionadas para generar la factura? es decir, si en el pedido incluye la categoría seleccionada para generar facturas y además incluye categorías no seleccionadas para generar la factura, si se genera la factura pero incluye ambos productos y solo necesito que se incluyan los productos de las categorías seleccionadas para generar facturas.