O plugin expõe seis filtros próprios e um padrão dinâmico do WooCommerce. Use pra mudar comportamento sem editar o código do plugin.
wc_advanced_reviews_field_types
Modifica os tipos de campo disponíveis na tela de configuração.
Localização: includes/core-functions.php
Valor padrão:
array(
'multiple' => 'Múltipla escolha',
'single' => 'Opção única',
'rating' => 'Estrelas',
)
Exemplo: adicionar um tipo customizado
add_filter( 'wc_advanced_reviews_field_types', function( $types ) {
$types['textarea'] = 'Comentário livre';
return $types;
} );
O plugin renderiza só os tipos rating, single e multiple. Pra um tipo novo aparecer no formulário, você precisa também hookar woocommerce_form_field_<tipo> (veja a última seção). Use esse filtro junto com a renderização customizada.
wc_advanced_reviews_reminder_status
Muda o status de pedido que dispara o lembrete.
Localização: includes/class-wc-cron.php, includes/emails/class-wc-reminder-review.php
Valor padrão: 'completed'
Exemplo: enviar lembrete pra pedidos em "Em processamento"
add_filter( 'wc_advanced_reviews_reminder_status', function() {
return 'processing';
} );
Esse filtro só aceita um status. Se você precisa enviar pra múltiplos status, prefira hookar diretamente o wc_advanced_reviews_reminders action e disparar o e-mail manualmente.
wc_advanced_reviews_interval
Controla a janela de busca do cron, em dias.
Localização: includes/class-wc-cron.php
Valor padrão: 3
Como afeta a busca: o cron procura pedidos concluídos no intervalo (agora − dias_de_espera − interval) até (agora − dias_de_espera). Aumentar o interval aumenta a tolerância — útil quando o WP-Cron é instável.
Exemplo: usar uma janela de 7 dias
add_filter( 'wc_advanced_reviews_interval', function() {
return 7;
} );
wc_advanced_reviews_reminder_message
Manipula o corpo final do e-mail de lembrete, depois das variáveis serem resolvidas.
Localização: includes/emails/class-wc-reminder-review.php
Assinatura:
apply_filters( 'wc_advanced_reviews_reminder_message', $formatted_message, $order );
$formatted_message(string) — corpo já com{site_title},{products_list},{shop_url}resolvidos.$order(WC_Order) — pedido que originou o lembrete.
Exemplo: incluir o nome do cliente na saudação
add_filter( 'wc_advanced_reviews_reminder_message', function( $message, $order ) {
$first_name = $order->get_billing_first_name();
if ( $first_name ) {
$message = str_replace( 'Olá!', sprintf( 'Olá, %s!', $first_name ), $message );
}
return $message;
}, 10, 2 );
wc_advanced_reviews_positive_message
Manipula o corpo final do e-mail enviado a clientes que deram avaliação ≥ 3 estrelas.
Localização: includes/emails/class-wc-positive-review.php
Assinatura:
apply_filters( 'wc_advanced_reviews_positive_message', $formatted_message, $product );
$formatted_message(string) — corpo já com{site_title},{product},{shop_url}resolvidos.$product(WC_Product) — produto avaliado.
Exemplo: incluir um cupom no fim do e-mail
add_filter( 'wc_advanced_reviews_positive_message', function( $message, $product ) {
return $message . "\n\nUse o cupom OBRIGADO10 e ganhe 10% na próxima compra.";
}, 10, 2 );
wc_advanced_reviews_negative_message
Manipula o corpo final do e-mail enviado a clientes que deram avaliação < 3 estrelas.
Localização: includes/emails/class-wc-negative-review.php
Assinatura:
apply_filters( 'wc_advanced_reviews_negative_message', $formatted_message, $product );
$formatted_message(string) — corpo já com{site_title},{product},{shop_url}resolvidos.$product(WC_Product) — produto avaliado.
Exemplo: anexar link de WhatsApp do suporte
add_filter( 'wc_advanced_reviews_negative_message', function( $message, $product ) {
$whatsapp = 'https://wa.me/5511999999999';
return $message . sprintf( "\n\nFale com a gente direto: %s", $whatsapp );
}, 10, 2 );
woocommerce_form_field_* (filtros dinâmicos)
O plugin renderiza os campos customizados de avaliação usando a função WC_Advanced_Reviews_Functions::get_form_field(), que termina com:
$field = apply_filters( 'woocommerce_form_field_' . $args['type'], $field, $key, $args, $value );
Ou seja, você pode interceptar qualquer tipo de campo:
woocommerce_form_field_ratingwoocommerce_form_field_singlewoocommerce_form_field_multiple
Exemplo: trocar o <select> de estrelas por um conjunto de botões de rádio
add_filter( 'woocommerce_form_field_rating', function( $field, $key, $args ) {
// substituir o HTML do $field por um conjunto de inputs radio
// ...
return $field;
}, 10, 3 );
O woocommerce_form_field_* é um padrão do WooCommerce. O plugin só se aproveita dele pra deixar a renderização extensível.
Próximos passos
- Actions disponíveis — pra reagir a eventos.
- Dados armazenados — meta keys pra ler dos comentários.