Site Reviews - Version 5.8.3

Version Description

(2021-04-12) =

  • Fixed widget compatibility with page builder plugins
Download this release

Release Info

Developer geminilabs
Plugin Icon 128x128 Site Reviews
Version 5.8.3
Comparing to
See all releases

Code changes from version 5.8.2 to 5.8.3

languages/site-reviews-en_US.mo CHANGED
Binary file
languages/site-reviews-en_US.po CHANGED
@@ -1241,7 +1241,7 @@ msgctxt "admin-text"
1241
  msgid "Restrict Limits To"
1242
  msgstr "Restrict Limits To"
1243
 
1244
- #: config/settings.php:531, plugin/Controllers/MetaboxController.php:37, plugin/Tinymce/SiteReviewsSummaryTinymce.php:25, plugin/Tinymce/SiteReviewsTinymce.php:56, views/partials/editor/bulk-edit-assigned-posts.php:6
1245
  msgctxt "admin-text"
1246
  msgid "Assigned Posts"
1247
  msgstr "Assigned Posts"
@@ -1251,7 +1251,7 @@ msgctxt "admin-text"
1251
  msgid "Assigned Terms"
1252
  msgstr "Assigned Terms"
1253
 
1254
- #: config/settings.php:533, plugin/Controllers/MetaboxController.php:38, plugin/Defaults/PostTypeColumnDefaults.php:19, views/partials/editor/bulk-edit-assigned-users.php:6
1255
  msgctxt "admin-text"
1256
  msgid "Assigned Users"
1257
  msgstr "Assigned Users"
@@ -1645,17 +1645,17 @@ msgid_plural "%s Reviews"
1645
  msgstr[0] "%s Review"
1646
  msgstr[1] "%s Reviews"
1647
 
1648
- #: plugin/Controllers/AdminController.php:165, plugin/Controllers/MainController.php:149
1649
  msgctxt "admin-text"
1650
  msgid "Recent Reviews"
1651
  msgstr "Recent Reviews"
1652
 
1653
- #: plugin/Controllers/AdminController.php:166, plugin/Controllers/MainController.php:153
1654
  msgctxt "admin-text"
1655
  msgid "Submit a Review"
1656
  msgstr "Submit a Review"
1657
 
1658
- #: plugin/Controllers/AdminController.php:167, plugin/Controllers/MainController.php:157
1659
  msgctxt "admin-text"
1660
  msgid "Summary of Reviews"
1661
  msgstr "Summary of Reviews"
@@ -1695,21 +1695,6 @@ msgctxt "admin-text"
1695
  msgid "Local Review"
1696
  msgstr "Local Review"
1697
 
1698
- #: plugin/Controllers/MainController.php:148
1699
- msgctxt "admin-text"
1700
- msgid "Site Reviews: Display your recent reviews."
1701
- msgstr "Site Reviews: Display your recent reviews."
1702
-
1703
- #: plugin/Controllers/MainController.php:152
1704
- msgctxt "admin-text"
1705
- msgid "Site Reviews: Display a form to submit reviews."
1706
- msgstr "Site Reviews: Display a form to submit reviews."
1707
-
1708
- #: plugin/Controllers/MainController.php:156
1709
- msgctxt "admin-text"
1710
- msgid "Site Reviews: Display a summary of your reviews."
1711
- msgstr "Site Reviews: Display a summary of your reviews."
1712
-
1713
  #: plugin/Controllers/MenuController.php:52
1714
  msgctxt "admin-text"
1715
  msgid "Tools"
@@ -1790,32 +1775,32 @@ msgctxt "admin-text"
1790
  msgid "System Info"
1791
  msgstr "System Info"
1792
 
1793
- #: plugin/Controllers/MetaboxController.php:34, views/partials/editor/metabox-response.php:3
1794
  msgctxt "admin-text"
1795
  msgid "Respond Publicly"
1796
  msgstr "Respond Publicly"
1797
 
1798
- #: plugin/Controllers/MetaboxController.php:36
1799
  msgctxt "admin-text"
1800
  msgid "Review Details"
1801
  msgstr "Review Details"
1802
 
1803
- #: plugin/Controllers/MetaboxController.php:40, plugin/Controllers/MetaboxController.php:119
1804
  msgctxt "admin-text"
1805
  msgid "Author"
1806
  msgstr "Author"
1807
 
1808
- #: plugin/Controllers/MetaboxController.php:72
1809
  msgctxt "admin-text"
1810
  msgid "(no title)"
1811
  msgstr "(no title)"
1812
 
1813
- #: plugin/Controllers/MetaboxController.php:157, plugin/Controllers/ListTableColumns/ColumnValueResponse.php:17
1814
  msgctxt "admin-text"
1815
  msgid "No"
1816
  msgstr "No"
1817
 
1818
- #: plugin/Controllers/MetaboxController.php:158, plugin/Controllers/ListTableColumns/ColumnValueResponse.php:18
1819
  msgctxt "admin-text"
1820
  msgid "Yes"
1821
  msgstr "Yes"
@@ -2518,6 +2503,11 @@ msgctxt "admin-text"
2518
  msgid "Enter any custom CSS classes here"
2519
  msgstr "Enter any custom CSS classes here"
2520
 
 
 
 
 
 
2521
  #: plugin/Widgets/SiteReviewsSummaryWidget.php:27
2522
  msgctxt "admin-text"
2523
  msgid "All review types"
