Suporte » Plugins » WooCommerce Iugu – Exibir link para boleto na página Meus Pedidos

  • Olá! Estou tentando exibir um link para o PDF do boleto na página Meus Pedidos do meu site, e encontrei instruções de como fazer isso utilizando o plugin do Pagseguro.

    Tentei fazer as adaptações para o Iugu, mas acredito que eu esteja errando em algum passo, pois o botão sequer aparece.

    O código original pode ser encontrado aqui.

    Desde já agradeço, e segue abaixo o código que tentei usar.

    function sv_add_my_account_order_actions( $actions, $order ) {
        // Verifica se o pedido esta pendente ou aguardando.
        if ( ! in_array( $order->get_status(), array( 'pending', 'on-hold' ) ) ) {
            return $actions;
        }
    
        $data = get_post_meta( $order->id, '_iugu_wc_transaction_data', true );
    
        // Verifica se é boleto, codigo 2.
        if ( isset( $data['_payment_method'] ) && 'iugu-bank-slip' == $data['_payment_method'] ) {
            $actions['name'] = array(
                'url' => $data['$pdf'],
                'name' => 'Boleto 2ª via',
            );
        }
    
        return $actions;
    }
    
    add_filter( 'woocommerce_my_account_my_orders_actions', 'sv_add_my_account_order_actions', 10, 2 );
Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • Moderador Claudio Sanches

    (@claudiosanches)

    Não vai rolar porque não existe _payment_method ou $pdf.
    Código poderia ser:

    function sv_add_my_account_order_actions( $actions, $order ) {
        // Verifica se o pedido esta pendente ou aguardando.
        if ( ! in_array( $order->get_status(), array( 'pending', 'on-hold' ) ) ) {
            return $actions;
        }
    
        $data = get_post_meta( $order->id, '_iugu_wc_transaction_data', true );
    
        // Verifica se é boleto, codigo 2.
        if ( isset( $data['pdf'] ) {
            $actions['name'] = array(
                'url' => $data['pdf'],
                'name' => 'Boleto 2ª via',
            );
        }
    
        return $actions;
    }
    
    add_filter( 'woocommerce_my_account_my_orders_actions', 'sv_add_my_account_order_actions', 10, 2 );
    

    Não precisa verificar por mais nada além do boleto, já que apenas ele vai ter os PDFs.
    Se quiser pode testar antes o método de pagamento, usando $order->payment_method === 'iugu-bank-slip'.

    Por exemplo, assim:

    function sv_add_my_account_order_actions( $actions, $order ) {
        // Verifica se o método de pagamento é boleto do Iugu.
        if ( 'iugu-bank-slip' === $order->payment_method ) {
            return $actions;
        }
    
        // Verifica se o pedido esta pendente ou aguardando.
        if ( ! in_array( $order->get_status(), array( 'pending', 'on-hold' ) ) ) {
            return $actions;
        }
    
        $data = get_post_meta( $order->id, '_iugu_wc_transaction_data', true );
    
        // Verifica se é boleto, codigo 2.
        if ( isset( $data['pdf'] ) {
            $actions['name'] = array(
                'url' => $data['pdf'],
                'name' => 'Boleto 2ª via',
            );
        }
    
        return $actions;
    }
    
    add_filter( 'woocommerce_my_account_my_orders_actions', 'sv_add_my_account_order_actions', 10, 2 );
    
    Odirlon

    (@odirlon)

    Show Claudio, ficou perfeito.

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • O tópico ‘WooCommerce Iugu – Exibir link para boleto na página Meus Pedidos’ está fechado para novas respostas.