Добавьте обзор продукта с оценками программно в Woocommerce - PullRequest
0 голосов
/ 31 августа 2018

Название говорит само за себя. Я знаю, что отзывы - это родной тип комментариев в Wordpress Я включил код для добавления комментария.

Однако проблема в том, что мне неясно, как дать комментарию оценку и как его привязать к конкретному продукту. Когда я использую комментарий comment_post_ID, он, кажется, не присваивает комментарий (рецензию) правильному сообщению.

$time = current_time('mysql');

$data = array(
    'comment_post_ID' => 1,
    'comment_author' => 'admin',
    'comment_author_email' => 'admin@admin.com',
    '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);

1 Ответ

0 голосов
/ 01 сентября 2018

С ключом 'comment_post_ID', где будет показан ваш комментарий, поэтому желаемый идентификатор продукта

Затем вы можете использовать update_comment_meta() выделенную функцию WordPress для добавления рейтинга, например:

update_comment_meta( $comment_id, 'rating', 3 ); // The rating is an integer from 1 to 5

Таким образом, ваш код будет выглядеть как (где $product_id - идентификатор целевого продукта для этого обзора):

$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' => 'loictheaztec@fantastic.com', // <== 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 );

Проверено и работает как задумано.

Письмо автора и идентификатор пользователя должны быть некоторыми из существующих.

enter image description here

...