@@ -2538,6 +2528,11 @@ msgctxt "admin-text"
2538
  msgid "Limit summary to reviews assigned to a User ID"
2539
  msgstr "Limit summary to reviews assigned to a User ID"
2540
 
 
 
 
 
 
2541
  #: plugin/Widgets/SiteReviewsWidget.php:25
2542
  msgctxt "admin-text"
2543
  msgid "How many reviews would you like to display?"
@@ -2568,6 +2563,16 @@ msgctxt "admin-text"
2568
  msgid "Limit reviews to those assigned to a User ID"
2569
  msgstr "Limit reviews to those assigned to a User ID"
2570
 
 
 
 
 
 
 
 
 
 
 
2571
  #: plugin/Controllers/ListTableColumns/ColumnFilterRating.php:17
2572
  msgctxt "admin-text"
2573
  msgid "All ratings"
1241
  msgid "Restrict Limits To"
1242
  msgstr "Restrict Limits To"
1243
 
1244
+ #: config/settings.php:531, plugin/Controllers/MetaboxController.php:38, plugin/Tinymce/SiteReviewsSummaryTinymce.php:25, plugin/Tinymce/SiteReviewsTinymce.php:56, views/partials/editor/bulk-edit-assigned-posts.php:6
1245
  msgctxt "admin-text"
1246
  msgid "Assigned Posts"
1247
  msgstr "Assigned Posts"
1251
  msgid "Assigned Terms"
1252
  msgstr "Assigned Terms"
1253
 
1254
+ #: config/settings.php:533, plugin/Controllers/MetaboxController.php:39, plugin/Defaults/PostTypeColumnDefaults.php:19, views/partials/editor/bulk-edit-assigned-users.php:6
1255
  msgctxt "admin-text"
1256
  msgid "Assigned Users"
1257
  msgstr "Assigned Users"
1645
  msgstr[0] "%s Review"
1646
  msgstr[1] "%s Reviews"
1647
 
1648
+ #: plugin/Controllers/AdminController.php:165, plugin/Widgets/SiteReviewsWidget.php:113
1649
  msgctxt "admin-text"
1650
  msgid "Recent Reviews"
1651
  msgstr "Recent Reviews"
1652
 
1653
+ #: plugin/Controllers/AdminController.php:166, plugin/Widgets/SiteReviewsFormWidget.php:78
1654
  msgctxt "admin-text"
1655
  msgid "Submit a Review"
1656
  msgstr "Submit a Review"
1657
 
1658
+ #: plugin/Controllers/AdminController.php:167, plugin/Widgets/SiteReviewsSummaryWidget.php:81
1659
  msgctxt "admin-text"
1660
  msgid "Summary of Reviews"
1661
  msgstr "Summary of Reviews"
1695
  msgid "Local Review"
1696
  msgstr "Local Review"
1697
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1698
  #: plugin/Controllers/MenuController.php:52
1699
  msgctxt "admin-text"
1700
  msgid "Tools"
1775
  msgid "System Info"
1776
  msgstr "System Info"
1777
 
1778
+ #: plugin/Controllers/MetaboxController.php:35, views/partials/editor/metabox-response.php:3
1779
  msgctxt "admin-text"
1780
  msgid "Respond Publicly"
1781
  msgstr "Respond Publicly"
1782
 
1783
+ #: plugin/Controllers/MetaboxController.php:37
1784
  msgctxt "admin-text"
1785
  msgid "Review Details"
1786
  msgstr "Review Details"
1787
 
1788
+ #: plugin/Controllers/MetaboxController.php:41, plugin/Controllers/MetaboxController.php:120
1789
  msgctxt "admin-text"
1790
  msgid "Author"
1791
  msgstr "Author"
1792
 
1793
+ #: plugin/Controllers/MetaboxController.php:73
1794
  msgctxt "admin-text"
1795
  msgid "(no title)"
1796
  msgstr "(no title)"
1797
 
1798
+ #: plugin/Controllers/MetaboxController.php:158, plugin/Controllers/ListTableColumns/ColumnValueResponse.php:17
1799
  msgctxt "admin-text"
1800
  msgid "No"
1801
  msgstr "No"
1802
 
1803
+ #: plugin/Controllers/MetaboxController.php:159, plugin/Controllers/ListTableColumns/ColumnValueResponse.php:18
1804
  msgctxt "admin-text"
1805
  msgid "Yes"
1806
  msgstr "Yes"
2503
  msgid "Enter any custom CSS classes here"
2504
  msgstr "Enter any custom CSS classes here"
2505
 
2506
+ #: plugin/Widgets/SiteReviewsFormWidget.php:70
2507
+ msgctxt "admin-text"
2508
+ msgid "Site Reviews: Display a form to submit reviews."
2509
+ msgstr "Site Reviews: Display a form to submit reviews."
2510
+
2511
  #: plugin/Widgets/SiteReviewsSummaryWidget.php:27
2512
  msgctxt "admin-text"
2513
  msgid "All review types"
2528
  msgid "Limit summary to reviews assigned to a User ID"
2529
  msgstr "Limit summary to reviews assigned to a User ID"
2530
 
2531
+ #: plugin/Widgets/SiteReviewsSummaryWidget.php:73
2532
+ msgctxt "admin-text"
2533
+ msgid "Site Reviews: Display a summary of your reviews."
2534
+ msgstr "Site Reviews: Display a summary of your reviews."
2535
+
2536
  #: plugin/Widgets/SiteReviewsWidget.php:25
