Real Testimonials - Version 2.1.7

Version Description

  • Feb 26, 2020 =
  • New: Settings page added.
  • New: Custom CSS option.
  • New: Schema markup enable/disable option.
  • Fix: Schema markup issue on Google search console.
  • Improved: Client name HTML tag.
Download this release

Release Info

Developer shapedplugin
Plugin Icon 128x128 Real Testimonials
Version 2.1.7
Comparing to
See all releases

Code changes from version 2.1.6 to 2.1.7

admin/views/testimonial-settings.php CHANGED
@@ -1,128 +1,72 @@
1
  <?php if ( ! defined( 'ABSPATH' ) ) {
2
  die; } // Cannot access directly.
3
 
4
- // //
5
- // // Set a unique slug-like ID.
6
- // //
7
- // $prefix = '_sp_options';
8
 
9
- // //
10
- // // Create a settings page.
11
- // //
12
- // SPFTESTIMONIAL::createOptions(
13
- // $prefix, array(
14
- // 'menu_title' => __( 'Settings', 'testimonial-pro' ),
15
- // 'menu_parent' => 'edit.php?post_type=spt_testimonial',
16
- // 'menu_type' => 'submenu', // menu, submenu, options, theme, etc.
17
- // 'menu_slug' => 'tpro_settings',
18
- // 'theme' => 'light',
19
- // 'show_all_options' => false,
20
- // 'show_search' => false,
21
- // 'show_footer' => false,
22
- // 'framework_title' => __( 'Testimonial Pro Settings', 'testimonial-pro' ),
23
- // )
24
- // );
25
 
26
- // //
27
- // // Advanced section.
28
- // //
29
- // SPFTESTIMONIAL::createSection(
30
- // $prefix, array(
31
- // 'name' => 'advanced_settings',
32
- // 'title' => __( 'Advanced', 'testimonial-pro' ),
33
- // 'icon' => 'fa fa-cogs',
34
 
35
- // 'fields' => array(
36
- // array(
37
- // 'id' => 'tpro_dequeue_google_fonts',
38
- // 'type' => 'switcher',
39
- // 'title' => __( 'Google Fonts', 'testimonial-pro' ),
40
- // 'subtitle' => __( 'On/off the switch to enqueue/dequeue google fonts.', 'testimonial-pro' ),
41
- // 'default' => true,
42
- // ),
43
- // array(
44
- // 'id' => 'testimonial_data_remove',
45
- // 'type' => 'checkbox',
46
- // 'title' => __( 'Remove Data on Uninstall?', 'testimonial-pro' ),
47
- // 'after' => __( 'Check this box if you would like Testimonial Pro to completely remove all of its data when the plugin is deleted.', 'testimonial-pro' ),
48
- // 'default' => false,
49
- // ),
50
 
51
- // array(
52
- // 'type' => 'subheading',
53
- // 'content' => __( 'Enqueue or Dequeue CSS', 'testimonial-pro' ),
54
- // ),
55
- // array(
56
- // 'id' => 'tpro_dequeue_slick_css',
57
- // 'type' => 'switcher',
58
- // 'title' => __( 'Slick CSS', 'testimonial-pro' ),
59
- // 'subtitle' => __( 'On/off the switch to enqueue/dequeue slick CSS.', 'testimonial-pro' ),
60
- // 'default' => true,
61
- // ),
62
- // array(
63
- // 'id' => 'tpro_dequeue_fa_css',
64
- // 'type' => 'switcher',
65
- // 'title' => __( 'Font Awesome CSS', 'testimonial-pro' ),
66
- // 'subtitle' => __( 'On/off the switch to enqueue/dequeue font awesome CSS.', 'testimonial-pro' ),
67
- // 'default' => true,
68
- // ),
69
- // array(
70
- // 'id' => 'tpro_dequeue_magnific_popup_css',
71
- // 'type' => 'switcher',
72
- // 'title' => __( 'Magnific Popup CSS', 'testimonial-pro' ),
73
- // 'subtitle' => __( 'On/off the switch to enqueue/dequeue magnific popup CSS.', 'testimonial-pro' ),
74
- // 'default' => true,
75
- // ),
76
 
