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 );
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.