WP Google Maps - Version 6.4.07

Version Description

  • 2018-01-08 - Low priority =
  • Added a deactivation survey to gain insight before moving to Version 7
  • Tested on WP 4.9.1
Download this release

Release Info

Developer WPGMaps
Plugin Icon 128x128 WP Google Maps
Version 6.4.07
Comparing to
See all releases

Code changes from version 6.4.06 to 6.4.07

lib/codecabin/deactivate-feedback-form.css ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .codecabin-deactivate-dialog
2
+ {
3
+ text-align: left;
4
+ width: auto;
5
+ }
6
+
7
+ .codecabin-deactivate-dialog-buttons
8
+ {
9
+ text-align: right;
10
+ }
11
+
12
+ .codecabin-deactivate-dialog
13
+ {
14
+ width: auto !important;
15
+ }
16
+
17
+ .codecabin-deactivate-dialog h2
18
+ {
19
+ color: gray;
20
+ font-variant: small-caps;
21
+ font-size: 1.2em;
22
+ padding-bottom: 0.2em;
23
+ border-bottom: 1px solid lightgray;
24
+
25
+ }
26
+
27
+ .codecabin-deactivate-dialog input[name="comments"]
28
+ {
29
+ width: 380px;
30
+ }
lib/codecabin/deactivate-feedback-form.js ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function($) {
2
+
3
+ if(!window.codecabin)
4
+ window.codecabin = {};
5
+
6
+ if(codecabin.DeactivateFeedbackForm)
7
+ return;
8
+
9
+ function DeactivateFeedbackForm(plugin)
10
+ {
11
+ var self = this;
12
+ var strings = codecabin_deactivate_feedback_form_strings;
13
+
14
+ this.plugin = plugin;
15
+
16
+ // Dialog HTML
17
+ var element = $('\
18
+ <div class="codecabin-deactivate-dialog" data-remodal-id="' + plugin.slug + '">\
19
+ <form>\
20
+ <input type="hidden" name="plugin"/>\
21
+ <h2>' + strings.quick_feedback + '</h2>\
22
+ <p>\
23
+ ' + strings.foreword + '\
24
+ </p>\
25
+ <ul class="codecabin-deactivate-reasons"></ul>\
26
+ <input name="comments" placeholder="' + strings.brief_description + '"/>\
27
+ <br>\
28
+ <p class="codecabin-deactivate-dialog-buttons">\
29
+ <input type="submit" class="button confirm" value="' + strings.skip_and_deactivate + '"/>\
30
+ <button data-remodal-action="cancel" class="button button-primary">' + strings.cancel + '</button>\
31
+ </p>\
32
+ </form>\
33
+ </div>\
34
+ ')[0];
35
+ this.element = element;
36
+
37
+ $(element).find("input[name='plugin']").val(JSON.stringify(plugin));
38
+
39
+ $(element).on("click", "input[name='reason']", function(event) {
40
+ $(element).find("input[type='submit']").val(
41
+ strings.submit_and_deactivate
42
+ );
43
+ });
44
+
45
+ $(element).find("form").on("submit", function(event) {
46
+ self.onSubmit(event);
47
+ });
48
+
49
+ // Reasons list
50
+ var ul = $(element).find("ul.codecabin-deactivate-reasons");
51
+ for(var key in plugin.reasons)
52
+ {
53
+ var li = $("<li><input type='radio' name='reason'/> <span></span></li>");
54
+
55
+ $(li).find("input").val(key);
56
+ $(li).find("span").html(plugin.reasons[key]);
57
+
58
+ $(ul).append(li);
59
+ }
60
+
61
+ // Listen for deactivate
62
+ $("#the-list [data-slug='" + plugin.slug + "'] .deactivate>a").on("click", function(event) {
63
+ self.onDeactivateClicked(event);
64
+ });
65
+ }
66
+
67
+ DeactivateFeedbackForm.prototype.onDeactivateClicked = function(event)
68
+ {
69
+ this.deactivateURL = event.target.href;
70
+
71
+ event.preventDefault();
72
+
73
+ if(!this.dialog)
74
+ this.dialog = $(this.element).remodal();
75
+ this.dialog.open();
76
+ }
77
+
78
+ DeactivateFeedbackForm.prototype.onSubmit = function(event)
79
+ {
80
+ var element = this.element;
81
+ var strings = codecabin_deactivate_feedback_form_strings;
82
+ var self = this;
83
+ var data = $(element).find("form").serialize();
84
+
85
+ $(element).find("button, input[type='submit']").prop("disabled", true);
86
+
87
+ if($(element).find("input[name='reason']:checked").length)
88
+ {
89
+ $(element).find("input[type='submit']").val(strings.thank_you);
90
+
91
+ $.ajax({
92
+ type: "POST",
93
+ url: "https://www.ccplugins.co/api-deactivation-dialog/feedback.php",
94
+ data: data,
95
+ complete: function() {
96
+ window.location.href = self.deactivateURL;
97
+ }
98
+ });
99
+ }
100
+ else
101
+ {
102
+ $(element).find("input[type='submit']").val(strings.please_wait);
103
+ window.location.href = self.deactivateURL;
104
+ }
105
+
106
+ event.preventDefault();
107
+ return false;
108
+ }
109
+
110
+ $(document).ready(function() {
111
+
112
+ for(var i = 0; i < codecabin_deactivate_feedback_form_plugins.length; i++)
113
+ {
114
+ var plugin = codecabin_deactivate_feedback_form_plugins[i];
115
+ new DeactivateFeedbackForm(plugin);
116
+ }
117
+
118
+ });
119
+
120
+ })(jQuery);
lib/codecabin/deactivate-feedback-form.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace codecabin;
4
+
5
+ if(!is_admin())
6
+ return;
7
+
8
+ global $pagenow;
9
+
10
+ if($pagenow != "plugins.php")
11
+ return;
12
+
13
+ if(defined('CODECABIN_DEACTIVATE_FEEDBACK_FORM_INCLUDED'))
14
+ return;
15
+ define('CODECABIN_DEACTIVATE_FEEDBACK_FORM_INCLUDED', true);
16
+
17
+ add_action('admin_enqueue_scripts', function() {
18
+
19
+ // Enqueue scripts
20
+ wp_enqueue_script('remodal', plugin_dir_url(__FILE__) . 'remodal.min.js');
21
+ wp_enqueue_style('remodal', plugin_dir_url(__FILE__) . 'remodal.css');
22
+ wp_enqueue_style('remodal-default-theme', plugin_dir_url(__FILE__) . 'remodal-default-theme.css');
23
+
24
+ wp_enqueue_script('codecabin-deactivate-feedback-form', plugin_dir_url(__FILE__) . 'deactivate-feedback-form.js');
25
+ wp_enqueue_style('codecabin-deactivate-feedback-form', plugin_dir_url(__FILE__) . 'deactivate-feedback-form.css');
26
+
27
+ // Localized strings
28
+ wp_localize_script('codecabin-deactivate-feedback-form', 'codecabin_deactivate_feedback_form_strings', array(
29
+ 'quick_feedback' => __('Quick Feedback', 'codecabin'),
30
+ 'foreword' => __('If you would be kind enough, please tell us why you\'re deactivating?', 'codecabin'),
31
+ 'better_plugins_name' => __('Please tell us which plugin?', 'codecabin'),
32
+ 'please_tell_us' => __('Please tell us the reason so we can improve the plugin', 'codecabin'),
33
+ 'do_not_attach_email' => __('Do not send my e-mail address with this feedback', 'codecabin'),
34
+
35
+ 'brief_description' => __('Please give us any feedback that could help us improve', 'codecabin'),
36
+
37
+ 'cancel' => __('Cancel', 'codecabin'),
38
+ 'skip_and_deactivate' => __('Skip &amp; Deactivate', 'codecabin'),
39
+ 'submit_and_deactivate' => __('Submit &amp; Deactivate', 'codecabin'),
40
+ 'please_wait' => __('Please wait', 'codecabin'),
41
+ 'thank_you' => __('Thank you!', 'codecabin')
42
+ ));
43
+
44
+ // Plugins
45
+ $plugins = apply_filters('codecabin_deactivate_feedback_form_plugins', array());
46
+
47
+ // Reasons
48
+ $defaultReasons = array(
49
+ 'suddenly-stopped-working' => __('The plugin suddenly stopped working', 'codecabin'),
50
+ 'plugin-broke-site' => __('The plugin broke my site', 'codecabin'),
51
+ 'no-longer-needed' => __('I don\'t need this plugin any more', 'codecabin'),
52
+ 'found-better-plugin' => __('I found a better plugin', 'codecabin'),
53
+ 'temporary-deactivation' => __('It\'s a temporary deactivation, I\'m troubleshooting', 'codecabin'),
54
+ 'other' => __('Other', 'codecabin')
55
+ );
56
+
57
+ foreach($plugins as $plugin)
58
+ {
59
+ $plugin->reasons = apply_filters('codecabin_deactivate_feedback_form_reasons', $defaultReasons, $plugin);
60
+ }
61
+
62
+ // Send plugin data
63
+ wp_localize_script('codecabin-deactivate-feedback-form', 'codecabin_deactivate_feedback_form_plugins', $plugins);
64
+ });
65
+
66
+ /**
67
+ * Hook for adding plugins, pass an array of objects in the following format:
68
+ * 'slug' => 'plugin-slug'
69
+ * 'version' => 'plugin-version'
70
+ * @return array The plugins in the format described above
71
+ */
72
+ add_filter('codecabin_deactivate_feedback_form_plugins', function($plugins) {
73
+ return $plugins;
74
+ });
75
+
lib/codecabin/remodal-default-theme.css ADDED
@@ -0,0 +1,323 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Remodal - v1.1.1
3
+ * Responsive, lightweight, fast, synchronized with CSS animations, fully customizable modal window plugin with declarative configuration and hash tracking.
4
+ * http://vodkabears.github.io/remodal/
5
+ *
6
+ * Made by Ilya Makarov
7
+ * Under MIT License
8
+ */
9
+
10
+ /* ==========================================================================
11
+ Remodal's default mobile first theme
12
+ ========================================================================== */
13
+
14
+ /* Default theme styles for the background */
15
+
16
+ .remodal-bg.remodal-is-opening,
17
+ .remodal-bg.remodal-is-opened {
18
+ -webkit-filter: blur(3px);
19
+ filter: blur(3px);
20
+ }
21
+
22
+ /* Default theme styles of the overlay */
23
+
24
+ .remodal-overlay {
25
+ background: rgba(43, 46, 56, 0.9);
26
+ }
27
+
28
+ .remodal-overlay.remodal-is-opening,
29
+ .remodal-overlay.remodal-is-closing {
30
+ -webkit-animation-duration: 0.3s;
31
+ animation-duration: 0.3s;
32
+ -webkit-animation-fill-mode: forwards;
33
+ animation-fill-mode: forwards;
34
+ }
35
+
36
+ .remodal-overlay.remodal-is-opening {
37
+ -webkit-animation-name: remodal-overlay-opening-keyframes;
38
+ animation-name: remodal-overlay-opening-keyframes;
39
+ }
40
+
41
+ .remodal-overlay.remodal-is-closing {
42
+ -webkit-animation-name: remodal-overlay-closing-keyframes;
43
+ animation-name: remodal-overlay-closing-keyframes;
44
+ }
45
+
46
+ /* Default theme styles of the wrapper */
47
+
48
+ .remodal-wrapper {
49
+ padding: 10px 10px 0;
50
+ }
51
+
52
+ /* Default theme styles of the modal dialog */
53
+
54
+ .remodal {
55
+ box-sizing: border-box;
56
+ width: 100%;
57
+ margin-bottom: 10px;
58
+ padding: 35px;
59
+
60
+ -webkit-transform: translate3d(0, 0, 0);
61
+ transform: translate3d(0, 0, 0);
62
+
63
+ color: #2b2e38;
64
+ background: #fff;
65
+ }
66
+
67
+ .remodal.remodal-is-opening,
68
+ .remodal.remodal-is-closing {
69
+ -webkit-animation-duration: 0.3s;
70
+ animation-duration: 0.3s;
71
+ -webkit-animation-fill-mode: forwards;
72
+ animation-fill-mode: forwards;
73
+ }
74
+
75
+ .remodal.remodal-is-opening {
76
+ -webkit-animation-name: remodal-opening-keyframes;
77
+ animation-name: remodal-opening-keyframes;
78
+ }
79
+
80
+ .remodal.remodal-is-closing {
81
+ -webkit-animation-name: remodal-closing-keyframes;
82
+ animation-name: remodal-closing-keyframes;
83
+ }
84
+
85
+ /* Vertical align of the modal dialog */
86
+
87
+ .remodal,
88
+ .remodal-wrapper:after {
89
+ vertical-align: middle;
90
+ }
91
+
92
+ /* Close button */
93
+
94
+ .remodal-close {
95
+ position: absolute;
96
+ top: 0;
97
+ left: 0;
98
+
99
+ display: block;
100
+ overflow: visible;
101
+
102
+ width: 35px;
103
+ height: 35px;
104
+ margin: 0;
105
+ padding: 0;
106
+
107
+ cursor: pointer;
108
+ -webkit-transition: color 0.2s;
109
+ transition: color 0.2s;
110
+ text-decoration: none;
111
+
112
+ color: #95979c;
113
+ border: 0;
114
+ outline: 0;
115
+ background: transparent;
116
+ }
117
+
118
+ .remodal-close:hover,
119
+ .remodal-close:focus {
120
+ color: #2b2e38;
121
+ }
122
+
123
+ .remodal-close:before {
124
+ font-family: Arial, "Helvetica CY", "Nimbus Sans L", sans-serif !important;
125
+ font-size: 25px;
126
+ line-height: 35px;
127
+
128
+ position: absolute;
129
+ top: 0;
130
+ left: 0;
131
+
132
+ display: block;
133
+
134
+ width: 35px;
135
+
136
+ content: "\00d7";
137
+ text-align: center;
138
+ }
139
+
140
+ /* Dialog buttons */
141
+
142
+ .remodal-confirm,
143
+ .remodal-cancel {
144
+ font: inherit;
145
+
146
+ display: inline-block;
147
+ overflow: visible;
148
+
149
+ min-width: 110px;
150
+ margin: 0;
151
+ padding: 12px 0;
152
+
153
+ cursor: pointer;
154
+ -webkit-transition: background 0.2s;
155
+ transition: background 0.2s;
156
+ text-align: center;
157
+ vertical-align: middle;
158
+ text-decoration: none;
159
+
160
+ border: 0;
161
+ outline: 0;
162
+ }
163
+
164
+ .remodal-confirm {
165
+ color: #fff;
166
+ background: #81c784;
167
+ }
168
+
169
+ .remodal-confirm:hover,
170
+ .remodal-confirm:focus {
171
+ background: #66bb6a;
172
+ }
173
+
174
+ .remodal-cancel {
175
+ color: #fff;
176
+ background: #e57373;
177
+ }
178
+
179
+ .remodal-cancel:hover,
180
+ .remodal-cancel:focus {
181
+ background: #ef5350;
182
+ }
183
+
184
+ /* Remove inner padding and border in Firefox 4+ for the button tag. */
185
+
186
+ .remodal-confirm::-moz-focus-inner,
187
+ .remodal-cancel::-moz-focus-inner,
188
+ .remodal-close::-moz-focus-inner {
189
+ padding: 0;
190
+
191
+ border: 0;
192
+ }
193
+
194
+ /* Keyframes
195
+ ========================================================================== */
196
+
197
+ @-webkit-keyframes remodal-opening-keyframes {
198
+ from {
199
+ -webkit-transform: scale(1.05);
200
+ transform: scale(1.05);
201
+
202
+ opacity: 0;
203
+ }
204
+ to {
205
+ -webkit-transform: none;
206
+ transform: none;
207
+
208
+ opacity: 1;
209
+
210
+ -webkit-filter: blur(0);
211
+ filter: blur(0);
212
+ }
213
+ }
214
+
215
+ @keyframes remodal-opening-keyframes {
216
+ from {
217
+ -webkit-transform: scale(1.05);
218
+ transform: scale(1.05);
219
+
220
+ opacity: 0;
221
+ }
222
+ to {
223
+ -webkit-transform: none;
224
+ transform: none;
225
+
226
+ opacity: 1;
227
+
228
+ -webkit-filter: blur(0);
229
+ filter: blur(0);
230
+ }
231
+ }
232
+
233
+ @-webkit-keyframes remodal-closing-keyframes {
234
+ from {
235
+ -webkit-transform: scale(1);
236
+ transform: scale(1);
237
+
238
+ opacity: 1;
239
+ }
240
+ to {
241
+ -webkit-transform: scale(0.95);
242
+ transform: scale(0.95);
243
+
244
+ opacity: 0;
245
+
246
+ -webkit-filter: blur(0);
247
+ filter: blur(0);
248
+ }
249
+ }
250
+
251
+ @keyframes remodal-closing-keyframes {
252
+ from {
253
+ -webkit-transform: scale(1);
254
+ transform: scale(1);
255
+
256
+ opacity: 1;
257
+ }
258
+ to {
259
+ -webkit-transform: scale(0.95);
260
+ transform: scale(0.95);
261
+
262
+ opacity: 0;
263
+
264
+ -webkit-filter: blur(0);
265
+ filter: blur(0);
266
+ }
267
+ }
268
+
269
+ @-webkit-keyframes remodal-overlay-opening-keyframes {
270
+ from {
271
+ opacity: 0;
272
+ }
273
+ to {
274
+ opacity: 1;
275
+ }
276
+ }
277
+
278
+ @keyframes remodal-overlay-opening-keyframes {
279
+ from {
280
+ opacity: 0;
281
+ }
282
+ to {
283
+ opacity: 1;
284
+ }
285
+ }
286
+
287
+ @-webkit-keyframes remodal-overlay-closing-keyframes {
288
+ from {
289
+ opacity: 1;
290
+ }
291
+ to {
292
+ opacity: 0;
293
+ }
294
+ }
295
+
296
+ @keyframes remodal-overlay-closing-keyframes {
297
+ from {
298
+ opacity: 1;
299
+ }
300
+ to {
301
+ opacity: 0;
302
+ }
303
+ }
304
+
305
+ /* Media queries
306
+ ========================================================================== */
307
+
308
+ @media only screen and (min-width: 641px) {
309
+ .remodal {
310
+ max-width: 700px;
311
+ }
312
+ }
313
+
314
+ /* IE8
315
+ ========================================================================== */
316
+
317
+ .lt-ie9 .remodal-overlay {
318
+ background: #2b2e38;
319
+ }
320
+
321
+ .lt-ie9 .remodal {
322
+ width: 700px;
323
+ }
lib/codecabin/remodal.css ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Remodal - v1.1.1
3
+ * Responsive, lightweight, fast, synchronized with CSS animations, fully customizable modal window plugin with declarative configuration and hash tracking.
4
+ * http://vodkabears.github.io/remodal/
5
+ *
6
+ * Made by Ilya Makarov
7
+ * Under MIT License
8
+ */
9
+
10
+ /* ==========================================================================
11
+ Remodal's necessary styles
12
+ ========================================================================== */
13
+
14
+ /* Hide scroll bar */
15
+
16
+ html.remodal-is-locked {
17
+ overflow: hidden;
18
+
19
+ -ms-touch-action: none;
20
+ touch-action: none;
21
+ }
22
+
23
+ /* Anti FOUC */
24
+
25
+ .remodal,
26
+ [data-remodal-id] {
27
+ display: none;
28
+ }
29
+
30
+ /* Necessary styles of the overlay */
31
+
32
+ .remodal-overlay {
33
+ position: fixed;
34
+ z-index: 9999;
35
+ top: -5000px;
36
+ right: -5000px;
37
+ bottom: -5000px;
38
+ left: -5000px;
39
+
40
+ display: none;
41
+ }
42
+
43
+ /* Necessary styles of the wrapper */
44
+
45
+ .remodal-wrapper {
46
+ position: fixed;
47
+ z-index: 10000;
48
+ top: 0;
49
+ right: 0;
50
+ bottom: 0;
51
+ left: 0;
52
+
53
+ display: none;
54
+ overflow: auto;
55
+
56
+ text-align: center;
57
+
58
+ -webkit-overflow-scrolling: touch;
59
+ }
60
+
61
+ .remodal-wrapper:after {
62
+ display: inline-block;
63
+
64
+ height: 100%;
65
+ margin-left: -0.05em;
66
+
67
+ content: "";
68
+ }
69
+
70
+ /* Fix iPad, iPhone glitches */
71
+
72
+ .remodal-overlay,
73
+ .remodal-wrapper {
74
+ -webkit-backface-visibility: hidden;
75
+ backface-visibility: hidden;
76
+ }
77
+
78
+ /* Necessary styles of the modal dialog */
79
+
80
+ .remodal {
81
+ position: relative;
82
+
83
+ outline: none;
84
+
85
+ -webkit-text-size-adjust: 100%;
86
+ -ms-text-size-adjust: 100%;
87
+ text-size-adjust: 100%;
88
+ }
89
+
90
+ .remodal-is-initialized {
91
+ /* Disable Anti-FOUC */
92
+ display: inline-block;
93
+ }
lib/codecabin/remodal.min.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Remodal - v1.1.1
3
+ * Responsive, lightweight, fast, synchronized with CSS animations, fully customizable modal window plugin with declarative configuration and hash tracking.
4
+ * http://vodkabears.github.io/remodal/
5
+ *
6
+ * Made by Ilya Makarov
7
+ * Under MIT License
8
+ */
9
+
10
+ !function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){return b(a,c)}):"object"==typeof exports?b(a,require("jquery")):b(a,a.jQuery||a.Zepto)}(this,function(a,b){"use strict";function c(a){if(w&&"none"===a.css("animation-name")&&"none"===a.css("-webkit-animation-name")&&"none"===a.css("-moz-animation-name")&&"none"===a.css("-o-animation-name")&&"none"===a.css("-ms-animation-name"))return 0;var b,c,d,e,f=a.css("animation-duration")||a.css("-webkit-animation-duration")||a.css("-moz-animation-duration")||a.css("-o-animation-duration")||a.css("-ms-animation-duration")||"0s",g=a.css("animation-delay")||a.css("-webkit-animation-delay")||a.css("-moz-animation-delay")||a.css("-o-animation-delay")||a.css("-ms-animation-delay")||"0s",h=a.css("animation-iteration-count")||a.css("-webkit-animation-iteration-count")||a.css("-moz-animation-iteration-count")||a.css("-o-animation-iteration-count")||a.css("-ms-animation-iteration-count")||"1";for(f=f.split(", "),g=g.split(", "),h=h.split(", "),e=0,c=f.length,b=Number.NEGATIVE_INFINITY;e<c;e++)d=parseFloat(f[e])*parseInt(h[e],10)+parseFloat(g[e]),d>b&&(b=d);return b}function d(){if(b(document).height()<=b(window).height())return 0;var a,c,d=document.createElement("div"),e=document.createElement("div");return d.style.visibility="hidden",d.style.width="100px",document.body.appendChild(d),a=d.offsetWidth,d.style.overflow="scroll",e.style.width="100%",d.appendChild(e),c=e.offsetWidth,d.parentNode.removeChild(d),a-c}function e(){if(!x){var a,c,e=b("html"),f=k("is-locked");e.hasClass(f)||(c=b(document.body),a=parseInt(c.css("padding-right"),10)+d(),c.css("padding-right",a+"px"),e.addClass(f))}}function f(){if(!x){var a,c,e=b("html"),f=k("is-locked");e.hasClass(f)&&(c=b(document.body),a=parseInt(c.css("padding-right"),10)-d(),c.css("padding-right",a+"px"),e.removeClass(f))}}function g(a,b,c,d){var e=k("is",b),f=[k("is",u.CLOSING),k("is",u.OPENING),k("is",u.CLOSED),k("is",u.OPENED)].join(" ");a.$bg.removeClass(f).addClass(e),a.$overlay.removeClass(f).addClass(e),a.$wrapper.removeClass(f).addClass(e),a.$modal.removeClass(f).addClass(e),a.state=b,!c&&a.$modal.trigger({type:b,reason:d},[{reason:d}])}function h(a,d,e){var f=0,g=function(a){a.target===this&&f++},h=function(a){a.target===this&&0===--f&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].off(r+" "+s)}),d())};b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].on(r,g).on(s,h)}),a(),0===c(e.$bg)&&0===c(e.$overlay)&&0===c(e.$wrapper)&&0===c(e.$modal)&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(a,b){e[b].off(r+" "+s)}),d())}function i(a){a.state!==u.CLOSED&&(b.each(["$bg","$overlay","$wrapper","$modal"],function(b,c){a[c].off(r+" "+s)}),a.$bg.removeClass(a.settings.modifier),a.$overlay.removeClass(a.settings.modifier).hide(),a.$wrapper.hide(),f(),g(a,u.CLOSED,!0))}function j(a){var b,c,d,e,f={};for(a=a.replace(/\s*:\s*/g,":").replace(/\s*,\s*/g,","),b=a.split(","),e=0,c=b.length;e<c;e++)b[e]=b[e].split(":"),d=b[e][1],("string"==typeof d||d instanceof String)&&(d="true"===d||"false"!==d&&d),("string"==typeof d||d instanceof String)&&(d=isNaN(d)?d:+d),f[b[e][0]]=d;return f}function k(){for(var a=q,b=0;b<arguments.length;++b)a+="-"+arguments[b];return a}function l(){var a,c,d=location.hash.replace("#","");if(d){try{c=b('[data-remodal-id="'+d+'"]')}catch(e){}c&&c.length&&(a=b[p].lookup[c.data(p)],a&&a.settings.hashTracking&&a.open())}else n&&n.state===u.OPENED&&n.settings.hashTracking&&n.close()}function m(a,c){var d=b(document.body),e=d,f=this;f.settings=b.extend({},t,c),f.index=b[p].lookup.push(f)-1,f.state=u.CLOSED,f.$overlay=b("."+k("overlay")),null!==f.settings.appendTo&&f.settings.appendTo.length&&(e=b(f.settings.appendTo)),f.$overlay.length||(f.$overlay=b("<div>").addClass(k("overlay")+" "+k("is",u.CLOSED)).hide(),e.append(f.$overlay)),f.$bg=b("."+k("bg")).addClass(k("is",u.CLOSED)),f.$modal=a.addClass(q+" "+k("is-initialized")+" "+f.settings.modifier+" "+k("is",u.CLOSED)).attr("tabindex","-1"),f.$wrapper=b("<div>").addClass(k("wrapper")+" "+f.settings.modifier+" "+k("is",u.CLOSED)).hide().append(f.$modal),e.append(f.$wrapper),f.$wrapper.on("click."+q,'[data-remodal-action="close"]',function(a){a.preventDefault(),f.close()}),f.$wrapper.on("click."+q,'[data-remodal-action="cancel"]',function(a){a.preventDefault(),f.$modal.trigger(v.CANCELLATION),f.settings.closeOnCancel&&f.close(v.CANCELLATION)}),f.$wrapper.on("click."+q,'[data-remodal-action="confirm"]',function(a){a.preventDefault(),f.$modal.trigger(v.CONFIRMATION),f.settings.closeOnConfirm&&f.close(v.CONFIRMATION)}),f.$wrapper.on("click."+q,function(a){var c=b(a.target);c.hasClass(k("wrapper"))&&f.settings.closeOnOutsideClick&&f.close()})}var n,o,p="remodal",q=a.REMODAL_GLOBALS&&a.REMODAL_GLOBALS.NAMESPACE||p,r=b.map(["animationstart","webkitAnimationStart","MSAnimationStart","oAnimationStart"],function(a){return a+"."+q}).join(" "),s=b.map(["animationend","webkitAnimationEnd","MSAnimationEnd","oAnimationEnd"],function(a){return a+"."+q}).join(" "),t=b.extend({hashTracking:!0,closeOnConfirm:!0,closeOnCancel:!0,closeOnEscape:!0,closeOnOutsideClick:!0,modifier:"",appendTo:null},a.REMODAL_GLOBALS&&a.REMODAL_GLOBALS.DEFAULTS),u={CLOSING:"closing",CLOSED:"closed",OPENING:"opening",OPENED:"opened"},v={CONFIRMATION:"confirmation",CANCELLATION:"cancellation"},w=function(){var a=document.createElement("div").style;return void 0!==a.animationName||void 0!==a.WebkitAnimationName||void 0!==a.MozAnimationName||void 0!==a.msAnimationName||void 0!==a.OAnimationName}(),x=/iPad|iPhone|iPod/.test(navigator.platform);m.prototype.open=function(){var a,c=this;c.state!==u.OPENING&&c.state!==u.CLOSING&&(a=c.$modal.attr("data-remodal-id"),a&&c.settings.hashTracking&&(o=b(window).scrollTop(),location.hash=a),n&&n!==c&&i(n),n=c,e(),c.$bg.addClass(c.settings.modifier),c.$overlay.addClass(c.settings.modifier).show(),c.$wrapper.show().scrollTop(0),c.$modal.focus(),h(function(){g(c,u.OPENING)},function(){g(c,u.OPENED)},c))},m.prototype.close=function(a){var c=this;c.state!==u.OPENING&&c.state!==u.CLOSING&&c.state!==u.CLOSED&&(c.settings.hashTracking&&c.$modal.attr("data-remodal-id")===location.hash.substr(1)&&(location.hash="",b(window).scrollTop(o)),h(function(){g(c,u.CLOSING,!1,a)},function(){c.$bg.removeClass(c.settings.modifier),c.$overlay.removeClass(c.settings.modifier).hide(),c.$wrapper.hide(),f(),g(c,u.CLOSED,!1,a)},c))},m.prototype.getState=function(){return this.state},m.prototype.destroy=function(){var a,c=b[p].lookup;i(this),this.$wrapper.remove(),delete c[this.index],a=b.grep(c,function(a){return!!a}).length,0===a&&(this.$overlay.remove(),this.$bg.removeClass(k("is",u.CLOSING)+" "+k("is",u.OPENING)+" "+k("is",u.CLOSED)+" "+k("is",u.OPENED)))},b[p]={lookup:[]},b.fn[p]=function(a){var c,d;return this.each(function(e,f){d=b(f),null==d.data(p)?(c=new m(d,a),d.data(p,c.index),c.settings.hashTracking&&d.attr("data-remodal-id")===location.hash.substr(1)&&c.open()):c=b[p].lookup[d.data(p)]}),c},b(document).ready(function(){b(document).on("click","[data-remodal-target]",function(a){a.preventDefault();var c=a.currentTarget,d=c.getAttribute("data-remodal-target"),e=b('[data-remodal-id="'+d+'"]');b[p].lookup[e.data(p)].open()}),b(document).find("."+q).each(function(a,c){var d=b(c),e=d.data("remodal-options");e?("string"==typeof e||e instanceof String)&&(e=j(e)):e={},d[p](e)}),b(document).on("keydown."+q,function(a){n&&n.settings.closeOnEscape&&n.state===u.OPENED&&27===a.keyCode&&n.close()}),b(window).on("hashchange."+q,l)})});
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: WPGMaps, NickDuncan, CodeCabin_, Jarryd Long, DylanAuty
3
  Donate link: http://www.wpgmaps.com