77
- // array(
78
- // 'type' => 'subheading',
79
- // 'content' => __( 'Enqueue or Dequeue JS', 'testimonial-pro' ),
80
- // ),
81
- // array(
82
- // 'id' => 'tpro_dequeue_slick_js',
83
- // 'type' => 'switcher',
84
- // 'title' => __( 'Slick JS', 'testimonial-pro' ),
85
- // 'subtitle' => __( 'On/off the switch to enqueue/dequeue slick JS.', 'testimonial-pro' ),
86
- // 'default' => true,
87
- // ),
88
- // array(
89
- // 'id' => 'tpro_dequeue_isotope_js',
90
- // 'type' => 'switcher',
91
- // 'title' => __( 'Isotope JS', 'testimonial-pro' ),
92
- // 'subtitle' => __( 'On/off the switch to enqueue/dequeue isotope JS.', 'testimonial-pro' ),
93
- // 'default' => true,
94
- // ),
95
- // array(
96
- // 'id' => 'tpro_dequeue_magnific_popup_js',
97
- // 'type' => 'switcher',
98
- // 'title' => __( 'Magnific Popup JS', 'testimonial-pro' ),
99
- // 'subtitle' => __( 'On/off the switch to enqueue/dequeue magnific popup JS.', 'testimonial-pro' ),
100
- // 'default' => true,
101
- // ),
102
- // ),
103
- // )
104
- // );
105
-
106
- // //
107
- // // Custom CSS section.
108
- // //
109
- // SPFTESTIMONIAL::createSection(
110
- // $prefix, array(
111
- // 'name' => 'custom_css_section',
112
- // 'title' => __( 'Custom CSS', 'testimonial-pro' ),
113
- // 'icon' => 'fa fa-css3',
114
-
115
- // 'fields' => array(
116
- // array(
117
- // 'id' => 'custom_css',
118
- // 'type' => 'code_editor',
119
- // 'settings' => array(
120
- // 'theme' => 'dracula',
121
- // 'mode' => 'css',
122
- // ),
123
- // 'title' => __( 'Custom CSS', 'testimonial-pro' ),
124
- // 'subtitle' => __( 'Type your CSS.', 'testimonial-pro' ),
125
- // ),
126
- // ),
127
- // )
128
- // );
1
  <?php if ( ! defined( 'ABSPATH' ) ) {
2
  die; } // Cannot access directly.
3
 
4
+ //
5
+ // Set a unique slug-like ID.
6
+ //
7
+ $prefix = '_sp_testimonial_options';
8
 
9
+ //
10
+ // Create a settings page.
11
+ //
12
+ SPFTESTIMONIAL::createOptions(
13
+ $prefix, array(
14
+ 'menu_title' => __( 'Settings', 'testimonial-free' ),
15
+ 'menu_parent' => 'edit.php?post_type=spt_testimonial',
16
+ 'menu_type' => 'submenu', // menu, submenu, options, theme, etc.
17
+ 'menu_slug' => 'spt_settings',
18
+ 'theme' => 'light',
19
+ 'show_all_options' => false,
20
+ 'show_search' => false,
21
+ 'show_footer' => false,
22
+ 'framework_title' => __( 'Testimonial Settings', 'testimonial-free' ),
23
+ )
24
+ );
25
 
26
+ //
27
+ // Advanced section.
28
+ //
29
+ SPFTESTIMONIAL::createSection(
30
+ $prefix, array(
31
+ 'name' => 'advanced_settings',
32
+ 'title' => __( 'Advanced', 'testimonial-free' ),
33
+ 'icon' => 'fa fa-cogs',
34
 
35
+ 'fields' => array(
36
+ array(
37
+ 'id' => 'spt_enable_schema',
38
+ 'type' => 'switcher',
39
+ 'title' => __( 'Schema Markup', 'testimonial-free' ),
40
+ 'subtitle' => __( 'Enable/Disable schema markup.', 'testimonial-free' ),
41
+ 'text_on' => __( 'Enabled', 'testimonial-free' ),
42
+ 'text_off' => __( 'Disabled', 'testimonial-free' ),
43
+ 'text_width' => '98',
44
+ 'default' => true,
45
+ ),
46
+ ),
47
+ )
48
+ );
 
