Version Description
- TWEAKED: new pricing page
- Minor changes
Download this release
Release Info
Developer | Dudo |
Plugin | Yasr – Yet Another Stars Rating |
Version | 2.7.6 |
Comparing to | |
See all releases |
Code changes from version 2.7.5 to 2.7.6
- admin/css/yasr-pricing-page.css +370 -0
- admin/js/src/yasr-pricing-page.js +415 -0
- admin/js/yasr-pricing-page.js +1 -0
- admin/settings/classes/YasrSettings.php +4 -2
- admin/settings/yasr-pricing-page.php +126 -0
- admin/settings/yasr-settings-functions-misc.php +38 -7
- admin/yasr-admin-functions.php +39 -3
- includes/img/buymecofyel.png +0 -0
- includes/img/yasr-settings-stats.png +0 -0
- includes/yasr-includes-functions.php +1 -0
- readme.txt +5 -1
- yet-another-stars-rating.php +2 -2
admin/css/yasr-pricing-page.css
ADDED
@@ -0,0 +1,370 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* There is already a notice in the bottom,
|
2 |
+
* there is no need to another one
|
3 |
+
*/
|
4 |
+
.fs-secure-notice{
|
5 |
+
display:none;
|
6 |
+
}
|
7 |
+
|
8 |
+
#yasr-table-container {
|
9 |
+
display: flex;
|
10 |
+
flex-direction: column;
|
11 |
+
justify-content: safe center;
|
12 |
+
align-items: safe center;
|
13 |
+
}
|
14 |
+
|
15 |
+
#yasr-pricing-table {
|
16 |
+
--nb-items: 3;
|
17 |
+
color: #434446;
|
18 |
+
font-family: sans-serif;
|
19 |
+
line-height: 1.5;
|
20 |
+
display: flex;
|
21 |
+
max-width: 100%;
|
22 |
+
padding: 32px;
|
23 |
+
justify-content: center;
|
24 |
+
flex-wrap: wrap;
|
25 |
+
gap: var(--gap);
|
26 |
+
}
|
27 |
+
|
28 |
+
.yasr-pricing-table-item {
|
29 |
+
--primary: #F34A4E;
|
30 |
+
display: flex;
|
31 |
+
flex-direction: column;
|
32 |
+
flex-grow: 1;
|
33 |
+
min-width: max-content;
|
34 |
+
background: white;
|
35 |
+
overflow: hidden;
|
36 |
+
flex-basis: calc( calc(100% - (var(--gap) * var(--nb-items)) )/var(--nb-items) );
|
37 |
+
min-height: 660px;
|
38 |
+
box-shadow: 0 18px 58px rgba(66, 11, 89, 0.07),
|
39 |
+
0 6.5703px 21.171px rgba(66, 11, 89, 0.0482987),
|
40 |
+
0 3.18976px 10.2781px rgba(66, 11, 89, 0.0389404),
|
41 |
+
0 1.56368px 5.03852px rgba(66, 11, 89, 0.0310596),
|
42 |
+
0 0.618281px 1.99224px rgba(66, 11, 89, 0.0217013);
|
43 |
+
}
|
44 |
+
|
45 |
+
.yasr-pricing-table-item:nth-last-child(4):first-child,
|
46 |
+
.yasr-pricing-table-item:nth-last-child(4):first-child ~ .yasr-pricing-table-item {
|
47 |
+
--nb-items: 4;
|
48 |
+
}
|
49 |
+
|
50 |
+
.yasr-pricing-table-item:nth-last-child(5):first-child,
|
51 |
+
.yasr-pricing-table-item:nth-last-child(5):first-child ~ .yasr-pricing-table-item {
|
52 |
+
--nb-items: 5;
|
53 |
+
}
|
54 |
+
|
55 |
+
.yasr-pricing-table-item.is-highlighted {
|
56 |
+
--primary: #1FA19C;
|
57 |
+
transform: scale(1.05);
|
58 |
+
}
|
59 |
+
|
60 |
+
.yasr-pricing-table-item > * {
|
61 |
+
padding: 24px;
|
62 |
+
}
|
63 |
+
|
64 |
+
.yasr-pricing-table-item p,
|
65 |
+
.yasr-pricing-table-item ul,
|
66 |
+
.yasr-pricing-table-item h2 {
|
67 |
+
margin-top: 0;
|
68 |
+
margin-bottom: 0;
|
69 |
+
}
|
70 |
+
|
71 |
+
.yasr-pricing-table-heading {
|
72 |
+
background: var(--primary);
|
73 |
+
}
|
74 |
+
.yasr-pricing-table-title, .yasr-pricing-table-subtitle {
|
75 |
+
text-align: center;
|
76 |
+
color: white;
|
77 |
+
}
|
78 |
+
.yasr-pricing-table-title {
|
79 |
+
font-size: 24px;
|
80 |
+
}
|
81 |
+
.yasr-pricing-table-subtitle {
|
82 |
+
font-size: 16px;
|
83 |
+
}
|
84 |
+
|
85 |
+
.yasr-pricing-table-feature {
|
86 |
+
font-size: 15px;
|
87 |
+
padding: 8px 0;
|
88 |
+
list-style: none;
|
89 |
+
border-top: 1px solid #eee;
|
90 |
+
margin-bottom: 0;
|
91 |
+
}
|
92 |
+
|
93 |
+
.yasr-pricing-table-footer {
|
94 |
+
padding-top: 0;
|
95 |
+
margin-top: auto;
|
96 |
+
text-align: center;
|
97 |
+
}
|
98 |
+
|
99 |
+
.yasr-pring-table-price {
|
100 |
+
font-size: 40px;
|
101 |
+
font-weight: bold;
|
102 |
+
color: var(--primary);
|
103 |
+
}
|
104 |
+
|
105 |
+
.yasr-pring-table-price small {
|
106 |
+
font-size: 16px;
|
107 |
+
color: #737373;
|
108 |
+
}
|
109 |
+
|
110 |
+
.yasr-pricing-table-price-desc {
|
111 |
+
font-weight: normal;
|
112 |
+
font-size: 14px;
|
113 |
+
color: #737373;
|
114 |
+
}
|
115 |
+
|
116 |
+
.yasr-buy-button {
|
117 |
+
display: block;
|
118 |
+
text-align: center;
|
119 |
+
margin-top: 16px;
|
120 |
+
padding: 8px 16px;
|
121 |
+
font-size: 22px;
|
122 |
+
font-weight: bold;
|
123 |
+
text-decoration: none;
|
124 |
+
color: white;
|
125 |
+
border: 2px solid #F34A4EFF;
|
126 |
+
background: #F34A4EFF;
|
127 |
+
}
|
128 |
+
|
129 |
+
a.yasr-buy-button{
|
130 |
+
text-decoration: none;
|
131 |
+
color: white;
|
132 |
+
}
|
133 |
+
|
134 |
+
a.yasr-buy-button:active, a.yasr-buy-button:focus {
|
135 |
+
box-shadow: none;
|
136 |
+
}
|
137 |
+
|
138 |
+
.is-highlighted .yasr-buy-button {
|
139 |
+
background: #1FA19CFF;
|
140 |
+
color: white;
|
141 |
+
border: 2px solid #1FA19CFF;
|
142 |
+
}
|
143 |
+
|
144 |
+
/** Customize Radio cycle **/
|
145 |
+
#yasr-radio-billing-cycle {
|
146 |
+
margin: 10px;
|
147 |
+
text-align: center;
|
148 |
+
}
|
149 |
+
|
150 |
+
#yasr-radio-billing-cycle input[type="radio"] {
|
151 |
+
opacity: 0;
|
152 |
+
position: fixed;
|
153 |
+
width: 0;
|
154 |
+
}
|
155 |
+
|
156 |
+
#yasr-radio-billing-cycle label {
|
157 |
+
display: inline-block;
|
158 |
+
padding: 10px 20px;
|
159 |
+
font-size: 16px;
|
160 |
+
background-color: #fff;
|
161 |
+
cursor: pointer;
|
162 |
+
border: 1px solid #adadad;
|
163 |
+
}
|
164 |
+
|
165 |
+
#yasr-radio-billing-cycle label:hover {
|
166 |
+
background-color: #1FA19C;
|
167 |
+
color: #FFF;
|
168 |
+
}
|
169 |
+
|
170 |
+
#yasr-radio-billing-cycle input[type="radio"]:checked + label {
|
171 |
+
background-color: #1FA19C;
|
172 |
+
color: #FFF;
|
173 |
+
}
|
174 |
+
|
175 |
+
/*Middle bottom, remove left and right border*/
|
176 |
+
#yasr-billing-cycle-annual + label{
|
177 |
+
border-left: none;
|
178 |
+
border-right: none;
|
179 |
+
}
|
180 |
+
|
181 |
+
/** switch **/
|
182 |
+
#yasr-pricing-switch-container {
|
183 |
+
margin-top: 20px;
|
184 |
+
text-align: center;
|
185 |
+
}
|
186 |
+
|
187 |
+
.yasr-pricing-text-switcher {
|
188 |
+
font-size: 18px;
|
189 |
+
font-weight: bold;
|
190 |
+
color: #434446;
|
191 |
+
}
|
192 |
+
|
193 |
+
.yasr-pricing-switch {
|
194 |
+
position: relative;
|
195 |
+
display: inline-block;
|
196 |
+
width: 54px;
|
197 |
+
height: 28px;
|
198 |
+
}
|
199 |
+
|
200 |
+
.yasr-pricing-switch input {
|
201 |
+
opacity: 0;
|
202 |
+
width: 0;
|
203 |
+
height: 0;
|
204 |
+
}
|
205 |
+
|
206 |
+
.yasr-pricing-slider {
|
207 |
+
position: absolute;
|
208 |
+
cursor: pointer;
|
209 |
+
top: 0;
|
210 |
+
left: 0;
|
211 |
+
right: 0;
|
212 |
+
bottom: 0;
|
213 |
+
background-color: #1FA19C;
|
214 |
+
-webkit-transition: .4s;
|
215 |
+
transition: .4s;
|
216 |
+
}
|
217 |
+
|
218 |
+
.yasr-pricing-slider:before {
|
219 |
+
position: absolute;
|
220 |
+
content: "";
|
221 |
+
height: 20px;
|
222 |
+
width: 20px;
|
223 |
+
left: 4px;
|
224 |
+
bottom: 4px;
|
225 |
+
background-color: white;
|
226 |
+
-webkit-transition: .4s;
|
227 |
+
transition: .4s;
|
228 |
+
}
|
229 |
+
|
230 |
+
input:focus + .yasr-pricing-slider {
|
231 |
+
box-shadow: 0 0 1px #2196F3;
|
232 |
+
}
|
233 |
+
|
234 |
+
input:checked + .yasr-pricing-slider:before {
|
235 |
+
-webkit-transform: translateX(26px);
|
236 |
+
-ms-transform: translateX(26px);
|
237 |
+
transform: translateX(26px);
|
238 |
+
}
|
239 |
+
|
240 |
+
/* Money Back */
|
241 |
+
#money_back_guarantee_cont {
|
242 |
+
margin-top: 10px;
|
243 |
+
display: flex;
|
244 |
+
justify-content: center;
|
245 |
+
}
|
246 |
+
|
247 |
+
#money_back_guarantee {
|
248 |
+
text-align: center;
|
249 |
+
background-color: white;
|
250 |
+
margin-bottom: 30px;
|
251 |
+
padding: 10px 30px 20px 30px;
|
252 |
+
max-width: 800px;
|
253 |
+
}
|
254 |
+
|
255 |
+
#money_back_guarantee span {
|
256 |
+
line-height: 0;
|
257 |
+
}
|
258 |
+
|
259 |
+
#money_back_guarantee h1 {
|
260 |
+
text-align: center;
|
261 |
+
font-size: 2em;
|
262 |
+
font-weight: bold;
|
263 |
+
color: #6bc406;
|
264 |
+
-webkit-font-smoothing: antialiased;
|
265 |
+
margin-top: 10px;
|
266 |
+
}
|
267 |
+
|
268 |
+
#money_back_guarantee p {
|
269 |
+
margin: 10px 0;
|
270 |
+
font-size: 16px;
|
271 |
+
}
|
272 |
+
|
273 |
+
#money_back_guarantee li {
|
274 |
+
font-size: 16px;
|
275 |
+
list-style: disc;
|
276 |
+
}
|
277 |
+
|
278 |
+
#money_back_guarantee h1 .stars, #money_back_guarantee h1 .stars i {
|
279 |
+
display: inline-block;
|
280 |
+
vertical-align: middle;
|
281 |
+
font-style: normal;
|
282 |
+
}
|
283 |
+
|
284 |
+
#money_back_guarantee h1 .stars .last {
|
285 |
+
font-size: 0.9em;
|
286 |
+
}
|
287 |
+
|
288 |
+
#money_back_guarantee h1 .stars .middle {
|
289 |
+
font-size: 1.2em;
|
290 |
+
}
|
291 |
+
|
292 |
+
#money_back_guarantee h1 .stars .first {
|
293 |
+
font-size: 1.5em;
|
294 |
+
}
|
295 |
+
|
296 |
+
#yasr-refund-policy-cont {
|
297 |
+
display: flex;
|
298 |
+
justify-content: center;
|
299 |
+
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
|
300 |
+
}
|
301 |
+
|
302 |
+
.yasr-refund-policy {
|
303 |
+
display: none; /* Hidden by default */
|
304 |
+
position: fixed; /* Stay in place */
|
305 |
+
z-index: 9999; /* Sit on top */
|
306 |
+
padding-top: 100px; /* Location of the box */
|
307 |
+
top: 0;
|
308 |
+
overflow: auto; /* Enable scroll if needed */
|
309 |
+
}
|
310 |
+
|
311 |
+
#yasr-modal-content {
|
312 |
+
background-color: #fefefe;
|
313 |
+
margin: auto;
|
314 |
+
padding-top: 10px;
|
315 |
+
padding-left: 20px;
|
316 |
+
padding-right: 15px;
|
317 |
+
border: 1px solid #888;
|
318 |
+
}
|
319 |
+
|
320 |
+
#yasr-modal-content p {
|
321 |
+
font-size: 14px;
|
322 |
+
}
|
323 |
+
|
324 |
+
#yasr-modal-content ul {
|
325 |
+
padding-left: 14px;
|
326 |
+
list-style: disc;
|
327 |
+
}
|
328 |
+
#yasr-modal-content li {
|
329 |
+
font-size: 14px;
|
330 |
+
}
|
331 |
+
|
332 |
+
/* The Close Button */
|
333 |
+
.yasr-close-modal-policy {
|
334 |
+
color: #aaaaaa;
|
335 |
+
float: right;
|
336 |
+
font-size: 28px;
|
337 |
+
font-weight: bold;
|
338 |
+
}
|
339 |
+
|
340 |
+
.yasr-close-modal-policy:hover,
|
341 |
+
.yasr-close-modal-policy:focus {
|
342 |
+
color: #000;
|
343 |
+
text-decoration: none;
|
344 |
+
cursor: pointer;
|
345 |
+
}
|
346 |
+
|
347 |
+
/**** FAQ ****/
|
348 |
+
#yasr-pricing-faq {
|
349 |
+
margin-top: 30px;
|
350 |
+
padding: 30px;
|
351 |
+
display: flex;
|
352 |
+
justify-content: space-between;
|
353 |
+
flex-wrap: wrap;
|
354 |
+
}
|
355 |
+
|
356 |
+
.yasr-pricing-faq-row {
|
357 |
+
display: inline-block;
|
358 |
+
text-align: center;
|
359 |
+
width: 100%;
|
360 |
+
background-color: white;
|
361 |
+
}
|
362 |
+
|
363 |
+
.yasr-pricing-faq-row h2, h3 {
|
364 |
+
font-size: 18px;
|
365 |
+
color: #434446;
|
366 |
+
}
|
367 |
+
.yasr-pricing-faq-row p {
|
368 |
+
font-size: 14px;
|
369 |
+
color: #434446;
|
370 |
+
}
|
admin/js/src/yasr-pricing-page.js
ADDED
@@ -0,0 +1,415 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Print the currency
|
3 |
+
*
|
4 |
+
* @param props
|
5 |
+
* @return {JSX.Element}
|
6 |
+
* @constructor
|
7 |
+
*/
|
8 |
+
function YasrPricingCurrency (props) {
|
9 |
+
let symbol = '$';
|
10 |
+
if(props.name === 'eur') {
|
11 |
+
symbol = '€';
|
12 |
+
}
|
13 |
+
return (
|
14 |
+
<small>{symbol} </small>
|
15 |
+
)
|
16 |
+
}
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Print the billing cycle near the price
|
20 |
+
*
|
21 |
+
* @param props
|
22 |
+
* @return {JSX.Element}
|
23 |
+
* @constructor
|
24 |
+
*/
|
25 |
+
function YasrPricingBillingCycle (props) {
|
26 |
+
let cycle = '/year';
|
27 |
+
if(props.name === 'monthly') {
|
28 |
+
cycle = '/month';
|
29 |
+
}
|
30 |
+
if(props.name === 'lifetime') {
|
31 |
+
cycle = '';
|
32 |
+
}
|
33 |
+
return (
|
34 |
+
<small>{cycle}</small>
|
35 |
+
)
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Print the rows with the features
|
40 |
+
*
|
41 |
+
* @param props
|
42 |
+
* @return {JSX.Element}
|
43 |
+
* @constructor
|
44 |
+
*/
|
45 |
+
|
46 |
+
function YasrPricingPrintFeatures(props) {
|
47 |
+
let numberOfSites = ' 1 website';
|
48 |
+
if(props.license === 'plus') {
|
49 |
+
numberOfSites = ' 5 websites'
|
50 |
+
}
|
51 |
+
if(props.license === 'enterprise') {
|
52 |
+
numberOfSites = ' 30 websites'
|
53 |
+
}
|
54 |
+
return (
|
55 |
+
<ul className="PT-Features">
|
56 |
+
<li className="yasr-pricing-table-feature"><strong>1 year</strong> of supports and updates <br/>for
|
57 |
+
<strong>{numberOfSites}</strong></li>
|
58 |
+
<li className="yasr-pricing-table-feature">User reviews</li>
|
59 |
+
<li className="yasr-pricing-table-feature">Custom rankings</li>
|
60 |
+
<li className="yasr-pricing-table-feature">20 + ready to use themes</li>
|
61 |
+
<li className="yasr-pricing-table-feature">Upload your own theme</li>
|
62 |
+
<li className="yasr-pricing-table-feature">Add fake ratings</li>
|
63 |
+
<li className="yasr-pricing-table-feature">Direct email support</li>
|
64 |
+
{props.cycle === 'lifetime' && (
|
65 |
+
<li className="yasr-pricing-table-feature">We setup the plugin for free <br/>(only lifetime plans)</li>
|
66 |
+
)}
|
67 |
+
</ul>
|
68 |
+
);
|
69 |
+
}
|
70 |
+
|
71 |
+
function YasrPricingPrice(props) {
|
72 |
+
let price = '';
|
73 |
+
let licenses = 1;
|
74 |
+
if(props.license === 'single') {
|
75 |
+
if(props.cycle === 'monthly') {
|
76 |
+
if(props.currency === 'eur') {
|
77 |
+
//eur
|
78 |
+
price = '4.49'
|
79 |
+
} else {
|
80 |
+
//usd
|
81 |
+
price = '4.99'
|
82 |
+
}
|
83 |
+
}
|
84 |
+
else if (props.cycle === 'lifetime') {
|
85 |
+
if(props.currency === 'eur') {
|
86 |
+
//eur
|
87 |
+
price = '129.99'
|
88 |
+
} else {
|
89 |
+
//usd
|
90 |
+
price = '149.99'
|
91 |
+
}
|
92 |
+
}
|
93 |
+
//annual prices
|
94 |
+
else {
|
95 |
+
if(props.currency === 'eur') {
|
96 |
+
//eur
|
97 |
+
price = '41.99'
|
98 |
+
} else {
|
99 |
+
//usd
|
100 |
+
price = '47.88'
|
101 |
+
}
|
102 |
+
}
|
103 |
+
}
|
104 |
+
else if(props.license === 'plus') {
|
105 |
+
licenses = 5;
|
106 |
+
if(props.cycle === 'monthly') {
|
107 |
+
if(props.currency === 'eur') {
|
108 |
+
//eur
|
109 |
+
price = '8.99'
|
110 |
+
} else {
|
111 |
+
//usd
|
112 |
+
price = '9.99'
|
113 |
+
}
|
114 |
+
}
|
115 |
+
else if (props.cycle === 'lifetime') {
|
116 |
+
if(props.currency === 'eur') {
|
117 |
+
//eur
|
118 |
+
price = '249.99'
|
119 |
+
} else {
|
120 |
+
//usd
|
121 |
+
price = '289.99'
|
122 |
+
}
|
123 |
+
}
|
124 |
+
//annual prices
|
125 |
+
else {
|
126 |
+
if(props.currency === 'eur') {
|
127 |
+
//eur
|
128 |
+
price = '83.88'
|
129 |
+
} else {
|
130 |
+
//usd
|
131 |
+
price = '95.88'
|
132 |
+
}
|
133 |
+
}
|
134 |
+
}
|
135 |
+
else if(props.license === 'enterprise') {
|
136 |
+
licenses = 30;
|
137 |
+
if(props.cycle === 'monthly') {
|
138 |
+
if(props.currency === 'eur') {
|
139 |
+
//eur
|
140 |
+
price = '12.99'
|
141 |
+
} else {
|
142 |
+
//usd
|
143 |
+
price = '14.99'
|
144 |
+
}
|
145 |
+
}
|
146 |
+
else if (props.cycle === 'lifetime') {
|
147 |
+
if(props.currency === 'eur') {
|
148 |
+
//eur
|
149 |
+
price = '359.99'
|
150 |
+
} else {
|
151 |
+
//usd
|
152 |
+
price = '439.99'
|
153 |
+
}
|
154 |
+
}
|
155 |
+
//annual prices
|
156 |
+
else {
|
157 |
+
if(props.currency === 'eur') {
|
158 |
+
//eur
|
159 |
+
price = '119.88'
|
160 |
+
} else {
|
161 |
+
//usd
|
162 |
+
price = '143.88'
|
163 |
+
}
|
164 |
+
}
|
165 |
+
}
|
166 |
+
return (
|
167 |
+
<div className="yasr-pring-table-price">
|
168 |
+
<YasrPricingCurrency name={props.currency} />
|
169 |
+
<span>{price}</span>
|
170 |
+
<YasrPricingBillingCycle name={props.cycle} />
|
171 |
+
<YasrPricingPriceDesc cycle={props.cycle} currency={props.currency} license={props.license}/>
|
172 |
+
<p className="PT-CTA">
|
173 |
+
<a href="#"
|
174 |
+
className="yasr-buy-button"
|
175 |
+
onClick={(event) => {
|
176 |
+
YasrPricingRedirect(props.cycle, licenses, props.currency)
|
177 |
+
event.preventDefault();
|
178 |
+
}}
|
179 |
+
>Buy YASR </a>
|
180 |
+
</p>
|
181 |
+
</div>
|
182 |
+
);
|
183 |
+
}
|
184 |
+
|
185 |
+
/**
|
186 |
+
* Print the monthly price for annual
|
187 |
+
*
|
188 |
+
* @param props
|
189 |
+
* @return {JSX.Element}
|
190 |
+
* @constructor
|
191 |
+
*/
|
192 |
+
function YasrPricingPriceDesc(props) {
|
193 |
+
if(props.cycle === 'annual') {
|
194 |
+
let price = '';
|
195 |
+
if(props.license === 'plus') {
|
196 |
+
if(props.currency === 'eur') {
|
197 |
+
//eur
|
198 |
+
price = '6.99'
|
199 |
+
} else {
|
200 |
+
//usd
|
201 |
+
price = '7.99'
|
202 |
+
}
|
203 |
+
} else if(props.license === 'enterprise') {
|
204 |
+
if(props.currency === 'eur') {
|
205 |
+
//eur
|
206 |
+
price = '9.99'
|
207 |
+
} else {
|
208 |
+
//usd
|
209 |
+
price = '11.99'
|
210 |
+
}
|
211 |
+
}
|
212 |
+
//single site price
|
213 |
+
else{
|
214 |
+
if(props.currency === 'eur') {
|
215 |
+
//eur
|
216 |
+
price = '3.49'
|
217 |
+
} else {
|
218 |
+
//usd
|
219 |
+
price = '3.99'
|
220 |
+
}
|
221 |
+
}
|
222 |
+
|
223 |
+
return (
|
224 |
+
<p className="yasr-pricing-table-price-desc">
|
225 |
+
<YasrPricingCurrency name={props.currency}/>
|
226 |
+
{price} /month
|
227 |
+
</p>
|
228 |
+
);
|
229 |
+
}
|
230 |
+
return (
|
231 |
+
<></>
|
232 |
+
)
|
233 |
+
}
|
234 |
+
|
235 |
+
/**
|
236 |
+
*
|
237 |
+
* @param cycle
|
238 |
+
* @param licenses
|
239 |
+
* @param currency
|
240 |
+
*
|
241 |
+
* @return void;
|
242 |
+
*/
|
243 |
+
function YasrPricingRedirect (cycle, licenses, currency) {
|
244 |
+
const params = {
|
245 |
+
billing_cycle: cycle,
|
246 |
+
licenses: licenses,
|
247 |
+
id: 'yasr_checkout',
|
248 |
+
page: 'yasr_settings_page-pricing',
|
249 |
+
checkout: 'true',
|
250 |
+
plan_id: '2778',
|
251 |
+
plan_name: 'yasrpro',
|
252 |
+
disable_licenses_selector: true,
|
253 |
+
hide_billing_cycles: true,
|
254 |
+
currency: currency
|
255 |
+
};
|
256 |
+
|
257 |
+
let paramsBody = [];
|
258 |
+
for (let property in params) {
|
259 |
+
let encodedKey = encodeURIComponent(property);
|
260 |
+
let encodedValue = encodeURIComponent(params[property]);
|
261 |
+
paramsBody.push(encodedKey + "=" + encodedValue);
|
262 |
+
}
|
263 |
+
paramsBody = paramsBody.join("&");
|
264 |
+
|
265 |
+
let linkRedirect = yasrCommonData.adminUrl+'admin.php?'+paramsBody;
|
266 |
+
|
267 |
+
window.open(linkRedirect,"_self");
|
268 |
+
}
|
269 |
+
|
270 |
+
/**
|
271 |
+
*
|
272 |
+
*/
|
273 |
+
class PricingTable extends React.Component {
|
274 |
+
constructor(props) {
|
275 |
+
super(props)
|
276 |
+
this.state = {
|
277 |
+
currencyName: 'usd',
|
278 |
+
cycle: 'annual'
|
279 |
+
}
|
280 |
+
|
281 |
+
this.updateCurrency = this.updateCurrency.bind(this);
|
282 |
+
this.updateCycle = this.updateCycle.bind(this);
|
283 |
+
}
|
284 |
+
|
285 |
+
updateCurrency (event) {
|
286 |
+
const target = event.target;
|
287 |
+
const currencySelected = target.type === 'checkbox' ? target.checked : target.value;
|
288 |
+
|
289 |
+
if (currencySelected === true) {
|
290 |
+
this.setState({currencyName: 'eur'});
|
291 |
+
} else {
|
292 |
+
this.setState({currencyName: 'usd'});
|
293 |
+
}
|
294 |
+
}
|
295 |
+
|
296 |
+
updateCycle (event) {
|
297 |
+
this.setState({cycle: event.target.value});
|
298 |
+
}
|
299 |
+
|
300 |
+
render() {
|
301 |
+
return (
|
302 |
+
<>
|
303 |
+
<div id="yasr-radio-billing-cycle">
|
304 |
+
<input
|
305 |
+
type="radio"
|
306 |
+
id="yasr-billing-cycle-monthly"
|
307 |
+
name="billing-cycle"
|
308 |
+
value="monthly"
|
309 |
+
onChange={this.updateCycle}
|
310 |
+
checked={this.state.cycle === "monthly"}
|
311 |
+
/>
|
312 |
+
<label htmlFor='yasr-billing-cycle-monthly'>
|
313 |
+
Monthly
|
314 |
+
</label>
|
315 |
+
|
316 |
+
<input
|
317 |
+
type="radio"
|
318 |
+
id="yasr-billing-cycle-annual"
|
319 |
+
name="billing-cycle"
|
320 |
+
value="annual"
|
321 |
+
onChange={this.updateCycle}
|
322 |
+
checked={this.state.cycle === "annual"}
|
323 |
+
/>
|
324 |
+
<label htmlFor='yasr-billing-cycle-annual'>
|
325 |
+
Annual
|
326 |
+
</label>
|
327 |
+
|
328 |
+
<input
|
329 |
+
type="radio"
|
330 |
+
id="yasr-billing-cycle-lifetime"
|
331 |
+
name="billing-cycle"
|
332 |
+
value="lifetime"
|
333 |
+
onChange={this.updateCycle}
|
334 |
+
checked={this.state.cycle === "lifetime"}
|
335 |
+
/>
|
336 |
+
<label htmlFor='yasr-billing-cycle-lifetime'>
|
337 |
+
Lifetime
|
338 |
+
</label>
|
339 |
+
</div>
|
340 |
+
|
341 |
+
<div id="yasr-pricing-table">
|
342 |
+
<div className="yasr-pricing-table-item">
|
343 |
+
<header className="yasr-pricing-table-heading">
|
344 |
+
<h2 className="yasr-pricing-table-title">Plus</h2>
|
345 |
+
<p className="yasr-pricing-table-subtitle">5 websites</p>
|
346 |
+
</header>
|
347 |
+
<YasrPricingPrintFeatures cycle={this.state.cycle} license='plus'/>
|
348 |
+
<div className="yasr-pricing-table-footer">
|
349 |
+
<YasrPricingPrice cycle={this.state.cycle} currency={this.state.currencyName} license='plus'/>
|
350 |
+
</div>
|
351 |
+
</div>
|
352 |
+
|
353 |
+
<div className="yasr-pricing-table-item is-highlighted">
|
354 |
+
<header className="yasr-pricing-table-heading">
|
355 |
+
<h2 className="yasr-pricing-table-title">Single</h2>
|
356 |
+
<p className="yasr-pricing-table-subtitle"> 1 website</p>
|
357 |
+
</header>
|
358 |
+
<YasrPricingPrintFeatures cycle={this.state.cycle} license='single'/>
|
359 |
+
<div className="yasr-pricing-table-footer">
|
360 |
+
<YasrPricingPrice cycle={this.state.cycle} currency={this.state.currencyName} license='single'/>
|
361 |
+
</div>
|
362 |
+
</div>
|
363 |
+
|
364 |
+
<div className="yasr-pricing-table-item">
|
365 |
+
<header className="yasr-pricing-table-heading">
|
366 |
+
<h2 className="yasr-pricing-table-title">Enterprise</h2>
|
367 |
+
<p className="yasr-pricing-table-subtitle"> 30 websites</p>
|
368 |
+
</header>
|
369 |
+
<YasrPricingPrintFeatures cycle={this.state.cycle} license='enterprise'/>
|
370 |
+
<div className="yasr-pricing-table-footer">
|
371 |
+
<YasrPricingPrice cycle={this.state.cycle} currency={this.state.currencyName} license='enterprise'/>
|
372 |
+
</div>
|
373 |
+
</div>
|
374 |
+
</div>
|
375 |
+
|
376 |
+
<div id="switch-container">
|
377 |
+
<span className="yasr-pricing-text-switcher"> Display Prices In US $ </span>
|
378 |
+
<label className="yasr-pricing-switch">
|
379 |
+
<input type="checkbox" onChange={this.updateCurrency} />
|
380 |
+
<span className="yasr-pricing-slider" />
|
381 |
+
</label>
|
382 |
+
<span className="yasr-pricing-text-switcher"> €</span>
|
383 |
+
</div>
|
384 |
+
</>
|
385 |
+
);
|
386 |
+
}
|
387 |
+
}
|
388 |
+
|
389 |
+
ReactDOM.render(<PricingTable />, document.getElementById('yasr-table-container'));
|
390 |
+
|
391 |
+
// Get the button that opens the modal
|
392 |
+
const btn = document.getElementById('yasr-link-policy');
|
393 |
+
const btn2 = document.getElementById('yasr-link-policy-faq');
|
394 |
+
// Get the modal
|
395 |
+
const modal = document.getElementById('yasr-refund-policy');
|
396 |
+
//
|
397 |
+
const close = document.getElementById('yasr-close-modal-policy');
|
398 |
+
|
399 |
+
// When the user clicks on the button, open the modal
|
400 |
+
btn.addEventListener("click", ()=>{
|
401 |
+
modal.style.display = "block";
|
402 |
+
document.body.style.backgroundColor = 'rgba(0,0,0,0.7)'; /* Black w/ opacity */
|
403 |
+
});
|
404 |
+
|
405 |
+
// When the user clicks on the button, open the modal
|
406 |
+
btn2.addEventListener("click", ()=>{
|
407 |
+
modal.style.display = "block";
|
408 |
+
document.body.style.backgroundColor = 'rgba(0,0,0,0.7)'; /* Black w/ opacity */
|
409 |
+
});
|
410 |
+
|
411 |
+
// When the user clicks on <span> (x), close the modal
|
412 |
+
close.onclick = function() {
|
413 |
+
modal.style.display = "none";
|
414 |
+
document.body.style.backgroundColor = '#f1f1f1';
|
415 |
+
}
|
admin/js/yasr-pricing-page.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
!function(e){var t={};function c(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,c),r.l=!0,r.exports}c.m=e,c.c=t,c.d=function(e,t,n){c.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},c.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.t=function(e,t){if(1&t&&(e=c(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(c.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)c.d(n,r,function(t){return e[t]}.bind(null,r));return n},c.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(t,"a",t),t},c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.p="",c(c.s=0)}([function(e,t,c){e.exports=c(1)},function(e,t){function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function n(e,t){for(var c=0;c<t.length;c++){var n=t[c];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function r(e,t){return(r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function a(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var c,n=s(e);if(t){var r=s(this).constructor;c=Reflect.construct(n,arguments,r)}else c=n.apply(this,arguments);return l(this,c)}}function l(e,t){return!t||"object"!==c(t)&&"function"!=typeof t?i(e):t}function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e){var t="$";return"eur"===e.name&&(t="€"),React.createElement("small",null,t," ")}function o(e){var t="/year";return"monthly"===e.name&&(t="/month"),"lifetime"===e.name&&(t=""),React.createElement("small",null,t)}function y(e){var t=" 1 website";return"plus"===e.license&&(t=" 5 websites"),"enterprise"===e.license&&(t=" 30 websites"),React.createElement("ul",{className:"PT-Features"},React.createElement("li",{className:"yasr-pricing-table-feature"},React.createElement("strong",null,"1 year")," of supports and updates ",React.createElement("br",null),"for",React.createElement("strong",null,t)),React.createElement("li",{className:"yasr-pricing-table-feature"},"User reviews"),React.createElement("li",{className:"yasr-pricing-table-feature"},"Custom rankings"),React.createElement("li",{className:"yasr-pricing-table-feature"},"20 + ready to use themes"),React.createElement("li",{className:"yasr-pricing-table-feature"},"Upload your own theme"),React.createElement("li",{className:"yasr-pricing-table-feature"},"Add fake ratings"),React.createElement("li",{className:"yasr-pricing-table-feature"},"Direct email support"),"lifetime"===e.cycle&&React.createElement("li",{className:"yasr-pricing-table-feature"},"We setup the plugin for free ",React.createElement("br",null),"(only lifetime plans)"))}function m(e){var t="",c=1;return"single"===e.license?t="monthly"===e.cycle?"eur"===e.currency?"4.49":"4.99":"lifetime"===e.cycle?"eur"===e.currency?"129.99":"149.99":"eur"===e.currency?"41.99":"47.88":"plus"===e.license?(c=5,t="monthly"===e.cycle?"eur"===e.currency?"8.99":"9.99":"lifetime"===e.cycle?"eur"===e.currency?"249.99":"289.99":"eur"===e.currency?"83.88":"95.88"):"enterprise"===e.license&&(c=30,t="monthly"===e.cycle?"eur"===e.currency?"12.99":"14.99":"lifetime"===e.cycle?"eur"===e.currency?"359.99":"439.99":"eur"===e.currency?"119.88":"143.88"),React.createElement("div",{className:"yasr-pring-table-price"},React.createElement(u,{name:e.currency}),React.createElement("span",null,t),React.createElement(o,{name:e.cycle}),React.createElement(p,{cycle:e.cycle,currency:e.currency,license:e.license}),React.createElement("p",{className:"PT-CTA"},React.createElement("a",{href:"#",className:"yasr-buy-button",onClick:function(t){!function(e,t,c){var n={billing_cycle:e,licenses:t,id:"yasr_checkout",page:"yasr_settings_page-pricing",checkout:"true",plan_id:"2778",plan_name:"yasrpro",disable_licenses_selector:!0,hide_billing_cycles:!0,currency:c},r=[];for(var a in n){var l=encodeURIComponent(a),i=encodeURIComponent(n[a]);r.push(l+"="+i)}r=r.join("&");var s=yasrCommonData.adminUrl+"admin.php?"+r;window.open(s,"_self")}(e.cycle,c,e.currency),t.preventDefault()}},"Buy YASR ")))}function p(e){if("annual"===e.cycle){var t="";return t="plus"===e.license?"eur"===e.currency?"6.99":"7.99":"enterprise"===e.license?"eur"===e.currency?"9.99":"11.99":"eur"===e.currency?"3.49":"3.99",React.createElement("p",{className:"yasr-pricing-table-price-desc"},React.createElement(u,{name:e.currency}),t," /month")}return React.createElement(React.Fragment,null)}var f=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}(u,React.Component);var t,c,l,s=a(u);function u(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u),(t=s.call(this,e)).state={currencyName:"usd",cycle:"annual"},t.updateCurrency=t.updateCurrency.bind(i(t)),t.updateCycle=t.updateCycle.bind(i(t)),t}return t=u,(c=[{key:"updateCurrency",value:function(e){var t=e.target;!0===("checkbox"===t.type?t.checked:t.value)?this.setState({currencyName:"eur"}):this.setState({currencyName:"usd"})}},{key:"updateCycle",value:function(e){this.setState({cycle:e.target.value})}},{key:"render",value:function(){return React.createElement(React.Fragment,null,React.createElement("div",{id:"yasr-radio-billing-cycle"},React.createElement("input",{type:"radio",id:"yasr-billing-cycle-monthly",name:"billing-cycle",value:"monthly",onChange:this.updateCycle,checked:"monthly"===this.state.cycle}),React.createElement("label",{htmlFor:"yasr-billing-cycle-monthly"},"Monthly"),React.createElement("input",{type:"radio",id:"yasr-billing-cycle-annual",name:"billing-cycle",value:"annual",onChange:this.updateCycle,checked:"annual"===this.state.cycle}),React.createElement("label",{htmlFor:"yasr-billing-cycle-annual"},"Annual"),React.createElement("input",{type:"radio",id:"yasr-billing-cycle-lifetime",name:"billing-cycle",value:"lifetime",onChange:this.updateCycle,checked:"lifetime"===this.state.cycle}),React.createElement("label",{htmlFor:"yasr-billing-cycle-lifetime"},"Lifetime")),React.createElement("div",{id:"yasr-pricing-table"},React.createElement("div",{className:"yasr-pricing-table-item"},React.createElement("header",{className:"yasr-pricing-table-heading"},React.createElement("h2",{className:"yasr-pricing-table-title"},"Plus"),React.createElement("p",{className:"yasr-pricing-table-subtitle"},"5 websites")),React.createElement(y,{cycle:this.state.cycle,license:"plus"}),React.createElement("div",{className:"yasr-pricing-table-footer"},React.createElement(m,{cycle:this.state.cycle,currency:this.state.currencyName,license:"plus"}))),React.createElement("div",{className:"yasr-pricing-table-item is-highlighted"},React.createElement("header",{className:"yasr-pricing-table-heading"},React.createElement("h2",{className:"yasr-pricing-table-title"},"Single"),React.createElement("p",{className:"yasr-pricing-table-subtitle"}," 1 website")),React.createElement(y,{cycle:this.state.cycle,license:"single"}),React.createElement("div",{className:"yasr-pricing-table-footer"},React.createElement(m,{cycle:this.state.cycle,currency:this.state.currencyName,license:"single"}))),React.createElement("div",{className:"yasr-pricing-table-item"},React.createElement("header",{className:"yasr-pricing-table-heading"},React.createElement("h2",{className:"yasr-pricing-table-title"},"Enterprise"),React.createElement("p",{className:"yasr-pricing-table-subtitle"}," 30 websites")),React.createElement(y,{cycle:this.state.cycle,license:"enterprise"}),React.createElement("div",{className:"yasr-pricing-table-footer"},React.createElement(m,{cycle:this.state.cycle,currency:this.state.currencyName,license:"enterprise"})))),React.createElement("div",{id:"switch-container"},React.createElement("span",{className:"yasr-pricing-text-switcher"}," Display Prices In US $ "),React.createElement("label",{className:"yasr-pricing-switch"},React.createElement("input",{type:"checkbox",onChange:this.updateCurrency}),React.createElement("span",{className:"yasr-pricing-slider"})),React.createElement("span",{className:"yasr-pricing-text-switcher"}," €")))}}])&&n(t.prototype,c),l&&n(t,l),u}();ReactDOM.render(React.createElement(f,null),document.getElementById("yasr-table-container"));var d=document.getElementById("yasr-link-policy"),b=document.getElementById("yasr-link-policy-faq"),g=document.getElementById("yasr-refund-policy"),h=document.getElementById("yasr-close-modal-policy");d.addEventListener("click",(function(){g.style.display="block",document.body.style.backgroundColor="rgba(0,0,0,0.7)"})),b.addEventListener("click",(function(){g.style.display="block",document.body.style.backgroundColor="rgba(0,0,0,0.7)"})),h.onclick=function(){g.style.display="none",document.body.style.backgroundColor="#f1f1f1"}}]);
|
admin/settings/classes/YasrSettings.php
CHANGED
@@ -478,8 +478,10 @@ class YasrSettings {
|
|
478 |
<?php _e('Example', 'yet-another-stars-rating') ?>:
|
479 |
</strong>
|
480 |
<br />
|
481 |
-
<img src="<?php echo YASR_IMG_DIR . 'yasr-settings-stats.png'?>"
|
482 |
-
|
|
|
|
|
483 |
</div>
|
484 |
</div>
|
485 |
<hr />
|
478 |
<?php _e('Example', 'yet-another-stars-rating') ?>:
|
479 |
</strong>
|
480 |
<br />
|
481 |
+
<img src="<?php echo YASR_IMG_DIR . 'yasr-settings-stats.png'?>"
|
482 |
+
class="yasr-help-box-settings"
|
483 |
+
style="display: block; width: 330px"
|
484 |
+
alt="yasr-statsexplained">
|
485 |
</div>
|
486 |
</div>
|
487 |
<hr />
|
admin/settings/yasr-pricing-page.php
ADDED
@@ -0,0 +1,126 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
|
4 |
+
Copyright 2020 Dario Curvino (email : d.curvino@tiscali.it)
|
5 |
+
|
6 |
+
This program is free software: you can redistribute it and/or modify
|
7 |
+
it under the terms of the GNU General Public License as published by
|
8 |
+
the Free Software Foundation, either version 2 of the License, or
|
9 |
+
(at your option) any later version.
|
10 |
+
|
11 |
+
This program is distributed in the hope that it will be useful,
|
12 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14 |
+
GNU General Public License for more details.
|
15 |
+
|
16 |
+
You should have received a copy of the GNU General Public License
|
17 |
+
along with this program. If not, see <http://www.gnu.org/licenses/>
|
18 |
+
*/
|
19 |
+
|
20 |
+
if (!defined('ABSPATH')) {
|
21 |
+
exit('You\'re not allowed to see this page');
|
22 |
+
} // Exit if accessed directly
|
23 |
+
|
24 |
+
?>
|
25 |
+
|
26 |
+
<div id="money_back_guarantee_cont">
|
27 |
+
<section id="money_back_guarantee">
|
28 |
+
<h1>
|
29 |
+
<b class="stars">
|
30 |
+
<i class="last">⋆</i>
|
31 |
+
<i class="middle">⋆</i>
|
32 |
+
<i class="first">⋆</i>
|
33 |
+
</b>
|
34 |
+
<span>7-Day Money Back Guarantee</span>
|
35 |
+
<b class="stars">
|
36 |
+
<i class="first">⋆</i>
|
37 |
+
<i class="middle">⋆</i>
|
38 |
+
<i class="last">⋆</i>
|
39 |
+
</b>
|
40 |
+
</h1>
|
41 |
+
<p>
|
42 |
+
You are fully protected by our 100% Money Back Guarantee. If during the next 7 days you experience an issue
|
43 |
+
that makes the plugin unusable and we are unable to resolve it, we'll happily consider offering a full refund
|
44 |
+
of your money. <a id="yasr-link-policy" href="#">Learn more...</a>
|
45 |
+
</p>
|
46 |
+
</section>
|
47 |
+
</div>
|
48 |
+
|
49 |
+
<div id="yasr-refund-policy-cont">
|
50 |
+
<div id="yasr-refund-policy" class="yasr-refund-policy">
|
51 |
+
<!-- Modal content -->
|
52 |
+
<div id="yasr-modal-content">
|
53 |
+
<span class="yasr-close-modal-policy" id="yasr-close-modal-policy">×</span>
|
54 |
+
<header class="yasr-modal-header">
|
55 |
+
<h2>Refund Policy</h2>
|
56 |
+
</header>
|
57 |
+
|
58 |
+
<p>
|
59 |
+
We stand behind our plugin’s quality and your satisfaction with it is important to us. If you experience problems with the plugin, we will be happy to provide a full refund within 7 days of the original upgrade date.
|
60 |
+
</p>
|
61 |
+
<p>
|
62 |
+
Refunds will be offered at our sole discretion and must meet all of the following conditions <b>fully</b>:
|
63 |
+
</p>
|
64 |
+
<ul>
|
65 |
+
<li>You are within the first 7 days of the purchase of the plugin.</li>
|
66 |
+
<li>Your issue(s) derives from not being able to install the plugin properly or get the plugin to perform its basic functions.</li>
|
67 |
+
<li>You have attempted to resolve your issue(s) with our support team by opening a support ticket through the "Contact Us" in the plugin’s admin settings.</li>
|
68 |
+
<li>No refunds will be granted after the first 7 days of the original purchase whatsoever.</li>
|
69 |
+
<li>Refunds will not be granted for missing feature(s). If you are not sure we support a specific feature, please contact us first.</li>
|
70 |
+
<li>Issues caused by conflicts with 3rd party plugins, themes or other software will not provide grounds for a refund.</li>
|
71 |
+
<li>Refunds will not be granted if you simply decide not to use the plugin.</li>
|
72 |
+
</ul>
|
73 |
+
<p>By upgrading, you agree to this refund policy and relinquish any rights to subject it to any questions, judgment or legal actions.</p> <p>
|
74 |
+
</p>
|
75 |
+
</div>
|
76 |
+
</div>
|
77 |
+
</div>
|
78 |
+
|
79 |
+
<div id="yasr-table-container">
|
80 |
+
</div>
|
81 |
+
|
82 |
+
<div id="yasr-pricing-faq">
|
83 |
+
<div class="yasr-pricing-faq-row">
|
84 |
+
<h2>Frequently Asked Questions</h2>
|
85 |
+
</div>
|
86 |
+
<div class="">
|
87 |
+
<p> </p>
|
88 |
+
</div>
|
89 |
+
|
90 |
+
<div class="yasr-pricing-faq-row">
|
91 |
+
<h3>Is there a setup fee?</h3>
|
92 |
+
<p>No. There are no setup fees on any of our plans.</p>
|
93 |
+
|
94 |
+
<h3>Can I cancel my account at any time?</h3>
|
95 |
+
<p>Yes, if you ever decide that Yasr - Yet Another Stars Rating isn't the best plugin for your business, simply cancel your account from your Account panel.</p>
|
96 |
+
|
97 |
+
<h3>What's the time span for your contracts?</h3>
|
98 |
+
<p>All plans are month-to-month unless you subscribe for an annual or lifetime plan.</p>
|
99 |
+
|
100 |
+
<h3>Do you offer any discounted plans?</h3>
|
101 |
+
<p>Yes, as you can see in the table!.</p>
|
102 |
+
|
103 |
+
<h3>Can I change my plan later on?</h3>
|
104 |
+
<p>Absolutely! You can upgrade or downgrade your plan at any time.</p>
|
105 |
+
|
106 |
+
<h3>What payment methods are accepted?</h3>
|
107 |
+
<p>We accept all major credit cards including Visa, Mastercard, American Express, as well as PayPal payments.</p>
|
108 |
+
|
109 |
+
<h3>Do you offer refunds?</h3>
|
110 |
+
<p><a href="#" id="yasr-link-policy-faq">Yes we do!</a> We stand behind the
|
111 |
+
quality of our product and will refund 100% of your money if you experience an issue that makes
|
112 |
+
the plugin unusable and we are unable to resolve it.
|
113 |
+
</p>
|
114 |
+
|
115 |
+
<h3>Do I get updates for the premium plugin?</h3>
|
116 |
+
<p>Yes! Automatic updates to our premium plugin are available free of charge as long as you stay our paying customer.</p>
|
117 |
+
|
118 |
+
<h3>Do you offer support if I need help?</h3>
|
119 |
+
<p>Yes! Top-notch customer support for our paid customers is key for a quality product, so we'll do our very best to resolve any issues you encounter via our support page.</p>
|
120 |
+
|
121 |
+
<h3>I have other pre-sale questions, can you help?</h3>
|
122 |
+
<p>Yes! You can ask us any question writing at
|
123 |
+
<a href="mailto:support@yetanotherstarsrating.com?subject=Presale%20Question">this link</a>.
|
124 |
+
</p>
|
125 |
+
</div>
|
126 |
+
</div>
|
admin/settings/yasr-settings-functions-misc.php
CHANGED
@@ -199,9 +199,8 @@ function yasr_description_strucutured_data() {
|
|
199 |
}
|
200 |
|
201 |
function yasr_upgrade_pro_box($position = false) {
|
202 |
-
|
203 |
if (yasr_fs()->is_free_plan()) {
|
204 |
-
if ($position
|
205 |
$yasr_upgrade_class = "yasr-donatedivbottom";
|
206 |
} else {
|
207 |
$yasr_upgrade_class = "yasr-donatedivdx";
|
@@ -260,8 +259,7 @@ function yasr_upgrade_pro_box($position = false) {
|
|
260 |
*
|
261 |
*/
|
262 |
function yasr_resources_box($position = false) {
|
263 |
-
|
264 |
-
if ($position && $position === "bottom") {
|
265 |
$yasr_metabox_class = "yasr-donatedivbottom";
|
266 |
} else {
|
267 |
$yasr_metabox_class = "yasr-donatedivdx";
|
@@ -307,13 +305,45 @@ function yasr_resources_box($position = false) {
|
|
307 |
|
308 |
}
|
309 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
310 |
/** Add a box on the right for asking to rate 5 stars on Wordpress.org
|
311 |
* Since version 0.9.0
|
312 |
*/
|
313 |
-
|
314 |
function yasr_ask_rating($position = false) {
|
315 |
-
|
316 |
-
if ($position && $position === "bottom") {
|
317 |
$yasr_metabox_class = "yasr-donatedivbottom";
|
318 |
} else {
|
319 |
$yasr_metabox_class = "yasr-donatedivdx";
|
@@ -350,6 +380,7 @@ function yasr_right_settings_panel($position = false) {
|
|
350 |
do_action('yasr_right_settings_panel_box', $position);
|
351 |
yasr_upgrade_pro_box($position);
|
352 |
yasr_resources_box($position);
|
|
|
353 |
yasr_ask_rating($position);
|
354 |
}
|
355 |
|
199 |
}
|
200 |
|
201 |
function yasr_upgrade_pro_box($position = false) {
|
|
|
202 |
if (yasr_fs()->is_free_plan()) {
|
203 |
+
if ($position === "bottom") {
|
204 |
$yasr_upgrade_class = "yasr-donatedivbottom";
|
205 |
} else {
|
206 |
$yasr_upgrade_class = "yasr-donatedivdx";
|
259 |
*
|
260 |
*/
|
261 |
function yasr_resources_box($position = false) {
|
262 |
+
if ($position === "bottom") {
|
|
|
263 |
$yasr_metabox_class = "yasr-donatedivbottom";
|
264 |
} else {
|
265 |
$yasr_metabox_class = "yasr-donatedivdx";
|
305 |
|
306 |
}
|
307 |
|
308 |
+
function yasr_buy_cofee($position = false) {
|
309 |
+
if ($position === "bottom") {
|
310 |
+
$yasr_metabox_class = "yasr-donatedivbottom";
|
311 |
+
} else {
|
312 |
+
$yasr_metabox_class = "yasr-donatedivdx";
|
313 |
+
}
|
314 |
+
|
315 |
+
$buymecofeetext = __('Coffee is vital to make YASR development going on!', 'yet-another-stars-rating');
|
316 |
+
$buymecofeetext .= '<br />';
|
317 |
+
|
318 |
+
if(yasr_fs()->is_free_plan()) {
|
319 |
+
$buymecofeetext .= __('If you are enjoying YASR, and you don\'t need the pro version, please consider to buy me a coffee, thanks!',
|
320 |
+
'yet-another-stars-rating');
|
321 |
+
} else {
|
322 |
+
$buymecofeetext .= __('If you are enjoying YASR, please consider to buy me a coffee, thanks!',
|
323 |
+
'yet-another-stars-rating');
|
324 |
+
}
|
325 |
+
|
326 |
+
$div = "<div class='$yasr_metabox_class' id='yasr-buy-cofee' style='display:none;'>";
|
327 |
+
|
328 |
+
$text = '<div class="yasr-donate-title">' . __('Buy me a coffee!', 'yet-another-stars-rating') .'</div>';
|
329 |
+
$text .= '<div style="text-align: center">';
|
330 |
+
$text .= '<a href="https://www.buymeacoffee.com/dariocurvino" target="_blank">
|
331 |
+
<img src="'.YASR_IMG_DIR.'/buymecofyel.png" alt="buymeacofee">
|
332 |
+
</a>';
|
333 |
+
$text .= '</div>';
|
334 |
+
$text .= '<div style="margin-top: 15px;">';
|
335 |
+
$text .= $buymecofeetext;
|
336 |
+
$text .= '</div>';
|
337 |
+
$div_and_text = $div . $text . '</div>';
|
338 |
+
|
339 |
+
echo $div_and_text;
|
340 |
+
}
|
341 |
+
|
342 |
/** Add a box on the right for asking to rate 5 stars on Wordpress.org
|
343 |
* Since version 0.9.0
|
344 |
*/
|
|
|
345 |
function yasr_ask_rating($position = false) {
|
346 |
+
if ($position === "bottom") {
|
|
|
347 |
$yasr_metabox_class = "yasr-donatedivbottom";
|
348 |
} else {
|
349 |
$yasr_metabox_class = "yasr-donatedivdx";
|
380 |
do_action('yasr_right_settings_panel_box', $position);
|
381 |
yasr_upgrade_pro_box($position);
|
382 |
yasr_resources_box($position);
|
383 |
+
yasr_buy_cofee($position);
|
384 |
yasr_ask_rating($position);
|
385 |
}
|
386 |
|
admin/yasr-admin-functions.php
CHANGED
@@ -67,9 +67,34 @@ function yasr_add_admin_scripts($hook) {
|
|
67 |
);
|
68 |
}
|
69 |
|
70 |
-
if ($hook === '
|
71 |
-
|
72 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
) {
|
74 |
|
75 |
do_action('yasr_add_admin_scripts_begin', $hook);
|
@@ -143,6 +168,8 @@ function yasr_add_pages() {
|
|
143 |
'yasr_stats_page_callback'
|
144 |
);
|
145 |
|
|
|
|
|
146 |
if (yasr_fs()->is_free_plan() && !yasr_fs()->is_trial()) {
|
147 |
global $submenu;
|
148 |
$permalink = '#';
|
@@ -160,6 +187,7 @@ function yasr_settings_page_callback() {
|
|
160 |
if (!current_user_can('manage_options')) {
|
161 |
wp_die(__('You do not have sufficient permissions to access this page.', 'yet-another-stars-rating'));
|
162 |
}
|
|
|
163 |
include(YASR_ABSOLUTE_PATH_ADMIN . '/settings/yasr-settings-page.php');
|
164 |
} //End yasr_settings_page_content
|
165 |
|
@@ -172,6 +200,14 @@ function yasr_stats_page_callback() {
|
|
172 |
include(YASR_ABSOLUTE_PATH_ADMIN . '/settings/yasr-stats-page.php');
|
173 |
}
|
174 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
|
176 |
/**
|
177 |
* Check if the current page is the Gutenberg block editor.
|
67 |
);
|
68 |
}
|
69 |
|
70 |
+
if ($hook === 'yet-another-stars-rating_page_yasr_pricing_page'
|
71 |
+
|| $hook === 'yet-another-stars-rating_page_yasr_settings_page-pricing') {
|
72 |
+
wp_enqueue_style(
|
73 |
+
'yasrcss-pricing',
|
74 |
+
YASR_CSS_DIR_ADMIN . 'yasr-pricing-page.css',
|
75 |
+
false,
|
76 |
+
YASR_VERSION_NUM
|
77 |
+
);
|
78 |
+
|
79 |
+
wp_enqueue_script(
|
80 |
+
'yasrjs-pricing',
|
81 |
+
YASR_JS_DIR_ADMIN . 'yasr-pricing-page.js',
|
82 |
+
array('wp-element', 'yasradmin'),
|
83 |
+
YASR_VERSION_NUM,
|
84 |
+
true
|
85 |
+
);
|
86 |
+
}
|
87 |
+
|
88 |
+
if ($hook === 'index.php'
|
89 |
+
|| $hook === 'edit.php'
|
90 |
+
|| $hook === 'post.php'
|
91 |
+
|| $hook === 'post-new.php'
|
92 |
+
|| $hook === 'edit-comments.php'
|
93 |
+
|| $hook === 'term.php'
|
94 |
+
|| $hook === $yasr_settings_page
|
95 |
+
|| $hook === 'yet-another-stars-rating_page_yasr_stats_page'
|
96 |
+
|| $hook === 'yet-another-stars-rating_page_yasr_pricing_page'
|
97 |
+
|| $hook === 'yet-another-stars-rating_page_yasr_settings_page-pricing'
|
98 |
) {
|
99 |
|
100 |
do_action('yasr_add_admin_scripts_begin', $hook);
|
168 |
'yasr_stats_page_callback'
|
169 |
);
|
170 |
|
171 |
+
yasr_fs()->add_filter('templates/pricing.php', 'yasr_pricing_page_callback');
|
172 |
+
|
173 |
if (yasr_fs()->is_free_plan() && !yasr_fs()->is_trial()) {
|
174 |
global $submenu;
|
175 |
$permalink = '#';
|
187 |
if (!current_user_can('manage_options')) {
|
188 |
wp_die(__('You do not have sufficient permissions to access this page.', 'yet-another-stars-rating'));
|
189 |
}
|
190 |
+
|
191 |
include(YASR_ABSOLUTE_PATH_ADMIN . '/settings/yasr-settings-page.php');
|
192 |
} //End yasr_settings_page_content
|
193 |
|
200 |
include(YASR_ABSOLUTE_PATH_ADMIN . '/settings/yasr-stats-page.php');
|
201 |
}
|
202 |
|
203 |
+
function yasr_pricing_page_callback() {
|
204 |
+
if (!current_user_can('manage_options')) {
|
205 |
+
wp_die(__('You do not have sufficient permissions to access this page.', 'yet-another-stars-rating'));
|
206 |
+
}
|
207 |
+
|
208 |
+
include(YASR_ABSOLUTE_PATH_ADMIN . '/settings/yasr-pricing-page.php');
|
209 |
+
}
|
210 |
+
|
211 |
|
212 |
/**
|
213 |
* Check if the current page is the Gutenberg block editor.
|
includes/img/buymecofyel.png
ADDED
Binary file
|
includes/img/yasr-settings-stats.png
CHANGED
Binary file
|
includes/yasr-includes-functions.php
CHANGED
@@ -59,6 +59,7 @@ function yasr_add_scripts_includes() {
|
|
59 |
wp_localize_script(YASR_HANDLE_SCRIPT, 'yasrCommonData',
|
60 |
array(
|
61 |
'restEndpoint' => esc_url_raw(rest_url()),
|
|
|
62 |
'ajaxurl' => admin_url('admin-ajax.php'),
|
63 |
'visitorStatsEnabled' => YASR_VISITORS_STATS,
|
64 |
'ajaxEnabled' => YASR_ENABLE_AJAX,
|
59 |
wp_localize_script(YASR_HANDLE_SCRIPT, 'yasrCommonData',
|
60 |
array(
|
61 |
'restEndpoint' => esc_url_raw(rest_url()),
|
62 |
+
'adminUrl' => admin_url(),
|
63 |
'ajaxurl' => admin_url('admin-ajax.php'),
|
64 |
'visitorStatsEnabled' => YASR_VISITORS_STATS,
|
65 |
'ajaxEnabled' => YASR_ENABLE_AJAX,
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Requires at least: 5.0
|
|
5 |
Contributors: Dudo
|
6 |
Tested up to: 5.7.2
|
7 |
Requires PHP: 5.4
|
8 |
-
Stable tag: 2.7.
|
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
|
@@ -192,6 +192,10 @@ If doesn't, you should work on your seo reputation.
|
|
192 |
|
193 |
The full changelog can be found in the plugin's directory. Recent entries:
|
194 |
|
|
|
|
|
|
|
|
|
195 |
= 2.7.5 =
|
196 |
* TWEAKED: in yasr_visitor_votes, chart icon now has same color of the text.
|
197 |
|
5 |
Contributors: Dudo
|
6 |
Tested up to: 5.7.2
|
7 |
Requires PHP: 5.4
|
8 |
+
Stable tag: 2.7.6
|
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
|
192 |
|
193 |
The full changelog can be found in the plugin's directory. Recent entries:
|
194 |
|
195 |
+
= 2.7.6 =
|
196 |
+
* TWEAKED: new pricing page
|
197 |
+
* Minor changes
|
198 |
+
|
199 |
= 2.7.5 =
|
200 |
* TWEAKED: in yasr_visitor_votes, chart icon now has same color of the text.
|
201 |
|
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: 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
|
7 |
-
* Version: 2.7.
|
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.7.
|
80 |
//Plugin absolute path
|
81 |
//e.g. /var/www/html/plugin_development/wp-content/plugins/yet-another-stars-rating
|
82 |
define( 'YASR_ABSOLUTE_PATH', __DIR__ );
|
4 |
* Plugin Name: Yet Another Stars Rating
|
5 |
* Plugin URI: http://wordpress.org/plugins/yet-another-stars-rating/
|
6 |
* Description: 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
|
7 |
+
* Version: 2.7.6
|
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.7.6' );
|
80 |
//Plugin absolute path
|
81 |
//e.g. /var/www/html/plugin_development/wp-content/plugins/yet-another-stars-rating
|
82 |
define( 'YASR_ABSOLUTE_PATH', __DIR__ );
|