The title says it all. I know the reviews are the native comments post type in Wordpress. I have included the code to add a comment.
The problem is however I am unclear how to give the comment a rating and how to tie it to a particular product. When I use the comment_post_ID it does not seem to be assigning the comment (review) to the correct post.
$time = current_time('mysql');
$data = array(
'comment_post_ID' => 1,
'comment_author' => 'admin',
'comment_author_email' => '[email protected]',
'comment_author_url' => 'http://',
'comment_content' => 'content here',
'comment_type' => '',
'comment_parent' => 0,
'user_id' => 1,
'comment_author_IP' => '127.0.0.1',
'comment_agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)',
'comment_date' => $time,
'comment_approved' => 1,
);
wp_insert_comment($data);
With the key 'comment_post_ID'
is where your comment will be shown, so desired product ID
Then you can use update_comment_meta()
dedicated WordPress function to add a rating, like:
update_comment_meta( $comment_id, 'rating', 3 ); // The rating is an integer from 1 to 5
So your code will be like (where $product_id
is the targeted product Id for this review):
$comment_id = wp_insert_comment( array(
'comment_post_ID' => 37, // <=== The product ID where the review will show up
'comment_author' => 'LoicTheAztec',
'comment_author_email' => '[email protected]', // <== Important
'comment_author_url' => '',
'comment_content' => 'content here',
'comment_type' => '',
'comment_parent' => 0,
'user_id' => 5, // <== Important
'comment_author_IP' => '',
'comment_agent' => '',
'comment_date' => date('Y-m-d H:i:s'),
'comment_approved' => 1,
) );
// HERE inserting the rating (an integer from 1 to 5)
update_comment_meta( $comment_id, 'rating', 3 );
Tested and works as intended.
The author email and the user ID need to be some existing ones.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With