49
 
50
+ //
51
+ // Custom CSS section.
52
+ //
53
+ SPFTESTIMONIAL::createSection(
54
+ $prefix, array(
55
+ 'name' => 'custom_css_section',
56
+ 'title' => __( 'Custom CSS', 'testimonial-free' ),
57
+ 'icon' => 'fa fa-css3',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
 
59
+ 'fields' => array(
60
+ array(
61
+ 'id' => 'custom_css',
62
+ 'type' => 'code_editor',
63
+ 'settings' => array(
64
+ 'theme' => 'dracula',
65
+ 'mode' => 'css',
66
+ ),
67
+ 'title' => __( 'Custom CSS', 'testimonial-free' ),
68
+ 'subtitle' => __( 'Type your CSS.', 'testimonial-free' ),
69
+ ),
70
+ ),
71
+ )
72
+ );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/custom-css.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?php
2
+ $setting_options = get_option( '_sp_testimonial_options' );
3
+ $custom_css = $setting_options['custom_css'];
includes/functions.php CHANGED
@@ -14,7 +14,7 @@ class SP_Testimonial_Free_Functions {
14
  public function __construct() {
15
  add_filter( 'post_updated_messages', array( $this, 'sp_tfree_change_default_post_update_message' ) );
16
  add_filter( 'admin_footer_text', array( $this, 'admin_footer' ), 1, 2 );
17
- add_action( 'admin_menu', array( $this, 'admin_menu' ) );
18
  // Post thumbnails.
19
  add_theme_support( 'post-thumbnails' );
20
  add_image_size( 'tf-client-image-size', 120, 120, true );
14
  public function __construct() {
15
  add_filter( 'post_updated_messages', array( $this, 'sp_tfree_change_default_post_update_message' ) );
16
  add_filter( 'admin_footer_text', array( $this, 'admin_footer' ), 1, 2 );
17
+ add_action( 'admin_menu', array( $this, 'admin_menu' ), 100 );
18
  // Post thumbnails.
19
  add_theme_support( 'post-thumbnails' );
20
  add_image_size( 'tf-client-image-size', 120, 120, true );
public/assets/css/style.css CHANGED
@@ -56,7 +56,7 @@ div.sp-testimonial-free-section.slick-initialized {
56
  margin: 0;
57
  padding: 0;
58
  }
59
- .sp-testimonial-free-section h2.tfree-client-name {
60
  font-size: 16px;
61
  line-height: 24px;
62
  text-transform: none;
56
  margin: 0;
57
  padding: 0;
58
  }
59
+ .sp-testimonial-free-section .tfree-client-name {
60
  font-size: 16px;
61
  line-height: 24px;
62
  text-transform: none;
public/assets/css/style.min.css ADDED
@@ -0,0 +1 @@
 
1
+ div.sp-testimonial-free-section{display:none}div.sp-testimonial-free-section .slick-list{margin-right:-24px}div.sp-testimonial-free-section.slick-initialized{display:block}.sp-testimonial-free-section .slick-dots li.slick-active button:focus,.sp-testimonial-free-section .sp-testimonial-free-item:focus{outline:0}.sp-testimonial-free-section .sp-testimonial-free-item{text-align:center;padding-right:24px}.sp-testimonial-free-wrapper h2.sp-testimonial-free-section-title{margin:0;padding:0;margin-bottom:50px;font-size:25px;line-height:22px;font-weight:600;font-style:normal;text-align:center}.sp-testimonial-free-section .tfree-testimonial-title{margin:0 0 18px 0}.sp-testimonial-free-section .tfree-testimonial-title h3{font-size:20px;line-height:30px;text-transform:none;text-align:center;letter-spacing:normal;font-weight:600;font-style:normal;padding:0;margin:0}.sp-testimonial-free-section .tfree-client-testimonial{font-size:16px;line-height:26px;text-transform:none;text-align:center;letter-spacing:normal;font-weight:400;font-style:normal;margin:0 0 20px 0}.sp-testimonial-free-section .tfree-client-testimonial p.tfree-testimonial-content{display:inline;margin:0;padding:0}.sp-testimonial-free-section .tfree-client-name{font-size:16px;line-height:24px;text-transform:none;text-align:center;letter-spacing:normal;font-weight:700;font-style:normal;margin:0 0 8px 0;padding:0}.sp-testimonial-free-section .tfree-client-rating{margin:0 0 6px 0;text-align:center;line-height:1}.sp-testimonial-free-section .tfree-client-rating i.fa{font-size:19px;margin-right:-1px}.sp-testimonial-free-section .tfree-client-designation{font-size:16px;line-height:24px;text-transform:none;text-align:center;letter-spacing:normal;font-weight:400;font-style:normal}.sp-testimonial-free-section .sp-tfree-client-image{margin:0 0 22px 0}.sp-testimonial-free-section .sp-tfree-client-image img{display:inline-block;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%}.sp-testimonial-free-section .slick-dots{margin:0;margin-top:20px;padding:0;list-style:none;text-align:center}.sp-testimonial-free-section .slick-dots li{display:inline-block;border:0;padding:0;width:13px;height:13px;margin:3px;overflow:hidden}.sp-testimonial-free-section .slick-dots li button{border-radius:50%;text-indent:-999px;width:13px;height:13px;padding:0;border:0;display:block}.sp-testimonial-free-section .slick-next,.sp-testimonial-free-section .slick-prev{font-size:26px;line-height:26px;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;transition:all .3s ease;text-align:center;position:absolute;z-index:9;cursor:pointer;top:50%;margin-top:-14px}.sp-testimonial-free-section .slick-prev{left:0}.sp-testimonial-free-section .slick-next{right:0}
public/views/schema.php ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( $post_query->have_posts() ) {
3
+ $sc_title = get_the_title( $post_id ) ? get_the_title( $post_id ) : 'Testimonial';
4
+ $outline .= '<script type="application/ld+json">
5
+ {
6
+ "@context": "http://schema.org",
7
+ "@type": "Product",
8
+ "aggregateRating": {
9
+ "@type": "AggregateRating",
10
+ "ratingValue": "' . $aggregate_rating . '",
11
+ "reviewCount": "' . $total_rated_testimonials . '"
12
+ },
13
+ "name": "' . $sc_title . '",
14
+ "review": [';
15
+ $testimonial_count = 0;
16
+
17
+ while ( $post_query->have_posts() ) :
18
+ $post_query->the_post();
19
+
20
+ $testimonial_data = get_post_meta( get_the_ID(), 'sp_tpro_meta_options', true );
21
+ $tfree_name = ( isset( $testimonial_data['tpro_name'] ) ? $testimonial_data['tpro_name'] : '' );
22
+ $tfree_rating_star = ( isset( $testimonial_data['tpro_rating'] ) ? $testimonial_data['tpro_rating'] : '' );
23
+
24
+ switch ( $tfree_rating_star ) {
25
+ case 'five_star':
26
+ $rating_value = '5';
27
+ break;
28
+ case 'four_star':
29
+ $rating_value = '4';
30
+ break;
31
+ case 'three_star':
32
+ $rating_value = '3';
33
+ break;
34
+ case 'two_star':
35
+ $rating_value = '2';
36
+ break;
37
+ case 'one_star':
38
+ $rating_value = '1';
39
+ break;
40
+ }
41
+
42
+ $outline .= '{
43
+ "@type": "Review",
44
+ "author": "' . $tfree_name . '",
45
+ "datePublished": "' . get_the_date( 'F j, Y' ) . '",';
46
+ if ( get_the_content() ) {
47
+ $outline .= '"description": "' . get_the_content() . '",';
48
+ }
49
+ if ( get_the_title() ) {
50
+ $outline .= '"name": "' . get_the_title() . '",';
51
+ }
52
+ $outline .= '"reviewRating": {
53
+ "@type": "Rating",
54
+ "bestRating": "5",
55
+ "ratingValue": "' . $rating_value . '",
56
+ "worstRating": "1"
57
+ }
58
+ }';
59
+ if ( ++$testimonial_count !== $total_rated_testimonials ) {
60
+ $outline .= ',';
61
+ }
62
+ endwhile;
63
+
64
+ $outline .= ']
65
+ }
66
+ </script>';
67
+ }
public/views/scripts.php CHANGED
@@ -42,6 +42,8 @@ class SP_TFREE_Front_Scripts {
42
  wp_enqueue_style( 'tfree-font-awesome', SP_TFREE_URL . 'public/assets/css/font-awesome.min.css', array(), SP_TFREE_VERSION );
43
  wp_enqueue_style( 'tfree-deprecated-style', SP_TFREE_URL . 'public/assets/css/deprecated-style.css', array(), SP_TFREE_VERSION );
44
  wp_enqueue_style( 'tfree-style', SP_TFREE_URL . 'public/assets/css/style.css', array(), SP_TFREE_VERSION );
 
 
45
 
46
  // JS Files.
47
  wp_register_script( 'tfree-slick-min-js', SP_TFREE_URL . 'public/assets/js/slick.min.js', array( 'jquery' ), SP_TFREE_VERSION, true );
42
  wp_enqueue_style( 'tfree-font-awesome', SP_TFREE_URL . 'public/assets/css/font-awesome.min.css', array(), SP_TFREE_VERSION );
43
  wp_enqueue_style( 'tfree-deprecated-style', SP_TFREE_URL . 'public/assets/css/deprecated-style.css', array(), SP_TFREE_VERSION );
44
  wp_enqueue_style( 'tfree-style', SP_TFREE_URL . 'public/assets/css/style.css', array(), SP_TFREE_VERSION );
45
+ include SP_TFREE_PATH . '/includes/custom-css.php';
46
+ wp_add_inline_style( 'tfree-style', $custom_css );
47
 
48
  // JS Files.
49
  wp_register_script( 'tfree-slick-min-js', SP_TFREE_URL . 'public/assets/js/slick.min.js', array( 'jquery' ), SP_TFREE_VERSION, true );
public/views/shortcoderender.php CHANGED
@@ -97,7 +97,8 @@ if ( ! class_exists( 'TFREE_Shortcode_Render' ) ) {
97
 
98
  $post_id = $attributes['id'];
99
 
100
- $shortcode_data = get_post_meta( $post_id, 'sp_tpro_shortcode_options', true );
 
101
 
102
  // General Settings.
103
  $theme_style = isset( $shortcode_data['theme_style'] ) ? $shortcode_data['theme_style'] : 'theme-one';
@@ -224,7 +225,7 @@ if ( ! class_exists( 'TFREE_Shortcode_Render' ) ) {
224
  }';
225
  }
226
  if ( $reviewer_name ) {
227
- $outline .= '#sp-testimonial-free-wrapper-' . $post_id . ' .sp-testimonial-free-section h2.tfree-client-name{
228
  color: ' . $client_name_color . ';
229
  }';
230
  }
@@ -261,7 +262,7 @@ if ( ! class_exists( 'TFREE_Shortcode_Render' ) ) {
261
  $outline .= '<h2 class="sp-testimonial-free-section-title">' . get_the_title( $post_id ) . '</h2>';
262
  }
263
 
264
- $outline .= '<div id="sp-testimonial-free-' . $post_id . '" class="sp-testimonial-free-section tfree-style-' . $theme_style . '" data-slick=\'{"dots": ' . $pagination . ', "adaptiveHeight": ' . $adaptive_height . ', "pauseOnHover": ' . $slider_pause_on_hover . ', "slidesToShow": ' . $number_of_column . ', "speed": ' . $slider_scroll_speed . ', "arrows": ' . $navigation . ', "autoplay": ' . $auto_play . ', "autoplaySpeed": ' . $slider_auto_play_speed . ', "swipe": ' . $slider_swipe . ', "draggable": ' . $slider_draggable . ', "rtl": ' . $rtl_mode . ', "infinite": ' . $slider_infinite . ', "responsive": [
265
  {
266
  "breakpoint": 1280, "settings": { "slidesToShow": ' . $number_of_column_desktop . ' }
267
  },
@@ -280,7 +281,8 @@ if ( ! class_exists( 'TFREE_Shortcode_Render' ) ) {
280
  }
281
  }
282
  ] }\'>';
