Cum să obții toate comentariile/recenziile din WooCommerce
Ce trebuie să realizez este să obțin toate comentariile de la toate produsele din WooCommerce.
Această interogare nu returnează NICIUN comentariu...
<?php $comments = get_comments( array( 'post_type' => 'product') ); ?>
Totuși
<?php $comments = get_comments( array( 'post_id' => '4169') );
Îmi returnează comentariile pentru un anumit ID de produs. Cum să interoghez TOATE comentariile?
Mulțumesc anticipat.

Încearcă acest cod:
$args = array(
'number' => 100,
'status' => 'approve',
'post_status' => 'publish',
'post_type' => 'product'
);
$comments = get_comments( $args );
unde poți modifica numărul de comentarii în funcție de nevoile tale.
Depanare:
Este posibil ca ceva să le modifice prin hook-ul pre_get_comments
?
Pentru depanare, poți verifica interogarea SQL cu:
global $wpdb;
printf( '<pre>%s</pre>', $wpdb->last_query );
unde adaugi acest cod direct sub fragmentul de cod get_comments()
de mai sus.
De asemenea, verifică în ecranul edit-comments.php
dacă comentariile apar acolo și care este statutul lor.

Întotdeauna fac asta în acest fel și funcționează, e ca și cum widget-ul ar face asta. Problema trebuie să fie altceva. @kroma

Aici este sursa acelui widget

Da, acum văd că WC Recent Reviews de asemenea nu afișează rezultate... ai idei?

apropo, recenziile woocommerce ar trebui să apară și în secțiunea de Comentarii nativă din WP admin?

Poți să împărtășești interogarea SQL? Ai văzut comentariile pe ecranul edit-comments.php
?

@birgire - mulțumesc pentru depanare. Am realizat că WPML cauza probleme - Produsele nu erau marcate ca traductibile. După ce le-am făcut traductibile, funcționează corect. +1

Va trebui să parcurgeți toate comentariile și să le afișați. Ceva de genul acesta va funcționa:
$args = array(
'status' => 'approve',
'post_status' => 'publish',
'post_type' => 'product'
);
$comments = get_comments( $args );
foreach( $comments as $comment ) :
echo( $comment->comment_author . '<br />' . $comment->comment_content);
endforeach;
De asemenea, puteți adăuga parametrul 'number' dacă doriți să specificați câte comentarii să fie afișate. Valoarea implicită este null (fără limită).

WooCommerce suprascrie interogările de comentarii, ceea ce pare să afecteze WC_Comment_Query și get_comments(), prin filtrarea directă în SQL a comentariilor din magazin.
Adăugând codul de mai jos înainte de a utiliza WC_Comment_Query, am prevenit excluderea comentariilor din magazin în interogarea mea.
remove_filter('comments_clauses', array( 'WC_Comments' ,'exclude_order_comments'), 10, 1 );