4
  Tags: google maps, maps, map, map markers, google map, google maps plugin, wp google maps, wp google map, map plugin, directions, google map plugin, map widget
5
  Requires at least: 3.5
6
- Tested up to: 4.8
7
  Stable tag: trunk
8
  License: GPLv2
9
 
@@ -214,6 +214,10 @@ Please upgrade your version of WP Google Maps to version 6.0.27 as it includes m
214
 
215
  == Changelog ==
216
 
 
 
 
 
217
  = 6.4.06 - 2017-09-07 - Medium Priority =
218
  * Bug Fix: Zoom level is not respected when saving
219
 
3
  Donate link: http://www.wpgmaps.com
4
  Tags: google maps, maps, map, map markers, google map, google maps plugin, wp google maps, wp google map, map plugin, directions, google map plugin, map widget
5
  Requires at least: 3.5
6
+ Tested up to: 4.9.1
7
  Stable tag: trunk
8
  License: GPLv2
9
 
214
 
215
  == Changelog ==
216
 
217
+ = 6.4.07 - 2018-01-08 - Low priority =
218
+ * Added a deactivation survey to gain insight before moving to Version 7
219
+ * Tested on WP 4.9.1
220
+
221
  = 6.4.06 - 2017-09-07 - Medium Priority =
222
  * Bug Fix: Zoom level is not respected when saving
