WP Product Review Lite - Version 3.0.9

Version Description

  • 2017-09-07
Download this release

Release Info

Developer codeinwp
Plugin Icon WP Product Review Lite
Version 3.0.9
Comparing to
See all releases

Code changes from version 3.0.8 to 3.0.9

CHANGELOG.md CHANGED
@@ -1,4 +1,12 @@
1
 
 
 
 
 
 
 
 
 
2
  ### v3.0.8 - 2017-09-01
3
  **Changes:**
4
  * Fix for out of memory errors.
1
 
2
+ ### v3.0.9 - 2017-09-07
3
+ **Changes:**
4
+ * Improved JSON-LD scheme.
5
+ * Fix for image lightbox link.
6
+ * FIx for json-ld description when html tags are present.
7
+ * Fix for widget layout margin when image is used.
8
+ * Improvements compatibility with various themes.
9
+
10
  ### v3.0.8 - 2017-09-01
11
  **Changes:**
12
  * Fix for out of memory errors.
assets/css/cwppos-widget-style1.css CHANGED
@@ -14,6 +14,7 @@
14
 
15
  .wppr-prodlist .wppr-prodrow .wppr-prodrowrightadjust {
16
  width: 65%;
 
17
  }
18
 
19
  .wppr-prodlist .wppr-prodrow .wppr-prodrowright .wppr-rating {
14
 
15
  .wppr-prodlist .wppr-prodrow .wppr-prodrowrightadjust {
16
  width: 65%;
17
+ margin-left: 3%;
18
  }
19
 
20
  .wppr-prodlist .wppr-prodrow .wppr-prodrowright .wppr-rating {
assets/css/frontpage.css CHANGED
@@ -1,5 +1,5 @@
1
  /*
2
- Version: 3.0.8
3
  */
4
  #review-statistics {
5
  width: 100%;
1
  /*
2
+ Version: 3.0.9
3
  */
4
  #review-statistics {
5
  width: 100%;
includes/admin/layouts/editor-default-tpl.php CHANGED
@@ -4,6 +4,7 @@
4
  *
5
  * @package WPPR
6
  * @subpackage Layouts
 
7
  * @copyright Copyright (c) 2017, Bogdan Preda
8
  * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
  * @since 3.0.0
@@ -239,7 +240,7 @@ $check = $review->is_active() ? 'yes' : 'no';
239
  </div>
240
  <?php do_action( 'wppr_editor_options_before', $model->post ); ?>
241
  <div class="wppr-review-fieldset wppr-review-options-fields">
242
- <ul class="wppr-review-options-list clear">
243
  <?php
244
 
245
  $options_nr = $model->wppr_get_option( 'cwppos_option_nr' );
@@ -250,7 +251,7 @@ $check = $review->is_active() ? 'yes' : 'no';
250
  <?php
251
  echo $html_helper->text(
252
  array(
253
- 'name' => 'wppr-editor-options-name[]',
254
  'id' => 'wppr-editor-options-name-' . $i,
255
  'value' => $model->get_value( 'wppr-option-name-' . $i ),
256
  'placeholder' => __( 'Option', 'wp-product-review' ) . ' ' . $i,
@@ -258,7 +259,7 @@ $check = $review->is_active() ? 'yes' : 'no';
258
  );
259
  echo $html_helper->text(
260
  array(
261
- 'name' => 'wppr-editor-options-value[]',
262
  'id' => 'wppr-editor-options-value-' . $i,
263
  'class' => 'wppr-text wppr-option-number',
264
  'value' => $model->get_value( 'wppr-option-value-' . $i ),
@@ -281,7 +282,7 @@ $check = $review->is_active() ? 'yes' : 'no';
281
 
282
  <?php do_action( 'wppr_editor_pros_before', $model->post ); ?>
283
  <div class="wppr-review-fieldset wppr-review-pros-fields">
284
- <ul class="wppr-review-options-list clear">
285
  <?php
286
  $options_nr = $model->wppr_get_option( 'cwppos_option_nr' );
287
  $pros = $review->get_pros();
@@ -312,7 +313,7 @@ $check = $review->is_active() ? 'yes' : 'no';
312
  <p><?php _e( 'Insert product\'s cons features below.', 'wp-product-review' ); ?></p>
313
  <?php do_action( 'wppr_editor_cons_before', $model->post ); ?>
314
  <div class="wppr-review-fieldset wppr-review-cons-fields">
315
- <ul class="wppr-review-options-list clear">
316
  <?php
317
  $options_nr = $model->wppr_get_option( 'cwppos_option_nr' );
318
  $cons = $review->get_cons();
4
  *
5
  * @package WPPR
6
  * @subpackage Layouts
7
+ * @global $model WPPR_Editor_Model
8
  * @copyright Copyright (c) 2017, Bogdan Preda
9
  * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
10
  * @since 3.0.0
240
  </div>
241
  <?php do_action( 'wppr_editor_options_before', $model->post ); ?>
242
  <div class="wppr-review-fieldset wppr-review-options-fields">
243
+ <ul class="wppr-review-options-list">
244
  <?php
245
 
246
  $options_nr = $model->wppr_get_option( 'cwppos_option_nr' );
251
  <?php
252
  echo $html_helper->text(
253
  array(
254
+ 'name' => 'wppr-editor-options-name[' . $i . ']',
255
  'id' => 'wppr-editor-options-name-' . $i,
256
  'value' => $model->get_value( 'wppr-option-name-' . $i ),
257
  'placeholder' => __( 'Option', 'wp-product-review' ) . ' ' . $i,
259
  );
260
  echo $html_helper->text(
261
  array(
262
+ 'name' => 'wppr-editor-options-value[' . $i . ']',
263
  'id' => 'wppr-editor-options-value-' . $i,
264
  'class' => 'wppr-text wppr-option-number',
265
  'value' => $model->get_value( 'wppr-option-value-' . $i ),
282
 
283
  <?php do_action( 'wppr_editor_pros_before', $model->post ); ?>
284
  <div class="wppr-review-fieldset wppr-review-pros-fields">
285
+ <ul class="wppr-review-options-list ">
286
  <?php
287
  $options_nr = $model->wppr_get_option( 'cwppos_option_nr' );
288
  $pros = $review->get_pros();
313
  <p><?php _e( 'Insert product\'s cons features below.', 'wp-product-review' ); ?></p>
314
  <?php do_action( 'wppr_editor_cons_before', $model->post ); ?>
315
  <div class="wppr-review-fieldset wppr-review-cons-fields">
316
+ <ul class="wppr-review-options-list ">
317
  <?php
318
  $options_nr = $model->wppr_get_option( 'cwppos_option_nr' );
319
  $cons = $review->get_cons();
includes/admin/models/class-wppr-editor-model.php CHANGED
@@ -140,10 +140,11 @@ class WPPR_Editor_Model extends WPPR_Model_Abstract {
140
  $options = $this->previous->get_options();
141
  }
142
  }
143
- $parts = explode( '-', $key );
144
- $index = $parts[ count( $parts ) - 1 ];
145
- $index = intval( $index ) - 1;
146
- $type = $parts[ count( $parts ) - 2 ];
 
147
 
148
  return isset( $options[ $index ] ) ? $options[ $index ][ $type ] : '';
149
  break;
@@ -196,7 +197,7 @@ class WPPR_Editor_Model extends WPPR_Model_Abstract {
196
  $options = array();
197
  foreach ( $options_names as $k => $op_name ) {
198
  if ( ! empty( $op_name ) ) {
199
- $options[] = array(
200
  'name' => sanitize_text_field( $op_name ),
201
  'value' => sanitize_text_field( isset( $options_values[ $k ] ) ? ( empty( $options_values[ $k ] ) ? 0 : $options_values[ $k ] ) : 0 ),
202
  );
140
  $options = $this->previous->get_options();
141
  }
142
  }
143
+ $first_key = key( $options );
144
+ $parts = explode( '-', $key );
145
+ $index = $parts[ count( $parts ) - 1 ];
146
+ $index = intval( $index ) - ( $first_key === 0 ? 1 : 0 );
147
+ $type = $parts[ count( $parts ) - 2 ];
148
 
149
  return isset( $options[ $index ] ) ? $options[ $index ][ $type ] : '';
150
  break;
197
  $options = array();
198
  foreach ( $options_names as $k => $op_name ) {
199
  if ( ! empty( $op_name ) ) {
200
+ $options[ $k ] = array(
201
  'name' => sanitize_text_field( $op_name ),
202
  'value' => sanitize_text_field( isset( $options_values[ $k ] ) ? ( empty( $options_values[ $k ] ) ? 0 : $options_values[ $k ] ) : 0 ),
203
  );
includes/admin/models/class-wppr-review-model.php CHANGED
@@ -697,7 +697,7 @@ class WPPR_Review_Model extends WPPR_Model_Abstract {
697
  if ( $comments ) {
698
  $options = array();
699
  foreach ( $comments as $comment ) {
700
- $options = array_merge( $options, $comment );
701
  }
702
 
703
  if ( count( $options ) != 0 ) {
@@ -734,7 +734,13 @@ class WPPR_Review_Model extends WPPR_Model_Abstract {
734
  foreach ( $comments as $comment ) {
735
  $options = $this->get_comment_options( $comment );
736
  if ( ! empty( $options ) ) {
737
- $valid[] = $options;
 
 
 
 
 
 
738
  }
739
  }
740
 
@@ -961,4 +967,139 @@ class WPPR_Review_Model extends WPPR_Model_Abstract {
961
  return false;
962
  }
963
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
964
  }
697
  if ( $comments ) {
698
  $options = array();
699
  foreach ( $comments as $comment ) {
700
+ $options = array_merge( $options, $comment['options'] );
701
  }
702
 
703
  if ( count( $options ) != 0 ) {
734
  foreach ( $comments as $comment ) {
735
  $options = $this->get_comment_options( $comment );
736
  if ( ! empty( $options ) ) {
737
+ $valid[ $comment ] = array(
738
+ 'options' => $options,
739
+ 'date' => get_comment_date( '', $comment ),
740
+ 'author' => get_comment_author( $comment ),
741
+ 'title' => wp_strip_all_tags( get_comment_excerpt( $comment ) ),
742
+ 'content' => get_comment_text( $comment ),
743
+ );
744
  }
745
  }
746
 
967
  return false;
968
  }
969
 
970
+ /**
971
+ * Returns the JSON-LD array.
972
+ *
973
+ * @return array The JSON-LD array.
974
+ */
975
+ public function get_json_ld() {
976
+ $ld = array(
977
+ '@context' => 'http://schema.org/',
978
+ '@type' => 'Product',
979
+ 'name' => $this->get_name(),
980
+ 'image' => $this->get_small_thumbnail(),
981
+ 'description' => $this->get_excerpt(),
982
+ );
983
+ $ld['offers'] = array(
984
+ '@type' => 'Offer',
985
+ 'price' => number_format( $this->get_price(), 2 ),
986
+ 'priceCurrency' => $this->get_currency(),
987
+ 'seller' => array(
988
+ '@type' => 'Person',
989
+ 'name' => $this->get_author(),
990
+ ),
991
+ );
992
+
993
+ $review_default = array(
994
+ '@type' => 'Review',
995
+ 'reviewRating' => array(
996
+ '@type' => 'Rating',
997
+ 'bestRating' => '10',
998
+ 'worstRating' => '0',
999
+ 'ratingValue' => number_format( ( $this->get_rating() / 10 ), 2 ),
1000
+ ),
1001
+ 'name' => $this->get_name(),
1002
+ 'reviewBody' => $this->get_content(),
1003
+ 'author' => array(
1004
+ '@type' => 'Person',
1005
+ 'name' => $this->get_author(),
1006
+ ),
1007
+ 'datePublished' => get_the_time( 'Y-m-d', $this->get_ID() ),
1008
+ );
1009
+
1010
+ if ( $this->wppr_get_option( 'cwppos_show_userreview' ) != 'yes' ) {
1011
+ $ld['review'] = $review_default;
1012
+
1013
+ return $ld;
1014
+ }
1015
+ $ld['review'][] = $review_default;
1016
+
1017
+ $comments = $this->get_comments_options();
1018
+ foreach ( $comments as $comment ) {
1019
+ $ld['review'][] = array(
1020
+ '@type' => 'Review',
1021
+ 'reviewRating' => array(
1022
+ '@type' => 'Rating',
1023
+ 'bestRating' => '10',
1024
+ 'worstRating' => '0',
1025
+ 'ratingValue' => number_format( ( $this->rating_by_options( $comment['options'] ) ), 2 ),
1026
+ ),
1027
+ 'name' => $comment['title'],
1028
+ 'reviewBody' => $comment['content'],
1029
+ 'author' => array(
1030
+ '@type' => 'Person',
1031
+ 'name' => $comment['author'],
1032
+ ),
1033
+ 'datePublished' => get_the_time( 'Y-m-d', $comment['date'] ),
1034
+ );
1035
+ }
1036
+ $ld['aggregateRating'] = array(
1037
+ '@type' => 'AggregateRating',
1038
+ 'bestRating' => '10',
1039
+ 'worstRating' => '0',
1040
+ 'ratingValue' => number_format( ( $this->get_rating() / 10 ), 2 ),
1041
+ 'reviewCount' => count( $ld['review'] ),
1042
+ );
1043
+
1044
+ return $ld;
1045
+ }
1046
+
1047
+ /**
1048
+ * Returns the excerpt of the description
1049
+ *
1050
+ * @return string The excerpt of description.
1051
+ */
1052
+ public function get_excerpt() {
1053
+ if ( ! $this->is_active() ) {
1054
+ return '';
1055
+ }
1056
+ $content = $this->get_content();
1057
+
1058
+ $excerpt_length = apply_filters( 'excerpt_length', 55 );
1059
+
1060
+ return wp_trim_words( $content, $excerpt_length, '' );
1061
+ }
1062
+
1063
+ /**
1064
+ * Get the review post content.
1065
+ *
1066
+ * @return string The review post content.
1067
+ */
1068
+ public function get_content() {
1069
+ if ( ! $this->is_active() ) {
1070
+ return '';
1071
+ }
1072
+
1073
+ return apply_filters( 'wppr_excerpt', wp_strip_all_tags( preg_replace( '/<!-- Start WPPR Review -->[\s\S]*?<!-- End WPPR Review -->/', '', apply_filters( 'the_content', get_post_field( 'post_content', $this->get_ID() ) ) ) ), $this->ID, $this );
1074
+ }
1075
+
1076
+ /**
1077
+ * Get the review author.
1078
+ */
1079
+ public function get_author() {
1080
+ if ( ! $this->is_active() ) {
1081
+ return '';
1082
+ }
1083
+
1084
+ $author_id = get_post_field( 'post_author', $this->get_ID() );
1085
+
1086
+ return get_the_author_meta( 'display_name', $author_id );
1087
+ }
1088
+
1089
+ /**
1090
+ * Calculate rating by options pair.
1091
+ *
1092
+ * @param array $options Options pair.
1093
+ *
1094
+ * @return float|int The rating by options pairs.
1095
+ */
1096
+ public function rating_by_options( $options ) {
1097
+ if ( empty( $options ) ) {
1098
+ return 0;
1099
+ }
1100
+
1101
+ return ( array_sum( wp_list_pluck( $options, 'value' ) ) / count( $options ) );
1102
+
1103
+ }
1104
+
1105
  }
includes/class-wppr.php CHANGED
@@ -67,7 +67,7 @@ class WPPR {
67
  */
68
  public function __construct() {
69
  $this->plugin_name = 'wppr';
70
- $this->version = '3.0.8';
71
 
72
  $this->load_dependencies();
73
  $this->set_locale();
67
  */
68
  public function __construct() {
69
  $this->plugin_name = 'wppr';
70
+ $this->version = '3.0.9';
71
 
72
  $this->load_dependencies();
73
  $this->set_locale();
includes/public/layouts/default-tpl.php CHANGED
@@ -13,16 +13,19 @@
13
  $price_raw = $review_object->get_price_raw();
14
 
15
  $lightbox = '';
16
- if ( $review_object->get_click() == 'image' ) {
17
- $lightbox = 'data-lightbox="' . esc_url( $review_object->get_small_thumbnail() ) . '"';
18
- }
19
  $links = $review_object->get_links();
20
  $multiple_affiliates_class = 'affiliate-button';
21
  $links = array_filter( $links );
 
22
  if ( count( $links ) > 1 ) {
23
  $multiple_affiliates_class = 'affiliate-button2 affiliate-button';
24
  }
25
- $output = '
 
 
 
 
26
  <section id="review-statistics" class="article-section">
27
  <div class="review-wrap-up cwpr_clearfix" >
28
  <div class="cwpr-review-top cwpr_clearfix">
@@ -33,7 +36,7 @@ $output = '
33
  </div><!-- end .cwpr-review-top -->
34
  <div class="review-wu-left">
35
  <div class="rev-wu-image">
36
- <a href="' . esc_url( reset( $links ) ) . '" ' . $lightbox . ' rel="nofollow" target="_blank"><img src="' . esc_attr( $review_object->get_small_thumbnail() ) . '" alt="' . esc_attr( $review_object->get_name() ) . '" class="photo photo-wrapup wppr-product-image" /></a>
37
  </div><!-- end .rev-wu-image -->
38
  <div class="review-wu-grade">
39
  <div class="cwp-review-chart ">
@@ -98,3 +101,4 @@ foreach ( $links as $title => $link ) {
98
  ';
99
  }
100
  }
 
13
  $price_raw = $review_object->get_price_raw();
14
 
15
  $lightbox = '';
16
+
 
 
17
  $links = $review_object->get_links();
18
  $multiple_affiliates_class = 'affiliate-button';
19
  $links = array_filter( $links );
20
+ $image_link = reset( $links );
21
  if ( count( $links ) > 1 ) {
22
  $multiple_affiliates_class = 'affiliate-button2 affiliate-button';
23
  }
24
+ if ( $review_object->get_click() == 'image' ) {
25
+ $lightbox = 'data-lightbox="' . esc_url( $review_object->get_small_thumbnail() ) . '"';
26
+ $image_link = $review_object->get_image();
27
+ }
28
+ $output = '<!-- Start WPPR Review -->
29
  <section id="review-statistics" class="article-section">
30
  <div class="review-wrap-up cwpr_clearfix" >
31
  <div class="cwpr-review-top cwpr_clearfix">
36
  </div><!-- end .cwpr-review-top -->
37
  <div class="review-wu-left">
38
  <div class="rev-wu-image">
39
+ <a href="' . esc_url( $image_link ) . '" ' . $lightbox . ' rel="nofollow" target="_blank"><img src="' . esc_attr( $review_object->get_small_thumbnail() ) . '" alt="' . esc_attr( $review_object->get_name() ) . '" class="photo photo-wrapup wppr-product-image" /></a>
40
  </div><!-- end .rev-wu-image -->
41
  <div class="review-wu-grade">
42
  <div class="cwp-review-chart ">
101
  ';
102
  }
103
  }
104
+ $output .= '<!-- End WPPR Review -->';
includes/public/layouts/rich-json-ld.php CHANGED
@@ -11,50 +11,6 @@
11
  */
12
 
13
  if ( $review_object->wppr_get_option( 'wppr_rich_snippet' ) == 'yes' ) {
14
- $output .= '
15
- <script type="application/ld+json">
16
- {
17
- "@context": "http://schema.org/",
18
- "@type": "Product",
19
- "name": "' . $review_object->get_name() . '",
20
- "image": "' . $review_object->get_small_thumbnail() . '",
21
- "description": "' . get_the_excerpt( $review_object->get_ID() ) . '",';
22
- $comments = $review_object->get_comments_options();
23
- if ( intval( $review_object->wppr_get_option( 'cwppos_infl_userreview' ) ) > 0 && count( $comments ) > 0 ) {
24
- $output .= '"aggregateRating": {
25
- "@type": "AggregateRating",
26
- "bestRating": "10",
27
- "worstRating": "1",
28
- "ratingValue": "' . number_format( ( $review_object->get_rating() / 10 ), 2 ) . '",
29
- "reviewCount": "' . count( $comments ) . '"
30
- },';
31
- } else {
32
- $output .= '
33
- "review": {
34
- "@type": "Review",
35
- "reviewRating": {
36
- "@type": "Rating",
37
- "bestRating": "10",
38
- "worstRating": "1",
39
- "ratingValue": "' . number_format( ( $review_object->get_rating() / 10 ), 2 ) . '"
40
- },
41
- "name": "' . $review_object->get_name() . '",
42
- "author": {
43
- "@type": "Person",
44
- "name": "' . get_the_author() . '"
45
- },
46
- "datePublished": "' . get_the_time( 'Y-m-d', $review_object->get_ID() ) . '"
47
- },';
48
- }
49
  $output .= '
50
- "offers": {
51
- "@type": "Offer",
52
- "price": "' . number_format( $review_object->get_price(), 2 ) . '",
53
- "priceCurrency": "' . $review_object->get_currency() . '",
54
- "seller": {
55
- "@type": "Person",
56
- "name": "' . get_the_author() . '"
57
- }
58
- }
59
- }</script>';
60
  }
11
  */
12
 
13
  if ( $review_object->wppr_get_option( 'wppr_rich_snippet' ) == 'yes' ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  $output .= '
15
+ <script type="application/ld+json">' . json_encode( $review_object->get_json_ld() ) . '</script>';
 
 
 
 
 
 
 
 
 
16
  }
languages/wp-product-review.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the no.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: WP Product Review Lite 3.0.3\n"
6
  "Report-Msgid-Bugs-To: https://github.com/Codeinwp/wp-product-review/issues\n"
7
- "POT-Creation-Date: 2017-08-25 13:45:59+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -99,7 +99,7 @@ msgstr ""
99
  #: includes/admin/class-wppr-global-settings.php:143
100
  #: includes/admin/class-wppr-global-settings.php:154
101
  #: includes/admin/class-wppr-global-settings.php:165
102
- #: includes/admin/layouts/editor-default-tpl.php:28
103
  msgid "Yes"
104
  msgstr ""
105
 
@@ -107,7 +107,7 @@ msgstr ""
107
  #: includes/admin/class-wppr-global-settings.php:144
108
  #: includes/admin/class-wppr-global-settings.php:155
109
  #: includes/admin/class-wppr-global-settings.php:166
110
- #: includes/admin/layouts/editor-default-tpl.php:40
111
  msgid "No"
112
  msgstr ""
113
 
@@ -345,122 +345,122 @@ msgid ""
345
  "target=\"_blank\" >add-on</a> in order to change the review icons."
346
  msgstr ""
347
 
348
- #: includes/admin/layouts/editor-default-tpl.php:16
349
  msgid "Is this a review post ?"
350
  msgstr ""
351
 
352
- #: includes/admin/layouts/editor-default-tpl.php:47
353
  msgid "Product Details"
354
  msgstr ""
355
 
356
- #: includes/admin/layouts/editor-default-tpl.php:48
357
  msgid "Specify the general details for the reviewed product."
358
  msgstr ""
359
 
360
- #: includes/admin/layouts/editor-default-tpl.php:53
361
  msgid "Product Name"
362
  msgstr ""
363
 
364
- #: includes/admin/layouts/editor-default-tpl.php:59
365
  msgid "Product name"
366
  msgstr ""
367
 
368
- #: includes/admin/layouts/editor-default-tpl.php:65
369
  msgid "Product Image"
370
  msgstr ""
371
 
372
- #: includes/admin/layouts/editor-default-tpl.php:71
373
  msgid "Choose or Upload an Image"
374
  msgstr ""
375
 
376
- #: includes/admin/layouts/editor-default-tpl.php:76
377
  msgid "If no image is provided, featured image is used"
378
  msgstr ""
379
 
380
- #: includes/admin/layouts/editor-default-tpl.php:79
381
  msgid "Product Image Click"
382
  msgstr ""
383
 
384
- #: includes/admin/layouts/editor-default-tpl.php:92
385
  msgid "Show Whole Image"
386
  msgstr ""
387
 
388
- #: includes/admin/layouts/editor-default-tpl.php:104
389
  msgid "Open Affiliate link"
390
  msgstr ""
391
 
392
- #: includes/admin/layouts/editor-default-tpl.php:111
393
- #: includes/admin/layouts/editor-default-tpl.php:117
394
- #: includes/admin/layouts/editor-default-tpl.php:141
395
- #: includes/admin/layouts/editor-default-tpl.php:147
396
- #: includes/admin/layouts/editor-default-tpl.php:175
397
- #: includes/admin/layouts/editor-default-tpl.php:181
398
  msgid "Affiliate Button Text"
399
  msgstr ""
400
 
401
- #: includes/admin/layouts/editor-default-tpl.php:123
402
- #: includes/admin/layouts/editor-default-tpl.php:129
403
- #: includes/admin/layouts/editor-default-tpl.php:153
404
- #: includes/admin/layouts/editor-default-tpl.php:159
405
- #: includes/admin/layouts/editor-default-tpl.php:187
406
- #: includes/admin/layouts/editor-default-tpl.php:193
407
  msgid "Affiliate Link"
408
  msgstr ""
409
 
410
- #: includes/admin/layouts/editor-default-tpl.php:135
411
  msgid "Add new link"
412
  msgstr ""
413
 
414
- #: includes/admin/layouts/editor-default-tpl.php:207
415
- #: includes/admin/layouts/editor-default-tpl.php:213
416
  msgid "Product Price"
417
  msgstr ""
418
 
419
- #: includes/admin/layouts/editor-default-tpl.php:224
420
  msgid "Product Options"
421
  msgstr ""
422
 
423
- #: includes/admin/layouts/editor-default-tpl.php:225
424
  msgid "Insert your options and their grades. Grading must be done from 0 to 100."
425
  msgstr ""
426
 
427
- #: includes/admin/layouts/editor-default-tpl.php:230
428
  msgid "Preload Info"
429
  msgstr ""
430
 
431
- #: includes/admin/layouts/editor-default-tpl.php:233
432
  msgid ""
433
  " In order to be able to automatically load your options from another posts, "
434
  "you need the "
435
  msgstr ""
436
 
437
- #: includes/admin/layouts/editor-default-tpl.php:233
438
  msgid "PRO add-on"
439
  msgstr ""
440
 
441
- #: includes/admin/layouts/editor-default-tpl.php:253
442
- #: includes/admin/layouts/editor-default-tpl.php:295
443
- #: includes/admin/layouts/editor-default-tpl.php:326
444
  msgid "Option"
445
  msgstr ""
446
 
447
- #: includes/admin/layouts/editor-default-tpl.php:262
448
  msgid "Grade"
449
  msgstr ""
450
 
451
- #: includes/admin/layouts/editor-default-tpl.php:276
452
  msgid "Pro Features"
453
  msgstr ""
454
 
455
- #: includes/admin/layouts/editor-default-tpl.php:277
456
  msgid "Insert product's pro features below."
457
  msgstr ""
458
 
459
- #: includes/admin/layouts/editor-default-tpl.php:308
460
  msgid "Cons Features"
461
  msgstr ""
462
 
463
- #: includes/admin/layouts/editor-default-tpl.php:309
464
  msgid "Insert product's cons features below."
465
  msgstr ""
466
 
2
  # This file is distributed under the no.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: WP Product Review Lite 3.0.9\n"
6
  "Report-Msgid-Bugs-To: https://github.com/Codeinwp/wp-product-review/issues\n"
7
+ "POT-Creation-Date: 2017-09-07 13:50:28+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
99
  #: includes/admin/class-wppr-global-settings.php:143
100
  #: includes/admin/class-wppr-global-settings.php:154
101
  #: includes/admin/class-wppr-global-settings.php:165
102
+ #: includes/admin/layouts/editor-default-tpl.php:32
103
  msgid "Yes"
104
  msgstr ""
105
 
107
  #: includes/admin/class-wppr-global-settings.php:144
108
  #: includes/admin/class-wppr-global-settings.php:155
109
  #: includes/admin/class-wppr-global-settings.php:166
110
+ #: includes/admin/layouts/editor-default-tpl.php:44
111
  msgid "No"
112
  msgstr ""
113
 
345
  "target=\"_blank\" >add-on</a> in order to change the review icons."
346
  msgstr ""
347
 
348
+ #: includes/admin/layouts/editor-default-tpl.php:20
349
  msgid "Is this a review post ?"
350
  msgstr ""
351
 
352
+ #: includes/admin/layouts/editor-default-tpl.php:51
353
  msgid "Product Details"
354
  msgstr ""
355
 
356
+ #: includes/admin/layouts/editor-default-tpl.php:52
357
  msgid "Specify the general details for the reviewed product."
358
  msgstr ""
359
 
360
+ #: includes/admin/layouts/editor-default-tpl.php:57
361
  msgid "Product Name"
362
  msgstr ""
363
 
364
+ #: includes/admin/layouts/editor-default-tpl.php:63
365
  msgid "Product name"
366
  msgstr ""
367
 
368
+ #: includes/admin/layouts/editor-default-tpl.php:69
369
  msgid "Product Image"
370
  msgstr ""
371
 
372
+ #: includes/admin/layouts/editor-default-tpl.php:75
373
  msgid "Choose or Upload an Image"
374
  msgstr ""
375
 
376
+ #: includes/admin/layouts/editor-default-tpl.php:80
377
  msgid "If no image is provided, featured image is used"
378
  msgstr ""
379
 
380
+ #: includes/admin/layouts/editor-default-tpl.php:83
381
  msgid "Product Image Click"
382
  msgstr ""
383
 
384
+ #: includes/admin/layouts/editor-default-tpl.php:96
385
  msgid "Show Whole Image"
386
  msgstr ""
387
 
388
+ #: includes/admin/layouts/editor-default-tpl.php:108
389
  msgid "Open Affiliate link"
390
  msgstr ""
391
 
392
+ #: includes/admin/layouts/editor-default-tpl.php:115
393
+ #: includes/admin/layouts/editor-default-tpl.php:121
394
+ #: includes/admin/layouts/editor-default-tpl.php:145
395
+ #: includes/admin/layouts/editor-default-tpl.php:151
396
+ #: includes/admin/layouts/editor-default-tpl.php:179
397
+ #: includes/admin/layouts/editor-default-tpl.php:185
398
  msgid "Affiliate Button Text"
399
  msgstr ""
400
 
401
+ #: includes/admin/layouts/editor-default-tpl.php:127
402
+ #: includes/admin/layouts/editor-default-tpl.php:133
403
+ #: includes/admin/layouts/editor-default-tpl.php:157
404
+ #: includes/admin/layouts/editor-default-tpl.php:163
405
+ #: includes/admin/layouts/editor-default-tpl.php:191
406
+ #: includes/admin/layouts/editor-default-tpl.php:197
407
  msgid "Affiliate Link"
408
  msgstr ""
409
 
410
+ #: includes/admin/layouts/editor-default-tpl.php:139
411
  msgid "Add new link"
412
  msgstr ""
413
 
414
+ #: includes/admin/layouts/editor-default-tpl.php:211
415
+ #: includes/admin/layouts/editor-default-tpl.php:217
416
  msgid "Product Price"
417
  msgstr ""
418
 
419
+ #: includes/admin/layouts/editor-default-tpl.php:228
420
  msgid "Product Options"
421
  msgstr ""
422
 
423
+ #: includes/admin/layouts/editor-default-tpl.php:229
424
  msgid "Insert your options and their grades. Grading must be done from 0 to 100."
425
  msgstr ""
426
 
427
+ #: includes/admin/layouts/editor-default-tpl.php:234
428
  msgid "Preload Info"
429
  msgstr ""
430
 
431
+ #: includes/admin/layouts/editor-default-tpl.php:237
432
  msgid ""
433
  " In order to be able to automatically load your options from another posts, "
434
  "you need the "
435
  msgstr ""
436
 
437
+ #: includes/admin/layouts/editor-default-tpl.php:237
438
  msgid "PRO add-on"
439
  msgstr ""
440
 
441
+ #: includes/admin/layouts/editor-default-tpl.php:257
442
+ #: includes/admin/layouts/editor-default-tpl.php:299
443
+ #: includes/admin/layouts/editor-default-tpl.php:330
444
  msgid "Option"
445
  msgstr ""
446
 
447
+ #: includes/admin/layouts/editor-default-tpl.php:266
448
  msgid "Grade"
449
  msgstr ""
450
 
451
+ #: includes/admin/layouts/editor-default-tpl.php:280
452
  msgid "Pro Features"
453
  msgstr ""
454
 
455
+ #: includes/admin/layouts/editor-default-tpl.php:281
456
  msgid "Insert product's pro features below."
457
  msgstr ""
458
 
459
+ #: includes/admin/layouts/editor-default-tpl.php:312
460
  msgid "Cons Features"
461
  msgstr ""
462
 
463
+ #: includes/admin/layouts/editor-default-tpl.php:313
464
  msgid "Insert product's cons features below."
465
  msgstr ""
466
 
readme.txt CHANGED
@@ -67,6 +67,15 @@ If you wanna learn more about the <a href="http://www.codeinwp.com/blog/fastest-
67
  * fr_FR translation by Jacques Soule of http://wordpress-pour-vous.com/
68
 
69
  == Changelog ==
 
 
 
 
 
 
 
 
 
70
  = 3.0.8 - 2017-09-01 =
71
 
72
  * Fix for out of memory errors.
67
  * fr_FR translation by Jacques Soule of http://wordpress-pour-vous.com/
68
 
69
  == Changelog ==
70
+ = 3.0.9 - 2017-09-07 =
71
+
72
+ * Improved JSON-LD scheme.
73
+ * Fix for image lightbox link.
74
+ * FIx for json-ld description when html tags are present.
75
+ * Fix for widget layout margin when image is used.
76
+ * Improvements compatibility with various themes.
77
+
78
+
79
  = 3.0.8 - 2017-09-01 =
80
 
81
  * Fix for out of memory errors.
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit5d80c55356a9df28e3bba37cae15e986::getLoader();
4
 
5
  require_once __DIR__ . '/composer' . '/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit996ebc0bfc279a2bc6cb41ba05661c5d::getLoader();
vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInit9bbe254b12d96f4e2a2fc88cd8d107f3::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInit367620a0efc78d5dd5e5acdfa0931b53::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit5d80c55356a9df28e3bba37cae15e986
6
  {
7
  private static $loader;
8
 
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit5d80c55356a9df28e3bba37cae15e986
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit5d80c55356a9df28e3bba37cae15e986', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit5d80c55356a9df28e3bba37cae15e986', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
@@ -42,14 +42,14 @@ class ComposerAutoloaderInit5d80c55356a9df28e3bba37cae15e986
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
- composerRequire5d80c55356a9df28e3bba37cae15e986($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
- function composerRequire5d80c55356a9df28e3bba37cae15e986($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit996ebc0bfc279a2bc6cb41ba05661c5d
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit996ebc0bfc279a2bc6cb41ba05661c5d', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit996ebc0bfc279a2bc6cb41ba05661c5d', 'loadClassLoader'));
25
 
26
  $map = require __DIR__ . '/autoload_namespaces.php';
27
  foreach ($map as $namespace => $path) {
42
 
43
  $includeFiles = require __DIR__ . '/autoload_files.php';
44
  foreach ($includeFiles as $fileIdentifier => $file) {
45
+ composerRequire996ebc0bfc279a2bc6cb41ba05661c5d($fileIdentifier, $file);
46
  }
47
 
48
  return $loader;
49
  }
50
  }
51
 
52
+ function composerRequire996ebc0bfc279a2bc6cb41ba05661c5d($fileIdentifier, $file)
53
  {
54
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
55
  require $file;
vendor/composer/autoload_real_52.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
- class ComposerAutoloaderInit9bbe254b12d96f4e2a2fc88cd8d107f3 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit9bbe254b12d96f4e2a2fc88cd8d107f3 {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit9bbe254b12d96f4e2a2fc88cd8d107f3', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit9bbe254b12d96f4e2a2fc88cd8d107f3', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
+ class ComposerAutoloaderInit367620a0efc78d5dd5e5acdfa0931b53 {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit367620a0efc78d5dd5e5acdfa0931b53', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit367620a0efc78d5dd5e5acdfa0931b53', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
wp-product-review.php CHANGED
@@ -15,7 +15,7 @@
15
  * Plugin Name: WP Product Review Lite
16
  * Plugin URI: https://themeisle.com/plugins/wp-product-review/
17
  * Description: The highest rated and most complete review plugin, now with rich snippets support. Easily turn your basic posts into in-depth reviews.
18
- * Version: 3.0.8
19
  * Author: ThemeIsle
20
  * Author URI: https://themeisle.com/
21
  * Requires at least: 3.5
@@ -67,7 +67,7 @@ register_deactivation_hook( __FILE__, 'deactivate_wppr' );
67
  */
68
  function run_wppr() {
69
 
70
- define( 'WPPR_LITE_VERSION', '3.0.8' );
71
  define( 'WPPR_PATH', dirname( __FILE__ ) );
72
  define( 'WPPR_SLUG', 'wppr' );
73
  define( 'WPPR_UPSELL_LINK', 'https://themeisle.com/plugins/wp-product-review/' );
15
  * Plugin Name: WP Product Review Lite
16
  * Plugin URI: https://themeisle.com/plugins/wp-product-review/
17
  * Description: The highest rated and most complete review plugin, now with rich snippets support. Easily turn your basic posts into in-depth reviews.
18
+ * Version: 3.0.9
19
  * Author: ThemeIsle
20
  * Author URI: https://themeisle.com/
21
  * Requires at least: 3.5
67
  */
68
  function run_wppr() {
69
 
70
+ define( 'WPPR_LITE_VERSION', '3.0.9' );
71
  define( 'WPPR_PATH', dirname( __FILE__ ) );
72
  define( 'WPPR_SLUG', 'wppr' );
73
  define( 'WPPR_UPSELL_LINK', 'https://themeisle.com/plugins/wp-product-review/' );