Google Reviews Widget - Version 1.7.8

Version Description

  • Improve: shortcode support
  • Improve: added new locale bg_BG
  • Improve: admin notie
  • Bugfix: undefined widget property in Elementor
Download this release

Release Info

Developer widgetpack
Plugin Icon 128x128 Google Reviews Widget
Version 1.7.8
Comparing to
See all releases

Code changes from version 1.7.7 to 1.7.8

grw-setting.php CHANGED
@@ -157,7 +157,7 @@ $grw_google_api_key = get_option('grw_google_api_key');
157
  <div class="nav-tab-wrapper">
158
  <a href="#about" class="nav-tab<?php if ($tab == 'about') { ?> nav-tab-active<?php } ?>"><?php echo grw_i('About'); ?></a>
159
  <a href="#setting" class="nav-tab<?php if ($tab == 'setting') { ?> nav-tab-active<?php } ?>"><?php echo grw_i('Settings'); ?></a>
160
- <a href="#shortcode" class="nav-tab<?php if ($tab == 'shortcode') { ?> nav-tab-active<?php } ?>"><?php echo grw_i('Shortcode Builder'); ?></a>
161
  <a href="#support" class="nav-tab<?php if ($tab == 'support') { ?> nav-tab-active<?php } ?>"><?php echo grw_i('Support'); ?></a>
162
  <a href="#advance" class="nav-tab<?php if ($tab == 'advance') { ?> nav-tab-active<?php } ?>"><?php echo grw_i('Advance'); ?></a>
163
  </div>
@@ -251,8 +251,20 @@ $grw_google_api_key = get_option('grw_google_api_key');
251
  </div>
252
 
253
  <div id="shortcode" class="tab-content" style="display:<?php echo $tab == 'shortcode' ? 'block' : 'none'?>;">
254
- <h3>Shortcode Builder is available in the Business version of the plugin</h3>
255
- <a href="https://richplugins.com/business-reviews-bundle-wordpress-plugin" target="_blank" style="color:#00bf54;font-size:16px;text-decoration:underline;"><?php echo grw_i('Upgrade to Business'); ?></a>
 
 
 
 
 
 
 
 
 
 
 
 
256
  </div>
257
 
258
  <div id="support" class="tab-content" style="display:<?php echo $tab == 'support' ? 'block' : 'none'?>;">
@@ -275,7 +287,11 @@ $grw_google_api_key = get_option('grw_google_api_key');
275
  <div class="rplg-flex-col">
276
  <div class="rplg-support-question">
277
  <h3>Why I see only 5 Google reviews?</h3>
278
- <p>The plugin uses the Google Places API to get your reviews. The API only returns the 5 most helpful reviews. Unfortunately, it is a limitation of Google, not specifically the plugin.</p>
 
 
 
 
279
  </div>
280
  </div>
281
  <div class="rplg-flex-col">
@@ -365,5 +381,31 @@ jQuery(document).ready(function($) {
365
  $this.addClass('nav-tab-active').siblings().removeClass('nav-tab-active');
366
  e.preventDefault();
367
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
368
  });
369
  </script>
157
  <div class="nav-tab-wrapper">
158
  <a href="#about" class="nav-tab<?php if ($tab == 'about') { ?> nav-tab-active<?php } ?>"><?php echo grw_i('About'); ?></a>
159
  <a href="#setting" class="nav-tab<?php if ($tab == 'setting') { ?> nav-tab-active<?php } ?>"><?php echo grw_i('Settings'); ?></a>
160
+ <a href="#shortcode" class="nav-tab<?php if ($tab == 'shortcode') { ?> nav-tab-active<?php } ?>"><?php echo grw_i('Shortcode'); ?></a>
161
  <a href="#support" class="nav-tab<?php if ($tab == 'support') { ?> nav-tab-active<?php } ?>"><?php echo grw_i('Support'); ?></a>
162
  <a href="#advance" class="nav-tab<?php if ($tab == 'advance') { ?> nav-tab-active<?php } ?>"><?php echo grw_i('Advance'); ?></a>
163
  </div>
251
  </div>
252
 
253
  <div id="shortcode" class="tab-content" style="display:<?php echo $tab == 'shortcode' ? 'block' : 'none'?>;">
254
+ <h3>Shortcode</h3>
255
+ <div class="rplg-flex-row">
256
+ <div class="rplg-flex-col3">
257
+ <div class="widget-content">
258
+ <?php $grw_widget = new Goog_Reviews_Widget; $grw_widget->form(array()); ?>
259
+ </div>
260
+ </div>
261
+ <div class="rplg-flex-col6">
262
+ <div class="shortcode-content">
263
+ <textarea id="rplg_shortcode" style="display:block;width:100%;height:200px;padding:10px" onclick="window.rplg_shortcode.select();document.execCommand('copy');window.rplg_shortcode_msg.innerHTML='Shortcode copied, please paste it to the page content';" readonly>Connect Google place to show the shortcode</textarea>
264
+ <p id="rplg_shortcode_msg"></p>
265
+ </div>
266
+ </div>
267
+ </div>
268
  </div>
269
 
270
  <div id="support" class="tab-content" style="display:<?php echo $tab == 'support' ? 'block' : 'none'?>;">
287
  <div class="rplg-flex-col">
288
  <div class="rplg-support-question">
289
  <h3>Why I see only 5 Google reviews?</h3>
