FernandoAcosta.Netdocs

Filtros disponíveis

2 min de leituraAtualizado há 5 dias

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;
} );
Adicionar um tipo só não basta

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';
} );
Combinar status

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_rating
  • woocommerce_form_field_single
  • woocommerce_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 );
Esse filtro é do WooCommerce, não do plugin

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

Foi útil?