Yasr – Yet Another Stars Rating - Version 2.2.2

Version Description

  • FIXED: links in Recent Ratings dashboard widget (thanks to Fernando Tellado)
  • Enhancement: Added REST responses. More info in the official site
Download this release

Release Info

Developer Dudo
Plugin Icon 128x128 Yasr – Yet Another Stars Rating
Version 2.2.2
Comparing to
See all releases

Code changes from version 2.2.1 to 2.2.2

js/src/yasr-guten-blocks.js CHANGED
@@ -38,9 +38,15 @@ function YasrProText () {
38
return (
39
<h3>
40
{YasrProText1}
41
- &nbsp;<a href="https://yetanotherstarsrating.com/#yasr-pro">Yasr Pro.</a><br />
42
{YasrProText2}
43
- &nbsp;<a href="https://yetanotherstarsrating.com/#yasr-pro">yetanotherstarsrating.com</a>
44
</h3>
45
)
46
38
return (
39
<h3>
40
{YasrProText1}
41
+ &nbsp;
42
+ <a href="https://yetanotherstarsrating.com/?utm_source=wp-plugin&utm_medium=gutenberg_panel&utm_campaign=yasr_editor_screen&utm_content=rankings#yasr-pro">
43
+ Yasr Pro.
44
+ </a><br />
45
{YasrProText2}
46
+ &nbsp;
47
+ <a href="https://yetanotherstarsrating.com/?utm_source=wp-plugin&utm_medium=gutenberg_panel&utm_campaign=yasr_editor_screen&utm_content=rankings">
48
+ yetanotherstarsrating.com
49
+ </a>
50
</h3>
51
)
52
js/yasr-guten-blocks.js CHANGED
@@ -55,7 +55,7 @@ function YasrProText() {
55
'\xA0',
56
React.createElement(
57
'a',
58
- { href: 'https://yetanotherstarsrating.com/#yasr-pro' },
59
'Yasr Pro.'
60
),
61
React.createElement('br', null),
@@ -63,7 +63,7 @@ function YasrProText() {
63
'\xA0',
64
React.createElement(
65
'a',
66
- { href: 'https://yetanotherstarsrating.com/#yasr-pro' },
67
'yetanotherstarsrating.com'
68
)
69
);
@@ -621,7 +621,6 @@ registerBlockType('yet-another-stars-rating/overall-rating-ranking', {
621
keywords: [__('ranking', 'yet-another-stars-rating'), __('highest', 'yet-another-stars-rating'), __('chart', 'yet-another-stars-rating')],
622
623
edit: function edit(props) {
624
-
625
return React.createElement(
626
Fragment,
627
null,
55
'\xA0',
56
React.createElement(
57
'a',
58
+ { href: 'https://yetanotherstarsrating.com/?utm_source=wp-plugin&utm_medium=gutenberg_panel&utm_campaign=yasr_editor_screen&utm_content=rankings#yasr-pro' },
59
'Yasr Pro.'
60
),
61
React.createElement('br', null),
63
'\xA0',
64
React.createElement(
65
'a',
66
+ { href: 'https://yetanotherstarsrating.com/?utm_source=wp-plugin&utm_medium=gutenberg_panel&utm_campaign=yasr_editor_screen&utm_content=rankings' },
67
'yetanotherstarsrating.com'
68
)
69
);
621
keywords: [__('ranking', 'yet-another-stars-rating'), __('highest', 'yet-another-stars-rating'), __('chart', 'yet-another-stars-rating')],
622
623
edit: function edit(props) {
624
return React.createElement(
625
Fragment,
626
null,
lib/admin/editor/yasr-editor-functions.php CHANGED
@@ -127,7 +127,7 @@ function yasr_add_metaboxes() {
127
);
128
}
129
130
- $multi_set = yasr_get_multi_set();
131
//If multiset are used then add the second metabox
132
if ($multi_set) {
133
foreach ($post_type_where_display_metabox as $post_type) {
127
);
128
}
129
130
+ $multi_set = YasrMultiSetData::returnMultiSetNames();
131
//If multiset are used then add the second metabox
132
if ($multi_set) {
133
foreach ($post_type_where_display_metabox as $post_type) {
lib/admin/editor/yasr-metabox-multiple-rating.php CHANGED
@@ -20,7 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
20
21
if ( ! defined( 'ABSPATH' ) ) exit('You\'re not allowed to see this page'); // Exit if accessed directly
22
23
- $multi_set = yasr_get_multi_set();
24
25
$post_id = get_the_ID();
26
@@ -85,7 +85,24 @@ elseif ($n_multi_set === 1) {
85
86
<?php _e( "If, instead, you want allow your visitor to vote on this multiset, use this shortcode", 'yet-another-stars-rating' ); ?>
87
<span id='yasr-multi-set-admin-explain-with-id-visitor'></span>.
88
- <?php _e('In this case, you don\'t need to vote here', 'yet-another-stars-rating');?> <br />
89
90
</div>
91
20
21
if ( ! defined( 'ABSPATH' ) ) exit('You\'re not allowed to see this page'); // Exit if accessed directly
22
23
+ $multi_set = YasrMultiSetData::returnMultiSetNames();
24
25
$post_id = get_the_ID();
26
85
86
<?php _e( "If, instead, you want allow your visitor to vote on this multiset, use this shortcode", 'yet-another-stars-rating' ); ?>
87
<span id='yasr-multi-set-admin-explain-with-id-visitor'></span>.
88
+ <?php _e('In this case, you don\'t need to vote here', 'yet-another-stars-rating');?>
89
+
90
+ <br />
91
+ <br />
92
+
93
+ <?php
94
+ $yasr_pro_string = sprintf(
95
+ __( "With %sYasr Pro%s you can use %s yasr_pro_average_multiset %s and
96
+ %s yasr_pro_average_visitor_multiset %s to print a separate average of the Multi Set.",
97
+ 'yet-another-stars-rating' ),
98
+ '<a href="https://yetanotherstarsrating.com/?utm_source=wp-plugin&utm_medium=metabox_multiple_rating&utm_campaign=yasr_editor_screen&utm_content=yasr-pro#yasr-pro">',
99
+ '</a>',
100
+ '<strong>', '</strong>',
101
+ '<strong>', '</strong>');
102
+
103
+ echo $yasr_pro_string;
104
+ ?>
105
+ <span id='yasr-multi-set-admin-explain-with-id-visitor'></span>
106
107
</div>
108
lib/admin/settings/yasr-settings-functions-misc.php CHANGED
@@ -140,15 +140,15 @@ function yasr_resources_box( $position = false )
140
$text = '<div class="yasr-donate-title">Resources</div>';
141
$text .= '<div class="yasr-donate-single-resource">
142
<span class="dashicons dashicons-star-filled" style="color: #ccc"></span>
143
- <a target="blank" href="https://yetanotherstarsrating.com/">' . __( 'YASR official website', 'yet-another-stars-rating' ) . '</a>
144
</div>';
145
$text .= '<div class="yasr-donate-single-resource">
146
<span class="dashicons dashicons-edit" style="color: #ccc"></span>
147
- <a target="blank" href="https://yetanotherstarsrating.com/docs/">' . __( 'Documentation', 'yet-another-stars-rating' ) . '</a>
148
</div>';
149
$text .= '<div class="yasr-donate-single-resource">
150
<span class="dashicons dashicons-book-alt" style="color: #ccc"></span>
151
- <a target="blank" href="https://yetanotherstarsrating.com/docs/faq/">' . __( 'F.A.Q.', 'yet-another-stars-rating' ) . '</a>
152
</div>';
153
$text .= '<div class="yasr-donate-single-resource">
154
<span class="dashicons dashicons-video-alt3" style="color: #ccc"></span>
@@ -156,7 +156,7 @@ function yasr_resources_box( $position = false )
156
</div>';
157
$text .= '<div class="yasr-donate-single-resource">
158
<span class="dashicons dashicons-smiley" style="color: #ccc"></span>
159
- <a target="blank" href="https://yetanotherstarsrating.com/#yasr-pro">
160
Yasr Pro
161
</a>
162
</div>';
@@ -222,7 +222,7 @@ function yasr_custom_admin_footer( $text )
222
$custom_text .= sprintf(
223
__( 'Thank you for using <a href="%s" target="_blank">Yet Another Stars Rating</a>.
224
Please <a href="%s" target="_blank">rate it</a> 5 stars on <a href="%s" target="_blank">WordPress.org</a>', 'yet-another-stars-rating' ),
225
- 'https://yetanotherstarsrating.com',
226
'https://wordpress.org/support/view/plugin-reviews/yet-another-stars-rating?filter=5',
227
'https://wordpress.org/support/view/plugin-reviews/yet-another-stars-rating?filter=5'
228
);
140
$text = '<div class="yasr-donate-title">Resources</div>';
141
$text .= '<div class="yasr-donate-single-resource">
142
<span class="dashicons dashicons-star-filled" style="color: #ccc"></span>
143
+ <a target="blank" href="https://yetanotherstarsrating.com/?utm_source=wp-plugin&utm_medium=settings_resources&utm_campaign=yasr_settings&utm_content=yasr_official">' . __( 'YASR official website', 'yet-another-stars-rating' ) . '</a>
144
</div>';
145
$text .= '<div class="yasr-donate-single-resource">
146
<span class="dashicons dashicons-edit" style="color: #ccc"></span>
147
+ <a target="blank" href="https://yetanotherstarsrating.com/docs/?utm_source=wp-plugin&utm_medium=settings_resources&utm_campaign=yasr_settings&utm_content=documentation">' . __( 'Documentation', 'yet-another-stars-rating' ) . '</a>
148
</div>';
149
$text .= '<div class="yasr-donate-single-resource">
150
<span class="dashicons dashicons-book-alt" style="color: #ccc"></span>
151
+ <a target="blank" href="https://yetanotherstarsrating.com/docs/faq/?utm_source=wp-plugin&utm_medium=settings_resources&utm_campaign=yasr_settings&utm_content=faq">' . __( 'F.A.Q.', 'yet-another-stars-rating' ) . '</a>
152
</div>';
153
$text .= '<div class="yasr-donate-single-resource">
154
<span class="dashicons dashicons-video-alt3" style="color: #ccc"></span>
156
</div>';
157
$text .= '<div class="yasr-donate-single-resource">
158
<span class="dashicons dashicons-smiley" style="color: #ccc"></span>
159
+ <a target="blank" href="https://yetanotherstarsrating.com/#yasr-pro?utm_source=wp-plugin&utm_medium=settings_resources&utm_campaign=yasr_settings&utm_content=yasr-pro">
160
Yasr Pro
161
</a>
162
</div>';
222
$custom_text .= sprintf(
223
__( 'Thank you for using <a href="%s" target="_blank">Yet Another Stars Rating</a>.
224
Please <a href="%s" target="_blank">rate it</a> 5 stars on <a href="%s" target="_blank">WordPress.org</a>', 'yet-another-stars-rating' ),
225
+ 'https://yetanotherstarsrating.com/?utm_source=wp-plugin&utm_medium=footer&utm_campaign=yasr_settings',
226
'https://wordpress.org/support/view/plugin-reviews/yet-another-stars-rating?filter=5',
227
'https://wordpress.org/support/view/plugin-reviews/yet-another-stars-rating?filter=5'
228
);
lib/admin/settings/yasr-settings-functions-multiset-page.php CHANGED
@@ -58,7 +58,7 @@ OR option_name LIKE '_transient_timeout_yasr_visitor_multi_set_%'
58
59
$wpdb->query($sql_delete_transient);
60
61
- $multi_set = yasr_get_multi_set();
62
$n_multi_set = $wpdb->num_rows; //wpdb->num_rows always store the last of the last query
63
64
?>
58
59
$wpdb->query($sql_delete_transient);
60
61
+ $multi_set = YasrMultiSetData::returnMultiSetNames();
62
$n_multi_set = $wpdb->num_rows; //wpdb->num_rows always store the last of the last query
63
64
?>
lib/admin/settings/yasr-settings-functions-multiset.php CHANGED
@@ -145,7 +145,7 @@ function yasr_edit_multi_form() {
145
146
global $wpdb;
147
148
- $multi_set = yasr_get_multi_set();
149
150
$n_multi_set = $wpdb->num_rows; //wpdb->num_rows always store the last of the last query
151
145
146
global $wpdb;
147
148
+ $multi_set = YasrMultiSetData::returnMultiSetNames();
149
150
$n_multi_set = $wpdb->num_rows; //wpdb->num_rows always store the last of the last query
151
lib/admin/yasr-admin-classes.php CHANGED
@@ -208,7 +208,7 @@ class YasrLogDashboardWidget {
208
'</div>
209
<div class="yasr-log-child-head">
210
<span id="yasr-log-vote">'.$yasr_log_vote_text.'</span>
211
- <span id="yasr-log-post"><a href=&quot;'.$link.'&quot;>'.$post_title.'</a></span>
212
</div>
213
<div class="yasr-log-ip-date">'
214
.$ip_span.
208
'</div>
209
<div class="yasr-log-child-head">
210
<span id="yasr-log-vote">'.$yasr_log_vote_text.'</span>
211
+ <span id="yasr-log-post"><a href="'. $link .'">'.$post_title.'</a></span>
212
</div>
213
<div class="yasr-log-ip-date">'
214
.$ip_span.
lib/admin/yasr-update-functions.php CHANGED
@@ -140,10 +140,9 @@ function yasr_update_version() {
140
141
//delete all transient that use multiset
142
$sql_delete_transient = "
143
- DELETE FROM {$wpdb->options}
144
- WHERE option_name LIKE '_transient_yasr_visitor_multi_set_%'
145
- OR option_name LIKE '_transient_timeout_yasr_visitor_multi_set_%'
146
- ";
147
148
$wpdb->query($sql_delete_transient);
149
@@ -279,6 +278,16 @@ function yasr_update_version() {
279
$wpdb->query($sql_delete_transient_multiset);
280
}
281
282
/****** End backward compatibility functions ******/
283
if ($yasr_version_installed != YASR_VERSION_NUM) {
284
update_option('yasr-version', YASR_VERSION_NUM);
140
141
//delete all transient that use multiset
142
$sql_delete_transient = "
143
+ DELETE FROM {$wpdb->options}
144
+ WHERE option_name LIKE '_transient_yasr_visitor_multi_set_%'
145
+ OR option_name LIKE '_transient_timeout_yasr_visitor_multi_set_%' ";
146
147
$wpdb->query($sql_delete_transient);
148
278
$wpdb->query($sql_delete_transient_multiset);
279
}
280
281
+ if (version_compare($yasr_version_installed, '2.2.2') === -1) {
282
+ //delete all transient that uses multiset
283
+ $sql_delete_transient_visitor_votes = "
284
+ DELETE FROM {$wpdb->options}
285
+ WHERE option_name LIKE '_transient_yasr_visitor_votes_%'
286
+ OR option_name LIKE '_transient_timeout_yasr_visitor_votes_%'
287
+ ";
288
+ $wpdb->query($sql_delete_transient_visitor_votes);
289
+ }
290
+
291
/****** End backward compatibility functions ******/
292
if ($yasr_version_installed != YASR_VERSION_NUM) {
293
update_option('yasr-version', YASR_VERSION_NUM);
lib/rest/YasrCustomEndpoint.php ADDED
@@ -0,0 +1,151 @@
1
+ <?php
2
+
3
+ if (!defined('ABSPATH')) {
4
+ exit('You\'re not allowed to see this page');
5
+ } // Exit if accessed directly
6
+
7
+ class YasrCustomEndpoint extends WP_REST_Controller {
8
+
9
+ /**
10
+ * Constructor
11
+ */
12
+ public function __construct() {
13
+ add_action('rest_api_init', array( $this, 'customEndpoint'));
14
+ }
15
+
16
+
17
+ /**
18
+ * All the functions that need parameters
19
+ */
20
+ public function customEndpoint () {
21
+ /*
22
+ * Param for this route must be
23
+ * YOURSITE/wp-json/yet-another-stars-rating/v1/yasr-multiset/<ID>?post_id=<ID>
24
+ * OPTIONAL &visitor=1
25
+ *
26
+ */
27
+ $namespace = 'yet-another-stars-rating/';
28
+ $version = 'v1/';
29
+ $base = 'yasr-multiset';
30
+
31
+ register_rest_route(
32
+ $namespace . $version . $base . '/',
33
+ '(?P<set_id>\d+)',
34
+ array(
35
+ 'methods' => WP_REST_Server::READABLE,
36
+ 'callback' => array($this, 'authorMultiSet'),
37
+ 'args' => array(
38
+ 'set_id' => array(
39
+ 'required' => true,
40
+ 'sanitize_callback' => array($this, 'sanitizeInput')
41
+ ),
42
+ 'post_id' => array(
43
+ 'required' => true,
44
+ 'sanitize_callback' => array($this, 'sanitizeInput')
45
+ ),
46
+ 'visitor' => array(
47
+ 'default' => 0,
48
+ 'required' => false,
49
+ 'sanitize_callback' => array($this, 'sanitizeInput')
50
+ ),
51
+ ),
52
+ )
53
+ );
54
+
55
+ }
56
+
57
+ /**
58
+ *
59
+ * Return Author Multi Set
60
+ *
61
+ * @param WP_REST_Request $request
62
+ *
63
+ * @return WP_Error|WP_REST_Response
64
+ */
65
+ public function authorMultiSet ($request) {
66
+ /*
67
+ * Get cleaned params
68
+ */
69
+
70
+ $set_id = $request['set_id'];
71
+ $post_id = $request['post_id'];
72
+ $visitor = $request['visitor'];
73
+
74
+ $data_to_return = array(
75
+ 'set_id' => $set_id
76
+ );
77
+
78
+ $invalid_set = false;
79
+
80
+ //if $visitor === 1 then get data from yasr_visitor_multiset
81
+ if($visitor === 1) {
82
+ $data_to_return['yasr_visitor_multiset'] = YasrMultiSetData::returnVisitorMultiSetContent($post_id, $set_id);
83
+ if ($data_to_return['yasr_visitor_multiset'] === false) {
84
+ $invalid_set = true;
85
+ }
86
+ } else {
87
+ $data_to_return['yasr_multiset'] = YasrMultiSetData::returnMultisetContent($post_id, $set_id);
88
+ if ($data_to_return['yasr_multiset'] === false) {
89
+ $invalid_set = true;
90
+ }
91
+ }
92
+
93
+ if ($invalid_set === true) {
94
+ return new WP_Error(
95
+ 'invalid_multiset',
96
+ __('This Multi Set doesn\'t exists', 'yet-another-stars-rating'),
97
+ 400
98
+ );
99
+ }
100
+
101
+ $response = new WP_REST_Response($data_to_return);
102
+ $response->set_status(200);
103
+
104
+ return $response;
105
+ }
106
+
107
+ /**
108
+ * @param $param
109
+ * @param $request
110
+ * @param $key
111
+ *
112
+ * @return int|void|WP_Error
113
+ */
114
+ public function sanitizeInput ($param, $request, $key) {
115
+ if($key === 'set_id') {
116
+ return (int)$param;
117
+ }
118
+
119
+ if($key === 'post_id') {
120
+ $post_id = (int)$param;
121
+
122
+ /*if post_id is null means that is not set in the request.
123
+ * (int) will convert it to 0.
124
+ * When WordPress is installed, the first post has ID = 1
125
+ */
126
+ if ($post_id === 0) {
127
+ return new WP_Error (
128
+ 'wrong_post_id',
129
+ __('Invalid Post ID', 'yet-another-stars-rating'),
130
+ 400
131
+ );
132
+ }
133
+
134
+ //Check if exists a post with this ID
135
+ if (get_post($post_id) === null) {
136
+ return new WP_Error (
137
+ 'wrong_post_id',
138
+ __('Post ID doesn\'t exists', 'yet-another-stars-rating'),
139
+ 404
140
+ );
141
+ }
142
+ return $post_id;
143
+ }
144
+
145
+ if($key === 'visitor') {
146
+ return (int)$param;
147
+ }
148
+
149
+ return;
150
+ }
151
+ }
lib/rest/YasrCustomFields.php ADDED
@@ -0,0 +1,62 @@
1
+ <?php
2
+
3
+ if (!defined('ABSPATH')) {
4
+ exit('You\'re not allowed to see this page');
5
+ } // Exit if accessed directly
6
+
7
+ class YasrCustomFields extends WP_REST_Controller {
8
+
9
+ /**
10
+ * Constructor
11
+ */
12
+ public function __construct() {
13
+ add_action('rest_api_init', array( $this, 'customFields'));
14
+ }
15
+
16
+
17
+ /**
18
+ * Add a new response in
19
+ * YOURSITE.COM/wp-json/wp/v2/posts
20
+ */
21
+ public function customFields () {
22
+
23
+ /**
24
+ * Add <yasr-visitor-votes> in
25
+ * YOURSITE.COM/wp-json/wp/v2/posts
26
+ */
27
+ $this->visitorVotes();
28
+ }
29
+
30
+ /**
31
+ * Helper function to return visitorVotes
32
+ */
33
+ private function visitorVotes() {
34
+ $post_types = yasr_return_all_post_types();
35
+ $yasr_vv_schema = array(
36
+ 'description' => 'Yasr Visitor Votes Data',
37
+ 'type' => 'object',
38
+ 'context' => array('view', 'edit'),
39
+ // In JSON Schema you can specify object properties in the properties attribute.
40
+ 'properties' => array(
41
+ 'sum_votes' => array(
42
+ 'type' => 'integer',
43
+ ),
44
+ 'number_of_votes' => array(
45
+ 'type' => 'integer',
46
+ ),
47
+ ),
48
+ );
49
+
50
+ //Register Visitor Votes
51
+ register_rest_field(
52
+ $post_types,
53
+ 'yasr-visitor-votes',
54
+ array(
55
+ 'get_callback' => function() {return YasrDatabaseRatings::getVisitorVotes(); },
56
+ 'update_callback' => null,
57
+ 'schema' => $yasr_vv_schema
58
+ )
59
+ );
60
+
61
+ }
62
+ }
lib/rest/YasrPostMeta.php ADDED
@@ -0,0 +1,76 @@
1
+ <?php
2
+
3
+ if (!defined('ABSPATH')) {
4
+ exit('You\'re not allowed to see this page');
5
+ } // Exit if accessed directly
6
+
7
+ class YasrPostMeta {
8
+ /**
9
+ * Constructor
10
+ */
11
+ public function __construct() {
12
+ add_action('init', array( $this, 'postMeta' ));
13
+ }
14
+
15
+ /*
16
+ * Get Yasr Post Meta Values and insert in the rest response
17
+ * YOURSITE.COM/wp-json/wp/v2/posts?_field=meta
18
+ * or
19
+ * YOURSITE.COM/wp-json/wp/v2/posts/<POSTID>?_field=meta
20
+ *
21
+ */
22
+
23
+ public function postMeta () {
24
+ register_meta(
25
+ 'post',
26
+ 'yasr_overall_rating',
27
+ array(
28
+ 'show_in_rest' => true,
29
+ 'single' => true,
30
+ 'type' => 'number',
31
+ 'auth_callback' => function() {
32
+ return current_user_can('edit_posts');
33
+ }
34
+ )
35
+ );
36
+
37
+ register_meta(
38
+ 'post',
39
+ 'yasr_post_is_review',
40
+ array(
41
+ 'show_in_rest' => true,
42
+ 'single' => true,
43
+ 'type' => 'string',
44
+ 'auth_callback' => function() {
45
+ return current_user_can('edit_posts');
46
+ }
47
+ )
48
+ );
49
+
50
+ register_meta(
51
+ 'post',
52
+ 'yasr_auto_insert_disabled',
53
+ array(
54
+ 'show_in_rest' => true,
55
+ 'single' => true,
56
+ 'type' => 'string',
57
+ 'auth_callback' => function() {
58
+ return current_user_can('edit_posts');
59
+ }
60
+ )
61
+ );
62
+
63
+ register_meta(
64
+ 'post',
65
+ 'yasr_review_type',
66
+ array(
67
+ 'show_in_rest' => true,
68
+ 'single' => true,
69
+ 'type' => 'string',
70
+ 'auth_callback' => function() {
71
+ return current_user_can('edit_posts');
72
+ }
73
+ )
74
+ );
75
+ }
76
+ }
lib/rest/yasr-rest.php ADDED
@@ -0,0 +1,14 @@
1
+ <?php
2
+
3
+ if (!defined('ABSPATH')) {
4
+ exit('You\'re not allowed to see this page');
5
+ } // Exit if accessed directly
6
+
7
+ //get all post meta and return it in the meta[] response
8
+ $yasr_post_meta = new YasrPostMeta();
9
+
10
+ //add a custom response
11
+ $yasr_custom_fields = new YasrCustomFields();
12
+
13
+ //register new route
14
+ $yasr_custom_endpoint = new YasrCustomEndpoint();
lib/yasr-ajax-functions.php CHANGED
@@ -66,7 +66,7 @@ function wp_ajax_yasr_create_shortcode_callback() {
66
67
global $wpdb;
68
69
- $multi_set = yasr_get_multi_set();
70
$n_multi_set = $wpdb->num_rows;
71
72
?>
@@ -80,8 +80,11 @@ function wp_ajax_yasr_create_shortcode_callback() {
80
class="nav-tab yasr-nav-tab"><?php _e("Charts", 'yet-another-stars-rating'); ?></a>
81
<?php do_action('yasr_add_tabs_on_tinypopupform'); ?>
82
83
- <a href="https://yetanotherstarsrating.com/yasr-basics-shortcode/" target="_blank"
84
- id="yasr-tinypopup-link-doc"><?php _e("Read the doc", 'yet-another-stars-rating'); ?></a>
85
86
</h2>
87
@@ -288,144 +291,6 @@ function wp_ajax_yasr_create_shortcode_callback() {
288
289
/********** END Functions used while wirting a new post or page ********/
290
291
- //add_action('wp_ajax_yasr_change_user_log_page', 'yasr_change_user_log_page_callback');
292
-
293
- function yasr_change_user_log_page_callback() {
294
-
295
- if (isset($_POST['pagenum'])) {
296
- $page_num = (int)$_POST['pagenum'];
297
- $num_of_pages = (int)$_POST['totalpages'];
298
- } else {
299
- $page_num = 1;
300
- }
301
-
302
- $limit = 8; //max number of row to echo
303
-
304
- $offset = ($page_num - 1) * $limit;
305
-
306
- $user_id = get_current_user_id();
307
-
308
- global $wpdb;
309
-
310
- $log_result = $wpdb->get_results(
311
- $wpdb->prepare(
312
- "SELECT * FROM "
313
- . YASR_LOG_TABLE .
314
- " WHERE user_id = %d
315
- ORDER BY date DESC
316
- LIMIT %d, %d ",
317
- $user_id, $offset, $limit
318
- )
319
- );
320
-
321
- if (!$log_result) {
322
- _e("No Recenet votes yet", 'yet-another-stars-rating');
323
- } else {
324
-
325
- foreach ($log_result as $column) {
326
-
327
- $avatar = get_avatar($user_id, '32'); //Get avatar from user id
328
-
329
- $title_post = wp_strip_all_tags(get_the_title($column->post_id)); //Get post title from post id
330
- $link = get_permalink($column->post_id); //Get post link from post id
331
-
332
- $yasr_log_vote_text = sprintf(__('You rated %s on ', 'yet-another-stars-rating'), '<strong style="color: blue">' . $column->vote . '</strong>');
333
-
334
- echo "
335
-
336
- <div class='yasr-log-div-child'>
337
-
338
- <div class='yasr-log-image'>
339
- $avatar
340
- </div>
341
-
342
- <div class='yasr-log-child-head'>
343
- <span id='yasr-log-vote'>$yasr_log_vote_text</span><span class='yasr-log-post'><a href='$link'>$title_post</a></span>
344
- </div>
345
-
346
- <div class='yasr-log-ip-date'>
347
- <span class='yasr-log-ip'>" . __("Ip address", 'yet-another-stars-rating') . ": <span style='color:blue'>$column->ip</span></span>
348
- <span class='yasr-log-date'>$column->date</span>
349
- </div>
350
-
351
- </div>
352
-
353
- ";
354
-
355
- } //End foreach
356
-
357
- echo "<div id='yasr-log-page-navigation'>";
358
-
359
- //use data attribute instead of value of #yasr-log-total-pages, because, on ajaxresponse,
360
- //the "last" button could not exists
361
- //This is required on ajax, not here, but still doing it here to take it simple
362
- echo "<span id='yasr-user-log-total-pages' data-yasr-user-log-total-pages='$num_of_pages'>";
363
-
364
- _e("Pages", 'yet-another-stars-rating');
365
- echo ": ($num_of_pages) &nbsp;&nbsp;&nbsp;";
366
-
367
- echo "</span>";
368
-
369
- if ($num_of_pages <= 3) {
370
-
371
- for ($i = 1; $i <= $num_of_pages; $i ++) {
372
- if ($i == $page_num) {
373
- echo "<button class='button-primary' value='$i'>$i</button>&nbsp;&nbsp;";
374
- } else {
375
- echo "<button class='yasr-user-log-page-num' value='$i'>$i</button>&nbsp;&nbsp;";
376
-
377
- }
378
- }
379
- echo "<span id='yasr-loader-user-log-metabox' style='display:none;'>&nbsp;<img src='" . YASR_IMG_DIR . "/loader.gif' ></span>";
380
- } else {
381
- $start_for = $page_num - 1;
382
-
383
- if ($start_for <= 0) {
384
- $start_for = 1;
385
- }
386
-
387
- $end_for = $page_num + 1;
388
-
389
- if ($end_for >= $num_of_pages) {
390
- $end_for = $num_of_pages;
391
- }
392
-
393
- if ($page_num >= 3) {
394
- echo "<button class='yasr-user-log-page-num' value='1'>&laquo; First </button>&nbsp;&nbsp;...&nbsp;&nbsp;";
395
- }
396
-
397
- for ($i = $start_for; $i <= $end_for; $i ++) {
398
-
399
- if ($i == $page_num) {
400
- echo "<button class='button-primary' value='$i'>$i</button>&nbsp;&nbsp;";
401
- } else {
402
- echo "<button class='yasr-user-log-page-num' value='$i'>$i</button>&nbsp;&nbsp;";
403
- }
404
-
405
- }
406
-
407
- $num_of_page_less_one = $num_of_pages - 1;
408
-
409
- if ($page_num != $num_of_pages && $page_num != $num_of_page_less_one) {
410
- echo "...&nbsp;&nbsp;<button class='yasr-user-log-page-num' value='$num_of_pages'>Last &raquo;</button>&nbsp;&nbsp;";
411
- }
412
-
413
- echo "<span id='yasr-user-log-container' style='display:none;' >&nbsp;<img src='" . YASR_IMG_DIR . "/loader.gif' ></span>";
414
-
415
- }
416
-
417
- echo "
418
-
419
- </div>
420
-
421
- </div>";
422
-
423
- } // End else if !$log result
424
-
425
- die();
426
-
427
- }
428
-
429
/********************* END Admin ajax functions ****************/
430
431
@@ -538,17 +403,10 @@ function yasr_insert_visitor_votes_callback() {
538
}
539
540
if ($result_update_log || $result_insert_log) {
541
542
- $row_exists_obj = new YasrDatabaseRatings();
543
- $row_exists = $row_exists_obj->getVisitorVotes($post_id, false);
544
-
545
- foreach ($row_exists as $results) {
546
- $stored_user_votes_sum = $results->sum_votes;
547
- $stored_number_of_votes = $results->number_of_votes;
548
- }
549
-
550
- $user_votes_sum = $stored_user_votes_sum;
551
- $number_of_votes = $stored_number_of_votes;
552
553
$cookiename = 'yasr_visitor_vote_cookie';
554
@@ -562,8 +420,15 @@ function yasr_insert_visitor_votes_callback() {
562
$total_rating = ($user_votes_sum / $number_of_votes);
563
$medium_rating = round($total_rating, 1);
564
565
- $html_to_return = '<span class="yasr-total-average-text"> [' . __('Total:', 'yet-another-stars-rating') . " $number_of_votes &nbsp; &nbsp;" . __('Average:', 'yet-another-stars-rating') . " $medium_rating/5 ]</span>";
566
- $html_to_return .= '<span class="yasr-small-block-bold" id="yasr-vote-saved">' . __('Vote Saved', 'yet-another-stars-rating') . '</span>';
567
568
echo json_encode($html_to_return);
569
@@ -697,25 +562,18 @@ add_action('wp_ajax_nopriv_yasr_stats_visitors_votes', 'yasr_stats_visitors_vote
697
function yasr_stats_visitors_votes_callback() {
698
699
if (isset($_POST['post_id']) && $_POST['post_id'] !== '') {
700
- $post_id = $_POST['post_id'];
701
} else {
702
return;
703
}
704
705
- $visitor_votes_obj = new YasrDatabaseRatings();
706
- $votes_array = $visitor_votes_obj->getVisitorVotes($post_id);
707
-
708
- $medium_rating = 0; //Avoid undefined variable
709
710
- if (is_array($votes_array) && !empty($votes_array)) {
711
- foreach ($votes_array as $user_votes) {
712
- $votes_number = $user_votes->number_of_votes;
713
- if ($votes_number != 0) {
714
- $medium_rating = ($user_votes->sum_votes / $votes_number);
715
- } else {
716
- $medium_rating = 0;
717
- }
718
- }
719
}
720
721
$medium_rating = round($medium_rating, 1);
66
67
global $wpdb;
68
69
+ $multi_set = YasrMultiSetData::returnMultiSetNames();
70
$n_multi_set = $wpdb->num_rows;
71
72
?>
80
class="nav-tab yasr-nav-tab"><?php _e("Charts", 'yet-another-stars-rating'); ?></a>
81
<?php do_action('yasr_add_tabs_on_tinypopupform'); ?>
82
83
+ <a href="https://yetanotherstarsrating.com/yasr-basics-shortcode/?utm_source=wp-plugin&utm_medium=tinymce-popup&utm_campaign=yasr_editor_screen"
84
+ target="_blank"
85
+ id="yasr-tinypopup-link-doc">
86
+ <?php _e("Read the doc", 'yet-another-stars-rating'); ?>
87
+ </a>
88
89
</h2>
90
291
292
/********** END Functions used while wirting a new post or page ********/
293
294
/********************* END Admin ajax functions ****************/
295
296
403
}
404
405
if ($result_update_log || $result_insert_log) {
406
+ $row_exists = YasrDatabaseRatings::getVisitorVotes($post_id, false);
407
408
+ $user_votes_sum = $row_exists['sum_votes'];
409
+ $number_of_votes = $row_exists['number_of_votes'];
410
411
$cookiename = 'yasr_visitor_vote_cookie';
412
420
$total_rating = ($user_votes_sum / $number_of_votes);
421
$medium_rating = round($total_rating, 1);
422
423
+ $html_to_return = '<span class="yasr-total-average-text"> ['
424
+ . __('Total:', 'yet-another-stars-rating') .
425
+ " $number_of_votes &nbsp; &nbsp;"
426
+ . __('Average:', 'yet-another-stars-rating') .
427
+ " $medium_rating/5 ]
428
+ </span>";
429
+ $html_to_return .= '<span class="yasr-small-block-bold" id="yasr-vote-saved">'
430
+ . __('Vote Saved', 'yet-another-stars-rating') .
431
+ '</span>';
432
433
echo json_encode($html_to_return);
434
562
function yasr_stats_visitors_votes_callback() {
563
564
if (isset($_POST['post_id']) && $_POST['post_id'] !== '') {
565
+ $post_id = (int)$_POST['post_id'];
566
} else {
567
return;
568
}
569
570
+ $votes_array = YasrDatabaseRatings::getVisitorVotes($post_id);
571
+ $votes_number = $votes_array['number_of_votes'];
572
573
+ if ($votes_number != 0) {
574
+ $medium_rating = ($votes_array['sum_votes'] / $votes_number);
575
+ } else {
576
+ $medium_rating = 0;
577
}
578
579
$medium_rating = round($medium_rating, 1);
lib/yasr-db-classes.php CHANGED
@@ -29,7 +29,7 @@ class YasrDatabaseRatings {
29
*
30
* @return mixed|null
31
*/
32
- public function getOverallRating ($post_id=false) {
33
//if values it's not passed get the post id, since version 1.6.9 this is just for yasr_add_schema function
34
//and for a further check
35
if (!is_int($post_id)) {
@@ -53,7 +53,7 @@ class YasrDatabaseRatings {
53
*
54
* @return array|bool|mixed|object|null
55
*/
56
- public function getVisitorVotes ($post_id = false, $create_transient = true) {
57
global $wpdb;
58
59
//if values it's not passed get the post id, most of cases and default one
@@ -73,16 +73,24 @@ class YasrDatabaseRatings {
73
} else {
74
$result = $wpdb->get_results(
75
$wpdb->prepare(
76
- "SELECT SUM(vote) AS sum_votes, COUNT(vote) as number_of_votes FROM "
77
- . YASR_LOG_TABLE .
78
- " WHERE post_id=%d",
79
- $post_id
80
)
81
);
82
if ($create_transient === true) {
83
- set_transient($transient_name, $result, WEEK_IN_SECONDS);
84
}
85
- return $result;
86
}
87
88
}
@@ -94,7 +102,7 @@ class YasrDatabaseRatings {
94
*
95
* @return bool|string
96
*/
97
- public function visitorVotesHasUserVoted($post_id = false) {
98
global $wpdb;
99
100
$current_user = wp_get_current_user();
@@ -132,7 +140,17 @@ class YasrMultiSetData {
132
/**
133
* @var array $array_to_return
134
*/
135
- protected $array_to_return = array();
136
137
/**
138
* This function returns an multidimensional array of multiset ID and Fields
@@ -148,30 +166,55 @@ class YasrMultiSetData {
148
* )
149
*
150
* @param int $set_id
151
- * @return array|bool|object|null
152
*/
153
154
- public function multisetFieldsAndID($set_id) {
155
- if (!is_int($set_id)) {
156
- return false;
157
- }
158
159
global $wpdb;
160
161
$result = $wpdb->get_results($wpdb->prepare(
162
- "SELECT f.field_id AS id, f.field_name AS name
163
- FROM " . YASR_MULTI_SET_FIELDS_TABLE . " AS f
164
- WHERE f.parent_set_id=%d
165
- ORDER BY f.field_id
166
- ", $set_id),
167
- ARRAY_A);
168
169
if (empty($result)) {
170
return false;
171
}
172
-
173
return $result;
174
175
}
176
177
/** This functions returns an array with all the value to print the multiset
@@ -190,24 +233,32 @@ class YasrMultiSetData {
190
*
191
* @param integer $set_id the set id
192
* @param array $set_fields an array with fields names and id
193
- * @param array $set_post_meta_values an array with fields id and rating, can be empty
194
*
195
* @return bool | array
196
*/
197
198
- public function returnArrayFieldsRatings($set_id, $set_fields, $set_post_meta_values) {
199
200
- if (!is_int($set_id) || !$set_fields) {
201
return false;
202
}
203
204
//index
205
$i = 0;
206
//always returns field id and name
207
foreach ($set_fields as $fields_ids_and_names) {
208
- $this->array_to_return[$i]['id'] = (int) $fields_ids_and_names['id'];
209
- $this->array_to_return[$i]['name'] = $fields_ids_and_names['name'];
210
- $this->array_to_return[$i]['average_rating'] = 0;
211
212
//if there is post meta
213
if ($set_post_meta_values) {
@@ -218,9 +269,9 @@ class YasrMultiSetData {
218
//loop the saved arrays
219
foreach ($saved_set_id['fields_and_ratings'] as $single_value) {
220
//if field id is the same, add the rating
221
- if ($this->array_to_return[$i]['id'] === $single_value->field) {
222
//save the rating
223
- $this->array_to_return[$i]['average_rating'] = $single_value->rating;
224
}
225
}
226
}
@@ -229,43 +280,20 @@ class YasrMultiSetData {
229
//this is for list the set names
230
$i ++;
231
}
232
- return $this->array_to_return;
233
}
234
235
/**
236
- * @param array $multiset_content
237
- *
238
- * This get the multiset content, and returns the average
239
*
240
- * @return int|false|float
241
- */
242
- public function returnMultiSetAverage($multiset_content) {
243
- if (!is_array($multiset_content)) {
244
- return 0;
245
- }
246
- //default value
247
- $multiset_vote_sum = 0;
248
- $multiset_rows_number = 0;
249
-
250
- foreach ($multiset_content as $set_content) {
251
- $multiset_vote_sum = $multiset_vote_sum + $set_content['average_rating'];
252
- $multiset_rows_number = $multiset_rows_number+1;
253
- }
254
- $multiset_average = round($multiset_vote_sum/$multiset_rows_number, 1);
255
-
256
- return $multiset_average;
257
- }
258
-
259
-
260
- /**
261
* @param $post_id
262
* @param $set_type
263
*
264
* @return array|mixed|object|null
265
*/
266
- public function returnVisitorMultiSet($post_id, $set_type) {
267
$post_id = (int)$post_id;
268
- $set_type = (int)($set_type);
269
270
$result = get_transient('yasr_visitor_multi_set_' . $post_id . '_' . $set_type);
271
@@ -277,7 +305,7 @@ class YasrMultiSetData {
277
278
$result = $wpdb->get_results($wpdb->prepare("SELECT f.field_name AS name,
279
f.field_id AS id,
280
- (SUM(l.vote)/COUNT(l.vote)) AS average_rating,
281
COUNT(l.vote) AS number_of_votes
282
FROM " . YASR_MULTI_SET_FIELDS_TABLE . " AS f LEFT JOIN " . YASR_LOG_MULTI_SET . " AS l
283
ON l.post_id = %d
@@ -288,10 +316,47 @@ class YasrMultiSetData {
288
289
if (!empty($result)) {
290
set_transient('yasr_visitor_multi_set_' . $post_id . '_' . $set_type, $result, WEEK_IN_SECONDS);
291
}
292
293
- return $result;
294
295
}
296
297
}
29
*
30
* @return mixed|null
31
*/
32
+ public static function getOverallRating ($post_id=false) {
33
//if values it's not passed get the post id, since version 1.6.9 this is just for yasr_add_schema function
34
//and for a further check
35
if (!is_int($post_id)) {
53
*
54
* @return array|bool|mixed|object|null
55
*/
56
+ public static function getVisitorVotes ($post_id = false, $create_transient = true) {
57
global $wpdb;
58
59
//if values it's not passed get the post id, most of cases and default one
73
} else {
74
$result = $wpdb->get_results(
75
$wpdb->prepare(
76
+ "SELECT SUM(vote) as sum_votes,
77
+ COUNT(vote) as number_of_votes FROM "
78
+ . YASR_LOG_TABLE .
79
+ " WHERE post_id=%d",
80
+ $post_id
81
)
82
);
83
+
84
+ $array_to_return = array();
85
+ foreach ($result as $user_votes) {
86
+ $array_to_return['number_of_votes'] = (int)$user_votes->number_of_votes;
87
+ $array_to_return['sum_votes'] = (int)$user_votes->sum_votes;
88
+ }
89
+
90
if ($create_transient === true) {
91
+ set_transient($transient_name, $array_to_return, WEEK_IN_SECONDS);
92
}
93
+ return $array_to_return;
94
}
95
96
}
102
*
103
* @return bool|string
104
*/
105
+ public static function visitorVotesHasUserVoted($post_id = false) {
106
global $wpdb;
107
108
$current_user = wp_get_current_user();
140
/**
141
* @var array $array_to_return
142
*/
143
+ static $array_to_return = array();
144
+
145
+
146
+ /****** Get multi set name ******/
147
+ public static function returnMultiSetNames() {
148
+ global $wpdb;
149
+
150
+ $result = $wpdb->get_results("SELECT * FROM " . YASR_MULTI_SET_NAME_TABLE . " ORDER BY set_id");
151
+
152
+ return $result;
153
+ }
154
155
/**
156
* This function returns an multidimensional array of multiset ID and Fields
166
* )
167
*
168
* @param int $set_id
169
+ * @return array|bool
170
*/
171
172
+ public static function multisetFieldsAndID($set_id) {
173
+ $set_id = (int)$set_id;
174
175
global $wpdb;
176
177
$result = $wpdb->get_results($wpdb->prepare(
178
+ "SELECT f.field_id AS id,
179
+ f.field_name AS name
180
+ FROM " . YASR_MULTI_SET_FIELDS_TABLE . " AS f
181
+ WHERE f.parent_set_id=%d
182
+ ORDER BY f.field_id
183
+ ", $set_id),
184
+ ARRAY_A);
185
186
if (empty($result)) {
187
return false;
188
}
189
return $result;
190
+ }
191
+
192
+ /**
193
+ * Get from the db all the values for VisitorMultiSet
194
+ *
195
+ * @param $post_id
196
+ * @param $set_id
197
+ *
198
+ * @return array|bool
199
+ */
200
+ public static function returnMultisetContent($post_id, $set_id) {
201
+ $set_id = (int)$set_id;
202
+ $post_id = (int)$post_id;
203
+
204
+ if ($post_id === 0) {
205
+ return false;
206
+ }
207
+
208
+ //set fields name and ids
209
+ $set_fields = self::multisetFieldsAndID($set_id);
210
211
+ if($set_fields === false) {
212
+ return false;
213
+ }
214
+
215
+ $multiset_content = YasrMultiSetData::returnArrayFieldsRatings($set_id, $set_fields, $post_id);
216
+
217
+ return $multiset_content;
218
}
219
220
/** This functions returns an array with all the value to print the multiset
233
*
234
* @param integer $set_id the set id
235
* @param array $set_fields an array with fields names and id
236
+ * @param integer|bool $post_id the post_id
237
*
238
* @return bool | array
239
*/
240
241
+ public static function returnArrayFieldsRatings($set_id, $set_fields, $post_id=false) {
242
+ $set_id = (int)$set_id;
243
244
+ if (!$set_fields) {
245
return false;
246
}
247
248
+ if(!is_int($post_id)) {
249
+ $post_id = get_the_ID();
250
+ }
251
+
252
+ //get meta values (field id and rating)
253
+ $set_post_meta_values = get_post_meta($post_id, 'yasr_multiset_author_votes', true);
254
+
255
//index
256
$i = 0;
257
//always returns field id and name
258
foreach ($set_fields as $fields_ids_and_names) {
259
+ self::$array_to_return[$i]['id'] = (int) $fields_ids_and_names['id'];
260
+ self::$array_to_return[$i]['name'] = $fields_ids_and_names['name'];
261
+ self::$array_to_return[$i]['average_rating'] = 0;
262
263
//if there is post meta
264
if ($set_post_meta_values) {
269
//loop the saved arrays
270
foreach ($saved_set_id['fields_and_ratings'] as $single_value) {
271
//if field id is the same, add the rating
272
+ if (self::$array_to_return[$i]['id'] === $single_value->field) {
273
//save the rating
274
+ self::$array_to_return[$i]['average_rating'] = $single_value->rating;
275
}
276
}
277
}
280
//this is for list the set names
281
$i ++;
282
}
283
+ return self::$array_to_return;
284
}
285
286
/**
287
+ * Get from the db all the values for VisitorMultiSet
288
*
289
* @param $post_id
290
* @param $set_type
291
*
292
* @return array|mixed|object|null
293
*/
294
+ public static function returnVisitorMultiSetContent($post_id, $set_type) {
295
$post_id = (int)$post_id;
296
+ $set_type = (int)$set_type;
297
298
$result = get_transient('yasr_visitor_multi_set_' . $post_id . '_' . $set_type);
299
305
306
$result = $wpdb->get_results($wpdb->prepare("SELECT f.field_name AS name,
307
f.field_id AS id,
308
+ CAST((SUM(l.vote)/COUNT(l.vote)) AS DECIMAL(2,1)) AS average_rating,
309
COUNT(l.vote) AS number_of_votes
310
FROM " . YASR_MULTI_SET_FIELDS_TABLE . " AS f LEFT JOIN " . YASR_LOG_MULTI_SET . " AS l
311
ON l.post_id = %d
316
317
if (!empty($result)) {
318
set_transient('yasr_visitor_multi_set_' . $post_id . '_' . $set_type, $result, WEEK_IN_SECONDS);
319
+ return $result;
320
+ } else {
321
+ return false;
322
}
323
324
+ }
325
+
326
+
327
+ /**
328
+ * @param int $post_id
329
+ * @param int $set_id
330
+ * @param bool $visitor_multiset
331
+ *
332
+ * Get the post_id and the set id, return the average (float)
333
+ *
334
+ * @return float|int|false|
335
+ */
336
+ public static function returnMultiSetAverage($post_id, $set_id, $visitor_multiset) {
337
+ $post_id = (int)$post_id;
338
+ $set_id = (int)$set_id;
339
340
+ if ($visitor_multiset === true) {
341
+ $multiset_content = self::returnVisitorMultiSetContent($post_id, $set_id);
342
+ } else {
343
+ $multiset_content = self::returnMultisetContent($post_id, $set_id);
344
+ }
345
+
346
+ if (!is_array($multiset_content)) {
347
+ return 0;
348
+ }
349
+ //default value
350
+ $multiset_vote_sum = 0;
351
+ $multiset_rows_number = 0;
352
+
353
+ foreach ($multiset_content as $set_content) {
354
+ $multiset_vote_sum = $multiset_vote_sum + $set_content['average_rating'];
355
+ $multiset_rows_number = $multiset_rows_number+1;
356
+ }
357
+ $multiset_average = round($multiset_vote_sum/$multiset_rows_number, 1);
358
+
359
+ return $multiset_average;
360
}
361
362
}
lib/yasr-db-functions.php CHANGED
@@ -216,16 +216,6 @@ function yasr_get_snippet_type() {
216
217
}
218
219
- /****** Get multi set name ******/
220
- function yasr_get_multi_set() {
221
- global $wpdb;
222
-
223
- $result = $wpdb->get_results("SELECT * FROM " . YASR_MULTI_SET_NAME_TABLE . " ORDER BY set_id");
224
-
225
- return $result;
226
- }
227
-
228
-
229
/** Output the multi set while editing the page, used in
230
* yasr-metabox-multiple-rating and yasr-ajax-function
231
*/
@@ -236,14 +226,12 @@ function yasr_return_multi_set_values_admin($post_id, $set_id) {
236
exit(__('Missing post or set id', 'yet-another-stars-rating'));
237
}
238
239
- $multiset_obj = new YasrMultiSetData();
240
-
241
//set fields name and ids
242
- $set_fields = $multiset_obj->multisetFieldsAndID($set_id);
243
244
//set meta values
245
$set_post_meta_values = get_post_meta($post_id, 'yasr_multiset_author_votes', true);
246
- $array_to_return = $multiset_obj->returnArrayFieldsRatings($set_id, $set_fields, $set_post_meta_values);
247
248
echo json_encode($array_to_return);
249
@@ -537,7 +525,6 @@ function yasr_save_multiset_editor($post_id) {
537
//if the saved set is different from the one that we're trying to save,
538
//append data to save to the post meta
539
if ($saved_set_id['set_id'] !== $set_id) {
540
-
541
$data_to_save[$i]['set_id'] = $saved_set_id['set_id'];
542
$data_to_save[$i]['fields_and_ratings'] = $saved_set_id['fields_and_ratings'];
543
@@ -581,58 +568,3 @@ if (YASR_AUTO_INSERT_ENABLED == 1) {
581
}
582
583
}
584
-
585
-
586
- //This will add to the REST yasr data
587
- //must be public and not in the admin files
588
- add_action('init', 'yasr_gutenberg_show_in_rest_overall_meta');
589
-
590
- function yasr_gutenberg_show_in_rest_overall_meta() {
591
- register_meta('post', 'yasr_overall_rating',
592
- array(
593
- 'show_in_rest' => true,
594
- 'single' => true,
595
- 'type' => 'number',
596
- 'auth_callback' => function() {
597
- return current_user_can('edit_posts');
598
- }
599
- )
600
- );
601
-
602
- register_meta('post', 'yasr_post_is_review',
603
- array(
604
- 'show_in_rest' => true,
605
- 'single' => true,
606
- 'type' => 'string',
607
- 'auth_callback' => function() {
608
- return current_user_can('edit_posts');
609
- }
610
- )
611
- );
612
-
613
- register_meta('post', 'yasr_auto_insert_disabled',
614
- array(
615
- 'show_in_rest' => true,
616
- 'single' => true,
617
- 'type' => 'string',
618
- 'auth_callback' => function() {
619
- return current_user_can('edit_posts');
620
- }
621
- )
622
- );
623
-
624
- register_meta('post', 'yasr_review_type',
625
- array(
626
- 'show_in_rest' => true,
627
- 'single' => true,
628
- 'type' => 'string',
629
- 'auth_callback' => function() {
630
- return current_user_can('edit_posts');
631
- }
632
- )
633
- );
634
-
635
- }
636
-
637
-
638
- ?>
216
217
}
218
219
/** Output the multi set while editing the page, used in
220
* yasr-metabox-multiple-rating and yasr-ajax-function
221
*/
226
exit(__('Missing post or set id', 'yet-another-stars-rating'));
227
}
228
229
//set fields name and ids
230
+ $set_fields = YasrMultiSetData::multisetFieldsAndID($set_id);
231
232
//set meta values
233
$set_post_meta_values = get_post_meta($post_id, 'yasr_multiset_author_votes', true);
234
+ $array_to_return = YasrMultiSetData::returnArrayFieldsRatings($set_id, $set_fields, $set_post_meta_values);
235
236
echo json_encode($array_to_return);
237
525
//if the saved set is different from the one that we're trying to save,
526
//append data to save to the post meta
527
if ($saved_set_id['set_id'] !== $set_id) {
528
$data_to_save[$i]['set_id'] = $saved_set_id['set_id'];
529
$data_to_save[$i]['fields_and_ratings'] = $saved_set_id['fields_and_ratings'];
530
568
}
569
570
}
lib/yasr-deprecated.php CHANGED
@@ -171,3 +171,12 @@ function yasr_check_if_user_already_voted($post_id = false) {
171
return $rating;
172
173
}
171
return $rating;
172
173
}
174
+
175
+ /****** Get multi set name ******/
176
+ function yasr_get_multi_set() {
177
+ global $wpdb;
178
+
179
+ $result = $wpdb->get_results("SELECT * FROM " . YASR_MULTI_SET_NAME_TABLE . " ORDER BY set_id");
180
+
181
+ return $result;
182
+ }
lib/yasr-functions.php CHANGED
@@ -386,25 +386,12 @@ function yasr_add_schema($content) {
386
return $content;
387
}
388
389
- $database_ratings_obj = new YasrDatabaseRatings();
390
- $overall_rating = $database_ratings_obj->getOverallRating();
391
- $visitor_votes = $database_ratings_obj->getVisitorVotes(false, false);
392
393
$is_post_a_review = get_post_meta(get_the_ID(), 'yasr_post_is_review', true);
394
395
- $visitor_rating = array(); //avoid undefined
396
-
397
- if($visitor_votes != false && is_array($visitor_votes)) {
398
- foreach ($visitor_votes as $rating) {
399
- $visitor_rating['votes_number'] = $rating->number_of_votes;
400
- $visitor_rating['sum'] = $rating->sum_votes;
401
- }
402
- } else {
403
- $visitor_rating['votes_number'] = false;
404
- $visitor_rating['sum'] = false;
405
- }
406
-
407
- if (!$overall_rating && !$visitor_rating['votes_number'] && !$visitor_rating['sum']) {
408
return $content;
409
}
410
@@ -538,14 +525,14 @@ function yasr_add_schema($content) {
538
//So, is post is selected as review, exclude AggregateRating
539
if($is_post_a_review !== 'yes') {
540
if ($visitor_votes) {
541
- if ($visitor_rating['sum'] != 0 && $visitor_rating['votes_number'] != 0) {
542
- $average_rating = $visitor_rating['sum'] / $visitor_rating['votes_number'];
543
$average_rating = round($average_rating, 1);
544
545
$rich_snippet["aggregateRating"] = array(
546
"@type" => "AggregateRating",
547
"ratingValue" => "$average_rating",
548
- "ratingCount" => $visitor_rating['votes_number'],
549
);
550
}
551
}
@@ -636,18 +623,6 @@ function yasr_shortcode_button_media() {
636
637
add_action('admin_init', 'yasr_get_custom_post_type');
638
639
- //Creating a rest response
640
- add_action('rest_api_init', function () {
641
- register_rest_route(
642
- 'yet-another-stars-rating/v1/',
643
- '/list-posts-types',
644
- array(
645
- 'methods' => 'GET',
646
- 'callback' => 'yasr_get_custom_post_type',
647
- )
648
- );
649
- });
650
-
651
function yasr_get_custom_post_type($return_value = 'array') {
652
653
//if this is a rest request $return_value is an object called WP_REST_Request
@@ -681,6 +656,19 @@ function yasr_get_custom_post_type($return_value = 'array') {
681
682
}
683
684
685
/*** Add support for wp super cache ***/
686
function yasr_wp_super_cache_support($post_id) {
@@ -959,6 +947,4 @@ function yasr_is_supported_schema ($item_type) {
959
}
960
961
return false;
962
- }
963
-
964
- ?>
386
return $content;
387
}
388
389
+ $overall_rating = YasrDatabaseRatings::getOverallRating();
390
+ $visitor_votes = YasrDatabaseRatings::getVisitorVotes(false, false);
391
392
$is_post_a_review = get_post_meta(get_the_ID(), 'yasr_post_is_review', true);
393
394
+ if (!$overall_rating && !$visitor_votes['number_of_votes'] && !$visitor_votes['sum_votes']) {
395
return $content;
396
}
397
525
//So, is post is selected as review, exclude AggregateRating
526
if($is_post_a_review !== 'yes') {
527
if ($visitor_votes) {
528
+ if ($visitor_votes['sum_votes'] != 0 && $visitor_votes['number_of_votes'] != 0) {
529
+ $average_rating = $visitor_votes['sum_votes'] / $visitor_votes['number_of_votes'];
530
$average_rating = round($average_rating, 1);
531
532
$rich_snippet["aggregateRating"] = array(
533
"@type" => "AggregateRating",
534
"ratingValue" => "$average_rating",
535
+ "ratingCount" => $visitor_votes['number_of_votes'],
536
);
537
}
538
}
623
624
add_action('admin_init', 'yasr_get_custom_post_type');
625
626
function yasr_get_custom_post_type($return_value = 'array') {
627
628
//if this is a rest request $return_value is an object called WP_REST_Request
656
657
}
658
659
+ function yasr_return_all_post_types () {
660
+ $args = array(
661
+ 'public' => true,
662
+ );
663
+
664
+ $output = 'names';
665
+ $operator = 'and';
666
+
667
+ $post_types = get_post_types($args, $output, $operator);
668
+
669
+ return $post_types;
670
+ }
671
+
672
673
/*** Add support for wp super cache ***/
674
function yasr_wp_super_cache_support($post_id) {
947
}
948
949
return false;
950
+ }
lib/yasr-shortcode-classes.php CHANGED
@@ -112,15 +112,14 @@ class YasrOverallRating extends YasrShortcode {
112
return false;
113
}
114
115
- $stars_size = $this->starSize();
116
- $overall_rating_obj = new YasrDatabaseRatings();
117
- $this->overall_rating = $overall_rating_obj->getOverallRating($this->post_id);
118
119
- $this->shortcode_html = '<!--Yasr Overall Rating Shortcode-->';
120
121
//generate an unique id to be sure that every element has a different ID
122
- $unique_id = str_shuffle(uniqid());
123
- $overall_rating_html_id = 'yasr-overall-rating-rater-' . $unique_id;
124
125
$this->html_stars = "<div class='yasr-overall-rating'>
126
<div class='yasr-rater-stars'
@@ -157,9 +156,9 @@ class YasrOverallRating extends YasrShortcode {
157
if (YASR_TEXT_BEFORE_STARS == 1 && YASR_TEXT_BEFORE_OVERALL != '') {
158
$text_before_star = str_replace('%overall_rating%', $this->overall_rating, YASR_TEXT_BEFORE_OVERALL);
159
$this->shortcode_html = "<div class='yasr-container-custom-text-and-overall'>
160
- <span id='yasr-custom-text-before-overall'>" . $text_before_star . "</span>
161
- $this->html_stars
162
- </div>";
163
} else {
164
$this->shortcode_html .= $this->html_stars;
165
}
@@ -173,14 +172,12 @@ class YasrOverallRating extends YasrShortcode {
173
*/
174
class YasrVisitorVotes extends YasrShortcode {
175
176
- protected $votes = null;
177
protected $votes_number = 0;
178
protected $medium_rating = 0;
179
protected $cookie_value = false; //avoid undefined
180
protected $span_bottom_line;
181
protected $span_text_after_stars;
182
183
-
184
/**
185
* Print the visitor votes shortcode
186
*
@@ -199,17 +196,13 @@ class YasrVisitorVotes extends YasrShortcode {
199
$htmlid = 'yasr-visitor-votes-rater-' . $unique_id ;
200
$span_container_after_stars = "<span id='yasr-visitor-votes-container-after-stars-$unique_id'
201
class='yasr-visitor-votes-after-stars-class'>";
202
203
- $visitor_votes_rating_obj = new YasrDatabaseRatings();
204
- $this->votes = $visitor_votes_rating_obj->getVisitorVotes($this->post_id); //always reference it
205
-
206
- foreach ($this->votes as $user_votes) {
207
- $this->votes_number = $user_votes->number_of_votes;
208
- if ($this->votes_number != 0) {
209
- $this->medium_rating = ($user_votes->sum_votes/$this->votes_number);
210
- } else {
211
- $this->medium_rating = 0;
212
- }
213
}
214
215
$this->medium_rating=round($this->medium_rating, 1);
@@ -226,9 +219,13 @@ class YasrVisitorVotes extends YasrShortcode {
226
if ($this->readonly === true || $this->readonly === "yes") {
227
$htmlid = 'yasr-visitor-votes-readonly-rater-'.$unique_id;
228
229
- $this->shortcode_html = "<div class=\"yasr-rater-stars-visitor-votes\" id=\"$htmlid\" data-rating=\"$this->medium_rating\"
230
- data-rater-starsize=\"$stars_size\" data-rater-postid=\"$this->post_id\"
231
- data-rater-readonly=\"true\"></div>";
232
233
return $this->shortcode_html;
234
}
@@ -313,14 +310,12 @@ class YasrVisitorVotes extends YasrShortcode {
313
* @return void
314
*/
315
protected function allowedUser () {
316
- $visitor_votes = new YasrDatabaseRatings();
317
-
318
//I've to check a logged in user that has already rated
319
if (is_user_logged_in()) {
320
$this->readonly = 'false'; //Always false if user is logged in
321
322
//Check if a logged in user has already rated for this post
323
- $vote_if_user_already_rated = $visitor_votes->visitorVotesHasUserVoted($this->post_id);
324
325
//If user has already rated
326
if ($vote_if_user_already_rated) {
@@ -474,23 +469,14 @@ class YasrMultiSet extends YasrShortcode {
474
475
$this->shortcode_html = '<!-- Yasr Multi Set Shortcode-->';
476
477
- $multiset_obj = new YasrMultiSetData();
478
-
479
- //set fields name and ids
480
- $set_fields = $multiset_obj->multisetFieldsAndID($this->set_id);
481
482
- //If there is no set for that id, return
483
- if (!$set_fields) {
484
$string = __('No Set Found with this ID', 'yet-another-stars-rating');
485
return $this->shortcode_html . $string;
486
}
487
488
- //get meta values
489
- $set_post_meta_values = get_post_meta($this->post_id, 'yasr_multiset_author_votes', true);
490
-
491
- $multiset_content = $multiset_obj->returnArrayFieldsRatings($this->set_id, $set_fields, $set_post_meta_values);
492
-
493
- $this->shortcode_html = '<!-- Yasr Visitor Multi Set Shortcode-->';
494
$this->shortcode_html .= '<table class="yasr_table_multi_set_shortcode">';
495
$this->star_readonly = 'true';
496
@@ -503,9 +489,19 @@ class YasrMultiSet extends YasrShortcode {
503
}
504
505
506
protected function printMultisetRows($multiset_content, $visitor_multiset=false) {
507
508
- $multiset_string = 'yasr-average-multiset-';
509
if ($visitor_multiset === true) {
510
$multiset_string = 'yasr-visitor-multi-set-average-';
511
}
@@ -527,45 +523,48 @@ class YasrMultiSet extends YasrShortcode {
527
$span_container_number_of_votes = '';
528
if ($visitor_multiset === true) {
529
$span_container_number_of_votes = '<span class="yasr-visitor-multiset-vote-count">'
530
- . $set_content['number_of_votes'] .
531
'</span>';
532
}
533
534
- $this->shortcode_html .='<tr>
535
<td>
536
<span class="yasr-multi-set-name-field">' . $set_content['name'] . '</span>
537
</td>
538
<td>'
539
- . $html_stars . $span_container_number_of_votes .
540
- '</td>
541
</tr>';
542
543
} //End foreach
544
545
- $multiset_obj = new YasrMultiSetData();
546
- //get the average of the multiset
547
- $multiset_average = $multiset_obj->returnMultiSetAverage($multiset_content);
548
549
- //print it
550
- $this->shortcode_html .= $this->printAverageRowMultiSet($this->show_average, $multiset_average, $multiset_string);
551
552
}
553
554
/**
555
* @since 2.1.0
556
*
557
- * @param $show_average
558
* @param $multiset_average
559
* @param $multiset_string
560
*
561
* @return string
562
*/
563
- protected function printAverageRowMultiSet($show_average, $multiset_average, $multiset_string) {
564
$average_txt = __("Average", "yet-another-stars-rating");
565
$html_average = null;
566
567
//Show average row
568
- if ($show_average === '' && YASR_MULTI_SHOW_AVERAGE !== 'no' || $show_average !== '' && $show_average !== 'no') {
569
$unique_id_identifier = $multiset_string . str_shuffle(uniqid());
570
571
$html_average = "<tr>
@@ -583,6 +582,21 @@ class YasrMultiSet extends YasrShortcode {
583
return $html_average;
584
}
585
586
}
587
588
/**
@@ -611,7 +625,6 @@ class YasrVisitorMultiSet extends YasrMultiSet {
611
return false;
612
}
613
614
- $multiset_obj = new YasrMultiSetData();
615
$ajax_nonce_visitor_multiset = wp_create_nonce("yasr_nonce_insert_visitor_rating_multiset");
616
617
$this->shortcode_html = '<!-- Yasr Visitor Multi Set Shortcode-->';
@@ -642,7 +655,7 @@ class YasrVisitorMultiSet extends YasrMultiSet {
642
//check cookie and assign default values
643
$this->multisetAttributes();
644
645
- $set_name_content = $multiset_obj->returnVisitorMultiSet($this->post_id, $this->set_id);
646
647
if (!$set_name_content) {
648
$this->shortcode_html .= __('No MultiSet found with this ID', 'yet-another-stars-rating');
112
return false;
113
}
114
115
+ $stars_size = $this->starSize();
116
+ $this->overall_rating = YasrDatabaseRatings::getOverallRating($this->post_id);
117
118
+ $this->shortcode_html = '<!--Yasr Overall Rating Shortcode-->';
119
120
//generate an unique id to be sure that every element has a different ID
121
+ $unique_id = str_shuffle(uniqid());
122
+ $overall_rating_html_id = 'yasr-overall-rating-rater-' . $unique_id;
123
124
$this->html_stars = "<div class='yasr-overall-rating'>
125
<div class='yasr-rater-stars'
156
if (YASR_TEXT_BEFORE_STARS == 1 && YASR_TEXT_BEFORE_OVERALL != '') {
157
$text_before_star = str_replace('%overall_rating%', $this->overall_rating, YASR_TEXT_BEFORE_OVERALL);
158
$this->shortcode_html = "<div class='yasr-container-custom-text-and-overall'>
159
+ <span id='yasr-custom-text-before-overall'>" . $text_before_star . "</span>
160
+ $this->html_stars
161
+ </div>";
162
} else {
163
$this->shortcode_html .= $this->html_stars;
164
}
172
*/
173
class YasrVisitorVotes extends YasrShortcode {
174
175
protected $votes_number = 0;
176
protected $medium_rating = 0;
177
protected $cookie_value = false; //avoid undefined
178
protected $span_bottom_line;
179
protected $span_text_after_stars;
180
181
/**
182
* Print the visitor votes shortcode
183
*
196
$htmlid = 'yasr-visitor-votes-rater-' . $unique_id ;
197
$span_container_after_stars = "<span id='yasr-visitor-votes-container-after-stars-$unique_id'
198
class='yasr-visitor-votes-after-stars-class'>";
199
+ $stored_votes = YasrDatabaseRatings::getVisitorVotes($this->post_id); //always reference it
200
201
+ $this->votes_number = $stored_votes['number_of_votes'];
202
+ if ($this->votes_number != 0) {
203
+ $this->medium_rating = ($stored_votes['sum_votes']/$this->votes_number);
204
+ } else {
205
+ $this->medium_rating = 0;
206
}
207
208
$this->medium_rating=round($this->medium_rating, 1);
219
if ($this->readonly === true || $this->readonly === "yes") {
220
$htmlid = 'yasr-visitor-votes-readonly-rater-'.$unique_id;
221
222
+ $this->shortcode_html = "<div class='yasr-rater-stars-visitor-votes\'
223
+ id='$htmlid'
224
+ data-rating='$this->medium_rating'
225
+ data-rater-starsize='$stars_size'
226
+ data-rater-postid='$this->post_id'
227
+ data-rater-readonly='true'>
228
+ </div>";
229
230
return $this->shortcode_html;
231
}
310
* @return void
311
*/
312
protected function allowedUser () {
313
//I've to check a logged in user that has already rated
314
if (is_user_logged_in()) {
315
$this->readonly = 'false'; //Always false if user is logged in
316
317
//Check if a logged in user has already rated for this post
318
+ $vote_if_user_already_rated = YasrDatabaseRatings::visitorVotesHasUserVoted($this->post_id);
319
320
//If user has already rated
321
if ($vote_if_user_already_rated) {
469
470
$this->shortcode_html = '<!-- Yasr Multi Set Shortcode-->';
471
472
+ $multiset_content = YasrMultiSetData::returnMultisetContent($this->post_id, $this->set_id);
473
474
+ if ($multiset_content === false) {
475
$string = __('No Set Found with this ID', 'yet-another-stars-rating');
476
return $this->shortcode_html . $string;
477
}
478
479
+ $this->shortcode_html = '<!-- Yasr Visitor Multi Set Shortcode-->';
480
$this->shortcode_html .= '<table class="yasr_table_multi_set_shortcode">';
481
$this->star_readonly = 'true';
482
489
}
490
491
492
+ /**
493
+ *
494
+ * This function insert into $this->shortcode_html the rows of both multisets (average included)
495
+ *
496
+ * @param $multiset_content
497
+ * @param bool $visitor_multiset
498
+ *
499
+ * @return void
500
+ *
501
+ */
502
protected function printMultisetRows($multiset_content, $visitor_multiset=false) {
503
504
+ $multiset_string = 'yasr-average-multiset-';
505
if ($visitor_multiset === true) {
506
$multiset_string = 'yasr-visitor-multi-set-average-';
507
}
523
$span_container_number_of_votes = '';
524
if ($visitor_multiset === true) {
525
$span_container_number_of_votes = '<span class="yasr-visitor-multiset-vote-count">'
526
+ . $set_content['number_of_votes'] .
527
'</span>';
528
}
529
530
+ $this->shortcode_html .= '<tr>
531
<td>
532
<span class="yasr-multi-set-name-field">' . $set_content['name'] . '</span>
533
</td>
534
<td>'
535
+ . $html_stars . $span_container_number_of_votes .
536
+ '</td>
537
</tr>';
538
539
} //End foreach
540
541
+ //If average row should be showed
542
+ if ($this->show_average_multiset() === true) {
543
+ //get the average of the multiset
544
+ $multiset_average = YasrMultiSetData::returnMultiSetAverage($this->post_id, $this->set_id, $visitor_multiset);
545
546
+ //print it
547
+ $this->shortcode_html .= $this->printAverageRowMultiSet($multiset_average, $multiset_string);
548
+ }
549
550
}
551
552
/**
553
+ * This function return the html code of the average multiset
554
+ *
555
* @since 2.1.0
556
*
557
* @param $multiset_average
558
* @param $multiset_string
559
*
560
* @return string
561
*/
562
+ protected function printAverageRowMultiSet($multiset_average, $multiset_string) {
563
$average_txt = __("Average", "yet-another-stars-rating");
564
$html_average = null;
565
566
//Show average row
567
+ if ($this->show_average_multiset() === true) {
568
$unique_id_identifier = $multiset_string . str_shuffle(uniqid());
569
570
$html_average = "<tr>
582
return $html_average;
583
}
584
585
+ /**
586
+ * Return true or false if average should be displayed
587
+ *
588
+ * @return bool
589
+ */
590
+ public function show_average_multiset() {
591
+ if ($this->show_average === '' && YASR_MULTI_SHOW_AVERAGE !== 'no' ||
592
+ $this->show_average !== '' && $this->show_average !== 'no') {
593
+ return true;
594
+ }
595
+ else {
596
+ return false;
597
+ }
598
+ }
599
+
600
}
601
602
/**
625
return false;
626
}
627
628
$ajax_nonce_visitor_multiset = wp_create_nonce("yasr_nonce_insert_visitor_rating_multiset");
629
630
$this->shortcode_html = '<!-- Yasr Visitor Multi Set Shortcode-->';
655
//check cookie and assign default values
656
$this->multisetAttributes();
657
658
+ $set_name_content = YasrMultiSetData::returnVisitorMultiSetContent($this->post_id, $this->set_id);
659
660
if (!$set_name_content) {
661
$this->shortcode_html .= __('No MultiSet found with this ID', 'yet-another-stars-rating');
readme.txt CHANGED
@@ -1,11 +1,11 @@
1
=== Yasr - Yet Another Stars Rating ===
2
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=AXE284FYMNWDC
3
Tags: rating, rate post, rate page, star rating, google rating, votes
4
- Requires at least: 4.3.0
5
Contributors: Dudo
6
Tested up to: 5.4
7
Requires PHP: 5.3
8
- Stable tag: 2.2.1
9
License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
11
Boost the way people interact with your site with an easy WordPress stars rating system! With schema.org rich snippets YASR will improve your SEO
@@ -125,6 +125,11 @@ If doesn't, it's suggested to ask in a SEO oriented forum.
125
126
The full changelog can be found in the plugin's directory. Recent entries:
127
128
= 2.2.1 =
129
* FIXED: MultiSet returns "undefined" in editor screen
130
* FIXED: MultiSet average always shows
1
=== Yasr - Yet Another Stars Rating ===
2
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=AXE284FYMNWDC
3
Tags: rating, rate post, rate page, star rating, google rating, votes
4
+ Requires at least: 4.9.0
5
Contributors: Dudo
6
Tested up to: 5.4
7
Requires PHP: 5.3
8
+ Stable tag: 2.2.2
9
License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
11
Boost the way people interact with your site with an easy WordPress stars rating system! With schema.org rich snippets YASR will improve your SEO
125
126
The full changelog can be found in the plugin's directory. Recent entries:
127
128
+ = 2.2.2 =
129
+ * FIXED: links in Recent Ratings dashboard widget (thanks to Fernando Tellado)
130
+ * Enhancement: Added REST responses. More info in the official site
131
+
132
+
133
= 2.2.1 =
134
* FIXED: MultiSet returns "undefined" in editor screen
135
* FIXED: MultiSet average always shows
yet-another-stars-rating.php CHANGED
@@ -3,8 +3,9 @@
3
/**
4
* Plugin Name: Yet Another Stars Rating
5
* Plugin URI: http://wordpress.org/plugins/yet-another-stars-rating/
6
- * Description: Yasr - Yet Another Stars Rating is a powerful way to add SEO-friendly user-generated reviews and testimonials to your website posts, pages and CPT, without affecting its speed.
7
- * Version: 2.2.1
8
* Author: Dario Curvino
9
* Author URI: https://dariocurvino.it/
10
* Text Domain: yet-another-stars-rating
@@ -76,7 +77,7 @@ if ( !function_exists( 'yasr_fs' ) ) {
76
yasr_fs();
77
// Signal that SDK was initiated.
78
do_action( 'yasr_fs_loaded' );
79
- define( 'YASR_VERSION_NUM', '2.2.1' );
80
//Plugin relative path
81
define( "YASR_ABSOLUTE_PATH", dirname( __FILE__ ) );
82
//Plugin RELATIVE PATH without slashes (just the directory's name)
@@ -190,6 +191,10 @@ if ( !function_exists( 'yasr_fs' ) ) {
190
require YASR_ABSOLUTE_PATH . '/lib/yasr-db-classes.php';
191
require YASR_ABSOLUTE_PATH . '/lib/yasr-ajax-functions.php';
192
require YASR_ABSOLUTE_PATH . '/lib/yasr-shortcode-functions.php';
193
require YASR_ABSOLUTE_PATH . '/lib/yasr-widgets.php';
194
require YASR_ABSOLUTE_PATH . '/lib/yasr-deprecated.php';
195
@@ -274,7 +279,7 @@ if ( !function_exists( 'yasr_fs' ) ) {
274
if ( yasr_fs()->is_free_plan() ) {
275
// create link
276
if ( $file == $plugin ) {
277
- $links[] = '<a href="https://yetanotherstarsrating.com/">' . __( 'Buy Yasr Pro', 'yet-another-stars-rating' ) . '</a>';
278
}
279
} else {
280
// create link
3
/**
4
* Plugin Name: Yet Another Stars Rating
5
* Plugin URI: http://wordpress.org/plugins/yet-another-stars-rating/
6
+ * Description: Yasr - Yet Another Stars Rating is a powerful way to add SEO-friendly user-generated reviews and
7
+ * testimonials to your website posts, pages and CPT, without affecting its speed.
8
+ * Version: 2.2.2
9
* Author: Dario Curvino
10
* Author URI: https://dariocurvino.it/
11
* Text Domain: yet-another-stars-rating
77
yasr_fs();
78
// Signal that SDK was initiated.
79
do_action( 'yasr_fs_loaded' );
80
+ define( 'YASR_VERSION_NUM', '2.2.2' );
81
//Plugin relative path
82
define( "YASR_ABSOLUTE_PATH", dirname( __FILE__ ) );
83
//Plugin RELATIVE PATH without slashes (just the directory's name)
191
require YASR_ABSOLUTE_PATH . '/lib/yasr-db-classes.php';
192
require YASR_ABSOLUTE_PATH . '/lib/yasr-ajax-functions.php';
193
require YASR_ABSOLUTE_PATH . '/lib/yasr-shortcode-functions.php';
194
+ require YASR_ABSOLUTE_PATH . '/lib/rest/YasrPostMeta.php';
195
+ require YASR_ABSOLUTE_PATH . '/lib/rest/YasrCustomFields.php';
196
+ require YASR_ABSOLUTE_PATH . '/lib/rest/YasrCustomEndpoint.php';
197
+ require YASR_ABSOLUTE_PATH . '/lib/rest/yasr-rest.php';
198
require YASR_ABSOLUTE_PATH . '/lib/yasr-widgets.php';
199
require YASR_ABSOLUTE_PATH . '/lib/yasr-deprecated.php';
200
279
if ( yasr_fs()->is_free_plan() ) {
280
// create link
281
if ( $file == $plugin ) {
282
+ $links[] = '<a href="https://yetanotherstarsrating.com/?utm_source=wp-plugin&utm_medium=above_description&utm_campaign=yasr_plugin_list">' . __( 'Buy Yasr Pro', 'yet-another-stars-rating' ) . '</a>';
283
}
284
} else {
285
// create link