2537
  msgctxt "admin-text"
2538
  msgid "How many reviews would you like to display?"
2563
  msgid "Limit reviews to those assigned to a User ID"
2564
  msgstr "Limit reviews to those assigned to a User ID"
2565
 
2566
+ #: plugin/Widgets/SiteReviewsWidget.php:105
2567
+ msgctxt "admin-text"
2568
+ msgid "Site Reviews: Display your recent reviews."
2569
+ msgstr "Site Reviews: Display your recent reviews."
2570
+
2571
+ #: plugin/Widgets/Widget.php:103
2572
+ msgctxt "admin-text"
2573
+ msgid "Site Reviews: Unknown Widget"
2574
+ msgstr "Site Reviews: Unknown Widget"
2575
+
2576
  #: plugin/Controllers/ListTableColumns/ColumnFilterRating.php:17
2577
  msgctxt "admin-text"
2578
  msgid "All ratings"
languages/site-reviews.pot CHANGED
@@ -872,7 +872,7 @@ msgctxt "admin-text"
872
  msgid "Restrict Limits To"
873
  msgstr ""
874
 
875
- #: config/settings.php:531, plugin/Controllers/MetaboxController.php:37, plugin/Tinymce/SiteReviewsSummaryTinymce.php:25, plugin/Tinymce/SiteReviewsTinymce.php:56, views/partials/editor/bulk-edit-assigned-posts.php:6
876
  msgctxt "admin-text"
877
  msgid "Assigned Posts"
878
  msgstr ""
@@ -882,7 +882,7 @@ msgctxt "admin-text"
882
  msgid "Assigned Terms"
883
  msgstr ""
884
 
885
- #: config/settings.php:533, plugin/Controllers/MetaboxController.php:38, plugin/Defaults/PostTypeColumnDefaults.php:19, views/partials/editor/bulk-edit-assigned-users.php:6
886
  msgctxt "admin-text"
887
  msgid "Assigned Users"
888
  msgstr ""
@@ -1274,17 +1274,17 @@ msgid_plural "%s Reviews"
1274
  msgstr[0] ""
1275
  msgstr[1] ""
1276
 
1277
- #: plugin/Controllers/AdminController.php:165, plugin/Controllers/MainController.php:149
1278
  msgctxt "admin-text"
1279
  msgid "Recent Reviews"
1280
  msgstr ""
1281
 
1282
- #: plugin/Controllers/AdminController.php:166, plugin/Controllers/MainController.php:153
1283
  msgctxt "admin-text"
1284
  msgid "Submit a Review"
1285
  msgstr ""
1286
 
1287
- #: plugin/Controllers/AdminController.php:167, plugin/Controllers/MainController.php:157
1288
  msgctxt "admin-text"
1289
  msgid "Summary of Reviews"
1290
  msgstr ""
@@ -1334,21 +1334,6 @@ msgctxt "admin-text"
1334
  msgid "Local Review"
1335
  msgstr ""
1336
 
1337
- #: plugin/Controllers/MainController.php:148
1338
- msgctxt "admin-text"
1339
- msgid "Site Reviews: Display your recent reviews."
1340
- msgstr ""
1341
-
1342
- #: plugin/Controllers/MainController.php:152
1343
- msgctxt "admin-text"
1344
- msgid "Site Reviews: Display a form to submit reviews."
1345
- msgstr ""
1346
-
1347
- #: plugin/Controllers/MainController.php:156
1348
- msgctxt "admin-text"
1349
- msgid "Site Reviews: Display a summary of your reviews."
1350
- msgstr ""
1351
-
1352
  #: plugin/Controllers/MenuController.php:52
1353
  msgctxt "admin-text"
1354
  msgid "Tools"
@@ -1429,32 +1414,32 @@ msgctxt "admin-text"
1429
  msgid "System Info"
1430
  msgstr ""
1431
 
1432
- #: plugin/Controllers/MetaboxController.php:34, views/partials/editor/metabox-response.php:3
1433
  msgctxt "admin-text"
1434
  msgid "Respond Publicly"
1435
  msgstr ""
1436
 
1437
- #: plugin/Controllers/MetaboxController.php:36
1438
  msgctxt "admin-text"
1439
  msgid "Review Details"
1440
  msgstr ""
1441
 
1442
- #: plugin/Controllers/MetaboxController.php:40, plugin/Controllers/MetaboxController.php:119
1443
  msgctxt "admin-text"
1444
  msgid "Author"
1445
  msgstr ""
1446
 
1447
- #: plugin/Controllers/MetaboxController.php:72
1448
  msgctxt "admin-text"
1449
  msgid "(no title)"
1450
  msgstr ""
1451
 
1452
- #: plugin/Controllers/MetaboxController.php:157, plugin/Controllers/ListTableColumns/ColumnValueResponse.php:17
1453
  msgctxt "admin-text"
1454
  msgid "No"
1455
  msgstr ""
1456
 
1457
- #: plugin/Controllers/MetaboxController.php:158, plugin/Controllers/ListTableColumns/ColumnValueResponse.php:18
1458
  msgctxt "admin-text"
1459
  msgid "Yes"
1460
  msgstr ""
@@ -2348,6 +2333,11 @@ msgctxt "admin-text"
2348
  msgid "Enter any custom CSS classes here"
2349
  msgstr ""
2350
 
 
 
 
 
 
2351
  #: plugin/Widgets/SiteReviewsSummaryWidget.php:27
