WP Customer Reviewsで記事中に[WPCR_INSERT]を挿入してもレビューが表示されない問題を解決する方法

WP Customer Reviewsという記事などに★を1−5までつけられるプラグインがあるが、最近Version2から3に更新したことで、すべての記事を一括してレビューを有効にする機能がなくなった

記事中に[WPCR_INSERT]というショートコードを挿入することで、投稿フォームは表示できるのだが、レビューを送信して承認してもレビューが表示されないバグがあったので修正してみた

WP Customer Reviewsのバージョンは3.5.8 Liteのため、それ以降のWP Customer Reviewsでは修正されている可能性もあるので、動作確認すること。

ちなみにWordpressテンプレート中に[WPCR_INSERT]のショートコードを挿入するには

<?php echo do_shortcode('[WPCR_INSERT]'); ?>

と書く。

目次

WP Customer Reviewsの修正

上記バグを修正するにはwp-customer-reviews-3.phpを開き、function output_reviews_show($opts)関数の中にある

$main_data['reviews'] .= wpcr_Goatee::fill($this->options['templates']['frontend_review_item'], $data);

の前に

if(!$data['is_business'] && !$data['is_product']){ $data['is_product'] = true; }

を挿入する

原因

バグの原因としては

$main_data['reviews'] .= wpcr_Goatee::fill($this->options['templates']['frontend_review_item'], $data);

で、frontend_review_itemというテンプレートに$dataの部分を挿入しているのだが、frontend_review_itemテンプレートでは、is_businessもしくはis_productというデータが無いと何もレビューHTMLを表示してくれないというもの

なので、強制的にis_productをtrueにして出力している

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です