FernandoAcosta.Netdocs

Dados armazenados

3 min de leituraAtualizado há 5 dias

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
Compatibilidade HPOS

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.

Próximos passos

Foi útil?