Elegir para qué categorías de producto enviará factura WooCommerce PDF Invoices & Packing Slips

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.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(2 votos, promedio: 5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

4 comentarios en “Elegir para qué categorías de producto enviará factura WooCommerce PDF Invoices & Packing Slips”

Deja un comentario

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

 

Ir arriba Ir al contenido