• Hola, ¿Es posible que la generación automática de facturas no se realice si un producto o un tipo de producto está en el carro?.
    Tengo la necesidad de vender productos físicos y servicios como autónomo, y en algunos casos en la factura hay que hacer retención, por eso quería saber si es posible que se haga factura de forma automática, excepto si el pedido lleva un producto, por ejemplo virtual o con una etiqueta, para que, en ese caso, hacer yo la factura manualmente o modificar el pedido y darle al botón de generar factura.
    Gracias.

    —————

    Hi, Is it possible that automatic invoice generation can be not done if a product or type of product is in the cart? I have the need to sell physical products and services as a freelancer, and in some cases the invoice must be change (manual tax), so I wanted to know if it is possible to invoice automatically, except if the order carries a product, for example virtual or with a label, so that, in that case, I can make the invoice manually or modify the order and give the button to generate invoice.
    Thank you.

Viewing 4 replies - 1 through 4 (of 4 total)
  • Plugin Author YITHEMES

    (@yithemes)

    Hola,

    Gracias por contactarnos y espero que estés bien.

    Para hacer que la factura solo se genere cuando el producto es físico.

    Por favor, copia y pega el código en el functions.php de tu tema

    if( class_exists('YITH_WooCommerce_Pdf_Invoice') ) {
        global $YWPI_Instance;
        remove_action('woocommerce_order_status_on-hold', array($YWPI_Instance, 'new_automatic_invoice'));
        add_action('woocommerce_order_status_on-hold', 'yith_wc_generate_invoice_on_specific_cases');
    
        function yith_wc_generate_invoice_on_specific_cases($order_id)
        {
    
            global $YWPI_Instance;
    
            $order = wc_get_order($order_id);
    
            $order_items = $order->get_items();
    
            $generate_invoice = true;
    
            foreach ($order_items as $items_key => $items_value) {
    
                $product_id = $items_value['product_id'];
                $product = wc_get_product($product_id);
                if ($product->is_virtual()) {
                    $generate_invoice = false;
                    break;
                }
            }
    
            if ($generate_invoice) {
                $document = $YWPI_Instance->get_document_by_type($order_id, YITH_YWPI_INVOICE_ARG_NAME);
    
                if (null != $document) {
                    $YWPI_Instance->save_document($document);
                }
            }
    
        }
    }

    Pruébalo y coméntame que tal.

    Un saludo.

    Thread Starter tlozano

    (@tlozano)

    Muchas gracias. En cuanto pueda lo probaré y comento el resultado.

    Saludos

    Thread Starter tlozano

    (@tlozano)

    Hola @yithemes, lo he probado y no me funciona, pero el código es muy claro y voy a intentar ver porque no me funciona.
    El caso es que compro un producto virtual y sigue haciendo factura.

    Lo voy a mirar con mas tiempo.

    Muchas gracias.

    Thread Starter tlozano

    (@tlozano)

    Por alguna razón no me funciona desde el functions.php de mi tema hijo, pero si lo cambio directamente en class.yith-woocommerce-pdf-invoice.php en la funcion new_automatic_invoice() si que funciona. ¿Alguna idea de porque no engancha el cambio desde el functions.php?.

    Mil gracias

Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘¿Generación automtica condicional?’ is closed to new replies.