2352
  msgctxt "admin-text"
2353
  msgid "All review types"
@@ -2368,6 +2358,11 @@ msgctxt "admin-text"
2368
  msgid "Limit summary to reviews assigned to a User ID"
2369
  msgstr ""
2370
 
 
 
 
 
 
2371
  #: plugin/Widgets/SiteReviewsWidget.php:25
2372
  msgctxt "admin-text"
2373
  msgid "How many reviews would you like to display?"
@@ -2398,6 +2393,16 @@ msgctxt "admin-text"
2398
  msgid "Limit reviews to those assigned to a User ID"
2399
  msgstr ""
2400
 
 
 
 
 
 
 
 
 
 
 
2401
  #: views/partials/modal.php:6
2402
  msgid "Close modal"
2403
  msgstr ""
872
  msgid "Restrict Limits To"
873
  msgstr ""
874
 
875
+ #: config/settings.php:531, plugin/Controllers/MetaboxController.php:38, plugin/Tinymce/SiteReviewsSummaryTinymce.php:25, plugin/Tinymce/SiteReviewsTinymce.php:56, views/partials/editor/bulk-edit-assigned-posts.php:6
876
  msgctxt "admin-text"
877
  msgid "Assigned Posts"
878
  msgstr ""
882
  msgid "Assigned Terms"
883
  msgstr ""
884
 
885
+ #: config/settings.php:533, plugin/Controllers/MetaboxController.php:39, plugin/Defaults/PostTypeColumnDefaults.php:19, views/partials/editor/bulk-edit-assigned-users.php:6
886
  msgctxt "admin-text"
887
  msgid "Assigned Users"
888
  msgstr ""
1274
  msgstr[0] ""
1275
  msgstr[1] ""
1276
 
1277
+ #: plugin/Controllers/AdminController.php:165, plugin/Widgets/SiteReviewsWidget.php:113
1278
  msgctxt "admin-text"
1279
  msgid "Recent Reviews"
1280
  msgstr ""
1281
 
1282
+ #: plugin/Controllers/AdminController.php:166, plugin/Widgets/SiteReviewsFormWidget.php:78
1283
  msgctxt "admin-text"
1284
  msgid "Submit a Review"
1285
  msgstr ""
1286
 
1287
+ #: plugin/Controllers/AdminController.php:167, plugin/Widgets/SiteReviewsSummaryWidget.php:81
1288
  msgctxt "admin-text"
1289
  msgid "Summary of Reviews"
1290
  msgstr ""
1334
  msgid "Local Review"
1335
  msgstr ""
1336
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1337
  #: plugin/Controllers/MenuController.php:52
1338
  msgctxt "admin-text"
1339
  msgid "Tools"
1414
  msgid "System Info"
1415
  msgstr ""
1416
 
1417
+ #: plugin/Controllers/MetaboxController.php:35, views/partials/editor/metabox-response.php:3
1418
  msgctxt "admin-text"
1419
  msgid "Respond Publicly"
1420
  msgstr ""
1421
 
1422
+ #: plugin/Controllers/MetaboxController.php:37
1423
  msgctxt "admin-text"
1424
  msgid "Review Details"
1425
  msgstr ""
1426
 
1427
+ #: plugin/Controllers/MetaboxController.php:41, plugin/Controllers/MetaboxController.php:120
1428
  msgctxt "admin-text"
1429
  msgid "Author"
1430
  msgstr ""
1431
 
1432
+ #: plugin/Controllers/MetaboxController.php:73
1433
  msgctxt "admin-text"
1434
  msgid "(no title)"
1435
  msgstr ""
1436
 
1437
+ #: plugin/Controllers/MetaboxController.php:158, plugin/Controllers/ListTableColumns/ColumnValueResponse.php:17
1438
  msgctxt "admin-text"
1439
  msgid "No"
1440
  msgstr ""
1441
 
1442
+ #: plugin/Controllers/MetaboxController.php:159, plugin/Controllers/ListTableColumns/ColumnValueResponse.php:18
1443
  msgctxt "admin-text"
1444
  msgid "Yes"
1445
  msgstr ""
2333
  msgid "Enter any custom CSS classes here"
2334
  msgstr ""
2335
 
2336
+ #: plugin/Widgets/SiteReviewsFormWidget.php:70
2337
+ msgctxt "admin-text"
2338
+ msgid "Site Reviews: Display a form to submit reviews."
2339
+ msgstr ""
2340
+
2341
  #: plugin/Widgets/SiteReviewsSummaryWidget.php:27
2342
  msgctxt "admin-text"
2343
  msgid "All review types"
2358
  msgid "Limit summary to reviews assigned to a User ID"
2359
  msgstr ""
2360
 
2361
+ #: plugin/Widgets/SiteReviewsSummaryWidget.php:73
2362
+ msgctxt "admin-text"
2363
+ msgid "Site Reviews: Display a summary of your reviews."
2364
+ msgstr ""
2365
+
2366
  #: plugin/Widgets/SiteReviewsWidget.php:25
2367
  msgctxt "admin-text"
2368
  msgid "How many reviews would you like to display?"
2393
  msgid "Limit reviews to those assigned to a User ID"
2394
  msgstr ""
2395
 
2396
+ #: plugin/Widgets/SiteReviewsWidget.php:105
2397
+ msgctxt "admin-text"
2398
+ msgid "Site Reviews: Display your recent reviews."
2399
+ msgstr ""
2400
+
2401
+ #: plugin/Widgets/Widget.php:103
2402
+ msgctxt "admin-text"
2403
+ msgid "Site Reviews: Unknown Widget"
2404
+ msgstr ""
2405
+
2406
  #: views/partials/modal.php:6