290
+ <p>The plugin uses the Google Places API to get your reviews. The API only returns the 5 most helpful reviews. When Google changes the 5 most helpful the plugin will automatically add the new one to your database. Thus slowly building up a database of reviews. It's a limitation of Google, not specifically the plugin.</p>
291
+ <p>The plugin can only download what Google returns in their Places API. It is usually the 5 Most Helpful (not newest) reviews. You can check what the API returns by entering your Place ID and Goolge API key in this url:</p>
292
+ <code>https://maps.googleapis.com/maps/api/place/details/json?placeid=YOUR_PLACE_ID&key=YOUR_GOOGLE_API_KEY</code>
293
+ <p>However, if you got new reviews for your Google place, but the plugin does not show these, it means that Google didn't include it to 5 most helpful and the plugin just can't get this. It's a limitation of Google, not the plugin.</p>
294
+ <p>Also, please check that the 'Refresh' option is enable in the widget. It will call the Google API once in three days (to avoid a Google Billing and keeps the API key is free) to check the new most helpful reviews.</p>
295
  </div>
296
  </div>
297
  <div class="rplg-flex-col">
381
  $this.addClass('nav-tab-active').siblings().removeClass('nav-tab-active');
382
  e.preventDefault();
383
  });
384
+
385
+ var el = document.body.querySelector('.widget-content'),
386
+ elms = '.widget-content input[type="text"][name],' +
387
+ '.widget-content input[type="hidden"][name],' +
388
+ '.widget-content input[type="checkbox"][name]';
389
+
390
+ $(elms).change(function() {
391
+ if (!this.getAttribute('name')) return;
392
+ if (!el.querySelector('.grw-google-place-id').value) return;
393
+
394
+ var args = '',
395
+ ctrls = el.querySelectorAll(elms);
396
+ for (var i = 0; i < ctrls.length; i++) {
397
+ var ctrl = ctrls[i],
398
+ match = ctrl.getAttribute('name').match(/\[\]\[(.*?)\]/);
399
+ if (match && match.length > 1) {
400
+ var name = match[1];
401
+ if (ctrl.type == 'checkbox') {
402
+ if (ctrl.checked) args += ' ' + name + '=true';
403
+ } else {
404
+ if (ctrl.value) args += ' ' + name + '=' + '"' + ctrl.value + '"';
405
+ }
406
+ }
407
+ }
408
+ window.rplg_shortcode.value = '[grw' + args + ']';
409
+ });
410
  });
411
  </script>
grw-widget.php CHANGED
@@ -11,10 +11,7 @@
11
  //https://wordpress.org/support/topic/fix-for-fatal-error-require/