283
-
 
284
  if ( $post_query->have_posts() ) {
285
  while ( $post_query->have_posts() ) :
286
  $post_query->the_post();
@@ -293,13 +295,18 @@ if ( ! class_exists( 'TFREE_Shortcode_Render' ) ) {
293
  if ( 'theme-one' === $theme_style ) {
294
  include SP_TFREE_PATH . '/public/views/templates/theme-one.php';
295
  }
296
-
 
297
  endwhile;
298
  } else {
299
  $outline .= '<h2 class="sp-not-testimonial-found">' . esc_html__( 'No testimonials found', 'testimonial-free' ) . '</h2>';
300
  }
 
301
 
302
  $outline .= '</div>';
 
 
 
303
  $outline .= '</div>';
304
 
305
  wp_reset_postdata();
97
 
98
  $post_id = $attributes['id'];
99
 
100
+ $setting_options = get_option( '_sp_testimonial_options' );
101
+ $shortcode_data = get_post_meta( $post_id, 'sp_tpro_shortcode_options', true );
102
 
103
  // General Settings.
104
  $theme_style = isset( $shortcode_data['theme_style'] ) ? $shortcode_data['theme_style'] : 'theme-one';
225
  }';
226
  }
227
  if ( $reviewer_name ) {
228
+ $outline .= '#sp-testimonial-free-wrapper-' . $post_id . ' .sp-testimonial-free-section .tfree-client-name{
229
  color: ' . $client_name_color . ';
230
  }';
