As avaliações do plugin vivem em estruturas padrão do WordPress (comentários e meta), com algumas chaves específicas. Esta referência lista o que está onde — útil pra integrações, queries customizadas e migrações.
Comment meta (avaliações)
Cada avaliação é um comentário do WordPress (comments) com comment_type = 'review' (padrão WooCommerce). O plugin grava 4 meta extras nesse comentário.
| Meta key | Tipo | O que guarda | Exemplo |
|---|---|---|---|
review_title |
string | Título dado pelo cliente. | "Muito bom!" |
rating |
int | Média das estrelas (1–5) — o WooCommerce já lê dessa meta pra calcular nota geral do produto. | 5 |
_wc_advanced_reviews_ratings |
array | Notas individuais por campo. Chave: ID do campo. Valor: 1–5. | [ 'field_409592512' => 5, 'field_624234555' => 4 ] |
_wc_advanced_reviews_multiple |
array | Seleções de campos do tipo opção única ou múltipla escolha. | [ 'field_xyz' => [ 'Qualidade', 'Embalagem' ] ] |
Exemplo: ler todas as notas individuais de uma avaliação
$ratings = get_comment_meta( $comment_id, '_wc_advanced_reviews_ratings', true );
foreach ( $ratings as $field_id => $stars ) {
echo "$field_id: $stars estrelas\n";
}
Exemplo: ler as opções marcadas em campos de múltipla escolha
$multiple = get_comment_meta( $comment_id, '_wc_advanced_reviews_multiple', true );
foreach ( $multiple as $field_id => $selections ) {
echo "$field_id: " . implode( ', ', (array) $selections ) . "\n";
}
Order meta (controle de lembrete)
| Meta key | Tipo | O que guarda |
|---|---|---|
_wc_advanced_reviews_reminder |
string | Sinaliza que o pedido já recebeu o e-mail de lembrete. Valor sempre 'yes'. |
A meta é gravada no momento em que o lembrete é disparado. O cron usa a presença/ausência dela como filtro pra evitar enviar o mesmo lembrete duas vezes.
Exemplo: forçar reenvio do lembrete pra um pedido específico
delete_post_meta( $order_id, '_wc_advanced_reviews_reminder' );
// na próxima execução do cron, o pedido entra de novo na fila
O plugin lida com as duas formas de armazenamento de pedido do WooCommerce (legado em wp_postmeta e HPOS em wp_wc_orders_meta). Use sempre update_post_meta / delete_post_meta no $order_id — internamente o WooCommerce roteia pra tabela certa.
Configuração (options)
| Option | Tipo | O que guarda |
|---|---|---|
advanced_reviews_options |
array | Estrutura completa dos campos de avaliação configurados (ID, tipo, nome, opções, habilitado). |
rating_color |
string | Cor das estrelas (hex). Vazio = cor do tema. |
waiting_days |
int | Dias entre conclusão do pedido e envio do lembrete (1–30, padrão 2). |
Exemplo: ler os campos configurados
$fields = get_option( 'advanced_reviews_options', array() );
foreach ( $fields as $field_id => $field ) {
echo "$field_id ({$field['type']}): {$field['name']} - " .
( 'yes' === $field['enabled'] ? 'on' : 'off' ) . "\n";
}
Ou via helper estático do próprio plugin (campos padrão):
$defaults = WC_Advanced_Reviews_Functions::get_default_fields();
Cache (transients)
| Transient | TTL | O que guarda |
|---|---|---|
wc_advanced_reviews_count_all |
24h | Contagem total de avaliações da loja (todos os produtos). |
wc_advanced_reviews_count_<product_id> |
24h | Contagem de avaliações de um produto específico. |
O cache é populado pela primeira chamada do shortcode [wc_advanced_reviews_list] e invalidado automaticamente quando o WooCommerce limpa transients de comentário (via WC_Comments::clear_transients).
Exemplo: invalidar manualmente
delete_transient( 'wc_advanced_reviews_count_all' );
delete_transient( 'wc_advanced_reviews_count_123' ); // produto específico
Logs
O plugin grava logs do cron de lembretes no canal reviews-teste do logger do WooCommerce.
- Caminho:
wp-content/uploads/wc-logs/reviews-teste-YYYY-MM-DD-<hash>.log - Acesso pelo admin: WooCommerce → Status → Logs, escolher
reviews-teste-<data>.
O que é logado:
- IDs dos pedidos encontrados em cada janela.
- Cada disparo de e-mail (com data de conclusão do pedido).
- Erros: status inválido, lista de produtos vazia, destinatário ausente.
Cron event
| Hook | Frequência | O que faz |
|---|---|---|
wc_advanced_reviews_reminders |
twicedaily (a cada 12 horas) |
Procura pedidos elegíveis e dispara o e-mail de lembrete. |
O evento é registrado em wc_advanced_reviews_create_cron() (em includes/core-functions.php) toda vez que o admin é carregado, garantindo que existe.
Exemplo: forçar execução manual via WP-CLI
wp cron event run wc_advanced_reviews_reminders
Classes públicas
| Classe | O que faz |
|---|---|
WC_Advanced_Reviews_Functions |
Helpers gerais. Tem get_default_fields() e get_form_field() (renderização). |
WC_Advanced_Reviews_Shortcodes |
Registra [wc_advanced_reviews_list]. Expõe get_reviews_count() estático. |
WC_Advanced_Reviews_Cron |
Handler do cron de lembretes. |
WC_Advanced_Reviews_Frontend |
Processa o submit da avaliação (hook comment_post). |
WC_Advanced_Reviews_Reminder_Email / _Positive_Email / _Negative_Email |
Os 3 e-mails. Estendem WC_Email. |