Cum să obții toate comentariile/recenziile din WooCommerce

31 oct. 2013, 12:08:54
Vizualizări: 15.7K
Voturi: 0

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.

0
Toate răspunsurile la întrebare 3
10

Î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.

31 oct. 2013 13:12:10
Comentarii

Tot 0 rezultate...

kroma kroma
31 oct. 2013 13:33:41

Și widget-ul WC Recenzii recente afișează tot o listă goală?

birgire birgire
31 oct. 2013 13:47:46

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

Nicolai Grossherr Nicolai Grossherr
31 oct. 2013 13:49:53

Aici este sursa acelui widget

birgire birgire
31 oct. 2013 13:52:19

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

kroma kroma
31 oct. 2013 14:39:16

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

kroma kroma
31 oct. 2013 14:40:48

Te rog verifică răspunsul actualizat.

birgire birgire
31 oct. 2013 15:39:54

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

birgire birgire
31 oct. 2013 18:49:46

@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

kroma kroma
1 nov. 2013 11:42:35

Bine, mă bucur că s-a rezolvat, mulțumesc că ai împărtășit cauza problemei.

birgire birgire
1 nov. 2013 11:50:57
Arată celelalte 5 comentarii
0

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ă).

28 nov. 2018 17:05:51
0

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 );
10 iul. 2015 09:38:34