231
  }
262
  $outline .= '<h2 class="sp-testimonial-free-section-title">' . get_the_title( $post_id ) . '</h2>';
263
  }
264
 
265
+ $outline .= '<div id="sp-testimonial-free-' . $post_id . '" class="sp-testimonial-free-section tfree-style-' . $theme_style . '" data-slick=\'{"dots": ' . $pagination . ', "adaptiveHeight": ' . $adaptive_height . ', "pauseOnHover": ' . $slider_pause_on_hover . ', "slidesToShow": ' . $number_of_column . ', "speed": ' . $slider_scroll_speed . ', "arrows": ' . $navigation . ', "autoplay": ' . $auto_play . ', "autoplaySpeed": ' . $slider_auto_play_speed . ', "swipe": ' . $slider_swipe . ', "draggable": ' . $slider_draggable . ', "rtl": ' . $rtl_mode . ', "infinite": ' . $slider_infinite . ', "responsive": [
266
  {
267
  "breakpoint": 1280, "settings": { "slidesToShow": ' . $number_of_column_desktop . ' }
268
  },
281
  }
282
  }
283
  ] }\'>';
284
+ $total_rating_count = 0;
285
+ $total_rated_testimonials = 0;
286
  if ( $post_query->have_posts() ) {
287
  while ( $post_query->have_posts() ) :
288
  $post_query->the_post();
295
  if ( 'theme-one' === $theme_style ) {
296
  include SP_TFREE_PATH . '/public/views/templates/theme-one.php';
297
  }
298
+ $total_rated_testimonials++;
299
+ $total_rating_count += $rating_value;
300
  endwhile;
301
  } else {
302
  $outline .= '<h2 class="sp-not-testimonial-found">' . esc_html__( 'No testimonials found', 'testimonial-free' ) . '</h2>';
303
  }
