• Resolved solrac

    (@carvanda)


    Apliquei este filtro que vi noutro post (crédito para o @tiago) , para ultrapassar a cria??o de fatura com valor 0 mas no WooCommerce se marcar a encomenda como concluída dá erro fatal na página. Fa?o voltar e fica bem. Como posso ultrapassar o erro:

    // Esta Linha de código faz com que a fun??o ‘filtrar_documentos’ seja chamada antes do Moloni criar um documento e permite-nos, por exemplo, cancelar a sua cria??o
    add_filter( ‘moloni_before_insert_document’ , ‘filtrar_documentos’ );

    // Esta fun??o vê o valor total do documento e se for menor ou igual 0€ cancela a sua cria??o.
    function filtrar_documentos( $documento ) {
    if ($documento->documentTotal < 0.01) { $documento->stopProcess = true;
    }
    return $documento;
    } ;

Viewing 3 replies - 1 through 3 (of 3 total)
  • Plugin Author Moloni

    (@molonidevteam)

    Boa tarde.

    Relativamente à sua quest?o, no momento em que o filtro ‘moloni_before_insert_document‘ corre o atributo documentTotal ainda n?o tem valor. Este atributo fica com o valor do documento após a inser??o do mesmo.
    O que poderá fazer é verificar o valor da encomenda, e verificar se é 0.

    add_filter( 'moloni_before_insert_document' , 'filtrar_documentos' );
    
    function filtrar_documentos( $documentBuilder ) {
        if ($documentBuilder->order->get_total() < 0.01) {
             $documentBuilder->stopProcess = true;
        }
    
        return $documento;
    }


    Grande parte das vezes o valor do documento é 0 porque todos os artigos foram “devolvidos”. O valor do get_total() n?o reflete isso, teria que fazer algo deste género:

    add_filter( 'moloni_before_insert_document' , 'filtrar_documentos' );
    
    function filtrar_documentos( $documentBuilder ) {
        $orderTotal = (float)$documentBuilder->order->get_total() - (float)$documentBuilder->order->get_total_refunded();
        if ($orderTotal < 0.01) {
            $documentBuilder->stopProcess = true;
        }
    
        return $documento;
    }
    Thread Starter solrac

    (@carvanda)

    Obrigado pelo código. Funcionou mas aconteceu algo.

    Tinha duas encomendas a zero a seguir uma encomenda de 13 euros e a seguir outras duas a zeros.

    Quando fui testar e selecionar o bot?o de gerar a fatura para as encomendas a zeros, passou-as para o estado de concluídas e n?o gerou fatura, era o pretendido e funcionou.

    Quando gerei a fatura para a encomenda de 13 euros o moloni criou três documentos iguais com o mesmo valor e referentes apenas a uma encomenda.

    Arade?o a vossa ajuda.

    Plugin Author Moloni

    (@molonidevteam)

    Boa tarde,

    Caso necessite de mais ajuda n?o hesite em entrar em contacto.

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Erro ao aplicar filtro’ is closed to new replies.