Version Description
- TWEAKED: This is the first of two important releases for YASR. Some changes in the database has been done. BACKUP YOUR DATABASE BEFORE UPDATING
- FIXED: RTL support in admin area
Download this release
Release Info
Developer | Dudo |
Plugin | Yasr – Yet Another Stars Rating |
Version | 2.0.9 |
Comparing to | |
See all releases |
Code changes from version 2.0.8 to 2.0.9
- js/yasr-admin.js +29 -26
- js/yasr-front.js +0 -2
- lib/admin/editor/yasr-metabox-multiple-rating.php +6 -4
- lib/admin/settings/yasr-settings-functions-multiset-page.php +1 -3
- lib/admin/settings/yasr-settings-migration-functions.php +0 -3
- lib/admin/settings/yasr-stats-functions.php +1 -4
- lib/admin/yasr-update-functions.php +133 -0
- lib/yasr-ajax-functions.php +0 -111
- lib/yasr-db-functions.php +164 -118
- lib/yasr-functions.php +7 -1
- lib/yasr-shortcode-functions.php +44 -49
- readme.txt +8 -3
- yet-another-stars-rating.php +4 -31
js/yasr-admin.js
CHANGED
@@ -62,24 +62,25 @@ function yasrPrintMetaBoxOverall(overallRating) {
|
|
62 |
|
63 |
/****** Yasr Metabox Multiple Rating ******/
|
64 |
|
65 |
-
function yasrAdminMultiSet(nMultiSet, postid, setId
|
66 |
|
67 |
nMultiSet = parseInt(nMultiSet);
|
68 |
|
69 |
if (nMultiSet === 1) {
|
70 |
|
71 |
-
yasrPrintAdminMultiSet(setId, postid,
|
72 |
|
73 |
} else {
|
74 |
|
75 |
jQuery('#yasr-button-select-set').on("click", function () {
|
76 |
|
77 |
//get the multi data
|
|
|
78 |
var setId = jQuery('#select_set').val();
|
79 |
|
80 |
jQuery("#yasr-loader-select-multi-set").show();
|
81 |
|
82 |
-
yasrPrintAdminMultiSet(setId, postid,
|
83 |
|
84 |
return false; // prevent default click action from happening!
|
85 |
|
@@ -90,7 +91,7 @@ function yasrAdminMultiSet(nMultiSet, postid, setId, nonceMulti) {
|
|
90 |
}
|
91 |
|
92 |
//print the table
|
93 |
-
function yasrPrintAdminMultiSet(setId, postid,
|
94 |
|
95 |
var data_id = {
|
96 |
action: 'yasr_send_id_nameset',
|
@@ -101,7 +102,7 @@ function yasrPrintAdminMultiSet(setId, postid, nonceMulti, nMultiSet) {
|
|
101 |
jQuery.post(ajaxurl, data_id, function (response) {
|
102 |
|
103 |
//Hide the loader near the select only if more multiset are used
|
104 |
-
if (
|
105 |
document.getElementById('yasr-loader-select-multi-set').style.display = 'none';
|
106 |
}
|
107 |
|
@@ -117,7 +118,8 @@ function yasrPrintAdminMultiSet(setId, postid, nonceMulti, nMultiSet) {
|
|
117 |
|
118 |
content += '<tr>';
|
119 |
content += '<td>' + valueName + '</td>';
|
120 |
-
content += '<td><div class="yasr-multiset-admin" id="yasr-multiset-admin-' + valueID + '" data-rating="'
|
|
|
121 |
content += '<span id="yasr-loader-multi-set-field-' + valueID + '" style="display: none">';
|
122 |
content += '<img src="' + yasrCommonDataAdmin.loaderHtml + '"></span>';
|
123 |
content += '</span>';
|
@@ -134,7 +136,7 @@ function yasrPrintAdminMultiSet(setId, postid, nonceMulti, nMultiSet) {
|
|
134 |
document.getElementById('yasr-multi-set-admin-choose-text').style.display = 'block';
|
135 |
|
136 |
//Set rater for divs
|
137 |
-
yasrSetRaterAdminMulti(
|
138 |
|
139 |
//Show shortcode
|
140 |
document.getElementById('yasr-multi-set-admin-explain').style.display = 'block';
|
@@ -149,17 +151,22 @@ function yasrPrintAdminMultiSet(setId, postid, nonceMulti, nMultiSet) {
|
|
149 |
}
|
150 |
|
151 |
//Rater for multiset
|
152 |
-
function yasrSetRaterAdminMulti(
|
|
|
|
|
|
|
153 |
|
154 |
var yasrMultiSetAdmin = document.getElementsByClassName('yasr-multiset-admin');
|
155 |
|
|
|
|
|
|
|
|
|
156 |
for (var i = 0; i < yasrMultiSetAdmin.length; i++) {
|
157 |
|
158 |
(function (i) {
|
159 |
|
160 |
var htmlId = yasrMultiSetAdmin.item(i).id;
|
161 |
-
var idField = yasrMultiSetAdmin.item(i).getAttribute('data-multi-idfield');
|
162 |
-
|
163 |
var elem = document.getElementById(htmlId);
|
164 |
|
165 |
raterJs({
|
@@ -174,28 +181,24 @@ function yasrSetRaterAdminMulti(postid, setId, nonceMulti) {
|
|
174 |
rating = rating.toFixed(1);
|
175 |
//Be sure is a number and not a string
|
176 |
rating = parseFloat(rating);
|
177 |
-
this.setRating(rating) //Set the rating
|
178 |
-
|
179 |
-
document.getElementById("yasr-loader-multi-set-field-" + idField).style.display = '';
|
180 |
|
181 |
-
|
182 |
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
rating: rating,
|
187 |
-
post_id: postid,
|
188 |
-
id_field: idField,
|
189 |
-
set_type: setId
|
190 |
};
|
191 |
|
192 |
-
//
|
193 |
-
|
194 |
-
document.getElementById("yasr-loader-multi-set-field-" + idField).style.display = 'none';
|
195 |
-
});
|
196 |
|
197 |
-
|
|
|
|
|
|
|
198 |
|
|
|
199 |
}
|
200 |
|
201 |
});
|
62 |
|
63 |
/****** Yasr Metabox Multiple Rating ******/
|
64 |
|
65 |
+
function yasrAdminMultiSet(nMultiSet, postid, setId) {
|
66 |
|
67 |
nMultiSet = parseInt(nMultiSet);
|
68 |
|
69 |
if (nMultiSet === 1) {
|
70 |
|
71 |
+
yasrPrintAdminMultiSet(setId, postid, false);
|
72 |
|
73 |
} else {
|
74 |
|
75 |
jQuery('#yasr-button-select-set').on("click", function () {
|
76 |
|
77 |
//get the multi data
|
78 |
+
//overwrite setID
|
79 |
var setId = jQuery('#select_set').val();
|
80 |
|
81 |
jQuery("#yasr-loader-select-multi-set").show();
|
82 |
|
83 |
+
yasrPrintAdminMultiSet(setId, postid, true);
|
84 |
|
85 |
return false; // prevent default click action from happening!
|
86 |
|
91 |
}
|
92 |
|
93 |
//print the table
|
94 |
+
function yasrPrintAdminMultiSet(setId, postid, moreThanOneMultiSet) {
|
95 |
|
96 |
var data_id = {
|
97 |
action: 'yasr_send_id_nameset',
|
102 |
jQuery.post(ajaxurl, data_id, function (response) {
|
103 |
|
104 |
//Hide the loader near the select only if more multiset are used
|
105 |
+
if (moreThanOneMultiSet === true) {
|
106 |
document.getElementById('yasr-loader-select-multi-set').style.display = 'none';
|
107 |
}
|
108 |
|
118 |
|
119 |
content += '<tr>';
|
120 |
content += '<td>' + valueName + '</td>';
|
121 |
+
content += '<td><div class="yasr-multiset-admin" id="yasr-multiset-admin-' + valueID + '" data-rating="'
|
122 |
+
+ valueRating + '" data-multi-idfield="' + valueID + '"></div>';
|
123 |
content += '<span id="yasr-loader-multi-set-field-' + valueID + '" style="display: none">';
|
124 |
content += '<img src="' + yasrCommonDataAdmin.loaderHtml + '"></span>';
|
125 |
content += '</span>';
|
136 |
document.getElementById('yasr-multi-set-admin-choose-text').style.display = 'block';
|
137 |
|
138 |
//Set rater for divs
|
139 |
+
yasrSetRaterAdminMulti(setId);
|
140 |
|
141 |
//Show shortcode
|
142 |
document.getElementById('yasr-multi-set-admin-explain').style.display = 'block';
|
151 |
}
|
152 |
|
153 |
//Rater for multiset
|
154 |
+
function yasrSetRaterAdminMulti(setId) {
|
155 |
+
|
156 |
+
//update hidden field
|
157 |
+
document.getElementById('yasr-multiset-id').value = setId;
|
158 |
|
159 |
var yasrMultiSetAdmin = document.getElementsByClassName('yasr-multiset-admin');
|
160 |
|
161 |
+
//an array with all the ratings objects
|
162 |
+
var ratingArray = [];
|
163 |
+
var ratingValue = false;
|
164 |
+
|
165 |
for (var i = 0; i < yasrMultiSetAdmin.length; i++) {
|
166 |
|
167 |
(function (i) {
|
168 |
|
169 |
var htmlId = yasrMultiSetAdmin.item(i).id;
|
|
|
|
|
170 |
var elem = document.getElementById(htmlId);
|
171 |
|
172 |
raterJs({
|
181 |
rating = rating.toFixed(1);
|
182 |
//Be sure is a number and not a string
|
183 |
rating = parseFloat(rating);
|
184 |
+
this.setRating(rating); //Set the rating
|
|
|
|
|
185 |
|
186 |
+
var setIdField = parseInt(elem.getAttribute('data-multi-idfield'));
|
187 |
|
188 |
+
ratingObject = {
|
189 |
+
field: setIdField,
|
190 |
+
rating: rating
|
|
|
|
|
|
|
|
|
191 |
};
|
192 |
|
193 |
+
//creating rating array
|
194 |
+
ratingArray.push(ratingObject);
|
|
|
|
|
195 |
|
196 |
+
ratingValue = JSON.stringify(ratingArray);
|
197 |
+
|
198 |
+
//update hidden field
|
199 |
+
document.getElementById('yasr-multiset-author-votes').value = ratingValue;
|
200 |
|
201 |
+
done();
|
202 |
}
|
203 |
|
204 |
});
|
js/yasr-front.js
CHANGED
@@ -32,9 +32,7 @@ document.addEventListener('DOMContentLoaded', function(event) {
|
|
32 |
var yasrMultiSetVisitorInDom = document.getElementsByClassName('yasr-multiset-visitors-rater');
|
33 |
|
34 |
if (yasrMultiSetVisitorInDom.length > 0) {
|
35 |
-
|
36 |
yasrRaterVisitorsMultiSet(yasrMultiSetVisitorInDom)
|
37 |
-
|
38 |
}
|
39 |
|
40 |
|
32 |
var yasrMultiSetVisitorInDom = document.getElementsByClassName('yasr-multiset-visitors-rater');
|
33 |
|
34 |
if (yasrMultiSetVisitorInDom.length > 0) {
|
|
|
35 |
yasrRaterVisitorsMultiSet(yasrMultiSetVisitorInDom)
|
|
|
36 |
}
|
37 |
|
38 |
|
lib/admin/editor/yasr-metabox-multiple-rating.php
CHANGED
@@ -24,7 +24,7 @@ $multi_set = yasr_get_multi_set();
|
|
24 |
|
25 |
$post_id = get_the_ID();
|
26 |
|
27 |
-
$
|
28 |
|
29 |
$set_id=NULL;
|
30 |
|
@@ -39,7 +39,7 @@ if ($n_multi_set > 1) {
|
|
39 |
?>
|
40 |
|
41 |
<br />
|
42 |
-
<select id
|
43 |
<?php foreach ($multi_set as $name) { ?>
|
44 |
<option value="<?php echo $name->set_id ?>"><?php echo $name->set_name ?></option>
|
45 |
<?php } //End foreach ?>
|
@@ -72,6 +72,9 @@ elseif ($n_multi_set === 1) {
|
|
72 |
<?php _e( 'Choose a vote for each element', 'yet-another-stars-rating' ); ?>
|
73 |
</span>
|
74 |
|
|
|
|
|
|
|
75 |
<table class="yasr_table_multi_set_admin" id="yasr-table-multi-set-admin">
|
76 |
|
77 |
</table>
|
@@ -95,9 +98,8 @@ elseif ($n_multi_set === 1) {
|
|
95 |
var nMultiSet = <?php echo (json_encode("$n_multi_set")); ?>;
|
96 |
var postid = <?php echo (the_ID()); ?>;
|
97 |
var setId = <?php echo( json_encode( "$set_id" ) ); ?>;
|
98 |
-
var nonceMulti = <?php echo (json_encode("$ajax_nonce_multi")); ?>
|
99 |
|
100 |
-
|
101 |
|
102 |
});
|
103 |
|
24 |
|
25 |
$post_id = get_the_ID();
|
26 |
|
27 |
+
$yasr_nonce_multi = wp_nonce_field( "yasr_nonce_save_multi_values_action", "yasr_nonce_save_multi_values");
|
28 |
|
29 |
$set_id=NULL;
|
30 |
|
39 |
?>
|
40 |
|
41 |
<br />
|
42 |
+
<select id="select_set">
|
43 |
<?php foreach ($multi_set as $name) { ?>
|
44 |
<option value="<?php echo $name->set_id ?>"><?php echo $name->set_name ?></option>
|
45 |
<?php } //End foreach ?>
|
72 |
<?php _e( 'Choose a vote for each element', 'yet-another-stars-rating' ); ?>
|
73 |
</span>
|
74 |
|
75 |
+
<input type="hidden" name="yasr_multiset_author_votes" id="yasr-multiset-author-votes" value="">
|
76 |
+
<input type="hidden" name="yasr_multiset_id" id="yasr-multiset-id" value="">
|
77 |
+
|
78 |
<table class="yasr_table_multi_set_admin" id="yasr-table-multi-set-admin">
|
79 |
|
80 |
</table>
|
98 |
var nMultiSet = <?php echo (json_encode("$n_multi_set")); ?>;
|
99 |
var postid = <?php echo (the_ID()); ?>;
|
100 |
var setId = <?php echo( json_encode( "$set_id" ) ); ?>;
|
|
|
101 |
|
102 |
+
yasrAdminMultiSet(nMultiSet, postid, setId);
|
103 |
|
104 |
});
|
105 |
|
lib/admin/settings/yasr-settings-functions-multiset-page.php
CHANGED
@@ -52,9 +52,7 @@ global $wpdb;
|
|
52 |
//delete all transient that use multiset
|
53 |
$sql_delete_transient = "
|
54 |
DELETE FROM {$wpdb->options}
|
55 |
-
WHERE option_name LIKE '
|
56 |
-
OR option_name LIKE '_transient_yasr_visitor_multi_set_%'
|
57 |
-
OR option_name LIKE '_transient_timeout_yasr_get_multi_set_values_and_field_%'
|
58 |
OR option_name LIKE '_transient_timeout_yasr_visitor_multi_set_%'
|
59 |
";
|
60 |
|
52 |
//delete all transient that use multiset
|
53 |
$sql_delete_transient = "
|
54 |
DELETE FROM {$wpdb->options}
|
55 |
+
WHERE option_name LIKE '_transient_yasr_visitor_multi_set_%'
|
|
|
|
|
56 |
OR option_name LIKE '_transient_timeout_yasr_visitor_multi_set_%'
|
57 |
";
|
58 |
|
lib/admin/settings/yasr-settings-migration-functions.php
CHANGED
@@ -213,7 +213,6 @@ function yasr_import_wppr_callback() {
|
|
213 |
YASR_LOG_TABLE,
|
214 |
array(
|
215 |
'post_id' => $column->post_id,
|
216 |
-
'multi_set_id' => '-1',
|
217 |
'user_id' => 0, //not stored on wp post rating
|
218 |
'vote' => $column->ratings_average,
|
219 |
'date' => '', //not stored on wp post rating
|
@@ -286,7 +285,6 @@ function yasr_import_kksr_callback() {
|
|
286 |
YASR_LOG_TABLE,
|
287 |
array(
|
288 |
'post_id' => $column->post_id,
|
289 |
-
'multi_set_id' => '-1',
|
290 |
'user_id' => 0, //not stored on KK star rating
|
291 |
'vote' => $column->ratings_average,
|
292 |
'date' => 'kkstarratings', //not stored KK star rating
|
@@ -351,7 +349,6 @@ function yasr_import_ratemypost_callback() {
|
|
351 |
YASR_LOG_TABLE,
|
352 |
array(
|
353 |
'post_id' => $column->post_id,
|
354 |
-
'multi_set_id' => '-1',
|
355 |
'user_id' => 0, //seems like rate my post store all users like -1, so I cant import the user_id
|
356 |
'vote' => $column->vote,
|
357 |
'date' => $column->date,
|
213 |
YASR_LOG_TABLE,
|
214 |
array(
|
215 |
'post_id' => $column->post_id,
|
|
|
216 |
'user_id' => 0, //not stored on wp post rating
|
217 |
'vote' => $column->ratings_average,
|
218 |
'date' => '', //not stored on wp post rating
|
285 |
YASR_LOG_TABLE,
|
286 |
array(
|
287 |
'post_id' => $column->post_id,
|
|
|
288 |
'user_id' => 0, //not stored on KK star rating
|
289 |
'vote' => $column->ratings_average,
|
290 |
'date' => 'kkstarratings', //not stored KK star rating
|
349 |
YASR_LOG_TABLE,
|
350 |
array(
|
351 |
'post_id' => $column->post_id,
|
|
|
352 |
'user_id' => 0, //seems like rate my post store all users like -1, so I cant import the user_id
|
353 |
'vote' => $column->vote,
|
354 |
'date' => $column->date,
|
lib/admin/settings/yasr-stats-functions.php
CHANGED
@@ -101,7 +101,6 @@ class YASR_Stats_Log_List_Table extends YASR_WP_List_Table {
|
|
101 |
'cb' => '<input type="checkbox" />',
|
102 |
'id' => 'ID',
|
103 |
'post_id' => 'Title',
|
104 |
-
'multi_set_id' => 'Description',
|
105 |
'user_id' => 'User ID',
|
106 |
'vote' => 'Vote',
|
107 |
'date' => 'Date',
|
@@ -112,13 +111,11 @@ class YASR_Stats_Log_List_Table extends YASR_WP_List_Table {
|
|
112 |
'cb' => '<input type="checkbox" />',
|
113 |
'id' => 'ID',
|
114 |
'post_id' => 'Title',
|
115 |
-
'multi_set_id' => 'Description',
|
116 |
'user_id' => 'User ID',
|
117 |
'vote' => 'Vote',
|
118 |
'date' => 'Date'
|
119 |
);
|
120 |
}
|
121 |
-
|
122 |
return $columns;
|
123 |
}
|
124 |
|
@@ -128,7 +125,7 @@ class YASR_Stats_Log_List_Table extends YASR_WP_List_Table {
|
|
128 |
* @return Array
|
129 |
*/
|
130 |
public function get_hidden_columns() {
|
131 |
-
return array( 'id'
|
132 |
}
|
133 |
|
134 |
/**
|
101 |
'cb' => '<input type="checkbox" />',
|
102 |
'id' => 'ID',
|
103 |
'post_id' => 'Title',
|
|
|
104 |
'user_id' => 'User ID',
|
105 |
'vote' => 'Vote',
|
106 |
'date' => 'Date',
|
111 |
'cb' => '<input type="checkbox" />',
|
112 |
'id' => 'ID',
|
113 |
'post_id' => 'Title',
|
|
|
114 |
'user_id' => 'User ID',
|
115 |
'vote' => 'Vote',
|
116 |
'date' => 'Date'
|
117 |
);
|
118 |
}
|
|
|
119 |
return $columns;
|
120 |
}
|
121 |
|
125 |
* @return Array
|
126 |
*/
|
127 |
public function get_hidden_columns() {
|
128 |
+
return array( 'id' );
|
129 |
}
|
130 |
|
131 |
/**
|
lib/admin/yasr-update-functions.php
ADDED
@@ -0,0 +1,133 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
4 |
+
exit( 'You\'re not allowed to see this page' );
|
5 |
+
} // Exit if accessed directly
|
6 |
+
|
7 |
+
//Update version number and backward compatibility functions
|
8 |
+
//declared on yasr-update-functions.php
|
9 |
+
add_action('plugins_loaded', 'yasr_update_version');
|
10 |
+
|
11 |
+
function yasr_update_version() {
|
12 |
+
//do only in admin
|
13 |
+
|
14 |
+
if (is_admin()) {
|
15 |
+
global $wpdb;
|
16 |
+
global $yasr_version_installed;
|
17 |
+
global $yasr_stored_options;
|
18 |
+
|
19 |
+
if ($yasr_version_installed && $yasr_version_installed < '2.0.9') {
|
20 |
+
|
21 |
+
//drop useless multi_set_id on yasr log table
|
22 |
+
$wpdb->query("ALTER TABLE " . YASR_LOG_TABLE . " DROP multi_set_id");
|
23 |
+
|
24 |
+
//change user_id in bigint 20 (just like the users table do)
|
25 |
+
//change vote to useless 11,1 to 2,1
|
26 |
+
//format DECIMAL(M, D) where M is the maximum number of digits (the precision) and D is the
|
27 |
+
//number of digits to the right of the decimal point (the scale).
|
28 |
+
$wpdb->query("ALTER TABLE " . YASR_LOG_TABLE .
|
29 |
+
" CHANGE user_id user_id bigint(20) NOT NULL AFTER post_id,
|
30 |
+
CHANGE vote vote decimal(2,1) NOT NULL AFTER user_id");
|
31 |
+
|
32 |
+
$sql_yasr_log_multi_set_table = "CREATE TABLE ". YASR_LOG_MULTI_SET ." (
|
33 |
+
id bigint(20) NOT NULL AUTO_INCREMENT,
|
34 |
+
field_id int(2) NOT NULL,
|
35 |
+
set_type int(2) NOT NULL,
|
36 |
+
post_id bigint(20) NOT NULL,
|
37 |
+
vote decimal(2,1) NOT NULL,
|
38 |
+
user_id bigint(20) NOT NULL,
|
39 |
+
date datetime NOT NULL,
|
40 |
+
ip varchar(45) COLLATE 'utf8_unicode_ci' NOT NULL,
|
41 |
+
PRIMARY KEY (id),
|
42 |
+
UNIQUE KEY id (id)
|
43 |
+
) COLLATE 'utf8_unicode_ci'";
|
44 |
+
|
45 |
+
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
46 |
+
|
47 |
+
dbDelta($sql_yasr_log_multi_set_table);
|
48 |
+
|
49 |
+
$sql_import_author_multiset = $wpdb->get_results(
|
50 |
+
"SELECT post_id, set_type AS set_id,
|
51 |
+
CONCAT(
|
52 |
+
'[',
|
53 |
+
GROUP_CONCAT(
|
54 |
+
JSON_OBJECT(
|
55 |
+
'field', field_id,
|
56 |
+
'rating', votes
|
57 |
+
)
|
58 |
+
),
|
59 |
+
']'
|
60 |
+
) AS fields_and_ratings
|
61 |
+
FROM " . YASR_MULTI_SET_VALUES_TABLE . "
|
62 |
+
WHERE post_id IN (
|
63 |
+
SELECT post_id
|
64 |
+
FROM " . YASR_MULTI_SET_VALUES_TABLE . "
|
65 |
+
GROUP BY post_id
|
66 |
+
HAVING SUM(votes)>0
|
67 |
+
)
|
68 |
+
GROUP BY post_id, set_type
|
69 |
+
ORDER BY post_id, set_type", ARRAY_A
|
70 |
+
);
|
71 |
+
|
72 |
+
if(!empty($sql_import_author_multiset)) {
|
73 |
+
//just the same code used in yasr_save_multiset_editor
|
74 |
+
$i = 0;
|
75 |
+
foreach ($sql_import_author_multiset as $multiset_ratings) {
|
76 |
+
|
77 |
+
$post_id = $multiset_ratings['post_id'];
|
78 |
+
$set_id = (int)$multiset_ratings['set_id'];
|
79 |
+
$field_and_vote_array = json_decode($multiset_ratings['fields_and_ratings']);
|
80 |
+
|
81 |
+
//convert in a object with json_decode
|
82 |
+
$data_to_save[$i] = array(
|
83 |
+
'set_id' => $set_id,
|
84 |
+
'fields_and_ratings' => $field_and_vote_array
|
85 |
+
);
|
86 |
+
|
87 |
+
$set_post_meta_values = get_post_meta($post_id, 'yasr_multiset_author_votes',true);
|
88 |
+
|
89 |
+
if ($set_post_meta_values) {
|
90 |
+
//first, loop saved fields and ratings
|
91 |
+
foreach ($set_post_meta_values as $saved_set) {
|
92 |
+
//if the saved set is different from the one that we're trying to save,
|
93 |
+
//append data to save to the post meta
|
94 |
+
if ($saved_set['set_id'] !== $set_id) {
|
95 |
+
//increment i
|
96 |
+
$i++;
|
97 |
+
$data_to_save[$i]['set_id'] = $saved_set['set_id'];
|
98 |
+
$data_to_save[$i]['fields_and_ratings'] = $saved_set['fields_and_ratings'];
|
99 |
+
|
100 |
+
}
|
101 |
+
}
|
102 |
+
}
|
103 |
+
update_post_meta($multiset_ratings['post_id'], 'yasr_multiset_author_votes', $data_to_save);
|
104 |
+
//empty array
|
105 |
+
$data_to_save = array();
|
106 |
+
}
|
107 |
+
|
108 |
+
}
|
109 |
+
|
110 |
+
}
|
111 |
+
|
112 |
+
if ($yasr_version_installed && $yasr_version_installed < '2.0.4') {
|
113 |
+
$yasr_stored_options['auto_insert_align'] = 'left';
|
114 |
+
update_option('yasr_general_options', $yasr_stored_options);
|
115 |
+
}
|
116 |
+
|
117 |
+
if ($yasr_version_installed && $yasr_version_installed < '1.7.3') {
|
118 |
+
$wpdb->query("ALTER TABLE " . YASR_MULTI_SET_FIELDS_TABLE .
|
119 |
+
" CHANGE field_name field_name varchar(40)
|
120 |
+
COLLATE 'utf8_unicode_ci' NOT NULL
|
121 |
+
AFTER parent_set_id;
|
122 |
+
");
|
123 |
+
}
|
124 |
+
|
125 |
+
/****** End backward compatibility functions ******/
|
126 |
+
|
127 |
+
if ($yasr_version_installed != YASR_VERSION_NUM) {
|
128 |
+
update_option('yasr-version', YASR_VERSION_NUM);
|
129 |
+
}
|
130 |
+
|
131 |
+
}
|
132 |
+
|
133 |
+
}
|
lib/yasr-ajax-functions.php
CHANGED
@@ -51,112 +51,6 @@ add_action( 'wp_ajax_yasr_send_id_nameset', 'yasr_output_multiple_set_callback'
|
|
51 |
}
|
52 |
|
53 |
|
54 |
-
/****** Get multiple value and insert into database, used in yasr-metabox-multiple-rating ******/
|
55 |
-
|
56 |
-
add_action( 'wp_ajax_yasr_send_id_field_with_vote', 'yasr_get_multiple_votes_callback' );
|
57 |
-
|
58 |
-
function yasr_get_multiple_votes_callback() {
|
59 |
-
|
60 |
-
if (isset($_POST['post_id']) && isset($_POST['rating']) && isset($_POST['id_field']) && isset($_POST['set_type'])) {
|
61 |
-
$post_id = $_POST['post_id'];
|
62 |
-
$vote = $_POST['rating'];
|
63 |
-
$id_field = $_POST['id_field'];
|
64 |
-
$set_type = $_POST['set_type'];
|
65 |
-
$nonce = $_POST['nonce'];
|
66 |
-
|
67 |
-
if ($post_id == '' || $set_type == '' || $id_field == '') {
|
68 |
-
exit();
|
69 |
-
}
|
70 |
-
|
71 |
-
}
|
72 |
-
else {
|
73 |
-
exit();
|
74 |
-
}
|
75 |
-
|
76 |
-
if ( ! current_user_can( 'publish_posts' ) ) {
|
77 |
-
wp_die( __( 'You do not have sufficient permissions to access this page.', 'yet-another-stars-rating' ) );
|
78 |
-
}
|
79 |
-
|
80 |
-
if ( ! wp_verify_nonce( $nonce, 'yasr_nonce_insert_multi_rating' ) ) {
|
81 |
-
die( 'Security check' );
|
82 |
-
}
|
83 |
-
|
84 |
-
delete_transient( 'yasr_get_multi_set_values_and_field_' . $post_id . '_' . $set_type );
|
85 |
-
|
86 |
-
global $wpdb;
|
87 |
-
|
88 |
-
//Check if vote already exist
|
89 |
-
$vote_already_exist=$wpdb->get_results($wpdb->prepare("SELECT id FROM " . YASR_MULTI_SET_VALUES_TABLE . "
|
90 |
-
WHERE post_id = %d
|
91 |
-
AND set_type = %d
|
92 |
-
AND field_id = %d
|
93 |
-
",
|
94 |
-
$post_id, $set_type, $id_field));
|
95 |
-
|
96 |
-
//If vote already exist, overwrite it
|
97 |
-
if ($vote_already_exist) {
|
98 |
-
foreach ($vote_already_exist as $index_id) {
|
99 |
-
$id = $index_id->id;
|
100 |
-
}
|
101 |
-
$query_success=$wpdb->update(
|
102 |
-
YASR_MULTI_SET_VALUES_TABLE,
|
103 |
-
array (
|
104 |
-
'id'=>$id,
|
105 |
-
'post_id'=>$post_id,
|
106 |
-
'field_id'=>$id_field,
|
107 |
-
'votes'=>$vote,
|
108 |
-
'set_type'=>$set_type
|
109 |
-
),
|
110 |
-
array (
|
111 |
-
'id'=>$id
|
112 |
-
),
|
113 |
-
array ("%d", "%d", "%d", "%f", "%d"),
|
114 |
-
array ("%d")
|
115 |
-
);
|
116 |
-
|
117 |
-
if($query_success) {
|
118 |
-
echo $vote;
|
119 |
-
}
|
120 |
-
} //End if vote already exist
|
121 |
-
|
122 |
-
//If vote doesn't exist create a new one
|
123 |
-
else {
|
124 |
-
|
125 |
-
//get the highest id in table
|
126 |
-
$highest_id=$wpdb->get_results("SELECT id FROM " . YASR_MULTI_SET_VALUES_TABLE . " ORDER BY id DESC LIMIT 1 ");
|
127 |
-
|
128 |
-
if (!$highest_id) {
|
129 |
-
$new_id=0;
|
130 |
-
}
|
131 |
-
|
132 |
-
foreach ($highest_id as $id) {
|
133 |
-
$new_id=$id->id + 1;
|
134 |
-
}
|
135 |
-
|
136 |
-
$result=$wpdb->replace(
|
137 |
-
YASR_MULTI_SET_VALUES_TABLE,
|
138 |
-
array (
|
139 |
-
'id' => $new_id,
|
140 |
-
'post_id'=>$post_id,
|
141 |
-
'field_id'=>$id_field,
|
142 |
-
'votes'=>$vote,
|
143 |
-
'set_type'=>$set_type
|
144 |
-
),
|
145 |
-
array ("%d", "%d", "%d", "%f", "%d")
|
146 |
-
);
|
147 |
-
|
148 |
-
if($result) {
|
149 |
-
echo $vote;
|
150 |
-
}
|
151 |
-
|
152 |
-
} //End else
|
153 |
-
|
154 |
-
die();
|
155 |
-
|
156 |
-
} //End callback function
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
/****** Create the content for the button shortcode in Tinymce ******/
|
161 |
|
162 |
//Add ajax action that will be called from the .js for button in tinymce
|
@@ -723,7 +617,6 @@ add_action( 'wp_ajax_yasr_send_id_nameset', 'yasr_output_multiple_set_callback'
|
|
723 |
YASR_LOG_TABLE,
|
724 |
array (
|
725 |
'post_id' => $post_id,
|
726 |
-
'multi_set_id' => -1,
|
727 |
'user_id' => $current_user->ID,
|
728 |
'vote' => $rating,
|
729 |
'date' => date('Y-m-d H:i:s'),
|
@@ -741,12 +634,10 @@ add_action( 'wp_ajax_yasr_send_id_nameset', 'yasr_output_multiple_set_callback'
|
|
741 |
//insert the new row
|
742 |
//use ! instead of === FALSE
|
743 |
if (!$result_update_log) {
|
744 |
-
|
745 |
$result_insert_log = $wpdb->insert (
|
746 |
YASR_LOG_TABLE,
|
747 |
array (
|
748 |
'post_id' => $post_id,
|
749 |
-
'multi_set_id' => -1,
|
750 |
'user_id' => $current_user->ID,
|
751 |
'vote' => $rating,
|
752 |
'date' => date('Y-m-d H:i:s'),
|
@@ -754,7 +645,6 @@ add_action( 'wp_ajax_yasr_send_id_nameset', 'yasr_output_multiple_set_callback'
|
|
754 |
),
|
755 |
array ('%d', '%d', '%d', '%s', '%s', '%s')
|
756 |
);
|
757 |
-
|
758 |
}
|
759 |
|
760 |
}
|
@@ -769,7 +659,6 @@ add_action( 'wp_ajax_yasr_send_id_nameset', 'yasr_output_multiple_set_callback'
|
|
769 |
YASR_LOG_TABLE,
|
770 |
array (
|
771 |
'post_id' => $post_id,
|
772 |
-
'multi_set_id' => -1,
|
773 |
'user_id' => $current_user->ID,
|
774 |
'vote' => $rating,
|
775 |
'date' => date('Y-m-d H:i:s'),
|
51 |
}
|
52 |
|
53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
/****** Create the content for the button shortcode in Tinymce ******/
|
55 |
|
56 |
//Add ajax action that will be called from the .js for button in tinymce
|
617 |
YASR_LOG_TABLE,
|
618 |
array (
|
619 |
'post_id' => $post_id,
|
|
|
620 |
'user_id' => $current_user->ID,
|
621 |
'vote' => $rating,
|
622 |
'date' => date('Y-m-d H:i:s'),
|
634 |
//insert the new row
|
635 |
//use ! instead of === FALSE
|
636 |
if (!$result_update_log) {
|
|
|
637 |
$result_insert_log = $wpdb->insert (
|
638 |
YASR_LOG_TABLE,
|
639 |
array (
|
640 |
'post_id' => $post_id,
|
|
|
641 |
'user_id' => $current_user->ID,
|
642 |
'vote' => $rating,
|
643 |
'date' => date('Y-m-d H:i:s'),
|
645 |
),
|
646 |
array ('%d', '%d', '%d', '%s', '%s', '%s')
|
647 |
);
|
|
|
648 |
}
|
649 |
|
650 |
}
|
659 |
YASR_LOG_TABLE,
|
660 |
array (
|
661 |
'post_id' => $post_id,
|
|
|
662 |
'user_id' => $current_user->ID,
|
663 |
'vote' => $rating,
|
664 |
'date' => date('Y-m-d H:i:s'),
|
lib/yasr-db-functions.php
CHANGED
@@ -98,16 +98,23 @@ function yasr_create_tables () {
|
|
98 |
$yasr_multi_set_table = $prefix . 'multi_set';
|
99 |
$yasr_multi_set_fields = $prefix . 'multi_set_fields';
|
100 |
$yasr_multi_values_table = $prefix . 'multi_values';
|
|
|
101 |
$yasr_log_table = $prefix . 'log';
|
102 |
|
103 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
set_id int(2) NOT NULL,
|
105 |
set_name varchar(64) COLLATE utf8_unicode_ci NOT NULL,
|
106 |
UNIQUE KEY set_id (set_id),
|
107 |
UNIQUE KEY set_name (set_name)
|
108 |
) COLLATE 'utf8_unicode_ci';";
|
109 |
|
110 |
-
$sql_yasr_multi_set_fields = "CREATE TABLE
|
111 |
id bigint(20) NOT NULL,
|
112 |
parent_set_id int(2) NOT NULL,
|
113 |
field_name varchar(40) COLLATE utf8_unicode_ci NOT NULL,
|
@@ -116,7 +123,8 @@ function yasr_create_tables () {
|
|
116 |
UNIQUE KEY id (id)
|
117 |
) COLLATE 'utf8_unicode_ci';";
|
118 |
|
119 |
-
|
|
|
120 |
id bigint(20) NOT NULL,
|
121 |
field_id int(2) NOT NULL,
|
122 |
set_type int (2) NOT NULL,
|
@@ -126,25 +134,42 @@ function yasr_create_tables () {
|
|
126 |
sum_votes decimal(11, 1) NOT NULL,
|
127 |
PRIMARY KEY (id),
|
128 |
UNIQUE KEY id (id)
|
129 |
-
) COLLATE 'utf8_unicode_ci'
|
130 |
|
131 |
-
|
|
|
132 |
id bigint(20) NOT NULL AUTO_INCREMENT,
|
|
|
|
|
133 |
post_id bigint(20) NOT NULL,
|
134 |
-
|
135 |
-
user_id
|
136 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
date datetime NOT NULL,
|
138 |
ip varchar(45) COLLATE utf8_unicode_ci NOT NULL,
|
139 |
PRIMARY KEY (id),
|
140 |
UNIQUE KEY id (id)
|
141 |
-
) COLLATE 'utf8_unicode_ci'
|
142 |
|
143 |
|
144 |
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
145 |
|
146 |
dbDelta($sql_yasr_multi_set_table);
|
147 |
dbDelta($sql_yasr_multi_set_fields);
|
|
|
148 |
dbDelta($sql_yasr_multi_value_table);
|
149 |
dbDelta($sql_yasr_log_table);
|
150 |
}
|
@@ -266,33 +291,75 @@ function yasr_get_multi_set() {
|
|
266 |
|
267 |
|
268 |
/****** Get multi set values and field's name, used in ajax function and shortcode function ******/
|
269 |
-
function
|
270 |
|
271 |
-
|
272 |
|
273 |
-
|
274 |
-
|
275 |
-
|
|
|
276 |
|
277 |
-
|
|
|
|
|
278 |
|
279 |
-
|
280 |
-
FROM " . YASR_MULTI_SET_FIELDS_TABLE . " AS f, " . YASR_MULTI_SET_VALUES_TABLE . " AS v
|
281 |
-
WHERE f.parent_set_id=%d
|
282 |
-
AND f.field_id = v.field_id
|
283 |
-
AND v.post_id = %d
|
284 |
-
AND v.set_type = %d
|
285 |
-
AND f.parent_set_id=v.set_type
|
286 |
-
ORDER BY f.field_id ASC", $set_type, $post_id, $set_type));
|
287 |
|
288 |
-
|
289 |
-
set_transient('yasr_get_multi_set_values_and_field_' . $post_id . '_' . $set_type, $result, WEEK_IN_SECONDS);
|
290 |
-
}
|
291 |
|
292 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
293 |
|
|
|
|
|
294 |
}
|
295 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
296 |
|
297 |
}
|
298 |
|
@@ -307,100 +374,16 @@ function yasr_return_multi_set_values_admin($post_id, $set_id) {
|
|
307 |
exit(__('Missing post or set id', 'yet-another-stars-rating'));
|
308 |
}
|
309 |
|
310 |
-
//
|
311 |
-
|
312 |
-
|
313 |
-
$set_values = yasr_get_multi_set_values_and_field($post_id, $set_id);
|
314 |
-
|
315 |
-
global $wpdb;
|
316 |
-
|
317 |
-
$index = 0;
|
318 |
-
|
319 |
-
//If this is a new post or post has no multi values data
|
320 |
-
if (!$set_values) {
|
321 |
-
|
322 |
-
//Get Set fields name
|
323 |
-
$set_name = $wpdb->get_results($wpdb->prepare("SELECT field_name AS name, field_id AS id
|
324 |
-
FROM " . YASR_MULTI_SET_FIELDS_TABLE . "
|
325 |
-
WHERE parent_set_id=%d
|
326 |
-
ORDER BY field_id ASC",
|
327 |
-
$set_id));
|
328 |
-
|
329 |
-
foreach ($set_name as $name) {
|
330 |
|
331 |
-
|
332 |
-
|
333 |
|
334 |
-
|
335 |
-
$highest_id = $wpdb->get_results("SELECT id FROM " . YASR_MULTI_SET_VALUES_TABLE . " ORDER BY id DESC LIMIT 1 ");
|
336 |
-
|
337 |
-
if (!$highest_id) {
|
338 |
-
$new_id = 0;
|
339 |
-
}
|
340 |
-
|
341 |
-
foreach ($highest_id as $id) {
|
342 |
-
$new_id = $id->id + 1;
|
343 |
-
}
|
344 |
-
|
345 |
-
$query_success = $wpdb->replace(
|
346 |
-
YASR_MULTI_SET_VALUES_TABLE,
|
347 |
-
array(
|
348 |
-
'id' => $new_id,
|
349 |
-
'post_id' => $post_id,
|
350 |
-
'field_id' => $name->id,
|
351 |
-
'votes' => '-1',
|
352 |
-
'set_type' => $set_id,
|
353 |
-
'number_of_votes' => '0',
|
354 |
-
'sum_votes' => '0'
|
355 |
-
),
|
356 |
-
array("%d", "%d", "%d", "%s", "%d", "%d", "%d")
|
357 |
-
);
|
358 |
-
|
359 |
-
|
360 |
-
$array_to_return[$index]['value_name'] = $name->name;
|
361 |
-
$array_to_return[$index]['value_rating'] = 0;
|
362 |
-
$array_to_return[$index]['value_id'] = $name->id;
|
363 |
-
|
364 |
-
$index ++;
|
365 |
-
|
366 |
-
} //End foreach
|
367 |
-
|
368 |
-
} //
|
369 |
-
|
370 |
-
//else means that post already has vote and here I show it
|
371 |
-
else {
|
372 |
-
|
373 |
-
foreach ($set_values as $set_content) {
|
374 |
-
|
375 |
-
if ($set_content->vote < 0) {
|
376 |
-
$set_content->vote = 0;
|
377 |
-
}
|
378 |
-
|
379 |
-
$integer_vote = floor($set_content->vote);
|
380 |
-
if ($set_content->vote < ($integer_vote + 0.3)) {
|
381 |
-
$set_content->vote = $integer_vote;
|
382 |
-
} elseif ($set_content->vote >= ($integer_vote + 0.3) AND $set_content->vote < ($integer_vote + 0.7)) {
|
383 |
-
$set_content->vote = $integer_vote + 0.5;
|
384 |
-
} elseif ($set_content->vote >= ($integer_vote + 0.7)) {
|
385 |
-
$set_content->vote = $integer_vote + 1;
|
386 |
-
}
|
387 |
-
|
388 |
-
$array_to_return[$index]['value_name'] = $set_content->name;
|
389 |
-
$array_to_return[$index]['value_rating'] = $set_content->vote;
|
390 |
-
$array_to_return[$index]['value_id'] = $set_content->id;
|
391 |
-
|
392 |
-
$index ++;
|
393 |
-
|
394 |
-
} //End foreach
|
395 |
-
|
396 |
-
|
397 |
-
}
|
398 |
|
399 |
echo json_encode($array_to_return);
|
400 |
|
401 |
-
die();
|
402 |
-
|
403 |
-
|
404 |
}
|
405 |
|
406 |
|
@@ -415,7 +398,8 @@ function yasr_get_multi_set_visitor($post_id, $set_type) {
|
|
415 |
|
416 |
global $wpdb;
|
417 |
|
418 |
-
$result = $wpdb->get_results($wpdb->prepare("SELECT f.field_name AS name, f.field_id AS id,
|
|
|
419 |
FROM " . YASR_MULTI_SET_FIELDS_TABLE . " AS f, " . YASR_MULTI_SET_VALUES_TABLE . " AS v
|
420 |
WHERE f.parent_set_id=%d
|
421 |
AND f.field_id = v.field_id
|
@@ -905,7 +889,6 @@ function yasr_insert_overall_rating_callback($post_id) {
|
|
905 |
|
906 |
}
|
907 |
|
908 |
-
|
909 |
add_action('save_post', 'yasr_insert_review_type_callback');
|
910 |
|
911 |
function yasr_insert_review_type_callback($post_id) {
|
@@ -975,6 +958,69 @@ function yasr_post_a_review($post_id) {
|
|
975 |
}
|
976 |
|
977 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
978 |
/******* Add post_meta on save_post if this post is excluded for auto insert *******/
|
979 |
|
980 |
if (YASR_AUTO_INSERT_ENABLED == 1) {
|
98 |
$yasr_multi_set_table = $prefix . 'multi_set';
|
99 |
$yasr_multi_set_fields = $prefix . 'multi_set_fields';
|
100 |
$yasr_multi_values_table = $prefix . 'multi_values';
|
101 |
+
$yasr_log_multi_set = $prefix . 'log_multi_set';
|
102 |
$yasr_log_table = $prefix . 'log';
|
103 |
|
104 |
+
//Do not use IF TABLE EXISTS here
|
105 |
+
//see https://wordpress.stackexchange.com/a/302538/48442
|
106 |
+
//since this function is called only on plugin activation AND if yasr-version is not found in
|
107 |
+
//wp-option, there is no need to check if table exists, unless the user manually remove yasr-version option
|
108 |
+
//but not the yasr tables.
|
109 |
+
|
110 |
+
$sql_yasr_multi_set_table = "CREATE TABLE $yasr_multi_set_table (
|
111 |
set_id int(2) NOT NULL,
|
112 |
set_name varchar(64) COLLATE utf8_unicode_ci NOT NULL,
|
113 |
UNIQUE KEY set_id (set_id),
|
114 |
UNIQUE KEY set_name (set_name)
|
115 |
) COLLATE 'utf8_unicode_ci';";
|
116 |
|
117 |
+
$sql_yasr_multi_set_fields = "CREATE TABLE $yasr_multi_set_fields (
|
118 |
id bigint(20) NOT NULL,
|
119 |
parent_set_id int(2) NOT NULL,
|
120 |
field_name varchar(40) COLLATE utf8_unicode_ci NOT NULL,
|
123 |
UNIQUE KEY id (id)
|
124 |
) COLLATE 'utf8_unicode_ci';";
|
125 |
|
126 |
+
//Since version
|
127 |
+
$sql_yasr_multi_value_table = "CREATE TABLE $yasr_multi_values_table (
|
128 |
id bigint(20) NOT NULL,
|
129 |
field_id int(2) NOT NULL,
|
130 |
set_type int (2) NOT NULL,
|
134 |
sum_votes decimal(11, 1) NOT NULL,
|
135 |
PRIMARY KEY (id),
|
136 |
UNIQUE KEY id (id)
|
137 |
+
) COLLATE 'utf8_unicode_ci';";
|
138 |
|
139 |
+
//Since version 2.0.9 is installed but not used yet
|
140 |
+
$sql_yasr_log_multi_set_table = "CREATE TABLE $yasr_log_multi_set (
|
141 |
id bigint(20) NOT NULL AUTO_INCREMENT,
|
142 |
+
field_id int(2) NOT NULL,
|
143 |
+
set_type int(2) NOT NULL,
|
144 |
post_id bigint(20) NOT NULL,
|
145 |
+
vote decimal(2,1) NOT NULL,
|
146 |
+
user_id bigint(20) NOT NULL,
|
147 |
+
date datetime NOT NULL,
|
148 |
+
ip varchar(45) COLLATE 'utf8_unicode_ci' NOT NULL,
|
149 |
+
PRIMARY KEY (id),
|
150 |
+
UNIQUE KEY id (id)
|
151 |
+
) COLLATE 'utf8_unicode_ci';";
|
152 |
+
|
153 |
+
//Since version 2.0.9 user_id is bigint 20 and vote decimal 2,1
|
154 |
+
//format DECIMAL(M, D) where M is the maximum number of digits (the precision) and D is the
|
155 |
+
//number of digits to the right of the decimal point (the scale).
|
156 |
+
$sql_yasr_log_table = "CREATE TABLE $yasr_log_table (
|
157 |
+
id bigint(20) NOT NULL AUTO_INCREMENT,
|
158 |
+
post_id bigint(20) NOT NULL,
|
159 |
+
user_id bigint(20) NOT NULL,
|
160 |
+
vote decimal(2,1) NOT NULL,
|
161 |
date datetime NOT NULL,
|
162 |
ip varchar(45) COLLATE utf8_unicode_ci NOT NULL,
|
163 |
PRIMARY KEY (id),
|
164 |
UNIQUE KEY id (id)
|
165 |
+
) COLLATE 'utf8_unicode_ci';";
|
166 |
|
167 |
|
168 |
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
169 |
|
170 |
dbDelta($sql_yasr_multi_set_table);
|
171 |
dbDelta($sql_yasr_multi_set_fields);
|
172 |
+
dbDelta($sql_yasr_log_multi_set_table);
|
173 |
dbDelta($sql_yasr_multi_value_table);
|
174 |
dbDelta($sql_yasr_log_table);
|
175 |
}
|
291 |
|
292 |
|
293 |
/****** Get multi set values and field's name, used in ajax function and shortcode function ******/
|
294 |
+
function yasr_get_multi_set_fields($set_id) {
|
295 |
|
296 |
+
global $wpdb;
|
297 |
|
298 |
+
$result = $wpdb->get_results($wpdb->prepare(
|
299 |
+
"SELECT f.field_id AS id, f.field_name AS name
|
300 |
+
FROM " . YASR_MULTI_SET_FIELDS_TABLE . " AS f
|
301 |
+
WHERE f.parent_set_id=%d", $set_id), ARRAY_A);
|
302 |
|
303 |
+
if (empty($result)) {
|
304 |
+
return false;
|
305 |
+
}
|
306 |
|
307 |
+
return $result;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
308 |
|
309 |
+
}
|
|
|
|
|
310 |
|
311 |
+
/** This functions returns an array with all the value to print the multiset
|
312 |
+
* @since 2.0.9
|
313 |
+
*
|
314 |
+
* @param integer $post_id
|
315 |
+
* @param integer $set_id the set id
|
316 |
+
* @param array $set_fields an array with fields names and id
|
317 |
+
* @param array $set_post_meta_values an array with fields id and rating, can be empty
|
318 |
+
* @param bool $create_transient
|
319 |
+
*
|
320 |
+
* @return bool|array $array_to_return An array with field name, id and rating
|
321 |
+
*/
|
322 |
+
|
323 |
+
function yasr_return_multiset_array_with_ratings ($set_id, $set_fields, $set_post_meta_values) {
|
324 |
|
325 |
+
if (!is_int($set_id) || !$set_fields ) {
|
326 |
+
return false;
|
327 |
}
|
328 |
|
329 |
+
//initalize empty array
|
330 |
+
$array_to_return = array();
|
331 |
+
|
332 |
+
//index
|
333 |
+
$i = 0;
|
334 |
+
|
335 |
+
//always returns field id and name
|
336 |
+
foreach ($set_fields as $fields_ids_and_names) {
|
337 |
+
$array_to_return[$i]['value_id'] = (int)$fields_ids_and_names['id'];
|
338 |
+
$array_to_return[$i]['value_name'] = $fields_ids_and_names['name'];
|
339 |
+
$array_to_return[$i]['value_rating'] = 0;
|
340 |
+
|
341 |
+
//if there is post meta
|
342 |
+
if ($set_post_meta_values) {
|
343 |
+
//first, loop saved fields and ratings
|
344 |
+
foreach ($set_post_meta_values as $saved_set_id) {
|
345 |
+
//if the saved set is the same selected
|
346 |
+
if ($saved_set_id['set_id'] === $set_id) {
|
347 |
+
//loop the saved arrays
|
348 |
+
foreach ($saved_set_id['fields_and_ratings'] as $single_value) {
|
349 |
+
//if field id is the same, add the rating
|
350 |
+
if ($array_to_return[$i]['value_id'] === $single_value->field) {
|
351 |
+
//save the rating
|
352 |
+
$array_to_return[$i]['value_rating'] = $single_value->rating;
|
353 |
+
}
|
354 |
+
}
|
355 |
+
}
|
356 |
+
}
|
357 |
+
}
|
358 |
+
//this is for list the set names
|
359 |
+
$i++;
|
360 |
+
}
|
361 |
+
|
362 |
+
return $array_to_return;
|
363 |
|
364 |
}
|
365 |
|
374 |
exit(__('Missing post or set id', 'yet-another-stars-rating'));
|
375 |
}
|
376 |
|
377 |
+
//set fields name and ids
|
378 |
+
$set_fields = yasr_get_multi_set_fields($set_id);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
379 |
|
380 |
+
//set meta values
|
381 |
+
$set_post_meta_values = get_post_meta($post_id, 'yasr_multiset_author_votes', true);
|
382 |
|
383 |
+
$array_to_return = yasr_return_multiset_array_with_ratings($set_id, $set_fields, $set_post_meta_values);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
384 |
|
385 |
echo json_encode($array_to_return);
|
386 |
|
|
|
|
|
|
|
387 |
}
|
388 |
|
389 |
|
398 |
|
399 |
global $wpdb;
|
400 |
|
401 |
+
$result = $wpdb->get_results($wpdb->prepare("SELECT f.field_name AS name, f.field_id AS id,
|
402 |
+
v.number_of_votes AS number_of_votes, v.sum_votes AS sum_votes
|
403 |
FROM " . YASR_MULTI_SET_FIELDS_TABLE . " AS f, " . YASR_MULTI_SET_VALUES_TABLE . " AS v
|
404 |
WHERE f.parent_set_id=%d
|
405 |
AND f.field_id = v.field_id
|
889 |
|
890 |
}
|
891 |
|
|
|
892 |
add_action('save_post', 'yasr_insert_review_type_callback');
|
893 |
|
894 |
function yasr_insert_review_type_callback($post_id) {
|
958 |
}
|
959 |
|
960 |
|
961 |
+
/****** Get multiple value and insert into database, used in yasr-metabox-multiple-rating ******/
|
962 |
+
|
963 |
+
add_action('save_post', 'yasr_save_multiset_editor');
|
964 |
+
|
965 |
+
function yasr_save_multiset_editor($post_id) {
|
966 |
+
|
967 |
+
if (isset($_POST['yasr_multiset_author_votes']) && isset($_POST['yasr_multiset_id'])) {
|
968 |
+
$field_and_vote_array = json_decode(sanitize_text_field(stripslashes($_POST['yasr_multiset_author_votes'])));
|
969 |
+
$set_id = (int) $_POST['yasr_multiset_id'];
|
970 |
+
$nonce = $_POST['yasr_nonce_save_multi_values'];
|
971 |
+
|
972 |
+
if ($set_id == '' || $field_and_vote_array == '') {
|
973 |
+
return;
|
974 |
+
}
|
975 |
+
|
976 |
+
} else {
|
977 |
+
return;
|
978 |
+
}
|
979 |
+
|
980 |
+
if (!current_user_can('publish_posts')) {
|
981 |
+
wp_die(__('You do not have sufficient permissions to access this page.', 'yet-another-stars-rating'));
|
982 |
+
}
|
983 |
+
|
984 |
+
if (!wp_verify_nonce($nonce, 'yasr_nonce_save_multi_values_action')) {
|
985 |
+
die('Security check');
|
986 |
+
}
|
987 |
+
|
988 |
+
$i = 0;
|
989 |
+
|
990 |
+
$data_to_save[$i] = array(
|
991 |
+
'set_id' => (int)$set_id,
|
992 |
+
'fields_and_ratings' => $field_and_vote_array
|
993 |
+
);
|
994 |
+
|
995 |
+
$i++;
|
996 |
+
|
997 |
+
$set_post_meta_values = get_post_meta($post_id, 'yasr_multiset_author_votes',true);
|
998 |
+
|
999 |
+
//If data for this post already exists
|
1000 |
+
if ($set_post_meta_values) {
|
1001 |
+
//first, loop saved fields and ratings
|
1002 |
+
foreach ($set_post_meta_values as $saved_set_id) {
|
1003 |
+
//if the saved set is different from the one that we're trying to save,
|
1004 |
+
//append data to save to the post meta
|
1005 |
+
if ($saved_set_id['set_id'] !== $set_id) {
|
1006 |
+
|
1007 |
+
$data_to_save[$i]['set_id'] = $saved_set_id['set_id'];
|
1008 |
+
$data_to_save[$i]['fields_and_ratings'] = $saved_set_id['fields_and_ratings'];
|
1009 |
+
|
1010 |
+
$i++;
|
1011 |
+
//Append data to save to the post meta
|
1012 |
+
|
1013 |
+
} //if the set is not stored
|
1014 |
+
}
|
1015 |
+
}
|
1016 |
+
|
1017 |
+
// Write new data
|
1018 |
+
update_post_meta($post_id, 'yasr_multiset_author_votes', $data_to_save);
|
1019 |
+
|
1020 |
+
|
1021 |
+
|
1022 |
+
} //End callback function
|
1023 |
+
|
1024 |
/******* Add post_meta on save_post if this post is excluded for auto insert *******/
|
1025 |
|
1026 |
if (YASR_AUTO_INSERT_ENABLED == 1) {
|
lib/yasr-functions.php
CHANGED
@@ -100,9 +100,15 @@ function yasr_add_admin_scripts($hook) {
|
|
100 |
|
101 |
do_action('yasr_add_admin_scripts_begin');
|
102 |
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
wp_enqueue_style('yasrcss', YASR_CSS_DIR . 'yasr-admin.css', false, YASR_VERSION_NUM, 'all');
|
104 |
wp_enqueue_script('yasradmin', YASR_JS_DIR . 'yasr-admin.js', array('jquery'), YASR_VERSION_NUM, true);
|
105 |
-
wp_enqueue_script('rater', YASR_JS_DIR .
|
106 |
|
107 |
do_action('yasr_add_admin_scripts_end', $hook);
|
108 |
|
100 |
|
101 |
do_action('yasr_add_admin_scripts_begin');
|
102 |
|
103 |
+
$rater_file_to_include = 'rater-js.js';
|
104 |
+
|
105 |
+
if (is_rtl()) {
|
106 |
+
$rater_file_to_include = 'rater-js-rtl.js';
|
107 |
+
}
|
108 |
+
|
109 |
wp_enqueue_style('yasrcss', YASR_CSS_DIR . 'yasr-admin.css', false, YASR_VERSION_NUM, 'all');
|
110 |
wp_enqueue_script('yasradmin', YASR_JS_DIR . 'yasr-admin.js', array('jquery'), YASR_VERSION_NUM, true);
|
111 |
+
wp_enqueue_script('rater', YASR_JS_DIR . $rater_file_to_include, '', YASR_VERSION_NUM, true);
|
112 |
|
113 |
do_action('yasr_add_admin_scripts_end', $hook);
|
114 |
|
lib/yasr-shortcode-functions.php
CHANGED
@@ -381,8 +381,6 @@ add_shortcode ('yasr_multiset', 'shortcode_multi_set_callback');
|
|
381 |
|
382 |
function shortcode_multi_set_callback($atts) {
|
383 |
|
384 |
-
global $wpdb;
|
385 |
-
|
386 |
// Attributes
|
387 |
$atts = shortcode_atts(
|
388 |
array(
|
@@ -394,8 +392,8 @@ function shortcode_multi_set_callback($atts) {
|
|
394 |
'yasr_multiset'
|
395 |
);
|
396 |
|
397 |
-
$post_id = $atts['postid'];
|
398 |
-
$
|
399 |
$show_average = $atts['show_average'];
|
400 |
|
401 |
//If it's not specified use get_the_id
|
@@ -405,73 +403,72 @@ function shortcode_multi_set_callback($atts) {
|
|
405 |
|
406 |
$shortcode_html = '<!-- Yasr Multi Set Shortcode-->';
|
407 |
|
408 |
-
|
409 |
-
$
|
410 |
-
|
411 |
-
$set_name_content = yasr_get_multi_set_values_and_field($post_id, $setid);
|
412 |
-
|
413 |
-
if (!$set_name_content) {
|
414 |
-
|
415 |
-
$set_name_content=$wpdb->get_results($wpdb->prepare("SELECT field_name AS name, field_id AS id
|
416 |
-
FROM " . YASR_MULTI_SET_FIELDS_TABLE . "
|
417 |
-
WHERE parent_set_id=%d
|
418 |
-
ORDER BY field_id ASC", $setid));
|
419 |
-
|
420 |
-
//if it still to be empty (e.g. wrong id passed)
|
421 |
-
if (!$set_name_content) {
|
422 |
-
return $shortcode_html;
|
423 |
-
}
|
424 |
|
|
|
|
|
|
|
|
|
425 |
}
|
426 |
|
427 |
-
|
|
|
|
|
428 |
|
429 |
-
|
430 |
-
|
431 |
|
432 |
-
$
|
433 |
-
$
|
434 |
|
435 |
-
foreach ($
|
436 |
//Avoid undefined if vote does not exists
|
437 |
-
|
438 |
-
$set_content->vote = 0;
|
439 |
-
}
|
440 |
-
|
441 |
-
$shortcode_html .= "<tr><td><span class=\"yasr-multi-set-name-field\">$set_content->name </span></td>";
|
442 |
-
|
443 |
-
$unique_id_identifier = $post_id . '_' . $setid . '_' . $set_content->id;
|
444 |
|
445 |
-
$shortcode_html .=
|
446 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
447 |
|
448 |
-
$multiset_vote_sum = $multiset_vote_sum + $set_content
|
449 |
$multiset_rows_number++;
|
450 |
|
451 |
}
|
452 |
|
453 |
-
if ($show_average !== false && $show_average !=='no' || $show_average === false && YASR_MULTI_SHOW_AVERAGE !== 'no') {
|
454 |
$multiset_average = $multiset_vote_sum / $multiset_rows_number;
|
455 |
$multiset_average = round($multiset_average, 1);
|
456 |
|
457 |
$average_txt = __("Average", "yet-another-stars-rating");
|
458 |
|
459 |
-
$average_unique_id_identifier =
|
460 |
|
461 |
-
$shortcode_html .=
|
462 |
-
<td colspan=
|
463 |
-
<span class=
|
464 |
-
<div class=
|
465 |
-
|
466 |
-
data-rater-
|
|
|
|
|
467 |
</td>
|
468 |
-
</tr>
|
469 |
-
|
470 |
|
471 |
}
|
472 |
|
473 |
$shortcode_html.="</table>";
|
474 |
-
|
475 |
$shortcode_html .= '<!--End Yasr Multi Set Shortcode-->';
|
476 |
|
477 |
return $shortcode_html;
|
@@ -739,9 +736,7 @@ function yasr_top_ten_highest_rated_callback() {
|
|
739 |
} //End foreach
|
740 |
|
741 |
$shortcode_html .= "</table>";
|
742 |
-
|
743 |
$shortcode_html .= '<!--End Yasr Top 10 highest Rated Shortcode-->';
|
744 |
-
|
745 |
return $shortcode_html;
|
746 |
|
747 |
} //end if $query_result
|
381 |
|
382 |
function shortcode_multi_set_callback($atts) {
|
383 |
|
|
|
|
|
384 |
// Attributes
|
385 |
$atts = shortcode_atts(
|
386 |
array(
|
392 |
'yasr_multiset'
|
393 |
);
|
394 |
|
395 |
+
$post_id = (int)$atts['postid'];
|
396 |
+
$set_id = (int)$atts['setid'];
|
397 |
$show_average = $atts['show_average'];
|
398 |
|
399 |
//If it's not specified use get_the_id
|
403 |
|
404 |
$shortcode_html = '<!-- Yasr Multi Set Shortcode-->';
|
405 |
|
406 |
+
//set fields name and ids
|
407 |
+
$set_fields = yasr_get_multi_set_fields($set_id);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
408 |
|
409 |
+
//If there is no set for that id, return
|
410 |
+
if (!$set_fields) {
|
411 |
+
$string = __('No Set Found with this ID', 'yet-another-stars-rating');
|
412 |
+
return $shortcode_html . $string;
|
413 |
}
|
414 |
|
415 |
+
//set meta values
|
416 |
+
$set_post_meta_values = get_post_meta($post_id, 'yasr_multiset_author_votes', true);
|
417 |
+
$multiset_content = yasr_return_multiset_array_with_ratings($set_id, $set_fields, $set_post_meta_values);
|
418 |
|
419 |
+
$multiset_vote_sum = 0;//avoid undefined variable
|
420 |
+
$multiset_rows_number = 0;//avoid undefined variable
|
421 |
|
422 |
+
$shortcode_html = '<!-- Yasr Visitor Multi Set Shortcode-->';
|
423 |
+
$shortcode_html.='<table class="yasr_table_multi_set_shortcode">';
|
424 |
|
425 |
+
foreach ($multiset_content as $set_content) {
|
426 |
//Avoid undefined if vote does not exists
|
427 |
+
$unique_id_identifier = str_shuffle(uniqid());
|
|
|
|
|
|
|
|
|
|
|
|
|
428 |
|
429 |
+
$shortcode_html .= '<tr>
|
430 |
+
<td>
|
431 |
+
<span class="yasr-multi-set-name-field">'
|
432 |
+
. $set_content['value_name'] .
|
433 |
+
'</span>
|
434 |
+
</td>
|
435 |
+
<td>
|
436 |
+
<div class="yasr-rater-stars"
|
437 |
+
id="'.$unique_id_identifier.'"
|
438 |
+
data-rater-postid="'.$post_id.'"
|
439 |
+
data-rating="'.$set_content['value_rating'].'"
|
440 |
+
data-rater-starsize="16">
|
441 |
+
</div>
|
442 |
+
</td>
|
443 |
+
</tr>';
|
444 |
|
445 |
+
$multiset_vote_sum = $multiset_vote_sum + $set_content['value_rating'];
|
446 |
$multiset_rows_number++;
|
447 |
|
448 |
}
|
449 |
|
450 |
+
if ($show_average !== false && $show_average !== 'no' || $show_average === false && YASR_MULTI_SHOW_AVERAGE !== 'no') {
|
451 |
$multiset_average = $multiset_vote_sum / $multiset_rows_number;
|
452 |
$multiset_average = round($multiset_average, 1);
|
453 |
|
454 |
$average_txt = __("Average", "yet-another-stars-rating");
|
455 |
|
456 |
+
$average_unique_id_identifier = str_shuffle(uniqid());
|
457 |
|
458 |
+
$shortcode_html .= '<tr>
|
459 |
+
<td colspan="2" class="yasr-multiset-average">
|
460 |
+
<span class="yasr-multiset-average-text">'.$average_txt.'</span>
|
461 |
+
<div class="yasr-rater-stars"
|
462 |
+
id="'.$average_unique_id_identifier.'"
|
463 |
+
data-rater-postid="'.$post_id.'"
|
464 |
+
data-rating="'.$multiset_average.'"
|
465 |
+
data-rater-starsize="24"></div>
|
466 |
</td>
|
467 |
+
</tr>';
|
|
|
468 |
|
469 |
}
|
470 |
|
471 |
$shortcode_html.="</table>";
|
|
|
472 |
$shortcode_html .= '<!--End Yasr Multi Set Shortcode-->';
|
473 |
|
474 |
return $shortcode_html;
|
736 |
} //End foreach
|
737 |
|
738 |
$shortcode_html .= "</table>";
|
|
|
739 |
$shortcode_html .= '<!--End Yasr Top 10 highest Rated Shortcode-->';
|
|
|
740 |
return $shortcode_html;
|
741 |
|
742 |
} //end if $query_result
|
readme.txt
CHANGED
@@ -3,9 +3,9 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
|
|
3 |
Tags: ratings, rating, postrating, google rating, 5 star, review, reviews, star rating, vote, votes, blocks
|
4 |
Requires at least: 4.3.0
|
5 |
Contributors: Dudo
|
6 |
-
Tested up to: 5.3
|
7 |
Requires PHP: 5.3
|
8 |
-
Stable tag: 2.0.
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
Boost the way people interact with your website, e-commerce or blog with an easy and intuitive WordPress rating system!
|
@@ -125,8 +125,13 @@ 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.0.8 =
|
129 |
-
* NEW FEATURE: Added a
|
130 |
More info here [here](https://yetanotherstarsrating.com/yasr-rich-snippets/)
|
131 |
* FIXED: warning that in some rare circumstances may appear in yasr_schema function
|
132 |
|
3 |
Tags: ratings, rating, postrating, google rating, 5 star, review, reviews, star rating, vote, votes, blocks
|
4 |
Requires at least: 4.3.0
|
5 |
Contributors: Dudo
|
6 |
+
Tested up to: 5.3.2
|
7 |
Requires PHP: 5.3
|
8 |
+
Stable tag: 2.0.9
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
11 |
Boost the way people interact with your website, e-commerce or blog with an easy and intuitive WordPress rating system!
|
125 |
|
126 |
The full changelog can be found in the plugin's directory. Recent entries:
|
127 |
|
128 |
+
= 2.0.9 =
|
129 |
+
* TWEAKED: This is the first of two important releases for YASR. Some changes in the database has been done.
|
130 |
+
**BACKUP YOUR DATABASE BEFORE UPDATING**
|
131 |
+
* FIXED: RTL support in admin area
|
132 |
+
|
133 |
= 2.0.8 =
|
134 |
+
* NEW FEATURE: Added a box to the top right, that will allow to select if the post is a review or not.
|
135 |
More info here [here](https://yetanotherstarsrating.com/yasr-rich-snippets/)
|
136 |
* FIXED: warning that in some rare circumstances may appear in yasr_schema function
|
137 |
|
yet-another-stars-rating.php
CHANGED
@@ -4,7 +4,7 @@
|
|
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.0.
|
8 |
* Author: Dario Curvino
|
9 |
* Author URI: https://dariocurvino.it/
|
10 |
* Text Domain: yet-another-stars-rating
|
@@ -76,7 +76,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.0.
|
80 |
//Plugin relative path
|
81 |
define( "YASR_ABSOLUTE_PATH", dirname( __FILE__ ) );
|
82 |
//Plugin RELATIVE PATH without slashes (just the directory's name)
|
@@ -196,14 +196,14 @@ if ( !function_exists( 'yasr_fs' ) ) {
|
|
196 |
require YASR_ABSOLUTE_PATH . '/lib/admin/settings/yasr-settings-functions.php';
|
197 |
require YASR_ABSOLUTE_PATH . '/lib/admin/class-wp-list-table.php';
|
198 |
require YASR_ABSOLUTE_PATH . '/lib/admin/editor/yasr-editor-functions.php';
|
|
|
199 |
}
|
200 |
|
201 |
global $wpdb ;
|
202 |
-
define( "YASR_VOTES_TABLE", $wpdb->prefix . 'yasr_votes' );
|
203 |
-
//Used in background
|
204 |
define( "YASR_MULTI_SET_NAME_TABLE", $wpdb->prefix . 'yasr_multi_set' );
|
205 |
define( "YASR_MULTI_SET_FIELDS_TABLE", $wpdb->prefix . 'yasr_multi_set_fields' );
|
206 |
define( "YASR_MULTI_SET_VALUES_TABLE", $wpdb->prefix . 'yasr_multi_values' );
|
|
|
207 |
define( "YASR_LOG_TABLE", $wpdb->prefix . 'yasr_log' );
|
208 |
define( "YASR_LOADER_IMAGE", YASR_IMG_DIR . "/loader.gif" );
|
209 |
//Text for button in settings pages
|
@@ -245,33 +245,6 @@ if ( !function_exists( 'yasr_fs' ) ) {
|
|
245 |
);
|
246 |
//when blog is deleted
|
247 |
add_filter( 'wpmu_drop_tables', 'yasr_on_delete_blog' );
|
248 |
-
/****** backward compatibility functions ******/
|
249 |
-
add_action( 'plugins_loaded', 'yasr_update_version' );
|
250 |
-
function yasr_update_version()
|
251 |
-
{
|
252 |
-
//do only in admin
|
253 |
-
|
254 |
-
if ( is_admin() ) {
|
255 |
-
global $wpdb ;
|
256 |
-
global $yasr_version_installed ;
|
257 |
-
global $yasr_stored_options ;
|
258 |
-
|
259 |
-
if ( $yasr_version_installed && $yasr_version_installed < '2.0.4' ) {
|
260 |
-
$yasr_stored_options['auto_insert_align'] = 'left';
|
261 |
-
update_option( 'yasr_general_options', $yasr_stored_options );
|
262 |
-
}
|
263 |
-
|
264 |
-
if ( $yasr_version_installed && $yasr_version_installed < '1.7.3' ) {
|
265 |
-
$wpdb->query( "ALTER TABLE " . YASR_MULTI_SET_FIELDS_TABLE . " CHANGE field_name field_name varchar(40) \n COLLATE 'utf8_unicode_ci' NOT NULL \n AFTER parent_set_id;\n " );
|
266 |
-
}
|
267 |
-
/****** End backward compatibility functions ******/
|
268 |
-
if ( $yasr_version_installed != YASR_VERSION_NUM ) {
|
269 |
-
update_option( 'yasr-version', YASR_VERSION_NUM );
|
270 |
-
}
|
271 |
-
}
|
272 |
-
|
273 |
-
}
|
274 |
-
|
275 |
//this add a link under the plugin name, must be in the main plugin file
|
276 |
add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'yasr_add_links_below_plugin_name' );
|
277 |
function yasr_add_links_below_plugin_name( $links )
|
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.0.9
|
8 |
* Author: Dario Curvino
|
9 |
* Author URI: https://dariocurvino.it/
|
10 |
* Text Domain: yet-another-stars-rating
|
76 |
yasr_fs();
|
77 |
// Signal that SDK was initiated.
|
78 |
do_action( 'yasr_fs_loaded' );
|
79 |
+
define( 'YASR_VERSION_NUM', '2.0.9' );
|
80 |
//Plugin relative path
|
81 |
define( "YASR_ABSOLUTE_PATH", dirname( __FILE__ ) );
|
82 |
//Plugin RELATIVE PATH without slashes (just the directory's name)
|
196 |
require YASR_ABSOLUTE_PATH . '/lib/admin/settings/yasr-settings-functions.php';
|
197 |
require YASR_ABSOLUTE_PATH . '/lib/admin/class-wp-list-table.php';
|
198 |
require YASR_ABSOLUTE_PATH . '/lib/admin/editor/yasr-editor-functions.php';
|
199 |
+
require YASR_ABSOLUTE_PATH . '/lib/admin/yasr-update-functions.php';
|
200 |
}
|
201 |
|
202 |
global $wpdb ;
|
|
|
|
|
203 |
define( "YASR_MULTI_SET_NAME_TABLE", $wpdb->prefix . 'yasr_multi_set' );
|
204 |
define( "YASR_MULTI_SET_FIELDS_TABLE", $wpdb->prefix . 'yasr_multi_set_fields' );
|
205 |
define( "YASR_MULTI_SET_VALUES_TABLE", $wpdb->prefix . 'yasr_multi_values' );
|
206 |
+
define( "YASR_LOG_MULTI_SET", $wpdb->prefix . 'yasr_log_multi_set' );
|
207 |
define( "YASR_LOG_TABLE", $wpdb->prefix . 'yasr_log' );
|
208 |
define( "YASR_LOADER_IMAGE", YASR_IMG_DIR . "/loader.gif" );
|
209 |
//Text for button in settings pages
|
245 |
);
|
246 |
//when blog is deleted
|
247 |
add_filter( 'wpmu_drop_tables', 'yasr_on_delete_blog' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
//this add a link under the plugin name, must be in the main plugin file
|
249 |
add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'yasr_add_links_below_plugin_name' );
|
250 |
function yasr_add_links_below_plugin_name( $links )
|