304
+ $aggregate_rating = round( ( $total_rating_count / $total_rated_testimonials ), 2 );
305
 
306
  $outline .= '</div>';
307
+ if ( $setting_options['spt_enable_schema'] ) {
308
+ include SP_TFREE_PATH . '/public/views/schema.php';
309
+ }
310
  $outline .= '</div>';
311
 
312
  wp_reset_postdata();
public/views/templates/theme-one.php CHANGED
@@ -3,16 +3,11 @@
3
  * Theme One
4
  */
5
 
6
- $outline .= '<div class="sp-testimonial-free-item" itemscope itemtype="http://schema.org/Review">';
7
-
8
  $outline .= '<div class="sp-testimonial-free">';
9
 
10
- $outline .= '<div itemprop="itemReviewed" itemscope itemtype="http://schema.org/Thing">
11
- <meta itemprop="name" content="Testimonials">
12
- </div>';
13
-
14
  if ( has_post_thumbnail( $post_query->post->ID ) ) {
15
- $outline .= '<div class="sp-tfree-client-image" itemprop="image">';
16
  $outline .= get_the_post_thumbnail( $post_query->post->ID, 'tf-client-image-size', array( 'class' => 'tfree-client-image' ) );
17
  $outline .= '</div>';
18
  }
@@ -22,16 +17,13 @@ if ( $testimonial_title && ! empty( get_the_title() ) ) {
22
  }