12
  class Goog_Reviews_Widget extends WP_Widget {
13
 
14
- public $options;
15
- public $api_key;
16
-
17
- public $widget_fields = array(
18
  'title' => '',
19
  'place_name' => '',
20
  'place_id' => '',
@@ -57,7 +54,7 @@ class Goog_Reviews_Widget extends WP_Widget {
57
  }
58
 
59
  function grw_widget_scripts($hook) {
60
- if ($hook == 'widgets.php' || ($hook == 'post.php' && defined('SITEORIGIN_PANELS_VERSION'))) {
61
 
62
  wp_register_style('rplg_wp_css', plugins_url('/static/css/rplg-wp.css', __FILE__), array(), GRW_VERSION);
63
  wp_enqueue_style('rplg_wp_css', plugins_url('/static/css/rplg-wp.css', __FILE__));
@@ -82,8 +79,8 @@ class Goog_Reviews_Widget extends WP_Widget {
82
 
83
  if (grw_enabled()) {
84
  extract($args);
85
- foreach ($this->widget_fields as $variable => $value) {
86
- ${$variable} = !isset($instance[$variable]) ? $this->widget_fields[$variable] : esc_attr($instance[$variable]);
87
  }
88
 
89
  echo $before_widget;
@@ -112,16 +109,16 @@ class Goog_Reviews_Widget extends WP_Widget {
112
 
113
  function update($new_instance, $old_instance) {
114
  $instance = $old_instance;
115
- foreach ($this->widget_fields as $field => $value) {
116
- $instance[$field] = strip_tags(stripslashes($new_instance[$field]));
117
  }
118
  return $instance;
119
  }
120
 
121
  function form($instance) {
122
  global $wp_version;
123
- foreach ($this->widget_fields as $field => $value) {
124
- if (array_key_exists($field, $this->widget_fields)) {
125
  ${$field} = !isset($instance[$field]) ? $value : esc_attr($instance[$field]);
126
  }
127
  }
11
  //https://wordpress.org/support/topic/fix-for-fatal-error-require/
12
  class Goog_Reviews_Widget extends WP_Widget {
13
 
14
+ public static $widget_fields = array(
 
 
 
15
  'title' => '',
16
  'place_name' => '',
17
  'place_id' => '',
54
  }
55
 
56
  function grw_widget_scripts($hook) {
57
+ if ($hook == 'widgets.php' || $hook == 'settings_page_grw' || ($hook == 'post.php' && defined('SITEORIGIN_PANELS_VERSION'))) {
58
 
59
  wp_register_style('rplg_wp_css', plugins_url('/static/css/rplg-wp.css', __FILE__), array(), GRW_VERSION);
60
  wp_enqueue_style('rplg_wp_css', plugins_url('/static/css/rplg-wp.css', __FILE__));
79
 
80
  if (grw_enabled()) {
81
  extract($args);
82
+ foreach (self::$widget_fields as $variable => $value) {
83
+ ${$variable} = !isset($instance[$variable]) ? self::$widget_fields[$variable] : esc_attr($instance[$variable]);
84
  }
85
 
86
  echo $before_widget;
109
 
110
  function update($new_instance, $old_instance) {
111
  $instance = $old_instance;
112
+ foreach (self::$widget_fields as $field => $value) {
113
+ $instance[$field] = isset($new_instance[$field]) ? strip_tags(stripslashes($new_instance[$field])) : '';
114
  }
115
  return $instance;
116
  }
117
 
118
  function form($instance) {
119
  global $wp_version;
120
+ foreach (self::$widget_fields as $field => $value) {
121
+ if (array_key_exists($field, self::$widget_fields)) {
122
  ${$field} = !isset($instance[$field]) ? $value : esc_attr($instance[$field]);
123
  }
124
  }
grw.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Google Reviews Widget
4
  Plugin URI: https://richplugins.com/business-reviews-bundle-wordpress-plugin
5
  Description: Instantly Google Places Reviews on your website to increase user confidence and SEO.
6
  Author: RichPlugins <support@richplugins.com>
7
- Version: 1.7.7
8
  Author URI: https://richplugins.com
9
  */
10
 
@@ -13,7 +13,7 @@ require(ABSPATH . 'wp-includes/version.php');
13
  include_once(dirname(__FILE__) . '/api/urlopen.php');
14
  include_once(dirname(__FILE__) . '/helper/debug.php');
15
 
16
- define('GRW_VERSION', '1.7.7');
17
  define('GRW_GOOGLE_PLACE_API', 'https://maps.googleapis.com/maps/api/place/');
18
  define('GRW_GOOGLE_AVATAR', 'https://lh3.googleusercontent.com/-8hepWJzFXpE/AAAAAAAAAAI/AAAAAAAAAAA/I80WzYfIxCQ/s50-c/114307615494839964028.jpg');
19
  define('GRW_PLUGIN_URL', plugins_url(basename(plugin_dir_path(__FILE__ )), basename(__FILE__)));
@@ -24,6 +24,9 @@ function grw_options() {
24
  'grw_active',
25
  'grw_google_api_key',
26
  'grw_language',
 
 
 
27
  );
28
  }
29
 
@@ -81,6 +84,9 @@ add_filter('plugin_row_meta', 'grw_plugin_row_meta', 10, 2);
81
 
82
  /*-------------------------------- Database --------------------------------*/
83
  function grw_activation($network_wide = false) {
 
 
 
84
  add_option('grw_is_multisite', $network_wide);
85
  if (grw_does_need_update()) {
86
  grw_install();
@@ -195,6 +201,35 @@ function grw_reset_data($reset_db) {
195
  }
196
  }
197
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
  /*-------------------------------- Request --------------------------------*/
199
  function grw_request_handler() {
200
  global $wpdb;
@@ -409,6 +444,47 @@ function grw_lang_init() {
409
  }
410
  add_action('plugins_loaded', 'grw_lang_init');
411
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
412
  /*-------------------------------- Helpers --------------------------------*/
413
  function grw_enabled() {
414
  global $id, $post;
4
  Plugin URI: https://richplugins.com/business-reviews-bundle-wordpress-plugin
5
  Description: Instantly Google Places Reviews on your website to increase user confidence and SEO.
6
  Author: RichPlugins <support@richplugins.com>
7
+ Version: 1.7.8
8
  Author URI: https://richplugins.com
9
  */
10
 
13
  include_once(dirname(__FILE__) . '/api/urlopen.php');
14
  include_once(dirname(__FILE__) . '/helper/debug.php');
15
 
16
+ define('GRW_VERSION', '1.7.8');
17
  define('GRW_GOOGLE_PLACE_API', 'https://maps.googleapis.com/maps/api/place/');
18
  define('GRW_GOOGLE_AVATAR', 'https://lh3.googleusercontent.com/-8hepWJzFXpE/AAAAAAAAAAI/AAAAAAAAAAA/I80WzYfIxCQ/s50-c/114307615494839964028.jpg');
19
  define('GRW_PLUGIN_URL', plugins_url(basename(plugin_dir_path(__FILE__ )), basename(__FILE__)));
24
  'grw_active',
25
  'grw_google_api_key',
26
  'grw_language',
27
+ 'grw_activation_time',
28
+ 'grw_rev_notice_hide',
29
+ 'rplg_rev_notice_show',
30
  );
31
  }
32
 
84
 
85
  /*-------------------------------- Database --------------------------------*/
86
  function grw_activation($network_wide = false) {
87
+ $now = time();
88
+ update_option('grw_activation_time', $now);
89
+
90
  add_option('grw_is_multisite', $network_wide);
91
  if (grw_does_need_update()) {
92
  grw_install();
201
  }
202
  }
203
 
204
+ /*-------------------------------- Shortcode --------------------------------*/
205
+ function grw_shortcode($atts) {
206
+ global $wpdb;
207
+
208
+ if (!grw_enabled()) return '';
209
+
210
+ $shortcode_atts = array();
211
+ foreach (Goog_Reviews_Widget::$widget_fields as $field => $value) {
212
+ $shortcode_atts[$field] = isset($atts[$field]) ? strip_tags(stripslashes($atts[$field])) : '';
213
+ }
214
+
215
+ foreach ($shortcode_atts as $variable => $value) {
216
+ ${$variable} = esc_attr($shortcode_atts[$variable]);
217
+ }
218
+
219
+ ob_start();
220
+ if (empty($place_id)) {
221
+ ?>
222
+ <div class="grw-error" style="padding:10px;color:#b94a48;background-color:#f2dede;border-color:#eed3d7;max-width:200px;">
223
+ <?php echo grw_i('<b>Google Reviews Business</b>: required attribute place_id is not defined'); ?>
224
+ </div>
225
+ <?php
226
+ } else {
227
+ include(dirname(__FILE__) . '/grw-reviews.php');
228
+ }
229
+ return preg_replace('/[\n\r]/', '', ob_get_clean());
230
+ }
231
+ add_shortcode("grw", "grw_shortcode");
232
+
233
  /*-------------------------------- Request --------------------------------*/
234
  function grw_request_handler() {
235
  global $wpdb;
444
  }
445
  add_action('plugins_loaded', 'grw_lang_init');
446
 
447
+ /*-------------------------------- Leave review --------------------------------*/
448
+ function grw_admin_notice() {
449
+ $activation_time = get_option('grw_activation_time');
450
+
451
+ if ($activation_time == '') {
452
+ $activation_time = time() - 86400*28;
453
+ update_option('grw_activation_time', $activation_time);
454
+ }
455
+
456
+ $rev_notice = isset($_GET['grw_rev_notice']) ? $_GET['grw_rev_notice'] : '';
457
+ if ($rev_notice == 'later') {
458
+ $activation_time = time() - 86400*23;
459
+ update_option('grw_activation_time', $activation_time);
460
+ update_option('grw_rev_notice_hide', 'later');
461
+ } else if ($rev_notice == 'never') {
462
+ update_option('grw_rev_notice_hide', 'never');
463
+ }
464
+
465
+ $rev_notice_hide = get_option('grw_rev_notice_hide');
466
+ $rev_notice_show = get_option('rplg_rev_notice_show');
467
+
468
+ if ($rev_notice_show == '' || $rev_notice_show == 'grw') {
469
+
470
+ if ($rev_notice_hide != 'never' && $activation_time < (time() - 86400*30)) {
471
+ update_option('rplg_rev_notice_show', 'grw');
472
+ $class = 'notice notice-info is-dismissible';
473
+ $url = remove_query_arg(array('taction', 'tid', 'sortby', 'sortdir', 'opt'));
474
+ $url_later = esc_url(add_query_arg('grw_rev_notice', 'later', $url));
475
+ $url_never = esc_url(add_query_arg('grw_rev_notice', 'never', $url));
476
+
477
+ $notice = '<p style="font-weight:normal;color:#156315">Hey, I noticed you have been using my <b>Google Reviews Widget</b> plugin for a while now – that’s awesome!<br>Could you please do me a BIG favor and give it a 5-star rating on WordPress?<br><br>--<br>Thanks!<br>Daniel K.<br></p><ul style="font-weight:bold;"><li><a href="https://wordpress.org/support/plugin/widget-google-reviews/reviews/#new-post" target="_blank">OK, you deserve it</a></li><li><a href="' . $url_later . '">Not now, maybe later</a></li><li><a href="' . $url_never . '">Do not remind me again</a></li></ul><p>By the way, if you have been thinking about upgrading to the <a href="https://richplugins.com/business-reviews-bundle-wordpress-plugin" target="_blank">Business</a> version, here is a 25% off coupon you can use! -> <b>business25off</b></p>';
478
+
479
+ printf('<div class="%1$s"><p>%2$s</p></div>', esc_attr($class), $notice);
480
+ } else {
481
+ update_option('rplg_rev_notice_show', '');
482
+ }
483
+
484
+ }
485
+ }
486
+ add_action('admin_notices', 'grw_admin_notice');
487
+
488
  /*-------------------------------- Helpers --------------------------------*/
489
  function grw_enabled() {
490
  global $id, $post;
languages/grw-bg_BG.mo ADDED
Binary file
languages/grw-bg_BG.po ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Language: bg_BG\n"
4
+ "MIME-Version: 1.0\n"
5
+ "Content-Type: text/plain; charset=UTF-8\n"
6
+ "Content-Transfer-Encoding: 8bit\n"
7
+ "X-Generator: Poedit 2.2\n"
8
+ "Project-Id-Version: \n"
9
+ "POT-Creation-Date: \n"
10
+ "PO-Revision-Date: \n"
11
+ "Last-Translator: \n"
12
+ "Language-Team: \n"
13
+
14
+ msgid "Google Rating"
15
+ msgstr "Google рейтинг"
16
+
17
+ msgid "See All Reviews"
18
+ msgstr "Вижте всички отзиви"
19
+
20
+ msgid "Google User"
21
+ msgstr "Google Потребител"
22
+
23
+ msgid "read more"
24
+ msgstr "още..."
25
+
26
+ msgid "Next Reviews"
27
+ msgstr "Още отзиви"
28
+
29
+ msgid "Write a review"
30
+ msgstr "Напишете отзив"
31
+
32
+ msgid "Based on %s reviews"
33
+ msgstr "На база на %s отзива"
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://richplugins.com/business-reviews-bundle-wordpress-plugin
4
  Tags: google, reviews, google reviews, google places, google places reviews, testimonials, google review widget, google business reviews, slider, google review, review, google place review, google map reviews, google reviews pro, facebook reviews, facebook page reviews, yelp reviews, yelp business reviews
5
  Requires at least: 2.8
6
  Tested up to: 5.2
7
- Stable tag: 1.7.7
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -25,6 +25,7 @@ This plugin display Google Business Reviews on your websites in sidebar widget.
25
  * Free!
26
  * SEO
27
  * Refresh reviews
 
28
  * Trim long reviews with "read more" link
29
  * Support page builders: Elementor, Page Origin, Beaver Builder, WPBakery, Divi
30
  * Displays up to 5 Google business reviews per location
@@ -46,7 +47,7 @@ This plugin display Google Business Reviews on your websites in sidebar widget.
46
  * Displays all Google reviews through Business API
47
  * Merge reviews between each other from different platforms (Google, Facebook, Yelp) and places
48
  * Google Rich Snippets (schema.org)
49
- * Support shortcode, powerful <b>Shortcode Builder</b>
50
  * Slider/Grid themes to show G+ reviews like testimonials
51
  * Google Trust Badge (right/left fixed or embedded)
52
  * 'Write a review' button to available leave Google review directly on your website
@@ -76,6 +77,12 @@ Why limit your reviews to just Google Reviews? Check out our other free reviews
76
 
77
  == Changelog ==
78
 
 
 
 
 
 
 
79
  = 1.7.7 =
80
  * Bugfix: some style fixes
81
 
4
  Tags: google, reviews, google reviews, google places, google places reviews, testimonials, google review widget, google business reviews, slider, google review, review, google place review, google map reviews, google reviews pro, facebook reviews, facebook page reviews, yelp reviews, yelp business reviews
5
  Requires at least: 2.8
6
  Tested up to: 5.2
7
+ Stable tag: 1.7.8
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
25
  * Free!
26
  * SEO
27
  * Refresh reviews
28
+ * Shortcode support!
29
  * Trim long reviews with "read more" link
30
  * Support page builders: Elementor, Page Origin, Beaver Builder, WPBakery, Divi
31
  * Displays up to 5 Google business reviews per location
47
  * Displays all Google reviews through Business API
48
  * Merge reviews between each other from different platforms (Google, Facebook, Yelp) and places
49
  * Google Rich Snippets (schema.org)
50
+ * Powerful <b>Collection Builder</b>
51
  * Slider/Grid themes to show G+ reviews like testimonials
52
  * Google Trust Badge (right/left fixed or embedded)
53
  * 'Write a review' button to available leave Google review directly on your website
77
 
78
  == Changelog ==
79
 
80
+ = 1.7.8 =
81
+ * Improve: shortcode support
82
+ * Improve: added new locale bg_BG
83
+ * Improve: admin notie
84
+ * Bugfix: undefined widget property in Elementor
85
+
86
  = 1.7.7 =
87
  * Bugfix: some style fixes
88
 
static/css/rplg-setting.css CHANGED
@@ -110,6 +110,9 @@
110
  .rplg-flex-col3 {
111
  width: 33.3%;
112
  }
 
 
 
113
  }
114
 
115
  .rplg-support-question {
@@ -137,6 +140,12 @@
137
  background-color: #4caf50;
138
  }
139
 
 
 
 
 
 
 
140
  .rplg-alert a:not(.close),
141
  .rplg-alert .alert-link {
142
  color: #fff;
@@ -145,4 +154,15 @@
145
 
146
  .rplg-socials > * {
147
  vertical-align: middle!important;
 
 
 
 
 
 
 
 
 
 
 
148
  }
110
  .rplg-flex-col3 {
111
  width: 33.3%;
112
  }
113
+ .rplg-flex-col6 {
114
+ width: 66.7%;
115
+ }
116
  }
117
 
118
  .rplg-support-question {
140
  background-color: #4caf50;
141
  }
142
 
143
+ .rplg-alert-danger {
144
+ color: #e51c23;
145
+ border-color: #f7a4af;
146
+ background-color: #f9bdbb;
147
+ }
148
+
149
  .rplg-alert a:not(.close),
150
  .rplg-alert .alert-link {
151
  color: #fff;
154
 
155
  .rplg-socials > * {
156
  vertical-align: middle!important;
157
+ }
158
+
159
+ .rplg-setting .widget-content,
160
+ .rplg-setting .shortcode-content {
161
+ padding: 0 20px;
162
+ border-radius: 3px;
163
+ border: 1px solid #eee;
164
+ }
165
+
166
+ .rplg-setting .shortcode-content {
167
+ padding: 20px 20px 0;
168
  }
static/css/rplg-wp.css CHANGED
@@ -54,17 +54,17 @@
54
  }
55
 
56
  .rplg-quest {
57
- position: absolute;
58
- top: -2px;
59
- right: 2px;
60
- width: 16px;
61
- cursor: pointer;
62
- font-size: 12px;
63
- font-weight: bold;
64
- text-align: center;
65
- border: 1px solid #ccc;
66
- border-radius: 50px;
67
- background: #eee;
68
  }
69
 
70
  .rplg-quest + div {
@@ -76,106 +76,106 @@
76
 
77
  /*-------------------------------- google finder --------------------------------*/
78
  .grw-step {
79
- display: inline-block;
80
- width: 20px;
81
- line-height: 20px;
82
- padding: 2px;
83
- margin: 0 6px 0 0;
84
- text-align: center;
85
- background: #ffe045;
86
- border-radius: 50%;
87
  }
88
 
89
  #shortcode .grw-step,
90
  #shortcode .yrw-step {
91
- width: 28px;
92
- padding: 4px;
93
  }
94
 
95
  .grw-places, .grw-reviews {
96
- max-height: 200px;
97
- overflow: auto;
98
- border: 1px solid #f3f3f3;
99
  }
100
 
101
  .grw-place {
102
- margin: 0;
103
- padding: 6px;
104
- cursor: pointer;
105
  }
106
 
107
  .grw-place img {
108
- border: none;
109
- float: left;
110
- height: 40px;
111
- margin-right: 5px;
112
- width: 40px;
113
- width: 20px;
114
- height: 20px;
115
- border-radius: 50%;
116
  }
117
 
118
  .grw-place .media-body {
119
- overflow: hidden;
120
  }
121
 
122
  .grw-place .media-heading {
123
- margin: 0;
124
- padding-right: 6px;
125
- font-size: 13px;
126
- font-weight: bold;
127
  }
128
 
129
  .grw-place .grw-grating {
130
- font-size: 12px;
131
- font-weight: 700;
132
- color: #e7711b;
133
- margin: 0 6px 0 0;
134
  }
135
 
136
  .grw-place .grw-gstars {
137
- padding-left: 7px;
138
  }
139
 
140
  .grw-place small {
141
- display: block;
142
- font-size: 11px;
143
- overflow: hidden;
144
- white-space: nowrap;
145
- text-overflow: ellipsis;
146
  }
147
 
148
  .grw-place:hover {
149
- background-color: #fafafa;
150
  }
151
 
152
  .grw-place.grw-active {
153
- background-color: #eee;
154
  }
155
 
156
  .grw-place .grw-gtime {
157
- color: #999;
158
- font-size: 13px;
159
- text-decoration: none;
160
  }
161
 
162
  .grw-place .grw-gtext {
163
- color: #222;
164
- font-size: 13px;
165
- line-height: 18px;
166
- max-width: 100%;
167
- overflow: hidden;
168
- white-space: pre-wrap;
169
  }
170
 
171
  .grw-five-reviews-note {
172
- margin: 4px 0;
173
- color: #d32323;
174
- text-align: center;
175
  }
176
 
177
  .grw-save-reviews-container {
178
- position: relative;
179
  }
180
 
181
  .grw-tooltip {
@@ -253,95 +253,95 @@
253
 
254
  /*-------------------------------- yelp finder --------------------------------*/
255
  .yrw-step {
256
- display: inline-block;
257
- width: 20px;
258
- line-height: 20px;
259
- padding: 2px;
260
- margin: 0 6px 0 0;
261
- text-align: center;
262
- background: #ffe045;
263
- border-radius: 50%;
264
  }
265
 
266
  .yrw-businesses, .yrw-reviews {
267
- max-height: 200px;
268
- overflow: auto;
269
- border: 1px solid #f3f3f3;
270
  }
271
 
272
  .yrw-business {
273
- margin: 0;
274
- padding: 6px;
275
- cursor: pointer;
276
  }
277
 
278
  .yrw-business img {
279
- border: none;
280
- float: left;
281
- height: 40px;
282
- margin-right: 5px;
283
- width: 40px;
284
- width: 20px;
285
- height: 20px;
286
  }
287
 
288
  .yrw-business .media-body {
289
- overflow: hidden;
290
  }
291
 
292
  .yrw-business .media-heading {
293
- margin: 0;
294
- padding-right: 6px;
295
- font-size: 13px;
296
- font-weight: bold;
297
  }
298
 
299
  .yrw-business .yrw-yrating {
300
- font-size: 12px;
301
- font-weight: 700;
302
- color: #d32323;
303
- margin: 0 6px 0 0;
304
  }
305
 
306
  .yrw-business .yrw-ystars {
307
- padding-left: 7px;
308
  }
309
 
310
  .yrw-business small {
311
- display: block;
312
- font-size: 11px;
313
- overflow: hidden;
314
- white-space: nowrap;
315
- text-overflow: ellipsis;
316
  }
317
 
318
  .yrw-business:hover {
319
- background-color: #fafafa;
320
  }
321
 
322
  .yrw-business.yrw-active {
323
- background-color: #eee;
324
  }
325
 
326
  .yrw-business .yrw-ytime {
327
- color: #999;
328
- font-size: 13px;
329
- text-decoration: none;
330
  }
331
 
332
  .yrw-business .yrw-ytext {
333
- color: #222;
334
- font-size: 13px;
335
- line-height: 18px;
336
- max-width: 100%;
337
- overflow: hidden;
338
- white-space: pre-wrap;
339
  }
340
 
341
  .yrw-three-reviews-note {
342
- margin: 4px 0;
343
- color: #d32323;
344
- text-align: center;
345
  }
346
 
347
  .yrw-tooltip {
@@ -425,11 +425,11 @@
425
  }
426
 
427
  #shortcode .fbrev-connect {
428
- margin-top: 15px;
429
  }
430
 
431
  .fbrev-pages .fbrev-page {
432
- margin: 4px 0;
433
  padding: 6px;
434
  border: 1px solid #eee;
435
  border-radius: 3px;
@@ -448,7 +448,7 @@
448
  box-shadow: 0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24);
449
  }
450
 
451
- .fbrev-pages .fbrev-page-name {
452
  display: inline-block;
453
  margin: 4px 16px;
454
  }
54
  }
55
 
56
  .rplg-quest {
57
+ position: absolute;
58
+ top: -2px;
59
+ right: 2px;
60
+ width: 16px;
61
+ cursor: pointer;
62
+ font-size: 12px;
63
+ font-weight: bold;
64
+ text-align: center;
65
+ border: 1px solid #ccc;
66
+ border-radius: 50px;
67
+ background: #eee;
68
  }
69
 
70
  .rplg-quest + div {
76
 
77
  /*-------------------------------- google finder --------------------------------*/
78
  .grw-step {
79
+ display: inline-block;
80
+ width: 20px;
81
+ line-height: 20px;
82
+ padding: 2px;
83
+ margin: 0 6px 0 0;
84
+ text-align: center;
85
+ background: #ffe045;
86
+ border-radius: 50%;
87
  }
88
 
89
  #shortcode .grw-step,
90
  #shortcode .yrw-step {
91
+ width: 28px;
92
+ padding: 4px;
93
  }
94
 
95
  .grw-places, .grw-reviews {
96
+ max-height: 200px;
97
+ overflow: auto;
98
+ border: 1px solid #f3f3f3;
99
  }
100
 
101
  .grw-place {
102
+ margin: 0;
103
+ padding: 6px;
104
+ cursor: pointer;
105
  }
106
 
107
  .grw-place img {
108
+ border: none;
109
+ float: left;
110
+ height: 40px;
111
+ margin-right: 5px;
112
+ width: 40px;
113
+ width: 20px;
114
+ height: 20px;
115
+ border-radius: 50%;
116
  }
117
 
118
  .grw-place .media-body {
119
+ overflow: hidden;
120
  }
121
 
122
  .grw-place .media-heading {
123
+ margin: 0;
124
+ padding-right: 6px;
125
+ font-size: 13px;
126
+ font-weight: bold;
127
  }
128
 
129
  .grw-place .grw-grating {
130
+ font-size: 12px;
131
+ font-weight: 700;
132
+ color: #e7711b;
133
+ margin: 0 6px 0 0;
134
  }
135
 
136
  .grw-place .grw-gstars {
137
+ padding-left: 7px;
138
  }
139
 
140
  .grw-place small {
141
+ display: block;
142
+ font-size: 11px;
143
+ overflow: hidden;
144
+ white-space: nowrap;
145
+ text-overflow: ellipsis;
146
  }
147
 
148
  .grw-place:hover {
149
+ background-color: #fafafa;
150
  }
151
 
152
  .grw-place.grw-active {
153
+ background-color: #eee;
154
  }
155
 
156
  .grw-place .grw-gtime {
157
+ color: #999;
158
+ font-size: 13px;
159
+ text-decoration: none;
160
  }
161
 
162
  .grw-place .grw-gtext {
163
+ color: #222;
164
+ font-size: 13px;
165
+ line-height: 18px;
166
+ max-width: 100%;
167
+ overflow: hidden;
168
+ white-space: pre-wrap;
169
  }
170
 
171
  .grw-five-reviews-note {
172
+ margin: 4px 0;
173
+ color: #d32323;
174
+ text-align: center;
175
  }
176
 
177
  .grw-save-reviews-container {
178
+ position: relative;
179
  }
180
 
181
  .grw-tooltip {
253
 
254
  /*-------------------------------- yelp finder --------------------------------*/
255
  .yrw-step {
256
+ display: inline-block;
257
+ width: 20px;
258
+ line-height: 20px;
259
+ padding: 2px;
260
+ margin: 0 6px 0 0;
261
+ text-align: center;
262
+ background: #ffe045;
263
+ border-radius: 50%;
264
  }
265
 
266
  .yrw-businesses, .yrw-reviews {
267
+ max-height: 200px;
268
+ overflow: auto;
269
+ border: 1px solid #f3f3f3;
270
  }
271
 
272
  .yrw-business {
273
+ margin: 0;
274
+ padding: 6px;
275
+ cursor: pointer;
276
  }
277
 
278
  .yrw-business img {
279
+ border: none;
280
+ float: left;
281
+ height: 40px;
282
+ margin-right: 5px;
283
+ width: 40px;
284
+ width: 20px;
285
+ height: 20px;
286
  }
287
 
288
  .yrw-business .media-body {
289
+ overflow: hidden;
290
  }
291
 
292
  .yrw-business .media-heading {
293
+ margin: 0;
294
+ padding-right: 6px;
295
+ font-size: 13px;
296
+ font-weight: bold;
297
  }
298
 
299
  .yrw-business .yrw-yrating {
300
+ font-size: 12px;
301
+ font-weight: 700;
302
+ color: #d32323;
303
+ margin: 0 6px 0 0;
304
  }
305
 
306
  .yrw-business .yrw-ystars {
307
+ padding-left: 7px;
308
  }
309
 
310
  .yrw-business small {
311
+ display: block;
312
+ font-size: 11px;
313
+ overflow: hidden;
314
+ white-space: nowrap;
315
+ text-overflow: ellipsis;
316
  }
317
 
318
  .yrw-business:hover {
319
+ background-color: #fafafa;
320
  }
321
 
322
  .yrw-business.yrw-active {
323
+ background-color: #eee;
324
  }
325
 
326
  .yrw-business .yrw-ytime {
327
+ color: #999;
328
+ font-size: 13px;
329
+ text-decoration: none;
330
  }
331
 
332
  .yrw-business .yrw-ytext {
333
+ color: #222;
334
+ font-size: 13px;
335
+ line-height: 18px;
336
+ max-width: 100%;
337
+ overflow: hidden;
338
+ white-space: pre-wrap;
339
  }
340
 
341
  .yrw-three-reviews-note {
342
+ margin: 4px 0;
343
+ color: #d32323;
344
+ text-align: center;
345
  }
346
 
347
  .yrw-tooltip {
425
  }
426
 
427
  #shortcode .fbrev-connect {
428
+ margin-top: 15px;
429
  }
430
 
431
  .fbrev-pages .fbrev-page {
432
+ margin: 10px 0 0;
433
  padding: 6px;
434
  border: 1px solid #eee;
435
  border-radius: 3px;
448
  box-shadow: 0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.24);
449
  }
450
 
451
+ .fbrev-pages span {
452
  display: inline-block;
453
  margin: 4px 16px;
454
  }
static/js/wpac-time.js CHANGED
@@ -40,4 +40,6 @@ months:function(a){return Math.round(a/30)+" miesi\u0119cy temu"},year:"rok temu
40
  year:"1 ano atr\u00e1s",years:function(a){return Math.round(a)+" anos atr\u00e1s"}},hu:{second:"\u00e9pp az im\u00e9nt",minute:"1 perccel ezel\u0151tt",minutes:function(a){return Math.round(a)+" perccel ezel\u0151tt"},hour:"\u00f3r\u00e1val ezel\u0151tt",hours:function(a){return Math.round(a)+" \u00f3r\u00e1val ezel\u0151tt"},day:"nappal ezel\u0151tt",days:function(a){return Math.round(a)+" nappal ezel\u0151tt"},month:"h\u00f3nappal ezel\u0151tt",months:function(a){return Math.round(a/30)+" h\u00f3nappal ezel\u0151tt"},
41
  year:"\u00e9vvel ezel\u0151tt",years:function(a){return Math.round(a)+" \u00e9vvel ezel\u0151tt"}},fi:{second:"juuri nyt",minute:"minuutti sitten",minutes:function(a){return Math.round(a)+" minuuttia sitten"},hour:"tunti sitten",hours:function(a){return Math.round(a)+" tuntia sitten"},day:"p\u00e4iv\u00e4 sitten",days:function(a){return Math.round(a)+" p\u00e4iv\u00e4\u00e4 sitten"},month:"kuukausi sitten",months:function(a){return Math.round(a/30)+" kuukautta sitten"},year:"vuosi sitten",years:function(a){return Math.round(a)+
42
  " vuotta sitten"}},he:{second:"\u05d4\u05e8\u05d2\u05e2",minute:"\u05dc\u05e4\u05e0\u05d9 \u05d3\u05e7\u05d4",minutes:function(a){return"\u05dc\u05e4\u05e0\u05d9 "+Math.round(a)+" \u05d3\u05e7\u05d5\u05ea"},hour:"\u05dc\u05e4\u05e0\u05d9 \u05e9\u05e2\u05d4",hours:function(a){return"\u05dc\u05e4\u05e0\u05d9 "+Math.round(a)+" \u05e9\u05e2\u05d5\u05ea"},day:"\u05dc\u05e4\u05e0\u05d9 \u05d9\u05d5\u05dd",days:function(a){return"\u05dc\u05e4\u05e0\u05d9 "+Math.round(a)+" \u05d9\u05de\u05d9\u05dd"},month:"\u05dc\u05e4\u05e0\u05d9 \u05d7\u05d5\u05d3\u05e9",
43
- months:function(a){return 2==Math.round(a/30)?"\u05dc\u05e4\u05e0\u05d9 \u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":"\u05dc\u05e4\u05e0\u05d9 "+Math.round(a/30)+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},year:"\u05dc\u05e4\u05e0\u05d9 \u05e9\u05e0\u05d4",years:function(a){return"\u05dc\u05e4\u05e0\u05d9 "+Math.round(a)+" \u05e9\u05e0\u05d9\u05dd"}}};
 
 
40
  year:"1 ano atr\u00e1s",years:function(a){return Math.round(a)+" anos atr\u00e1s"}},hu:{second:"\u00e9pp az im\u00e9nt",minute:"1 perccel ezel\u0151tt",minutes:function(a){return Math.round(a)+" perccel ezel\u0151tt"},hour:"\u00f3r\u00e1val ezel\u0151tt",hours:function(a){return Math.round(a)+" \u00f3r\u00e1val ezel\u0151tt"},day:"nappal ezel\u0151tt",days:function(a){return Math.round(a)+" nappal ezel\u0151tt"},month:"h\u00f3nappal ezel\u0151tt",months:function(a){return Math.round(a/30)+" h\u00f3nappal ezel\u0151tt"},
41
  year:"\u00e9vvel ezel\u0151tt",years:function(a){return Math.round(a)+" \u00e9vvel ezel\u0151tt"}},fi:{second:"juuri nyt",minute:"minuutti sitten",minutes:function(a){return Math.round(a)+" minuuttia sitten"},hour:"tunti sitten",hours:function(a){return Math.round(a)+" tuntia sitten"},day:"p\u00e4iv\u00e4 sitten",days:function(a){return Math.round(a)+" p\u00e4iv\u00e4\u00e4 sitten"},month:"kuukausi sitten",months:function(a){return Math.round(a/30)+" kuukautta sitten"},year:"vuosi sitten",years:function(a){return Math.round(a)+
42
  " vuotta sitten"}},he:{second:"\u05d4\u05e8\u05d2\u05e2",minute:"\u05dc\u05e4\u05e0\u05d9 \u05d3\u05e7\u05d4",minutes:function(a){return"\u05dc\u05e4\u05e0\u05d9 "+Math.round(a)+" \u05d3\u05e7\u05d5\u05ea"},hour:"\u05dc\u05e4\u05e0\u05d9 \u05e9\u05e2\u05d4",hours:function(a){return"\u05dc\u05e4\u05e0\u05d9 "+Math.round(a)+" \u05e9\u05e2\u05d5\u05ea"},day:"\u05dc\u05e4\u05e0\u05d9 \u05d9\u05d5\u05dd",days:function(a){return"\u05dc\u05e4\u05e0\u05d9 "+Math.round(a)+" \u05d9\u05de\u05d9\u05dd"},month:"\u05dc\u05e4\u05e0\u05d9 \u05d7\u05d5\u05d3\u05e9",
43
+ months:function(a){return 2==Math.round(a/30)?"\u05dc\u05e4\u05e0\u05d9 \u05d7\u05d5\u05d3\u05e9\u05d9\u05d9\u05dd":"\u05dc\u05e4\u05e0\u05d9 "+Math.round(a/30)+" \u05d7\u05d5\u05d3\u05e9\u05d9\u05dd"},year:"\u05dc\u05e4\u05e0\u05d9 \u05e9\u05e0\u05d4",years:function(a){return"\u05dc\u05e4\u05e0\u05d9 "+Math.round(a)+" \u05e9\u05e0\u05d9\u05dd"}},bg:{second:"\u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430",minute:"\u043f\u0440\u0435\u0434\u0438 1 \u043c\u0438\u043d\u0443\u0442\u0430",minutes:function(a){return"\u043f\u0440\u0435\u0434\u0438 "+
44
+ Math.round(a)+" \u043c\u0438\u043d\u0443\u0442\u0438"},hour:"\u043f\u0440\u0435\u0434\u0438 1 \u0447\u0430\u0441",hours:function(a){return"\u043f\u0440\u0435\u0434\u0438 "+Math.round(a)+" \u0447\u0430\u0441\u0430"},day:"\u043f\u0440\u0435\u0434\u0438 1 \u0434\u0435\u043d",days:function(a){return"\u043f\u0440\u0435\u0434\u0438 "+Math.round(a)+" \u0434\u043d\u0438"},month:"\u043f\u0440\u0435\u0434\u0438 1 \u043c\u0435\u0441\u0435\u0446",months:function(a){return"\u043f\u0440\u0435\u0434\u0438 "+Math.round(a/
45
+ 30)+" \u043c\u0435\u0441\u0435\u0446\u0430"},year:"\u043f\u0440\u0435\u0434\u0438 1 \u0433\u043e\u0434\u0438\u043d\u0430",years:function(a){return"\u043f\u0440\u0435\u0434\u0438 "+Math.round(a)+" \u0433\u043e\u0434\u0438\u043d\u0438"}}};