223
 
wpGoogleMaps.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: WP Google Maps
4
  Plugin URI: https://www.wpgmaps.com
5
  Description: The easiest to use Google Maps plugin! Create custom Google Maps with high quality markers containing locations, descriptions, images and links. Add your customized map to your WordPress posts and/or pages quickly and easily with the supplied shortcode. No fuss.
6
- Version: 6.4.06
7
  Author: WP Google Maps
8
  Author URI: https://www.wpgmaps.com
9
  Text Domain: wp-google-maps
@@ -11,6 +11,10 @@ Domain Path: /languages
11
  */
12
 
13
  /*
 
 
 
 
14
  * 6.4.06 - 2017-09-07 - Medium Priority
15
  * Bug Fix: Zoom level is not respected when saving
16
  *
@@ -333,16 +337,29 @@ $wpgmza_tblname_poly = $wpdb->prefix . "wpgmza_polygon";
333
  $wpgmza_tblname_polylines = $wpdb->prefix . "wpgmza_polylines";
334
  $wpgmza_tblname_categories = $wpdb->prefix. "wpgmza_categories";
335
  $wpgmza_tblname_category_maps = $wpdb->prefix. "wpgmza_category_maps";
336
- $wpgmza_version = "6.4.06";
337
  $wpgmza_p_version = "6.13";
338
  $wpgmza_t = "basic";
339
  define("WPGMAPS", $wpgmza_version);
340
  define("WPGMAPS_DIR",plugin_dir_url(__FILE__));
341
 
342
- include ("base/includes/wp-google-maps-polygons.php");
343
- include ("base/includes/wp-google-maps-polylines.php");
344
- include ("base/classes/widget_module.class.php");
345
- include ("base/includes/deprecated.php");
 
 
 
 
 
 
 
 
 
 
 
 
 
346
 
347
 
348
  if (function_exists('wpgmaps_head_pro' )) {
3
  Plugin Name: WP Google Maps
4
  Plugin URI: https://www.wpgmaps.com
5
  Description: The easiest to use Google Maps plugin! Create custom Google Maps with high quality markers containing locations, descriptions, images and links. Add your customized map to your WordPress posts and/or pages quickly and easily with the supplied shortcode. No fuss.
6
+ Version: 6.4.07
7
  Author: WP Google Maps
8
  Author URI: https://www.wpgmaps.com
9
  Text Domain: wp-google-maps
11
  */