23
 
24
  if ( $testimonial_text && ! empty( get_the_content() ) ) {
25
- $outline .= '<div class="tfree-client-testimonial" itemprop="reviewBody">';
26
  $outline .= '<p class="tfree-testimonial-content">' . apply_filters( 'the_content', get_the_content() ) . '</p>';
27
  $outline .= '</div>';
28
  }
29
 
30
  if ( $reviewer_name && ! empty( $tfree_name ) ) {
31
- $outline .= '<div itemprop="author" itemscope itemtype="http://schema.org/Person">';
32
- $outline .= '<meta itemprop="name" content="' . $tfree_name . '">';
33
- $outline .= '<h2 class="tfree-client-name">' . $tfree_name . '</h2>';
34
- $outline .= '</div>';
35
  }
36
 
37
  if ( $star_rating && ! empty( $tfree_rating_star ) ) {
@@ -59,8 +51,7 @@ if ( $star_rating && ! empty( $tfree_rating_star ) ) {
59
  break;
60
  }
61
 
62
- $outline .= '<div class="tfree-client-rating" itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">';
63
- $outline .= '<meta itemprop="worstRating" content="1"><meta itemprop="ratingValue" content="' . $rating_value . '"><meta itemprop="bestRating" content="5">';
64
  $outline .= $star_rating_data;
65
  $outline .= '</div>';
66
  }
@@ -72,5 +63,4 @@ if ( $reviewer_position && ! empty( $tfree_designation ) ) {
72
  }
73
 
74
  $outline .= '</div>'; // sp-testimonial-free.
75
-
76
  $outline .= '</div>'; // sp-testimonial-free-item.
3
  * Theme One
4
  */
5
 
6
+ $outline .= '<div class="sp-testimonial-free-item">';
 
7
  $outline .= '<div class="sp-testimonial-free">';
8
 
 
 
 
 
9
  if ( has_post_thumbnail( $post_query->post->ID ) ) {
10
+ $outline .= '<div class="sp-tfree-client-image">';
11
  $outline .= get_the_post_thumbnail( $post_query->post->ID, 'tf-client-image-size', array( 'class' => 'tfree-client-image' ) );
12
  $outline .= '</div>';
13
  }
17
  }
18
 
19
  if ( $testimonial_text && ! empty( get_the_content() ) ) {
20
+ $outline .= '<div class="tfree-client-testimonial">';
21
  $outline .= '<p class="tfree-testimonial-content">' . apply_filters( 'the_content', get_the_content() ) . '</p>';
22
  $outline .= '</div>';
23
  }
24
 
25
  if ( $reviewer_name && ! empty( $tfree_name ) ) {
26
+ $outline .= '<h4 class="tfree-client-name">' . $tfree_name . '</h2>';
 
 
 
27
  }
28
 
29
  if ( $star_rating && ! empty( $tfree_rating_star ) ) {
51
  break;
52
  }
