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にして出力している