FernandoAcosta.Netdocs

Hooks e filtros

2 min de leituraAtualizado há 5 dias

Referência completa das actions e filters expostos pelo plugin. Use pra integrar lógica customizada (envio via SMS, notificação interna, dados de pagamento de gateways novos etc.).

Actions

woocommerce_thankyou

Disparado pelo WooCommerce na página de obrigado, após o checkout. O plugin escuta com prioridade 10 pra agendar os crons do pedido.

add_action( 'woocommerce_thankyou', function( $order_id ) {
    $order = wc_get_order( $order_id );
    if ( 'yes' === $order->get_meta( '_wc_boleto_reminder' ) ) {
        // o lembrete foi criado
    }
}, 20 );

wc_payment_reminder_after_{$hours}_hours

Action dinâmica disparada quando um cron agendado vence. {$hours} é o intervalo configurado (24, 48, 72, ...). O plugin já tem um handler interno que envia o e-mail; use pra adicionar comportamento extra.

do_action( "wc_payment_reminder_after_{$hours}_hours", $order_id, $hours );

Exemplo (SMS extra após 48h):

add_action( 'wc_payment_reminder_after_48_hours', function( $order_id, $hours ) {
    $order = wc_get_order( $order_id );
    enviar_sms( $order->get_billing_phone(), 'Seu boleto vence em breve!' );
}, 10, 2 );

woocommerce_order_status_completed / processing / cancelled

Hooks padrão do WooCommerce. O plugin os usa pra cancelar os crons pendentes do pedido. Se você ouvir esses hooks com prioridade menor que 10, executa antes do cancelamento. Maior, depois.

Filters

wc_boleto_reminder_available_hours

Modifica os intervalos configurados em WooCommerce → Configurações → Integração → Lembrete de Boleto.

apply_filters( 'wc_boleto_reminder_available_hours', $hours );

Retorno: array [ horas => descrição ]. Exemplo (adicionar lembrete em 1 hora):

add_filter( 'wc_boleto_reminder_available_hours', function( $hours ) {
    return array_merge( array( 1 => 'Logo após o pedido' ), $hours );
} );

wc_boleto_reminder_get_payment_data

Modifica os dados de pagamento extraídos do pedido. Use pra adicionar suporte a gateways novos.

apply_filters( 'wc_boleto_reminder_get_payment_data', $args, $order );

Argumentos:

  • payment_url (string) — URL do boleto.
  • method_name (string) — Nome amigável do gateway (vai pro placeholder {method_name}).
  • expiry_time (int, opcional) — Timestamp de expiração.

Tutorial completo em Adicionar gateway customizado.

wc_boleto_reminder_valid_order_statuses_for_reminder

Modifica quais status de pedido qualificam pra lembrete. Padrão: [ 'pending', 'on-hold' ].

add_filter( 'wc_boleto_reminder_valid_order_statuses_for_reminder', function( $statuses ) {
    $statuses[] = 'wc-awaiting-shipit';
    return $statuses;
} );

wc_boleto_reminder_email_message

Modifica o conteúdo final do e-mail (depois dos placeholders resolvidos, antes do envio).

apply_filters(
    'wc_boleto_reminder_email_message',
    $content, $order, $hours, $button_url, $method_name
);

Exemplo (anexar lista de produtos):

add_filter( 'wc_boleto_reminder_email_message', function( $content, $order, $hours ) {
    $items = '';
    foreach ( $order->get_items() as $item ) {
        $items .= $item->get_name() . ' x' . $item->get_quantity() . '<br>';
    }
    return $content . '<p><strong>Itens:</strong><br>' . $items . '</p>';
}, 10, 3 );

wc_boleto_reminder_placeholders

Adiciona placeholders customizados pra usar no conteúdo dos e-mails.

apply_filters( 'wc_boleto_reminder_placeholders', $placeholders, $order );

Exemplo:

add_filter( 'wc_boleto_reminder_placeholders', function( $placeholders, $order ) {
    $placeholders['{customer_phone}'] = $order->get_billing_phone();
    $placeholders['{store_name}']     = get_bloginfo( 'name' );
    $placeholders['{total}']          = $order->get_total();
    return $placeholders;
}, 10, 2 );

Usar no e-mail:

Olá {first_name}, seu pedido na {store_name} de {total} aguarda pagamento.

wc_boleto_reminder_payment_button

Modifica o HTML do botão de pagamento.

apply_filters(
    'wc_boleto_reminder_payment_button',
    $html, $order, $button_url, $method_name
);

Exemplo (botão extra de "preciso de ajuda"):

add_filter( 'wc_boleto_reminder_payment_button', function( $html, $order ) {
    $support_url = 'https://exemplo.com/contato?order=' . $order->get_id();
    return $html . '<a href="' . esc_url( $support_url ) . '">Precisa de ajuda?</a>';
}, 10, 2 );

wc_boleto_reminder_css

Estende o CSS injetado no e-mail.

add_filter( 'wc_boleto_reminder_css', function( $css ) {
    return $css . '
        .wc-boleto-reminder-button {
            border-radius: 5px;
            font-weight: bold;
        }';
} );

wc_boleto_reminder_render_email_message

Aplicado no template antes da renderização final do e-mail. Diferença pro wc_boleto_reminder_email_message: roda na hora de output, com acesso ao objeto $email.

apply_filters( 'wc_boleto_reminder_render_email_message', $email_message, $order, $email );
Onde mexer

Esse filtro é aplicado no template (templates/emails/wc-boleto-reminder.php), não em uma função PHP. Pra mudanças que dependem do output final (HTML que precisa do contexto do template), use esse. Pra mudanças no conteúdo lógico, prefira wc_boleto_reminder_email_message.

Foi útil?