12
 
13
  /*
14
+ * 6.4.07 - 2018-01-08 - Low priority
15
+ * Added a deactivation survey to gain insight before moving to Version 7
16
+ * Tested on WP 4.9.1
17
+ *
18
  * 6.4.06 - 2017-09-07 - Medium Priority
19
  * Bug Fix: Zoom level is not respected when saving
20
  *
337
  $wpgmza_tblname_polylines = $wpdb->prefix . "wpgmza_polylines";
338
  $wpgmza_tblname_categories = $wpdb->prefix. "wpgmza_categories";
339
  $wpgmza_tblname_category_maps = $wpdb->prefix. "wpgmza_category_maps";
340
+ $wpgmza_version = "6.4.07";
341
  $wpgmza_p_version = "6.13";
342
  $wpgmza_t = "basic";
343
  define("WPGMAPS", $wpgmza_version);
344
  define("WPGMAPS_DIR",plugin_dir_url(__FILE__));
345
 
346
+ include ( "base/includes/wp-google-maps-polygons.php" );
347
+ include ( "base/includes/wp-google-maps-polylines.php" );
348
+ include ( "base/classes/widget_module.class.php" );
349
+ include ( "base/includes/deprecated.php" );
350
+
351
+ /* plugin deactivation checks */
352
+ include ( "lib/codecabin/deactivate-feedback-form.php" );
353
+ add_filter('codecabin_deactivate_feedback_form_plugins', function($plugins) {
354
+ global $wpgmza_version;
355
+ $plugins[] = (object)array(
356
+ 'slug' => 'wp-google-maps',
357
+ 'version' => WPGMAPS
358
+ );
359
+
360
+ return $plugins;
361
+ });
362
+
363
 
364
 
365
  if (function_exists('wpgmaps_head_pro' )) {