2407
  msgid "Close modal"
2408
  msgstr ""
plugin/Commands/RegisterWidgets.php CHANGED
@@ -7,31 +7,25 @@ use GeminiLabs\SiteReviews\Helper;
7
 
8
  class RegisterWidgets implements Contract
9
  {
10
- public $widgets;
11
-
12
- public function __construct(array $input)
13
- {
14
- array_walk($input, function (&$args) {
15
- $args = wp_parse_args($args, [
16
- 'description' => '',
17
- 'name' => '',
18
- ]);
19
- });
20
- $this->widgets = $input;
21
- }
22
-
23
  /**
24
  * @return void
25
  */
26
  public function handle()
27
  {
28
- foreach ($this->widgets as $baseId => $args) {
29
- $widgetClass = Helper::buildClassName($baseId.'-widget', 'Widgets');
30
- if (!class_exists($widgetClass)) {
31
- glsr_log()->error(sprintf('Widget class missing (%s)', $widgetClass));
 
 
 
32
  continue;
33
  }
34
- register_widget(new $widgetClass(glsr()->prefix.$baseId, $args['name'], $args));
 
 
 
 
35
  }
36
  }
37
  }
7
 
8
  class RegisterWidgets implements Contract
9
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  /**
11
  * @return void
12
  */
13
  public function handle()
14
  {
15
+ $dir = glsr()->path('plugin/Widgets');
16
+ if (!is_dir($dir)) {
17
+ return;
18
+ }
19
+ $iterator = new \DirectoryIterator($dir);
20
+ foreach ($iterator as $fileinfo) {
21
+ if (!$fileinfo->isFile()) {
22
  continue;
23
  }
24
+ $className = str_replace('.php', '', $fileinfo->getFilename());
25
+ $widgetClass = Helper::buildClassName($className, 'Widgets');
26
+ if (!(new \ReflectionClass($widgetClass))->isAbstract()) {
27
+ register_widget($widgetClass);
28
+ }
29
  }
30
  }
31
  }
plugin/Controllers/MainController.php CHANGED
@@ -143,19 +143,6 @@ class MainController extends Controller
143
  */
144
  public function registerWidgets()
145
  {
146
- $this->execute(new RegisterWidgets([
147
- 'site-reviews' => [
148
- 'description' => _x('Site Reviews: Display your recent reviews.', 'admin-text', 'site-reviews'),
149
- 'name' => _x('Recent Reviews', 'admin-text', 'site-reviews'),
150
- ],
151
- 'site-reviews-form' => [
152
- 'description' => _x('Site Reviews: Display a form to submit reviews.', 'admin-text', 'site-reviews'),
153
- 'name' => _x('Submit a Review', 'admin-text', 'site-reviews'),
154
- ],
155
- 'site-reviews-summary' => [
156
- 'description' => _x('Site Reviews: Display a summary of your reviews.', 'admin-text', 'site-reviews'),
157
- 'name' => _x('Summary of Reviews', 'admin-text', 'site-reviews'),
158
- ],
159
- ]));
160
  }
161
  }
143
  */
144
  public function registerWidgets()
145
  {
146
+ $this->execute(new RegisterWidgets());
 
 
 
 
 
 
 
 
 
 
 
 
 
147
  }
148
  }
plugin/Controllers/MetaboxController.php CHANGED
@@ -8,6 +8,7 @@ use GeminiLabs\SiteReviews\Helper;
8
  use GeminiLabs\SiteReviews\Modules\Html\MetaboxBuilder;
9
  use GeminiLabs\SiteReviews\Modules\Html\MetaboxField;
10
  use GeminiLabs\SiteReviews\Modules\Html\Template;
 
11
  use GeminiLabs\SiteReviews\Review;
12
 
13
  class MetaboxController
@@ -204,11 +205,7 @@ class MetaboxController
204
  return;
205
  }
206
  $response = strval(Helper::filterInput('response'));
207
- $response = trim(wp_kses($response, [
208
- 'a' => ['href' => [], 'rel' => [], 'target' => [], 'title' => []],
209
- 'em' => [],
210
- 'strong' => [],
211
- ]));
212
  glsr()->action('review/respond', $response, $review);
213
  glsr(Database::class)->metaSet($review->ID, 'response', $response);
214
  }
8
  use GeminiLabs\SiteReviews\Modules\Html\MetaboxBuilder;
9
  use GeminiLabs\SiteReviews\Modules\Html\MetaboxField;
10
  use GeminiLabs\SiteReviews\Modules\Html\Template;
11
+ use GeminiLabs\SiteReviews\Modules\Sanitizer;
12
  use GeminiLabs\SiteReviews\Review;
13
 
14
  class MetaboxController
205
  return;
206
  }
207
  $response = strval(Helper::filterInput('response'));
208
+ $response = glsr(Sanitizer::class)->sanitizeTextHtml($response);
 
 
 
 
209
  glsr()->action('review/respond', $response, $review);
210
  glsr(Database::class)->metaSet($review->ID, 'response', $response);
211
  }
plugin/Modules/Notice.php CHANGED
@@ -15,7 +15,7 @@ class Notice
15
  public function add($type, $message, array $args = [])