53
 
54
+ $outline .= '<div class="tfree-client-rating">';
 
55
  $outline .= $star_rating_data;
56
  $outline .= '</div>';
57
  }
63
  }
64
 
65
  $outline .= '</div>'; // sp-testimonial-free.
 
66
  $outline .= '</div>'; // sp-testimonial-free-item.
readme.txt CHANGED
@@ -199,6 +199,13 @@ Thank you!
199
 
200
  == Changelog ==
201
 
 
 
 
 
 
 
 
202
  = 2.1.6 - Jan 10, 2020 =
203
  * Fix: Pause on hover on/off issue.
204
  * Fix: Slider infinite on/off issue.
199
 
200
  == Changelog ==
201
 
202
+ = 2.1.7 - Feb 26, 2020 =
203
+ * New: Settings page added.
204
+ * New: Custom CSS option.
205
+ * New: Schema markup enable/disable option.
206
+ * Fix: Schema markup issue on Google search console.
207
+ * Improved: Client name HTML tag.
208
+
209
  = 2.1.6 - Jan 10, 2020 =
210
  * Fix: Pause on hover on/off issue.
211
  * Fix: Slider infinite on/off issue.
testimonial-free.php CHANGED
@@ -12,7 +12,7 @@
12
  * Plugin Name: Testimonial
13
  * Plugin URI: https://shapedplugin.com/plugin/testimonial-pro/
14
  * Description: Most Customizable and Powerful Testimonials Showcase Plugin for WordPress that allows you to manage and display Testimonials or Reviews on any page or widget.
15
- * Version: 2.1.6
16
  * Author: ShapedPlugin
17
  * Author URI: https://shapedplugin.com/
18
  * Text Domain: testimonial-free
@@ -51,7 +51,7 @@ register_deactivation_hook( __FILE__, 'deactivate_testimonial' );
51
  require_once plugin_dir_path( __FILE__ ) . 'includes/class-testimonial-updates.php';
52
  require_once plugin_dir_path( __FILE__ ) . 'admin/views/notices/review.php';
53
  require_once plugin_dir_path( __FILE__ ) . 'admin/views/tp-metabox/classes/setup.class.php';
54
- //require_once plugin_dir_path( __FILE__ ) . 'admin/views/testimonial-settings.php';
55
  require_once plugin_dir_path( __FILE__ ) . 'admin/views/testimonial-metaboxs.php';
56
 
57
  if ( ! class_exists( 'SP_Testimonial_FREE' ) ) {
@@ -67,7 +67,7 @@ if ( ! class_exists( 'SP_Testimonial_FREE' ) ) {
67
  *
68
  * @var string
69
  */
70
- public $version = '2.1.6';
71
 
72
  /**
73
  * @var SP_TFREE_Testimonial $shortcode
12
  * Plugin Name: Testimonial
13
  * Plugin URI: https://shapedplugin.com/plugin/testimonial-pro/
14
  * Description: Most Customizable and Powerful Testimonials Showcase Plugin for WordPress that allows you to manage and display Testimonials or Reviews on any page or widget.
15
+ * Version: 2.1.7
16
  * Author: ShapedPlugin
17
  * Author URI: https://shapedplugin.com/
18
  * Text Domain: testimonial-free
51
  require_once plugin_dir_path( __FILE__ ) . 'includes/class-testimonial-updates.php';
52
  require_once plugin_dir_path( __FILE__ ) . 'admin/views/notices/review.php';
53
  require_once plugin_dir_path( __FILE__ ) . 'admin/views/tp-metabox/classes/setup.class.php';
54
+ require_once plugin_dir_path( __FILE__ ) . 'admin/views/testimonial-settings.php';
55
  require_once plugin_dir_path( __FILE__ ) . 'admin/views/testimonial-metaboxs.php';
56
 
57
  if ( ! class_exists( 'SP_Testimonial_FREE' ) ) {
67
  *
68
  * @var string
69
  */
70
+ public $version = '2.1.7';
71
 
72
  /**
73
  * @var SP_TFREE_Testimonial $shortcode