16
  {
17
  if (empty(array_filter([$message, $type]))) {
18
- return;
19
  }
20
  $args['message'] = $message;
21
  $args['type'] = $type;
15
  public function add($type, $message, array $args = [])
16
  {
17
  if (empty(array_filter([$message, $type]))) {
18
+ return $this;
19
  }
20
  $args['message'] = $message;
21
  $args['type'] = $type;
plugin/Modules/Sanitizer.php CHANGED
@@ -19,7 +19,7 @@ class Sanitizer
19
  */
20
  protected $values;
21
 
22
- public function __construct($values, $sanitizers)
23
  {
24
  $this->sanitizers = $this->buildSanitizers(Arr::consolidate($sanitizers));
25
  $this->values = Arr::consolidate($values);
@@ -39,25 +39,11 @@ class Sanitizer
39
  return $result;
40
  }
41
 
42
- /**
43
- * @return array
44
- */
45
- protected function buildSanitizers(array $sanitizers)
46
- {
47
- foreach ($sanitizers as $key => &$type) {
48
- $method = Helper::buildMethodName($type, 'sanitize');
49
- $type = method_exists($this, $method)
50
- ? $method
51
- : 'sanitizeText';
52
- }
53
- return $sanitizers;
54
- }
55
-
56
  /**
57
  * @param mixed $value
58
  * @return array
59
  */
60
- protected function sanitizeArray($value)
61
  {
62
  return Arr::consolidate($value);
63
  }
@@ -66,7 +52,7 @@ class Sanitizer
66
  * @param mixed $value
67
  * @return int[]
68
  */
69
- protected function sanitizeArrayInt($value)
70
  {
71
  return Arr::uniqueInt(Cast::toArray($value));
72
  }
@@ -75,7 +61,7 @@ class Sanitizer
75
  * @param mixed $value
76
  * @return string[]
77
  */
78
- protected function sanitizeArrayString($value)
79
  {
80
  return array_filter(Cast::toArray($value), 'is_string');
81
  }
@@ -84,7 +70,7 @@ class Sanitizer
84
  * @param mixed $value
85
  * @return bool
86
  */
87
- protected function sanitizeBool($value)
88
  {
89
  return Cast::toBool($value);
90
  }
@@ -94,7 +80,7 @@ class Sanitizer
94
  * @param mixed $value
95
  * @return string
96
  */
97
- protected function sanitizeDate($value)
98
  {
99
  $date = strtotime(Cast::toString($value));
100
  if (false !== $date) {
@@ -107,7 +93,7 @@ class Sanitizer
107
  * @param mixed $value
108
  * @return string
109
  */
110
- protected function sanitizeEmail($value)
111
  {
112
  return sanitize_email(Cast::toString($value));
113
  }
@@ -116,7 +102,7 @@ class Sanitizer
116
  * @param mixed $value
117
  * @return string
118
  */
119
- protected function sanitizeId($value)
120
  {
121
  require_once ABSPATH.WPINC.'/pluggable.php';
122
  $value = $this->sanitizeSlug($value);
@@ -130,7 +116,7 @@ class Sanitizer
130
  * @param mixed $value
131
  * @return int
132
  */
133
- protected function sanitizeInt($value)
134
  {
135
  return Cast::toInt($value);
136
  }
@@ -139,7 +125,7 @@ class Sanitizer
139
  * @param mixed $value
140
  * @return string
141
  */
142
- protected function sanitizeKey($value)
143
  {
144
  return Str::snakeCase(sanitize_key($this->sanitizeText($value)));
145
  }
@@ -148,7 +134,7 @@ class Sanitizer
148
  * @param mixed $value
149
  * @return string
150
  */
151
- protected function sanitizeSlug($value)
152
  {
153
  return sanitize_title($this->sanitizeText($value));
154
  }
@@ -157,7 +143,7 @@ class Sanitizer
157
  * @param mixed $value
158
  * @return string
159
  */
160
- protected function sanitizeText($value)
161
  {
162
  return sanitize_text_field(Cast::toString($value));
163
  }
@@ -166,7 +152,23 @@ class Sanitizer
166
  * @param mixed $value
167
  * @return string
168
  */
169
- protected function sanitizeTextMultiline($value)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
  {
171
  return sanitize_textarea_field(Cast::toString($value));
172
  }
@@ -175,7 +177,7 @@ class Sanitizer
175
  * @param mixed $value
176
  * @return string
177
  */
178
- protected function sanitizeUrl($value)
179
  {
180
  $url = Cast::toString($value);
181
  if (!Str::startsWith('http://, https://', $url)) {
@@ -189,7 +191,7 @@ class Sanitizer
189
  * @param mixed $value
190
  * @return string
191
  */
192
- protected function sanitizeUserEmail($value)
193
  {
194
  $user = wp_get_current_user();
195
  $value = Cast::toString($value);
@@ -203,7 +205,7 @@ class Sanitizer
203
  * @param mixed $value
204
  * @return string
205
  */
206
- protected function sanitizeUserName($value)
207
  {
208
  $user = wp_get_current_user();
209
  $value = Cast::toString($value);
@@ -212,4 +214,18 @@ class Sanitizer
212
  }
213
  return sanitize_text_field($value);
214
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
  }
19
  */
20
  protected $values;
21
 
22
+ public function __construct(array $values = [], array $sanitizers = [])
23
  {
24
  $this->sanitizers = $this->buildSanitizers(Arr::consolidate($sanitizers));
25
  $this->values = Arr::consolidate($values);
39
  return $result;
40
  }
41
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  /**
43
  * @param mixed $value
44
  * @return array
45
  */
46
+ public function sanitizeArray($value)
47
  {
48
  return Arr::consolidate($value);
49
  }
52
  * @param mixed $value
53
  * @return int[]
54
  */
55
+ public function sanitizeArrayInt($value)
56
  {
57
  return Arr::uniqueInt(Cast::toArray($value));
58
  }
61
  * @param mixed $value
62
  * @return string[]
63
  */
64
+ public function sanitizeArrayString($value)
65
  {
66
  return array_filter(Cast::toArray($value), 'is_string');
67
  }
70
  * @param mixed $value
71
  * @return bool
72
  */
73
+ public function sanitizeBool($value)
74
  {
75
  return Cast::toBool($value);
76
  }
80
  * @param mixed $value
81
  * @return string
82
  */
83
+ public function sanitizeDate($value)
84
  {
85
  $date = strtotime(Cast::toString($value));
86
  if (false !== $date) {
93
  * @param mixed $value
94
  * @return string
95
  */
96
+ public function sanitizeEmail($value)
97
  {
98
  return sanitize_email(Cast::toString($value));
99
  }
102
  * @param mixed $value
103
  * @return string
104
  */
105
+ public function sanitizeId($value)
106
  {
107
  require_once ABSPATH.WPINC.'/pluggable.php';
108
  $value = $this->sanitizeSlug($value);
116
  * @param mixed $value
117
  * @return int
118
  */
119
+ public function sanitizeInt($value)
120
  {
121
  return Cast::toInt($value);
122
  }
125
  * @param mixed $value
126
  * @return string
127
  */
128
+ public function sanitizeKey($value)
129
  {
130
  return Str::snakeCase(sanitize_key($this->sanitizeText($value)));
131
  }
134
  * @param mixed $value
135
  * @return string
136
  */
137
+ public function sanitizeSlug($value)
138
  {
139
  return sanitize_title($this->sanitizeText($value));
140
  }
143
  * @param mixed $value
144
  * @return string
145
  */
146
+ public function sanitizeText($value)
147
  {
148
  return sanitize_text_field(Cast::toString($value));
149
  }
152
  * @param mixed $value
153
  * @return string
154
  */
155
+ public function sanitizeTextHtml($value)
156
+ {
157
+ global $allowedposttags;
158
+ $allowedHtml = [
159
+ 'a' => glsr_get($allowedposttags, 'a'),
160
+ 'em' => glsr_get($allowedposttags, 'em'),
161
+ 'strong' => glsr_get($allowedposttags, 'strong'),
162
+ ];
163
+ $allowedHtml = glsr()->filterString('sanitize/allowed-html-tags', $allowedHtml, $allowedposttags);
164
+ return trim(wp_kses(Cast::toString($value), $allowedHtml));
165
+ }
166
+
167
+ /**
168
+ * @param mixed $value
169
+ * @return string
170
+ */
171
+ public function sanitizeTextMultiline($value)
172
  {
173
  return sanitize_textarea_field(Cast::toString($value));
174
  }
177
  * @param mixed $value
178
  * @return string
179
  */
180
+ public function sanitizeUrl($value)
181
  {
182
  $url = Cast::toString($value);
183
  if (!Str::startsWith('http://, https://', $url)) {
191
  * @param mixed $value
192
  * @return string
193
  */
194
+ public function sanitizeUserEmail($value)
195
  {
196
  $user = wp_get_current_user();
197
  $value = Cast::toString($value);
205
  * @param mixed $value
206
  * @return string
207
  */
208
+ public function sanitizeUserName($value)
209
  {
210
  $user = wp_get_current_user();
211
  $value = Cast::toString($value);
214
  }
215
  return sanitize_text_field($value);
216
  }
217
+
218
+ /**
219
+ * @return array
220
+ */
221
+ protected function buildSanitizers(array $sanitizers)
222
+ {
223
+ foreach ($sanitizers as $key => &$type) {
224
+ $method = Helper::buildMethodName($type, 'sanitize');
225
+ $type = method_exists($this, $method)
226
+ ? $method
227
+ : 'sanitizeText';
228
+ }
229
+ return $sanitizers;
230
+ }
231
  }
plugin/Widgets/SiteReviewsFormWidget.php CHANGED
@@ -61,4 +61,20 @@ class SiteReviewsFormWidget extends Widget
61
  {
62
  return glsr(SiteReviewsFormShortcode::class);
63
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  }
61
  {
62
  return glsr(SiteReviewsFormShortcode::class);
63
  }
64
+
65
+ /**
66
+ * {@inheritdoc}
67
+ */
68
+ protected function widgetDescription()
69
+ {
70
+ return _x('Site Reviews: Display a form to submit reviews.', 'admin-text', 'site-reviews');
71
+ }
72
+
73
+ /**
74
+ * {@inheritdoc}
75
+ */
76
+ protected function widgetName()
77
+ {
78
+ return _x('Submit a Review', 'admin-text', 'site-reviews');
79
+ }
80
  }
plugin/Widgets/SiteReviewsSummaryWidget.php CHANGED
@@ -64,4 +64,20 @@ class SiteReviewsSummaryWidget extends Widget
64
  {
65
  return glsr(SiteReviewsSummaryShortcode::class);
66
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  }
64
  {
65
  return glsr(SiteReviewsSummaryShortcode::class);
66
  }
67
+
68
+ /**
69
+ * {@inheritdoc}
70
+ */
71
+ protected function widgetDescription()
72
+ {
73
+ return _x('Site Reviews: Display a summary of your reviews.', 'admin-text', 'site-reviews');
74
+ }
75
+
76
+ /**
77
+ * {@inheritdoc}
78
+ */
79
+ protected function widgetName()
80
+ {
81
+ return _x('Summary of Reviews', 'admin-text', 'site-reviews');
82
+ }
83
  }
plugin/Widgets/SiteReviewsWidget.php CHANGED
@@ -96,4 +96,20 @@ class SiteReviewsWidget extends Widget
96
  {
97
  return glsr(SiteReviewsShortcode::class);
98
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  }
96
  {
97
  return glsr(SiteReviewsShortcode::class);
98
  }
99
+
100
+ /**
101
+ * {@inheritdoc}
102
+ */
103
+ protected function widgetDescription()
104
+ {
105
+ return _x('Site Reviews: Display your recent reviews.', 'admin-text', 'site-reviews');
106
+ }
107
+
108
+ /**
109
+ * {@inheritdoc}
110
+ */
111
+ protected function widgetName()
112
+ {
113
+ return _x('Recent Reviews', 'admin-text', 'site-reviews');
114
+ }
115
  }
plugin/Widgets/Widget.php CHANGED
@@ -3,6 +3,7 @@
3
  namespace GeminiLabs\SiteReviews\Widgets;
4
 
5
  use GeminiLabs\SiteReviews\Helpers\Arr;
 
6
  use GeminiLabs\SiteReviews\Modules\Html\WidgetBuilder;
7
  use WP_Widget;
8
 
@@ -24,6 +25,14 @@ abstract class Widget extends WP_Widget
24
  */
25
  protected $widgetArgs;
26
 
 
 
 
 
 
 
 
 
27
  /**
28
  * @param array $args
29
  * @param array $instance
@@ -77,4 +86,31 @@ abstract class Widget extends WP_Widget
77
  * @return \GeminiLabs\SiteReviews\Shortcodes\Shortcode
78
  */
79
  abstract protected function shortcode();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
  }
3
  namespace GeminiLabs\SiteReviews\Widgets;
4
 
5
  use GeminiLabs\SiteReviews\Helpers\Arr;
6
+ use GeminiLabs\SiteReviews\Helpers\Str;
7
  use GeminiLabs\SiteReviews\Modules\Html\WidgetBuilder;
8
  use WP_Widget;
9
 
25
  */
26
  protected $widgetArgs;
27
 
28
+ public function __construct()
29
+ {
30
+ $className = (new \ReflectionClass($this))->getShortName();
31
+ $className = str_replace('Widget', '', $className);
32
+ $baseId = glsr()->prefix.Str::dashCase($className);
33
+ parent::__construct($baseId, $this->widgetName(), $this->widgetOptions());
34
+ }
35
+
36
  /**
37
  * @param array $args
38
  * @param array $instance
86
  * @return \GeminiLabs\SiteReviews\Shortcodes\Shortcode
87
  */
88
  abstract protected function shortcode();
89
+
90
+ /**
91
+ * @return string
92
+ */
93
+ protected function widgetDescription()
94
+ {
95
+ return '';
96
+ }
97
+
98
+ /**
99
+ * @return string
100
+ */
101
+ protected function widgetName()
102
+ {
103
+ return _x('Site Reviews: Unknown Widget', 'admin-text', 'site-reviews');
104
+ }
105
+
106
+ /**
107
+ * @return array
108
+ */
109
+ protected function widgetOptions()
110
+ {
111
+ return [
112
+ 'description' => $this->widgetDescription(),
113
+ 'name' => $this->widgetName(),
114
+ ];
115
+ }
116
  }
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: reviews, ratings, testimonials, woocommerce, product reviews
5
  Tested up to: 5.7
6
  Requires at least: 5.5
7
  Requires PHP: 5.6
8
- Stable tag: 5.8.2
9
  License: GPLv3
10
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -133,6 +133,10 @@ All documentation can be found in the "Help" page of the plugin. If your questio
133
 
134
  ## Changelog
135
 
 
 
 
 
136
  = 5.8.2 (2021-04-03) =
137
 
138
  - Fixed javascript event system
5
  Tested up to: 5.7
6
  Requires at least: 5.5
7
  Requires PHP: 5.6
8
+ Stable tag: 5.8.3
9
  License: GPLv3
10
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
 
133
 
134
  ## Changelog
135
 
136
+ = 5.8.3 (2021-04-12) =
137
+
138
+ - Fixed widget compatibility with page builder plugins
139
+
140
  = 5.8.2 (2021-04-03) =
141
 
142
  - Fixed javascript event system
site-reviews.php CHANGED
@@ -7,7 +7,7 @@
7
  * Plugin Name: Site Reviews
8
  * Plugin URI: https://wordpress.org/plugins/site-reviews
9
  * Description: Receive and display reviews on your website
10
- * Version: 5.8.2
11
  * Author: Paul Ryley
12
  * Author URI: https://geminilabs.io
13
  * License: GPL2
7
  * Plugin Name: Site Reviews
8
  * Plugin URI: https://wordpress.org/plugins/site-reviews
9
  * Description: Receive and display reviews on your website
10
+ * Version: 5.8.3
11
  * Author: Paul Ryley
12
  * Author URI: https://geminilabs.io
13
  * License: GPL2