Version Description
- 2018-07-05 :- Medium Priority =
- Added new event "userlocationfound" dispatched from WPGMZA.events
- Added fall back to convert UTF-8 to HTML entities on installations without multibyte functions available
- Changed GDPR settings UI, removed redundant compliance setting, added default notice
- Fixed media="1" attribute not validating
- Fixed nominatim geocoder not giving expected response to callback
- Fixed ScriptLoader module always enqueuing FontAwesome 4.*
- Fixed debug code breaking WP Migrate DB integration
- Fixed custom fields blank in marker listing
- Replaced deprecated MySQL functions with ST_ functions
- Replaced deprecated jQuery(window).load functions
- Removed Google autocomplete when using OpenLayers
- Removed protocol from marker icons / fixed marker icons disappear after switching to https://
Download this release
Release Info
Developer | perryrylance |
Plugin | WP Google Maps |
Version | 7.10.19 |
Comparing to | |
See all releases |
Code changes from version 7.10.18 to 7.10.19
- css/wp-google-maps-admin.css +32 -0
- html/gdpr-compliance-settings.html.php +113 -49
- includes/3rd-party-integration/class.wp-migrate-db-integration.php +0 -2
- includes/build.log +124 -124
- includes/class.dom-document.php +12 -1
- includes/class.dom-element.php +4 -2
- includes/class.gdpr-compliance.php +42 -26
- includes/class.google-maps-api-loader.php +4 -1
- includes/class.marker.php +2 -2
- includes/class.script-loader.php +5 -4
- includes/compat/backwards_compat_v6.php +2 -2
- includes/compat/js/backwards_compat_user_v6.js +1 -1
- includes/compat/js/backwards_compat_v6.js +2 -1
- js/v8/core.js +11 -5
- js/v8/geocoder.js +3 -3
- js/v8/info-window.js +6 -6
- js/v8/map.js +6 -6
- js/v8/marker.js +14 -6
- js/v8/open-layers/ol-geocoder.js +4 -2
- js/v8/polygon.js +6 -6
- js/v8/polyline.js +4 -4
- js/wp-google-maps.js +1 -1
- js/wpgmaps-admin-core.js +1 -1
- js/wpgmaps.js +3 -0
- js/wpgmaps_tabs.js +29 -4
- readme.txt +14 -0
- wpGoogleMaps.php +45 -22
css/wp-google-maps-admin.css
CHANGED
@@ -466,4 +466,36 @@ input.cmn-toggle-yes-no:checked + label:after {
|
|
466 |
#wpgmza-gdpr-compliance textarea
|
467 |
{
|
468 |
resize: both;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
469 |
}
|
466 |
#wpgmza-gdpr-compliance textarea
|
467 |
{
|
468 |
resize: both;
|
469 |
+
}
|
470 |
+
|
471 |
+
|
472 |
+
#wpgmza-gdpr-compliance label
|
473 |
+
{
|
474 |
+
cursor: auto;
|
475 |
+
}
|
476 |
+
|
477 |
+
#wpgmza-gdpr-compliance i
|
478 |
+
{
|
479 |
+
cursor: help !important;
|
480 |
+
}
|
481 |
+
|
482 |
+
[name='wpgmza_gdpr_default_notice']
|
483 |
+
{
|
484 |
+
width: 80%;
|
485 |
+
}
|
486 |
+
|
487 |
+
[name='wpgmza_gdpr_default_notice']>p:first-child
|
488 |
+
{
|
489 |
+
margin-top: 0px;
|
490 |
+
}
|
491 |
+
|
492 |
+
[name='wpgmza_gdpr_company_name'], [name='wpgmza_gdpr_retention_purpose']
|
493 |
+
{
|
494 |
+
width: 50vw;
|
495 |
+
}
|
496 |
+
|
497 |
+
[name='wpgmza_gdpr_notice_override_text']
|
498 |
+
{
|
499 |
+
width: 50vw;
|
500 |
+
height: 200px;
|
501 |
}
|
html/gdpr-compliance-settings.html.php
CHANGED
@@ -1,56 +1,120 @@
|
|
1 |
<div id="wpgmza-gdpr-compliance">
|
2 |
-
<h2>
|
3 |
-
<?php _e('Privacy', 'wp-google-maps'); ?>
|
4 |
-
</h2>
|
5 |
|
6 |
-
<
|
7 |
-
<label for="wpgmza_gdpr_enabled">
|
8 |
-
<?php
|
9 |
-
_e('Enable GDPR Compliance', 'wp-google-maps');
|
10 |
-
?>
|
11 |
-
<i class="fa fa-question-circle"
|
12 |
-
title="<?php _e('Disabling will disable all GDPR related options, this is not advised.', 'wp-google-maps'); ?>"/>
|
13 |
-
</label>
|
14 |
-
<input name="wpgmza_gdpr_enabled" type="checkbox"/>
|
15 |
-
</fieldset>
|
16 |
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
26 |
-
<
|
27 |
-
<label for="wpgmza_gdpr_retention_purpose">
|
28 |
-
<?php
|
29 |
-
_e('Retention Purpose(s)', 'wp-google-maps');
|
30 |
-
?>
|
31 |
-
</label>
|
32 |
-
<input name="wpgmza_gdpr_retention_purpose"/>
|
33 |
-
</fieldset>
|
34 |
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
<
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
|
46 |
-
<
|
47 |
-
|
48 |
-
|
49 |
-
_e('
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
</div>
|
1 |
<div id="wpgmza-gdpr-compliance">
|
|
|
|
|
|
|
2 |
|
3 |
+
<div id="wpgmza-gpdr-general-compliance">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
+
<h2>
|
6 |
+
<?php _e('General Complicance', 'wp-google-maps'); ?>
|
7 |
+
</h2>
|
8 |
+
|
9 |
+
<fieldset>
|
10 |
+
<label for="wpgmza_gdpr_require_consent_before_load">
|
11 |
+
<?php
|
12 |
+
_e('Require consent before loading Maps API', 'wp-google-maps');
|
13 |
+
?>
|
14 |
+
<i class="fa fa-question-circle"
|
15 |
+
title="<?php _e('The GDPR views IP Addresses as Personal Data, which requires consent before being processed. Loading the Google Maps API stores some user information, such as IP Addresses. WP Google Maps endeavours to uphold the spirit of data protection as per the GDPR. Enable this to option to prevent the Maps API from loading, until a user has consented to it.', 'wp-google-maps'); ?>"/>
|
16 |
+
</label>
|
17 |
+
<input name="wpgmza_gdpr_require_consent_before_load" type="checkbox"/>
|
18 |
+
</fieldset>
|
19 |
+
|
20 |
+
</div>
|
21 |
|
22 |
+
<div id="wpgmza-gdpr-vgm-compliance" style="display: none;">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
|
24 |
+
<h2>
|
25 |
+
<?php _e('VGM Add-on Compliance', 'wp-google-maps'); ?>
|
26 |
+
</h2>
|
27 |
+
|
28 |
+
<fieldset>
|
29 |
+
<label for="wpgmza_gdpr_require_consent_before_vgm_submit">
|
30 |
+
<?php
|
31 |
+
_e('Require consent before user submission', 'wp-google-maps');
|
32 |
+
?>
|
33 |
+
<i class="fa fa-question-circle"
|
34 |
+
title="<?php _e('If you collect personally identifying information through your Visitor Generated Markers form, you should check this box to require the user to consent to the GDPR notice before submitting their marker.', 'wp-google-maps') ?>"/>
|
35 |
+
</label>
|
36 |
+
<input name="wpgmza_gdpr_require_consent_before_vgm_submit" type="checkbox"/>
|
37 |
+
</fieldset>
|
38 |
+
|
39 |
+
</div>
|
40 |
|
41 |
+
<div id="wpgmza-gdpr-compliance-notice" style="display: none;">
|
42 |
+
|
43 |
+
<h2>
|
44 |
+
<?php _e('GDPR Consent Notice', 'wp-google-maps'); ?>
|
45 |
+
</h2>
|
46 |
+
|
47 |
+
<fieldset>
|
48 |
+
<label for="wpgmza_gdpr_default_notice">
|
49 |
+
<?php
|
50 |
+
_e('GDPR Notice', 'wp-google-maps');
|
51 |
+
?>
|
52 |
+
<i class="fa fa-question-circle"
|
53 |
+
title="<?php _e('Users will be asked to accept the notice shown here, in the form of a check box.', 'wp-google-maps'); ?>"></i>
|
54 |
+
</label>
|
55 |
+
|
56 |
+
<div name="wpgmza_gdpr_default_notice"></div>
|
57 |
+
</fieldset>
|
58 |
+
|
59 |
+
<fieldset>
|
60 |
+
<label for="wpgmza_gdpr_company_name">
|
61 |
+
<?php
|
62 |
+
_e('Company Name', 'wp-google-maps');
|
63 |
+
?>
|
64 |
+
</label>
|
65 |
+
<input name="wpgmza_gdpr_company_name"/>
|
66 |
+
</fieldset>
|
67 |
+
|
68 |
+
|
69 |
+
<fieldset>
|
70 |
+
<label for="wpgmza_gdpr_retention_purpose">
|
71 |
+
<?php
|
72 |
+
_e('Retention Purpose(s)', 'wp-google-maps');
|
73 |
+
?>
|
74 |
+
</label>
|
75 |
+
<div>
|
76 |
+
<input name="wpgmza_gdpr_retention_purpose"/>
|
77 |
+
<br/>
|
78 |
+
<small>
|
79 |
+
<?php
|
80 |
+
_e('The GDPR regulates that you need to state why you are processing data.', 'wp-google-maps');
|
81 |
+
?>
|
82 |
+
</small>
|
83 |
+
</div>
|
84 |
+
</fieldset>
|
85 |
+
|
86 |
+
<fieldset>
|
87 |
+
<label for="wpgmza_gdpr_override_notice">
|
88 |
+
<?php
|
89 |
+
_e('Override GDPR Notice', 'wp-google-maps');
|
90 |
+
?>
|
91 |
+
</label>
|
92 |
+
<div>
|
93 |
+
<input name="wpgmza_gdpr_override_notice" type="checkbox"/>
|
94 |
+
<br/>
|
95 |
+
<span class="notice notice-error" style="padding: 0.5em; display: block;">
|
96 |
+
<?php
|
97 |
+
_e('By checking this box, you agree to take sole responsibility for GDPR Compliance with regards to this plugin.', 'wp-google-maps');
|
98 |
+
?>
|
99 |
+
</span>
|
100 |
+
</div>
|
101 |
+
</fieldset>
|
102 |
+
|
103 |
+
<fieldset id="wpgmza_gdpr_override_notice_text">
|
104 |
+
<label for="wpgmza_gdpr_override_notice_text">
|
105 |
+
<?php
|
106 |
+
_e('Override Text', 'wp-google-maps');
|
107 |
+
?>
|
108 |
+
</label>
|
109 |
+
<textarea name="wpgmza_gdpr_notice_override_text"></textarea>
|
110 |
+
</fieldset>
|
111 |
+
|
112 |
+
|
113 |
+
</div>
|
114 |
+
|
115 |
+
<p>
|
116 |
+
<?php
|
117 |
+
_e('For more information about WPGM and GDPR compliance, please refer to our <a href="https://www.wpgmaps.com/gdpr/">GDPR information page</a> and our <a href="https://www.wpgmaps.com/privacy-policy/">Privacy Policy</a>', 'wp-google-maps');
|
118 |
+
?>
|
119 |
+
</p>--
|
120 |
</div>
|
includes/3rd-party-integration/class.wp-migrate-db-integration.php
CHANGED
@@ -13,8 +13,6 @@ if(!class_exists('WPGMZA\\Integration\\WPMigrateDB'))
|
|
13 |
|
14 |
public function onProcessColumnAsBinary($processAsBinary, $struct)
|
15 |
{
|
16 |
-
die('pof');
|
17 |
-
|
18 |
if(preg_match('/^GEOMETRY|POINT|POLYGON|LINESTRING|MULTIPOINT|MULTILINESTRING|MULTIPOLYGON|GEOMETRYCOLLECTION$/i', $struct->Type))
|
19 |
return true;
|
20 |
|
13 |
|
14 |
public function onProcessColumnAsBinary($processAsBinary, $struct)
|
15 |
{
|
|
|
|
|
16 |
if(preg_match('/^GEOMETRY|POINT|POLYGON|LINESTRING|MULTIPOINT|MULTILINESTRING|MULTIPOLYGON|GEOMETRYCOLLECTION$/i', $struct->Type))
|
17 |
return true;
|
18 |
|
includes/build.log
CHANGED
@@ -1,124 +1,124 @@
|
|
1 |
-
2018-
|
2 |
-
2018-
|
3 |
-
2018-
|
4 |
-
2018-
|
5 |
-
2018-
|
6 |
-
2018-
|
7 |
-
2018-
|
8 |
-
2018-
|
9 |
-
2018-
|
10 |
-
2018-
|
11 |
-
2018-
|
12 |
-
2018-
|
13 |
-
2018-
|
14 |
-
2018-
|
15 |
-
2018-
|
16 |
-
2018-
|
17 |
-
2018-
|
18 |
-
2018-
|
19 |
-
2018-
|
20 |
-
2018-
|
21 |
-
2018-
|
22 |
-
2018-
|
23 |
-
2018-
|
24 |
-
2018-
|
25 |
-
2018-
|
26 |
-
2018-
|
27 |
-
2018-
|
28 |
-
2018-
|
29 |
-
2018-
|
30 |
-
2018-
|
31 |
-
2018-
|
32 |
-
2018-
|
33 |
-
2018-
|
34 |
-
2018-
|
35 |
-
2018-
|
36 |
-
2018-
|
37 |
-
2018-
|
38 |
-
2018-
|
39 |
-
2018-
|
40 |
-
2018-
|
41 |
-
2018-
|
42 |
-
2018-
|
43 |
-
2018-
|
44 |
-
2018-
|
45 |
-
2018-
|
46 |
-
2018-
|
47 |
-
2018-
|
48 |
-
2018-
|
49 |
-
2018-
|
50 |
-
2018-
|
51 |
-
2018-
|
52 |
-
2018-
|
53 |
-
2018-
|
54 |
-
2018-
|
55 |
-
2018-
|
56 |
-
2018-
|
57 |
-
2018-
|
58 |
-
2018-
|
59 |
-
2018-
|
60 |
-
2018-
|
61 |
-
2018-
|
62 |
-
2018-
|
63 |
-
2018-
|
64 |
-
2018-
|
65 |
-
2018-
|
66 |
-
2018-
|
67 |
-
2018-
|
68 |
-
2018-
|
69 |
-
2018-
|
70 |
-
2018-
|
71 |
-
2018-
|
72 |
-
2018-
|
73 |
-
2018-
|
74 |
-
2018-
|
75 |
-
2018-
|
76 |
-
2018-
|
77 |
-
2018-
|
78 |
-
2018-
|
79 |
-
2018-
|
80 |
-
2018-
|
81 |
-
2018-
|
82 |
-
2018-
|
83 |
-
2018-
|
84 |
-
2018-
|
85 |
-
2018-
|
86 |
-
2018-
|
87 |
-
2018-
|
88 |
-
2018-
|
89 |
-
2018-
|
90 |
-
2018-
|
91 |
-
2018-
|
92 |
-
2018-
|
93 |
-
2018-
|
94 |
-
2018-
|
95 |
-
2018-
|
96 |
-
2018-
|
97 |
-
2018-
|
98 |
-
2018-
|
99 |
-
2018-
|
100 |
-
2018-
|
101 |
-
2018-
|
102 |
-
2018-
|
103 |
-
2018-
|
104 |
-
2018-
|
105 |
-
2018-
|
106 |
-
2018-
|
107 |
-
2018-
|
108 |
-
2018-
|
109 |
-
2018-
|
110 |
-
2018-
|
111 |
-
2018-
|
112 |
-
2018-
|
113 |
-
2018-
|
114 |
-
2018-
|
115 |
-
2018-
|
116 |
-
2018-
|
117 |
-
2018-
|
118 |
-
2018-
|
119 |
-
2018-
|
120 |
-
2018-
|
121 |
-
2018-
|
122 |
-
2018-
|
123 |
-
2018-
|
124 |
-
2018-
|
1 |
+
2018-07-05 09:36:08 :- Scanning dependencies
|
2 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/circle.js
|
3 |
+
2018-07-05 09:36:08 :- Found wpgmza-circle
|
4 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-map-object
|
5 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/compatibility.js
|
6 |
+
2018-07-05 09:36:08 :- Found wpgmza-compatibility
|
7 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
8 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/core.js
|
9 |
+
2018-07-05 09:36:08 :- Found wpgmza
|
10 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/distance.js
|
11 |
+
2018-07-05 09:36:08 :- Found wpgmza-distance
|
12 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
13 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/event-dispatcher.js
|
14 |
+
2018-07-05 09:36:08 :- Found wpgmza-event-dispatcher
|
15 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
16 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/event.js
|
17 |
+
2018-07-05 09:36:08 :- Found wpgmza-event
|
18 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
19 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/friendly-error.js
|
20 |
+
2018-07-05 09:36:08 :- Found wpgmza-friendly-error
|
21 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
22 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/geocoder.js
|
23 |
+
2018-07-05 09:36:08 :- Found wpgmza-geocoder
|
24 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
25 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/info-window.js
|
26 |
+
2018-07-05 09:36:08 :- Found wpgmza-info-window
|
27 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-event-dispatcher
|
28 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/latlng.js
|
29 |
+
2018-07-05 09:36:08 :- Found wpgmza-lat-lng
|
30 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
31 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/latlngbounds.js
|
32 |
+
2018-07-05 09:36:08 :- Found wpgmza-lat-lng-bounds
|
33 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
34 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/map-object.js
|
35 |
+
2018-07-05 09:36:08 :- Found wpgmza-map-object
|
36 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-event-dispatcher
|
37 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/map-settings-page.js
|
38 |
+
2018-07-05 09:36:08 :- Found wpgmza-map-settings-page
|
39 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
40 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/map-settings.js
|
41 |
+
2018-07-05 09:36:08 :- Found wpgmza-map-settings
|
42 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
43 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/map.js
|
44 |
+
2018-07-05 09:36:08 :- Found wpgmza-map
|
45 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-event-dispatcher
|
46 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/maps-engine-dialog.js
|
47 |
+
2018-07-05 09:36:08 :- Found wpgmza-maps-engine-dialog
|
48 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
49 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/marker.js
|
50 |
+
2018-07-05 09:36:08 :- Found wpgmza-marker
|
51 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
52 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/modern-store-locator-circle.js
|
53 |
+
2018-07-05 09:36:08 :- Found wpgmza-modern-store-locator-circle
|
54 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
55 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/modern-store-locator.js
|
56 |
+
2018-07-05 09:36:08 :- Found wpgmza-modern-store-locator
|
57 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
58 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/polygon.js
|
59 |
+
2018-07-05 09:36:08 :- Found wpgmza-polygon
|
60 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-map-object
|
61 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/polyline.js
|
62 |
+
2018-07-05 09:36:08 :- Found wpgmza-polyline
|
63 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-map-object
|
64 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/v7-custom-script.js
|
65 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/version.js
|
66 |
+
2018-07-05 09:36:08 :- Found wpgmza-version
|
67 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza
|
68 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-circle.js
|
69 |
+
2018-07-05 09:36:08 :- Found wpgmza-google-circle
|
70 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-circle
|
71 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-geocoder.js
|
72 |
+
2018-07-05 09:36:08 :- Found wpgmza-google-geocoder
|
73 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-geocoder
|
74 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-info-window.js
|
75 |
+
2018-07-05 09:36:08 :- Found wpgmza-google-info-window
|
76 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-info-window
|
77 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-map.js
|
78 |
+
2018-07-05 09:36:08 :- Found wpgmza-google-map
|
79 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-map
|
80 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-marker.js
|
81 |
+
2018-07-05 09:36:08 :- Found wpgmza-google-marker
|
82 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-marker
|
83 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-modern-store-locator-circle.js
|
84 |
+
2018-07-05 09:36:08 :- Found wpgmza-google-modern-store-locator-circle
|
85 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-modern-store-locator-circle
|
86 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-modern-store-locator.js
|
87 |
+
2018-07-05 09:36:08 :- Found wpgmza-google-modern-store-locator
|
88 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-modern-store-locator
|
89 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-polygon.js
|
90 |
+
2018-07-05 09:36:08 :- Found wpgmza-google-polygon
|
91 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-polygon
|
92 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-polyline.js
|
93 |
+
2018-07-05 09:36:08 :- Found wpgmza-google-polyline
|
94 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-polyline
|
95 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-vertex-context-menu.js
|
96 |
+
2018-07-05 09:36:08 :- Found wpgmza-google-vertex-context-menu
|
97 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza_api_call
|
98 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-circle.js
|
99 |
+
2018-07-05 09:36:08 :- Found wpgmza-ol-circle
|
100 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-circle
|
101 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-geocoder.js
|
102 |
+
2018-07-05 09:36:08 :- Found wpgmza-ol-geocoder
|
103 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-geocoder
|
104 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-info-window.js
|
105 |
+
2018-07-05 09:36:08 :- Found wpgmza-ol-info-window
|
106 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-info-window
|
107 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-map.js
|
108 |
+
2018-07-05 09:36:08 :- Found wpgmza-ol-map
|
109 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-map
|
110 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-marker.js
|
111 |
+
2018-07-05 09:36:08 :- Found wpgmza-ol-marker
|
112 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-marker
|
113 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-modern-store-locator-circle.js
|
114 |
+
2018-07-05 09:36:08 :- Found wpgmza-ol-modern-store-locator-circle
|
115 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-modern-store-locator-circle
|
116 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-modern-store-locator.js
|
117 |
+
2018-07-05 09:36:08 :- Found wpgmza-ol-modern-store-locator
|
118 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-modern-store-locator
|
119 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-polygon.js
|
120 |
+
2018-07-05 09:36:08 :- Found wpgmza-ol-polygon
|
121 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-polygon
|
122 |
+
2018-07-05 09:36:08 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-polyline.js
|
123 |
+
2018-07-05 09:36:08 :- Found wpgmza-ol-polyline
|
124 |
+
2018-07-05 09:36:08 :- Adding dependency wpgmza-polyline
|
includes/class.dom-document.php
CHANGED
@@ -20,6 +20,17 @@ class DOMDocument extends \DOMDocument
|
|
20 |
$this->onReady();
|
21 |
}
|
22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
/**
|
24 |
* Fired after construction when the Document is initialized
|
25 |
* @return void
|
@@ -77,7 +88,7 @@ class DOMDocument extends \DOMDocument
|
|
77 |
if(empty($html))
|
78 |
throw new \Exception("$src is empty");
|
79 |
|
80 |
-
$html =
|
81 |
$suppress_warnings = !(defined('WP_DEBUG') && WP_DEBUG);
|
82 |
|
83 |
// From PHP 5.4.0 onwards, loadHTML takes 2 arguments
|
20 |
$this->onReady();
|
21 |
}
|
22 |
|
23 |
+
public static function convertUTF8ToHTMLEntities($html)
|
24 |
+
{
|
25 |
+
if(function_exists('mb_convert_encoding'))
|
26 |
+
return mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');
|
27 |
+
else
|
28 |
+
{
|
29 |
+
trigger_error('Using fallback UTF to HTML entity conversion', E_USER_NOTICE);
|
30 |
+
return htmlspecialchars_decode(utf8_decode(htmlentities($html, ENT_COMPAT, 'utf-8', false)));
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
/**
|
35 |
* Fired after construction when the Document is initialized
|
36 |
* @return void
|
88 |
if(empty($html))
|
89 |
throw new \Exception("$src is empty");
|
90 |
|
91 |
+
$html = DOMDocument::convertUTF8ToHTMLEntities($html);
|
92 |
$suppress_warnings = !(defined('WP_DEBUG') && WP_DEBUG);
|
93 |
|
94 |
// From PHP 5.4.0 onwards, loadHTML takes 2 arguments
|
includes/class.dom-element.php
CHANGED
@@ -206,6 +206,8 @@ class DOMElement extends \DOMElement
|
|
206 |
*/
|
207 |
public function import($subject, $forcePHP=false)
|
208 |
{
|
|
|
|
|
209 |
$node = null;
|
210 |
|
211 |
if($subject instanceof \DOMDocument)
|
@@ -242,12 +244,12 @@ class DOMElement extends \DOMElement
|
|
242 |
if($subject != strip_tags($subject))
|
243 |
{
|
244 |
// Subject is a HTML string
|
245 |
-
$
|
246 |
|
247 |
$temp = new DOMDocument('1.0', 'UTF-8');
|
248 |
$str = "<div id='domdocument-import-payload___'>" . $subject . "</div>";
|
249 |
|
250 |
-
if(!empty(
|
251 |
$temp->loadHTML($str);
|
252 |
else
|
253 |
@$temp->loadHTML($str);
|
206 |
*/
|
207 |
public function import($subject, $forcePHP=false)
|
208 |
{
|
209 |
+
global $wpgmza;
|
210 |
+
|
211 |
$node = null;
|
212 |
|
213 |
if($subject instanceof \DOMDocument)
|
244 |
if($subject != strip_tags($subject))
|
245 |
{
|
246 |
// Subject is a HTML string
|
247 |
+
$html = DOMDocument::convertUTF8ToHTMLEntities($subject);
|
248 |
|
249 |
$temp = new DOMDocument('1.0', 'UTF-8');
|
250 |
$str = "<div id='domdocument-import-payload___'>" . $subject . "</div>";
|
251 |
|
252 |
+
if(!empty($wpgmza->settings->developer_mode))
|
253 |
$temp->loadHTML($str);
|
254 |
else
|
255 |
@$temp->loadHTML($str);
|
includes/class.gdpr-compliance.php
CHANGED
@@ -13,34 +13,43 @@ class GDPRCompliance
|
|
13 |
|
14 |
add_action('wp_ajax_wpgmza_gdpr_privacy_policy_notice_dismissed', array($this, 'onPrivacyPolicyNoticeDismissed'));
|
15 |
|
16 |
-
add_action('admin_notices', array($this, 'onAdminNotices'));
|
17 |
-
add_action('admin_post_wpgmza_dismiss_admin_gdpr_warning', array($this, 'onDismissAdminWarning'));
|
18 |
|
19 |
-
|
20 |
}
|
21 |
|
22 |
public function getDefaultSettings()
|
23 |
{
|
24 |
return array(
|
25 |
-
'wpgmza_gdpr_enabled'
|
26 |
-
'
|
27 |
-
__('
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
Some visual components of WP Google Maps use 3rd party libraries which are loaded over the network. At present the libraries are Google Maps, Open Street Map, jQuery DataTables and FontAwesome. When loading resources over a network, the 3rd party server will receive your IP address and User Agent string amongst other details. Please refer to the Privacy Policy of the respective libraries for details on how they use data and the process to exercise your rights under the GDPR regulations.
|
32 |
-
|
33 |
-
WP Google Maps uses jQuery DataTables to display sortable, searchable tables, such as that seen in the Advanced Marker Listing and on the Map Edit Page. jQuery DataTables in certain circumstances uses a cookie to save and later recall the "state" of a given table - that is, the search term, sort column and order and current page. This data is help in local storage and retained until this is cleared manually. No libraries used by WP Google Maps transmit this information.
|
34 |
|
35 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
|
37 |
-
|
38 |
-
|
39 |
-
'wpgmza_gdpr_retention_purpose' => 'presenting the data you have submitted on the map.'
|
40 |
);
|
41 |
}
|
42 |
|
43 |
-
public function setDefaultSettings()
|
44 |
{
|
45 |
$settings = get_option('WPGMZA_OTHER_SETTINGS');
|
46 |
|
@@ -53,7 +62,7 @@ Where this notice is displayed in place of a map, agreeing to this notice will s
|
|
53 |
$settings = array_merge($settings, $this->getDefaultSettings());
|
54 |
|
55 |
update_option('WPGMZA_OTHER_SETTINGS', $settings);
|
56 |
-
}
|
57 |
|
58 |
public function onPluginGetDefaultSettings($settings)
|
59 |
{
|
@@ -78,7 +87,10 @@ Where this notice is displayed in place of a map, agreeing to this notice will s
|
|
78 |
{
|
79 |
global $wpgmza;
|
80 |
|
81 |
-
$settings =
|
|
|
|
|
|
|
82 |
|
83 |
$document = new DOMDocument();
|
84 |
$document->loadPHPFile(plugin_dir_path(__DIR__) . 'html/gdpr-compliance-settings.html.php');
|
@@ -89,12 +101,12 @@ Where this notice is displayed in place of a map, agreeing to this notice will s
|
|
89 |
|
90 |
public function getNoticeHTML($checkbox=true)
|
91 |
{
|
92 |
-
$wpgmza_other_settings = get_option('WPGMZA_OTHER_SETTINGS');
|
93 |
|
94 |
-
|
95 |
-
return '';
|
96 |
|
97 |
-
$
|
|
|
98 |
|
99 |
$company_name = (empty($wpgmza_other_settings['wpgmza_gdpr_company_name']) ? '' : $wpgmza_other_settings['wpgmza_gdpr_company_name']);
|
100 |
$retention_period_days = (empty($wpgmza_other_settings['wpgmza_gdpr_retention_period_days']) ? '' : $wpgmza_other_settings['wpgmza_gdpr_retention_period_days']);
|
@@ -109,7 +121,11 @@ Where this notice is displayed in place of a map, agreeing to this notice will s
|
|
109 |
|
110 |
$html = apply_filters('wpgmza_gdpr_notice_html', $html);
|
111 |
|
112 |
-
|
|
|
|
|
|
|
|
|
113 |
}
|
114 |
|
115 |
public function getPrivacyPolicyNoticeHTML()
|
@@ -142,7 +158,7 @@ Where this notice is displayed in place of a map, agreeing to this notice will s
|
|
142 |
return $input . $document->saveInnerBody();
|
143 |
}
|
144 |
|
145 |
-
public function onAdminNotices()
|
146 |
{
|
147 |
global $wpgmza;
|
148 |
|
@@ -191,7 +207,7 @@ Where this notice is displayed in place of a map, agreeing to this notice will s
|
|
191 |
setcookie('wpgmza-gdpr-user-has-dismissed-admin-warning', 'true', 2147483647);
|
192 |
wp_redirect($_POST['redirect']);
|
193 |
exit;
|
194 |
-
}
|
195 |
|
196 |
public function onPOST()
|
197 |
{
|
13 |
|
14 |
add_action('wp_ajax_wpgmza_gdpr_privacy_policy_notice_dismissed', array($this, 'onPrivacyPolicyNoticeDismissed'));
|
15 |
|
16 |
+
//add_action('admin_notices', array($this, 'onAdminNotices'));
|
17 |
+
//add_action('admin_post_wpgmza_dismiss_admin_gdpr_warning', array($this, 'onDismissAdminWarning'));
|
18 |
|
19 |
+
//$this->setDefaultSettings();
|
20 |
}
|
21 |
|
22 |
public function getDefaultSettings()
|
23 |
{
|
24 |
return array(
|
25 |
+
'wpgmza_gdpr_enabled' => 1,
|
26 |
+
'wpgmza_gdpr_default_notice' => apply_filters('wpgmza_gdpr_notice',
|
27 |
+
__('<p>
|
28 |
+
I agree for my personal data to be processed by <span name="wpgmza_gdpr_company_name"></span>, for the purpose(s) of <span name="wpgmza_gdpr_retention_purpose"></span>.
|
29 |
+
</p>
|
|
|
|
|
|
|
|
|
30 |
|
31 |
+
<p>
|
32 |
+
I agree for my personal data, provided via map API calls, to be processed by the API provider, for the purposes of geocoding (converting addresses to coordinates), reverse geocoding and generating directions.
|
33 |
+
</p>
|
34 |
+
<p>
|
35 |
+
Some visual components of WP Google Maps use 3rd party libraries which are loaded over the network. At present the libraries are Google Maps, Open Street Map, jQuery DataTables and FontAwesome. When loading resources over a network, the 3rd party server will receive your IP address and User Agent string amongst other details. Please refer to the Privacy Policy of the respective libraries for details on how they use data and the process to exercise your rights under the GDPR regulations.
|
36 |
+
</p>
|
37 |
+
<p>
|
38 |
+
WP Google Maps uses jQuery DataTables to display sortable, searchable tables, such as that seen in the Advanced Marker Listing and on the Map Edit Page. jQuery DataTables in certain circumstances uses a cookie to save and later recall the "state" of a given table - that is, the search term, sort column and order and current page. This data is help in local storage and retained until this is cleared manually. No libraries used by WP Google Maps transmit this information.
|
39 |
+
</p>
|
40 |
+
<p>
|
41 |
+
Please <a href="https://developers.google.com/maps/terms">see here</a> and <a href="https://maps.google.com/help/terms_maps.html">here</a> for Google\'s terms. Please also see <a href="https://policies.google.com/privacy?hl=en-GB&gl=uk">Google\'s Privacy Policy</a>. We do not send the API provider any personally identifying information, or information that could uniquely identify your device.
|
42 |
+
</p>
|
43 |
+
<p>
|
44 |
+
Where this notice is displayed in place of a map, agreeing to this notice will store a cookie recording your agreement so you are not prompted again.
|
45 |
+
</p>'), 'wp-google-maps'),
|
46 |
|
47 |
+
'wpgmza_gdpr_company_name' => get_bloginfo('name'),
|
48 |
+
'wpgmza_gdpr_retention_purpose' => 'displaying map tiles, geocoding addresses and calculating and display directions.'
|
|
|
49 |
);
|
50 |
}
|
51 |
|
52 |
+
/*public function setDefaultSettings()
|
53 |
{
|
54 |
$settings = get_option('WPGMZA_OTHER_SETTINGS');
|
55 |
|
62 |
$settings = array_merge($settings, $this->getDefaultSettings());
|
63 |
|
64 |
update_option('WPGMZA_OTHER_SETTINGS', $settings);
|
65 |
+
}*/
|
66 |
|
67 |
public function onPluginGetDefaultSettings($settings)
|
68 |
{
|
87 |
{
|
88 |
global $wpgmza;
|
89 |
|
90 |
+
$settings = array_merge(
|
91 |
+
(array)$this->getDefaultSettings(),
|
92 |
+
get_option('WPGMZA_OTHER_SETTINGS')
|
93 |
+
);
|
94 |
|
95 |
$document = new DOMDocument();
|
96 |
$document->loadPHPFile(plugin_dir_path(__DIR__) . 'html/gdpr-compliance-settings.html.php');
|
101 |
|
102 |
public function getNoticeHTML($checkbox=true)
|
103 |
{
|
104 |
+
$wpgmza_other_settings = array_merge( (array)$this->getDefaultSettings(), get_option('WPGMZA_OTHER_SETTINGS') );
|
105 |
|
106 |
+
$html = $wpgmza_other_settings['wpgmza_gdpr_default_notice'];
|
|
|
107 |
|
108 |
+
if(!empty($wpgmza_other_settings['wpgmza_gdpr_override_notice']) && !empty($wpgmza_other_settings['wpgmza_gdpr_notice_override_text']))
|
109 |
+
$html = $wpgmza_other_settings['wpgmza_gdpr_notice_override_text'];
|
110 |
|
111 |
$company_name = (empty($wpgmza_other_settings['wpgmza_gdpr_company_name']) ? '' : $wpgmza_other_settings['wpgmza_gdpr_company_name']);
|
112 |
$retention_period_days = (empty($wpgmza_other_settings['wpgmza_gdpr_retention_period_days']) ? '' : $wpgmza_other_settings['wpgmza_gdpr_retention_period_days']);
|
121 |
|
122 |
$html = apply_filters('wpgmza_gdpr_notice_html', $html);
|
123 |
|
124 |
+
$document = new DOMDocument();
|
125 |
+
@$document->loadHTML($html);
|
126 |
+
$document->populate($wpgmza_other_settings);
|
127 |
+
|
128 |
+
return $document->saveInnerBody();
|
129 |
}
|
130 |
|
131 |
public function getPrivacyPolicyNoticeHTML()
|
158 |
return $input . $document->saveInnerBody();
|
159 |
}
|
160 |
|
161 |
+
/*public function onAdminNotices()
|
162 |
{
|
163 |
global $wpgmza;
|
164 |
|
207 |
setcookie('wpgmza-gdpr-user-has-dismissed-admin-warning', 'true', 2147483647);
|
208 |
wp_redirect($_POST['redirect']);
|
209 |
exit;
|
210 |
+
}*/
|
211 |
|
212 |
public function onPOST()
|
213 |
{
|
includes/class.google-maps-api-loader.php
CHANGED
@@ -204,7 +204,10 @@ class GoogleMapsAPILoader
|
|
204 |
return false;
|
205 |
}
|
206 |
|
207 |
-
if(!is_admin() &&
|
|
|
|
|
|
|
208 |
{
|
209 |
$status->message = 'User consent not given';
|
210 |
$status->code = GoogleMapsAPILoader::USER_CONSENT_NOT_GIVEN;
|
204 |
return false;
|
205 |
}
|
206 |
|
207 |
+
if(!is_admin() &&
|
208 |
+
!empty($settings['wpgmza_gdpr_enabled']) &&
|
209 |
+
!empty($settings['wpgmza_gdpr_require_consent_before_load']) &&
|
210 |
+
!isset($_COOKIE['wpgmza-api-consent-given']))
|
211 |
{
|
212 |
$status->message = 'User consent not given';
|
213 |
$status->code = GoogleMapsAPILoader::USER_CONSENT_NOT_GIVEN;
|
includes/class.marker.php
CHANGED
@@ -26,7 +26,7 @@ class Marker extends Crud
|
|
26 |
protected function get_placeholder_by_type($type)
|
27 |
{
|
28 |
if($type == 'point')
|
29 |
-
return "
|
30 |
|
31 |
return Crud::get_placeholder_by_type($type);
|
32 |
}
|
@@ -54,7 +54,7 @@ class Marker extends Crud
|
|
54 |
$this->get_column_parameter('latlng'),
|
55 |
$this->id
|
56 |
);
|
57 |
-
$stmt = $wpdb->prepare("UPDATE " . $this->get_table_name() . " SET lat=%s, lng=%s, latlng=
|
58 |
$wpdb->query($stmt);
|
59 |
}
|
60 |
|
26 |
protected function get_placeholder_by_type($type)
|
27 |
{
|
28 |
if($type == 'point')
|
29 |
+
return "ST_GeomFromText(%s)";
|
30 |
|
31 |
return Crud::get_placeholder_by_type($type);
|
32 |
}
|
54 |
$this->get_column_parameter('latlng'),
|
55 |
$this->id
|
56 |
);
|
57 |
+
$stmt = $wpdb->prepare("UPDATE " . $this->get_table_name() . " SET lat=%s, lng=%s, latlng=ST_GeomFromText(%s) WHERE id=%d", $params);
|
58 |
$wpdb->query($stmt);
|
59 |
}
|
60 |
|
includes/class.script-loader.php
CHANGED
@@ -307,9 +307,6 @@ class ScriptLoader
|
|
307 |
|
308 |
wp_enqueue_style('remodal', plugin_dir_url(__DIR__) . 'lib/remodal.css');
|
309 |
wp_enqueue_style('remodal-default-theme', plugin_dir_url(__DIR__) . 'lib/remodal-default-theme.css');
|
310 |
-
|
311 |
-
wp_register_style('fontawesome', plugin_dir_url(__DIR__) . 'css/font-awesome.min.css');
|
312 |
-
wp_enqueue_style('fontawesome');
|
313 |
}
|
314 |
|
315 |
public function enqueueScripts()
|
@@ -391,11 +388,15 @@ class ScriptLoader
|
|
391 |
|
392 |
$this->scripts['wpgmza']->dependencies = $dependencies;
|
393 |
|
|
|
|
|
|
|
|
|
394 |
// Enqueue other scripts
|
395 |
foreach($this->scripts as $handle => $script)
|
396 |
{
|
397 |
$fullpath = plugin_dir_url(($script->pro ? WPGMZA_PRO_FILE : __DIR__)) . $script->src;
|
398 |
-
wp_enqueue_script($handle, $fullpath, $script->dependencies);
|
399 |
}
|
400 |
|
401 |
// Enqueue localized data
|
307 |
|
308 |
wp_enqueue_style('remodal', plugin_dir_url(__DIR__) . 'lib/remodal.css');
|
309 |
wp_enqueue_style('remodal-default-theme', plugin_dir_url(__DIR__) . 'lib/remodal-default-theme.css');
|
|
|
|
|
|
|
310 |
}
|
311 |
|
312 |
public function enqueueScripts()
|
388 |
|
389 |
$this->scripts['wpgmza']->dependencies = $dependencies;
|
390 |
|
391 |
+
$version_string = $wpgmza->getBasicVersion();
|
392 |
+
if(method_exists($wpgmza, 'getProVersion'))
|
393 |
+
$version_string .= '+pro-' . $wpgmza->getProVersion();
|
394 |
+
|
395 |
// Enqueue other scripts
|
396 |
foreach($this->scripts as $handle => $script)
|
397 |
{
|
398 |
$fullpath = plugin_dir_url(($script->pro ? WPGMZA_PRO_FILE : __DIR__)) . $script->src;
|
399 |
+
wp_enqueue_script($handle, $fullpath, $script->dependencies, $version_string);
|
400 |
}
|
401 |
|
402 |
// Enqueue localized data
|
includes/compat/backwards_compat_v6.php
CHANGED
@@ -97,7 +97,7 @@ function wpgmza_backwards_compat_get_all_circle_data(){
|
|
97 |
global $wpdb;
|
98 |
global $wpgmza_tblname_circles;
|
99 |
|
100 |
-
$stmt = "SELECT *,
|
101 |
$results = $wpdb->get_results($stmt);
|
102 |
|
103 |
$circles = array();
|
@@ -111,7 +111,7 @@ function wpgmza_backwards_compat_get_all_rectangle_data(){
|
|
111 |
global $wpdb;
|
112 |
global $wpgmza_tblname_rectangles;
|
113 |
|
114 |
-
$stmt = "SELECT *,
|
115 |
$results = $wpdb->get_results($stmt);
|
116 |
|
117 |
$rectangles = array();
|
97 |
global $wpdb;
|
98 |
global $wpgmza_tblname_circles;
|
99 |
|
100 |
+
$stmt = "SELECT *, ST_AsText(center) AS center FROM $wpgmza_tblname_circles";
|
101 |
$results = $wpdb->get_results($stmt);
|
102 |
|
103 |
$circles = array();
|
111 |
global $wpdb;
|
112 |
global $wpgmza_tblname_rectangles;
|
113 |
|
114 |
+
$stmt = "SELECT *, ST_AsText(cornerA) AS cornerA, ST_AsText(cornerB) AS cornerB FROM $wpgmza_tblname_rectangles";
|
115 |
$results = $wpdb->get_results($stmt);
|
116 |
|
117 |
$rectangles = array();
|
includes/compat/js/backwards_compat_user_v6.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
jQuery(function($){
|
2 |
-
jQuery(window).load
|
3 |
if(typeof wpgmaps_localize !== "undefined"){
|
4 |
for(var i in wpgmaps_localize){
|
5 |
var mapid = wpgmaps_localize[i]['id'];
|
1 |
jQuery(function($){
|
2 |
+
jQuery(window).on("load", function(){
|
3 |
if(typeof wpgmaps_localize !== "undefined"){
|
4 |
for(var i in wpgmaps_localize){
|
5 |
var mapid = wpgmaps_localize[i]['id'];
|
includes/compat/js/backwards_compat_v6.js
CHANGED
@@ -1,5 +1,6 @@
|
|
|
|
1 |
jQuery(function($){
|
2 |
-
jQuery(window).load
|
3 |
if(typeof wpgmza_backwards_compat_v6_marker_tab_headings !== "undefined"){
|
4 |
$("#wpgmaps_tabs_markers > ul").append(wpgmza_backwards_compat_v6_marker_tab_headings);
|
5 |
$("#wpgmaps_tabs_markers").append(wpgmza_backwards_compat_v6_marker_tab_content);
|
1 |
+
// TODO: Move this file into /js and out of /includes which is for PHP
|
2 |
jQuery(function($){
|
3 |
+
jQuery(window).on("load", function(){
|
4 |
if(typeof wpgmza_backwards_compat_v6_marker_tab_headings !== "undefined"){
|
5 |
$("#wpgmaps_tabs_markers > ul").append(wpgmza_backwards_compat_v6_marker_tab_headings);
|
6 |
$("#wpgmaps_tabs_markers").append(wpgmza_backwards_compat_v6_marker_tab_content);
|
js/v8/core.js
CHANGED
@@ -222,14 +222,20 @@
|
|
222 |
};
|
223 |
|
224 |
navigator.geolocation.getCurrentPosition(function(position) {
|
225 |
-
callback
|
|
|
|
|
|
|
226 |
},
|
227 |
function(error) {
|
228 |
|
229 |
options.enableHighAccuracy = false;
|
230 |
|
231 |
navigator.geolocation.getCurrentPosition(function(position) {
|
232 |
-
callback
|
|
|
|
|
|
|
233 |
},
|
234 |
function(error) {
|
235 |
console.warn(error.code, error.message);
|
@@ -286,12 +292,12 @@
|
|
286 |
|
287 |
switch(WPGMZA.settings.engine)
|
288 |
{
|
289 |
-
case "
|
290 |
-
engine = "
|
291 |
break;
|
292 |
|
293 |
default:
|
294 |
-
engine = "
|
295 |
break;
|
296 |
}
|
297 |
|
222 |
};
|
223 |
|
224 |
navigator.geolocation.getCurrentPosition(function(position) {
|
225 |
+
if(callback)
|
226 |
+
callback(position);
|
227 |
+
|
228 |
+
WPGMZA.events.trigger("userlocationfound");
|
229 |
},
|
230 |
function(error) {
|
231 |
|
232 |
options.enableHighAccuracy = false;
|
233 |
|
234 |
navigator.geolocation.getCurrentPosition(function(position) {
|
235 |
+
if(callback)
|
236 |
+
callback(position);
|
237 |
+
|
238 |
+
WPGMZA.events.trigger("userlocationfound");
|
239 |
},
|
240 |
function(error) {
|
241 |
console.warn(error.code, error.message);
|
292 |
|
293 |
switch(WPGMZA.settings.engine)
|
294 |
{
|
295 |
+
case "open-layers":
|
296 |
+
engine = "OL";
|
297 |
break;
|
298 |
|
299 |
default:
|
300 |
+
engine = "Google";
|
301 |
break;
|
302 |
}
|
303 |
|
js/v8/geocoder.js
CHANGED
@@ -18,12 +18,12 @@
|
|
18 |
{
|
19 |
switch(WPGMZA.settings.engine)
|
20 |
{
|
21 |
-
case "
|
22 |
-
return WPGMZA.
|
23 |
break;
|
24 |
|
25 |
default:
|
26 |
-
return WPGMZA.
|
27 |
break;
|
28 |
}
|
29 |
}
|
18 |
{
|
19 |
switch(WPGMZA.settings.engine)
|
20 |
{
|
21 |
+
case "open-layers":
|
22 |
+
return WPGMZA.OLGeocoder;
|
23 |
break;
|
24 |
|
25 |
default:
|
26 |
+
return WPGMZA.GoogleGeocoder;
|
27 |
break;
|
28 |
}
|
29 |
}
|
js/v8/info-window.js
CHANGED
@@ -41,16 +41,16 @@
|
|
41 |
{
|
42 |
switch(WPGMZA.settings.engine)
|
43 |
{
|
44 |
-
case "
|
45 |
if(WPGMZA.isProVersion())
|
46 |
-
return WPGMZA.
|
47 |
-
return WPGMZA.
|
48 |
break;
|
49 |
-
|
50 |
default:
|
51 |
if(WPGMZA.isProVersion())
|
52 |
-
return WPGMZA.
|
53 |
-
return WPGMZA.
|
54 |
break;
|
55 |
}
|
56 |
}
|
41 |
{
|
42 |
switch(WPGMZA.settings.engine)
|
43 |
{
|
44 |
+
case "open-layers":
|
45 |
if(WPGMZA.isProVersion())
|
46 |
+
return WPGMZA.OLProInfoWindow;
|
47 |
+
return WPGMZA.OLInfoWindow;
|
48 |
break;
|
49 |
+
|
50 |
default:
|
51 |
if(WPGMZA.isProVersion())
|
52 |
+
return WPGMZA.GoogleProInfoWindow;
|
53 |
+
return WPGMZA.GoogleInfoWindow;
|
54 |
break;
|
55 |
}
|
56 |
}
|
js/v8/map.js
CHANGED
@@ -45,18 +45,18 @@
|
|
45 |
{
|
46 |
switch(WPGMZA.settings.engine)
|
47 |
{
|
48 |
-
case "
|
49 |
if(WPGMZA.isProVersion())
|
50 |
-
return WPGMZA.
|
51 |
|
52 |
-
return WPGMZA.
|
53 |
break;
|
54 |
-
|
55 |
default:
|
56 |
if(WPGMZA.isProVersion())
|
57 |
-
return WPGMZA.
|
58 |
|
59 |
-
return WPGMZA.
|
60 |
break;
|
61 |
}
|
62 |
}
|
45 |
{
|
46 |
switch(WPGMZA.settings.engine)
|
47 |
{
|
48 |
+
case "open-layers":
|
49 |
if(WPGMZA.isProVersion())
|
50 |
+
return WPGMZA.OLProMap;
|
51 |
|
52 |
+
return WPGMZA.OLMap;
|
53 |
break;
|
54 |
+
|
55 |
default:
|
56 |
if(WPGMZA.isProVersion())
|
57 |
+
return WPGMZA.GoogleProMap;
|
58 |
|
59 |
+
return WPGMZA.GoogleMap;
|
60 |
break;
|
61 |
}
|
62 |
}
|
js/v8/marker.js
CHANGED
@@ -55,16 +55,16 @@
|
|
55 |
{
|
56 |
switch(WPGMZA.settings.engine)
|
57 |
{
|
58 |
-
case "
|
59 |
if(WPGMZA.isProVersion())
|
60 |
-
return WPGMZA.
|
61 |
-
return WPGMZA.
|
62 |
break;
|
63 |
|
64 |
default:
|
65 |
if(WPGMZA.isProVersion())
|
66 |
-
return WPGMZA.
|
67 |
-
return WPGMZA.
|
68 |
break;
|
69 |
}
|
70 |
}
|
@@ -138,7 +138,15 @@
|
|
138 |
|
139 |
WPGMZA.Marker.prototype.getIcon = function()
|
140 |
{
|
141 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
}
|
143 |
|
144 |
/**
|
55 |
{
|
56 |
switch(WPGMZA.settings.engine)
|
57 |
{
|
58 |
+
case "open-layers":
|
59 |
if(WPGMZA.isProVersion())
|
60 |
+
return WPGMZA.OLProMarker;
|
61 |
+
return WPGMZA.OLMarker;
|
62 |
break;
|
63 |
|
64 |
default:
|
65 |
if(WPGMZA.isProVersion())
|
66 |
+
return WPGMZA.GoogleProMarker;
|
67 |
+
return WPGMZA.GoogleMarker;
|
68 |
break;
|
69 |
}
|
70 |
}
|
138 |
|
139 |
WPGMZA.Marker.prototype.getIcon = function()
|
140 |
{
|
141 |
+
function stripProtocol(url)
|
142 |
+
{
|
143 |
+
if(typeof url != "string")
|
144 |
+
return url;
|
145 |
+
|
146 |
+
return url.replace(/^http(s?):/, "");
|
147 |
+
}
|
148 |
+
|
149 |
+
return stripProtocol(WPGMZA.settings.default_marker_icon);
|
150 |
}
|
151 |
|
152 |
/**
|
js/v8/open-layers/ol-geocoder.js
CHANGED
@@ -124,8 +124,10 @@
|
|
124 |
})
|
125 |
};
|
126 |
|
127 |
-
response[i].
|
128 |
-
|
|
|
|
|
129 |
}
|
130 |
|
131 |
callback(response, status);
|
124 |
})
|
125 |
};
|
126 |
|
127 |
+
response[i].latLng = {
|
128 |
+
lat: parseFloat(response[i].lat),
|
129 |
+
lng: parseFloat(response[i].lon)
|
130 |
+
};
|
131 |
}
|
132 |
|
133 |
callback(response, status);
|
js/v8/polygon.js
CHANGED
@@ -25,16 +25,16 @@
|
|
25 |
{
|
26 |
switch(WPGMZA.settings.engine)
|
27 |
{
|
28 |
-
case "
|
29 |
if(WPGMZA.isProVersion())
|
30 |
-
return WPGMZA.
|
31 |
-
return WPGMZA.
|
32 |
break;
|
33 |
-
|
34 |
default:
|
35 |
if(WPGMZA.isProVersion())
|
36 |
-
return WPGMZA.
|
37 |
-
return WPGMZA.
|
38 |
break;
|
39 |
}
|
40 |
}
|
25 |
{
|
26 |
switch(WPGMZA.settings.engine)
|
27 |
{
|
28 |
+
case "open-layers":
|
29 |
if(WPGMZA.isProVersion())
|
30 |
+
return WPGMZA.OLProPolygon;
|
31 |
+
return WPGMZA.OLPolygon;
|
32 |
break;
|
33 |
+
|
34 |
default:
|
35 |
if(WPGMZA.isProVersion())
|
36 |
+
return WPGMZA.GoogleProPolygon;
|
37 |
+
return WPGMZA.GooglePolygon;
|
38 |
break;
|
39 |
}
|
40 |
}
|
js/v8/polyline.js
CHANGED
@@ -22,12 +22,12 @@
|
|
22 |
{
|
23 |
switch(WPGMZA.settings.engine)
|
24 |
{
|
25 |
-
case "
|
26 |
-
return WPGMZA.
|
27 |
break;
|
28 |
-
|
29 |
default:
|
30 |
-
return WPGMZA.
|
31 |
break;
|
32 |
}
|
33 |
}
|
22 |
{
|
23 |
switch(WPGMZA.settings.engine)
|
24 |
{
|
25 |
+
case "open-layers":
|
26 |
+
return WPGMZA.OLPolyline;
|
27 |
break;
|
28 |
+
|
29 |
default:
|
30 |
+
return WPGMZA.GooglePolyline;
|
31 |
break;
|
32 |
}
|
33 |
}
|
js/wp-google-maps.js
CHANGED
@@ -444,7 +444,7 @@ function fillInAddress() {
|
|
444 |
var place = autocomplete.getPlace();
|
445 |
}
|
446 |
var elementExists = document.getElementById("addressInput");
|
447 |
-
if (typeof google === 'object' && typeof google.maps === 'object' && typeof google.maps.places === 'object' && typeof google.maps.places.Autocomplete === 'function') {
|
448 |
if (elementExists !== null) {
|
449 |
/* initialize the autocomplete form */
|
450 |
autocomplete = new google.maps.places.Autocomplete(
|
444 |
var place = autocomplete.getPlace();
|
445 |
}
|
446 |
var elementExists = document.getElementById("addressInput");
|
447 |
+
if (typeof google === 'object' && typeof google.maps === 'object' && typeof google.maps.places === 'object' && typeof google.maps.places.Autocomplete === 'function' && WPGMZA.settings.engine == "google-maps") {
|
448 |
if (elementExists !== null) {
|
449 |
/* initialize the autocomplete form */
|
450 |
autocomplete = new google.maps.places.Autocomplete(
|
js/wpgmaps-admin-core.js
CHANGED
@@ -169,7 +169,7 @@
|
|
169 |
wpgmza_table_length = jQuery(this).val();
|
170 |
})
|
171 |
|
172 |
-
if (/*WPGMZA.isGoogleAutocompleteSupported()*/ window.google && google.maps && google.maps.places && google.maps.places.Autocomplete)
|
173 |
{
|
174 |
if(document.getElementById('wpgmza_add_address'))
|
175 |
{
|
169 |
wpgmza_table_length = jQuery(this).val();
|
170 |
})
|
171 |
|
172 |
+
if (/*WPGMZA.isGoogleAutocompleteSupported()*/ window.google && google.maps && google.maps.places && google.maps.places.Autocomplete && WPGMZA.settings.engine == "google-maps")
|
173 |
{
|
174 |
if(document.getElementById('wpgmza_add_address'))
|
175 |
{
|
js/wpgmaps.js
CHANGED
@@ -178,6 +178,9 @@ function wpgmza_create_places_autocomplete() {
|
|
178 |
if(!google.maps.places || !google.maps.places.Autocomplete)
|
179 |
return;
|
180 |
|
|
|
|
|
|
|
181 |
var options = {
|
182 |
types: ["geocode"]
|
183 |
};
|
178 |
if(!google.maps.places || !google.maps.places.Autocomplete)
|
179 |
return;
|
180 |
|
181 |
+
if(WPGMZA.settings.engine != "google-maps")
|
182 |
+
return;
|
183 |
+
|
184 |
var options = {
|
185 |
types: ["geocode"]
|
186 |
};
|
js/wpgmaps_tabs.js
CHANGED
@@ -64,13 +64,38 @@ $("document").ready(function() {
|
|
64 |
|
65 |
$("#wpgmza_theme_selection_"+tid).addClass("wpgmza_theme_selection_activate");
|
66 |
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
MYMAP.map.setOptions({styles: style_data});
|
72 |
});
|
73 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
});
|
75 |
|
76 |
})(jQuery);
|
64 |
|
65 |
$("#wpgmza_theme_selection_"+tid).addClass("wpgmza_theme_selection_activate");
|
66 |
|
|
|
|
|
|
|
|
|
67 |
MYMAP.map.setOptions({styles: style_data});
|
68 |
});
|
69 |
|
70 |
+
|
71 |
+
function updateGDPRTab()
|
72 |
+
{
|
73 |
+
var showNoticeControls = $("input[name='wpgmza_gdpr_require_consent_before_load']").prop("checked");
|
74 |
+
var showOverrideTextarea = showNoticeControls && $("input[name='wpgmza_gdpr_override_notice']").prop("checked");
|
75 |
+
|
76 |
+
if(showNoticeControls)
|
77 |
+
{
|
78 |
+
$("#wpgmza-gdpr-compliance-notice").show("slow");
|
79 |
+
}
|
80 |
+
else
|
81 |
+
{
|
82 |
+
$("#wpgmza-gdpr-compliance-notice").hide("slow");
|
83 |
+
}
|
84 |
+
|
85 |
+
if(showOverrideTextarea)
|
86 |
+
{
|
87 |
+
$("#wpgmza_gdpr_override_notice_text").show("slow");
|
88 |
+
}
|
89 |
+
else
|
90 |
+
{
|
91 |
+
$("#wpgmza_gdpr_override_notice_text").hide("slow");
|
92 |
+
}
|
93 |
+
}
|
94 |
+
|
95 |
+
$("input[name='wpgmza_gdpr_require_consent_before_load'], input[name='wpgmza_gdpr_require_consent_before_vgm_submit'], input[name='wpgmza_gdpr_override_notice']").on("change", updateGDPRTab);
|
96 |
+
|
97 |
+
updateGDPRTab();
|
98 |
+
|
99 |
});
|
100 |
|
101 |
})(jQuery);
|
readme.txt
CHANGED
@@ -215,6 +215,20 @@ Please upgrade your version of WP Google Maps to version 6.0.27 as it includes m
|
|
215 |
|
216 |
== Changelog ==
|
217 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
= 7.10.18 - 2018-07-02 :- Medium Priority =
|
219 |
* Fixed GDPR back end warning appearing when GDPR compliance is enabled
|
220 |
|
215 |
|
216 |
== Changelog ==
|
217 |
|
218 |
+
= 7.10.19 - 2018-07-05 :- Medium Priority =
|
219 |
+
* Added new event "userlocationfound" dispatched from WPGMZA.events
|
220 |
+
* Added fall back to convert UTF-8 to HTML entities on installations without multibyte functions available
|
221 |
+
* Changed GDPR settings UI, removed redundant compliance setting, added default notice
|
222 |
+
* Fixed media="1" attribute not validating
|
223 |
+
* Fixed nominatim geocoder not giving expected response to callback
|
224 |
+
* Fixed ScriptLoader module always enqueuing FontAwesome 4.*
|
225 |
+
* Fixed debug code breaking WP Migrate DB integration
|
226 |
+
* Fixed custom fields blank in marker listing
|
227 |
+
* Replaced deprecated MySQL functions with ST_ functions
|
228 |
+
* Replaced deprecated jQuery(window).load functions
|
229 |
+
* Removed Google autocomplete when using OpenLayers
|
230 |
+
* Removed protocol from marker icons / fixed marker icons disappear after switching to https://
|
231 |
+
|
232 |
= 7.10.18 - 2018-07-02 :- Medium Priority =
|
233 |
* Fixed GDPR back end warning appearing when GDPR compliance is enabled
|
234 |
|
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: 7.10.
|
7 |
Author: WP Google Maps
|
8 |
Author URI: https://www.wpgmaps.com
|
9 |
Text Domain: wp-google-maps
|
@@ -11,6 +11,20 @@ Domain Path: /languages
|
|
11 |
*/
|
12 |
|
13 |
/*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
* 7.10.18 - 2018-07-02 :- Medium Priority
|
15 |
* Fixed GDPR back end warning appearing when GDPR compliance is enabled
|
16 |
*
|
@@ -681,7 +695,7 @@ function wpgmaps_activate() {
|
|
681 |
|
682 |
VALUES
|
683 |
|
684 |
-
(%d, %s, %s, %s,
|
685 |
|
686 |
1,
|
687 |
'California',
|
@@ -2519,7 +2533,7 @@ function wpgmaps_action_callback_basic() {
|
|
2519 |
'address' => '%s',
|
2520 |
'lat' => '%f',
|
2521 |
'lng' => '%f',
|
2522 |
-
'latlng' => '
|
2523 |
'infoopen' => '%d',
|
2524 |
'description' => '%s',
|
2525 |
'title' => '%s',
|
@@ -2573,7 +2587,7 @@ function wpgmaps_action_callback_basic() {
|
|
2573 |
address = %s,
|
2574 |
lat = %f,
|
2575 |
lng = %f,
|
2576 |
-
latlng =
|
2577 |
anim = %d,
|
2578 |
infoopen = %d
|
2579 |
WHERE
|
@@ -2704,7 +2718,7 @@ function wpgmaps_tag_basic( $atts ) {
|
|
2704 |
|
2705 |
if (!function_exists('wpgmaps_admin_styles_pro')) {
|
2706 |
|
2707 |
-
wp_register_style( 'wpgmaps-style', plugins_url('css/wpgmza_style.css', __FILE__),array(),$wpgmza_version
|
2708 |
wp_enqueue_style( 'wpgmaps-style' );
|
2709 |
|
2710 |
|
@@ -3078,7 +3092,8 @@ function wpgmza_settings_page_post()
|
|
3078 |
"wpgmza_gdpr_enabled",
|
3079 |
"wpgmza_gdpr_require_consent_before_load",
|
3080 |
"wpgmza_developer_mode",
|
3081 |
-
'wpgmza_prevent_other_plugins_and_theme_loading_api'
|
|
|
3082 |
);
|
3083 |
|
3084 |
foreach($checkboxes as $name) {
|
@@ -3308,7 +3323,7 @@ function wpgmaps_head() {
|
|
3308 |
"UPDATE $wpgmza_tblname SET
|
3309 |
lat = %s,
|
3310 |
lng = %s,
|
3311 |
-
latlng =
|
3312 |
WHERE id = %d",
|
3313 |
|
3314 |
$wpgmaps_marker_lat,
|
@@ -3542,7 +3557,7 @@ function wpgmaps_head() {
|
|
3542 |
{
|
3543 |
$stmt = $wpdb->prepare("
|
3544 |
UPDATE $wpgmza_tblname_circles SET
|
3545 |
-
center =
|
3546 |
name = %s,
|
3547 |
color = %s,
|
3548 |
opacity = %f,
|
@@ -3563,7 +3578,7 @@ function wpgmaps_head() {
|
|
3563 |
INSERT INTO $wpgmza_tblname_circles
|
3564 |
(center, map_id, name, color, opacity, radius)
|
3565 |
VALUES
|
3566 |
-
(
|
3567 |
", array(
|
3568 |
"POINT($center)",
|
3569 |
$_POST['wpgmaps_map_id'],
|
@@ -3609,8 +3624,8 @@ function wpgmaps_head() {
|
|
3609 |
name = %s,
|
3610 |
color = %s,
|
3611 |
opacity = %f,
|
3612 |
-
cornerA =
|
3613 |
-
cornerB =
|
3614 |
WHERE id = %d
|
3615 |
", array(
|
3616 |
$_POST['rectangle_name'],
|
@@ -3627,7 +3642,7 @@ function wpgmaps_head() {
|
|
3627 |
INSERT INTO $wpgmza_tblname_rectangles
|
3628 |
(map_id, name, color, opacity, cornerA, cornerB)
|
3629 |
VALUES
|
3630 |
-
(%d, %s, %s, %f,
|
3631 |
", array(
|
3632 |
$_POST['wpgmaps_map_id'],
|
3633 |
$_POST['rectangle_name'],
|
@@ -3866,7 +3881,7 @@ function wpgmaps_head_old() {
|
|
3866 |
"UPDATE $wpgmza_tblname SET
|
3867 |
lat = %s,
|
3868 |
lng = %s,
|
3869 |
-
latlng =
|
3870 |
WHERE id = %d",
|
3871 |
|
3872 |
$wpgmaps_marker_lat,
|
@@ -6160,9 +6175,17 @@ function wpgmza_basic_menu() {
|
|
6160 |
|
6161 |
</table>
|
6162 |
|
6163 |
-
|
6164 |
-
|
6165 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6166 |
</div>
|
6167 |
|
6168 |
|
@@ -6404,8 +6427,8 @@ if(!function_exists('wpgmza_get_marker_columns'))
|
|
6404 |
|
6405 |
if($useSpatialData)
|
6406 |
{
|
6407 |
-
$columns[] = '
|
6408 |
-
$columns[] = '
|
6409 |
}
|
6410 |
|
6411 |
return $columns;
|
@@ -8054,7 +8077,7 @@ function wpgmza_b_edit_circle($mid)
|
|
8054 |
$res = wpgmza_get_map_data($mid);
|
8055 |
$circle_id = (int)$_GET['circle_id'];
|
8056 |
|
8057 |
-
$results = $wpdb->get_results("SELECT *,
|
8058 |
|
8059 |
if(empty($results))
|
8060 |
{
|
@@ -8397,7 +8420,7 @@ function wpgmza_b_edit_rectangle($mid)
|
|
8397 |
$res = wpgmza_get_map_data($mid);
|
8398 |
$rectangle_id = (int)$_GET['rectangle_id'];
|
8399 |
|
8400 |
-
$results = $wpdb->get_results("SELECT *,
|
8401 |
|
8402 |
if(empty($results))
|
8403 |
{
|
@@ -8499,7 +8522,7 @@ if(!function_exists('wpgmza_get_circle_data'))
|
|
8499 |
global $wpdb;
|
8500 |
global $wpgmza_tblname_circles;
|
8501 |
|
8502 |
-
$stmt = $wpdb->prepare("SELECT *,
|
8503 |
$results = $wpdb->get_results($stmt);
|
8504 |
|
8505 |
$circles = array();
|
@@ -8517,7 +8540,7 @@ if(!function_exists('wpgmza_get_rectangle_data'))
|
|
8517 |
global $wpdb;
|
8518 |
global $wpgmza_tblname_rectangles;
|
8519 |
|
8520 |
-
$stmt = $wpdb->prepare("SELECT *,
|
8521 |
$results = $wpdb->get_results($stmt);
|
8522 |
|
8523 |
$rectangles = array();
|
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: 7.10.19
|
7 |
Author: WP Google Maps
|
8 |
Author URI: https://www.wpgmaps.com
|
9 |
Text Domain: wp-google-maps
|
11 |
*/
|
12 |
|
13 |
/*
|
14 |
+
* 7.10.19 - 2018-07-05 :- Medium Priority
|
15 |
+
* Added new event "userlocationfound" dispatched from WPGMZA.events
|
16 |
+
* Added fall back to convert UTF-8 to HTML entities on installations without multibyte functions available
|
17 |
+
* Changed GDPR settings UI, removed redundant compliance setting, added default notice
|
18 |
+
* Fixed media="1" attribute not validating
|
19 |
+
* Fixed nominatim geocoder not giving expected response to callback
|
20 |
+
* Fixed ScriptLoader module always enqueuing FontAwesome 4.*
|
21 |
+
* Fixed debug code breaking WP Migrate DB integration
|
22 |
+
* Fixed custom fields blank in marker listing
|
23 |
+
* Replaced deprecated MySQL functions with ST_ functions
|
24 |
+
* Replaced deprecated jQuery(window).load functions
|
25 |
+
* Removed Google autocomplete when using OpenLayers
|
26 |
+
* Removed protocol from marker icons / fixed marker icons disappear after switching to https://
|
27 |
+
*
|
28 |
* 7.10.18 - 2018-07-02 :- Medium Priority
|
29 |
* Fixed GDPR back end warning appearing when GDPR compliance is enabled
|
30 |
*
|
695 |
|
696 |
VALUES
|
697 |
|
698 |
+
(%d, %s, %s, %s, ST_GeomFromText(%s), %s, %s, %s, %d, %s, %s, %s, %s, %d)", array(
|
699 |
|
700 |
1,
|
701 |
'California',
|
2533 |
'address' => '%s',
|
2534 |
'lat' => '%f',
|
2535 |
'lng' => '%f',
|
2536 |
+
'latlng' => 'ST_GeomFromText(%s)',
|
2537 |
'infoopen' => '%d',
|
2538 |
'description' => '%s',
|
2539 |
'title' => '%s',
|
2587 |
address = %s,
|
2588 |
lat = %f,
|
2589 |
lng = %f,
|
2590 |
+
latlng = ST_GeomFromText(%s),
|
2591 |
anim = %d,
|
2592 |
infoopen = %d
|
2593 |
WHERE
|
2718 |
|
2719 |
if (!function_exists('wpgmaps_admin_styles_pro')) {
|
2720 |
|
2721 |
+
wp_register_style( 'wpgmaps-style', plugins_url('css/wpgmza_style.css', __FILE__),array(),$wpgmza_version);
|
2722 |
wp_enqueue_style( 'wpgmaps-style' );
|
2723 |
|
2724 |
|
3092 |
"wpgmza_gdpr_enabled",
|
3093 |
"wpgmza_gdpr_require_consent_before_load",
|
3094 |
"wpgmza_developer_mode",
|
3095 |
+
'wpgmza_prevent_other_plugins_and_theme_loading_api',
|
3096 |
+
"wpgmza_gdpr_override_notice"
|
3097 |
);
|
3098 |
|
3099 |
foreach($checkboxes as $name) {
|
3323 |
"UPDATE $wpgmza_tblname SET
|
3324 |
lat = %s,
|
3325 |
lng = %s,
|
3326 |
+
latlng = ST_GeomFromText('POINT(%f %f)')
|
3327 |
WHERE id = %d",
|
3328 |
|
3329 |
$wpgmaps_marker_lat,
|
3557 |
{
|
3558 |
$stmt = $wpdb->prepare("
|
3559 |
UPDATE $wpgmza_tblname_circles SET
|
3560 |
+
center = ST_GeomFromText(%s),
|
3561 |
name = %s,
|
3562 |
color = %s,
|
3563 |
opacity = %f,
|
3578 |
INSERT INTO $wpgmza_tblname_circles
|
3579 |
(center, map_id, name, color, opacity, radius)
|
3580 |
VALUES
|
3581 |
+
(ST_GeomFromText(%s), %d, %s, %s, %f, %f)
|
3582 |
", array(
|
3583 |
"POINT($center)",
|
3584 |
$_POST['wpgmaps_map_id'],
|
3624 |
name = %s,
|
3625 |
color = %s,
|
3626 |
opacity = %f,
|
3627 |
+
cornerA = ST_GeomFromText(%s),
|
3628 |
+
cornerB = ST_GeomFromText(%s)
|
3629 |
WHERE id = %d
|
3630 |
", array(
|
3631 |
$_POST['rectangle_name'],
|
3642 |
INSERT INTO $wpgmza_tblname_rectangles
|
3643 |
(map_id, name, color, opacity, cornerA, cornerB)
|
3644 |
VALUES
|
3645 |
+
(%d, %s, %s, %f, ST_GeomFromText(%s), ST_GeomFromText(%s))
|
3646 |
", array(
|
3647 |
$_POST['wpgmaps_map_id'],
|
3648 |
$_POST['rectangle_name'],
|
3881 |
"UPDATE $wpgmza_tblname SET
|
3882 |
lat = %s,
|
3883 |
lng = %s,
|
3884 |
+
latlng = ST_GeomFromText('POINT(%f %f)')
|
3885 |
WHERE id = %d",
|
3886 |
|
3887 |
$wpgmaps_marker_lat,
|
6175 |
|
6176 |
</table>
|
6177 |
|
6178 |
+
<p>
|
6179 |
+
<small>
|
6180 |
+
" . __("Thank you for using <a href='https://www.wpgmaps.com'>WP Google Maps</a>! Please <a href='https://wordpress.org/support/plugin/wp-google-maps/reviews/'>rate us on WordPress.org</a>", 'wp-google-maps') . "
|
6181 |
+
|
|
6182 |
+
" . __("WP Google Maps is a product of <img src='" . plugin_dir_url(__FILE__) . "images/codecabin.png' alt='CODECABIN_' style='height: 1em;'/>", 'wp-google-maps') . "
|
6183 |
+
|
|
6184 |
+
" . __("Please refer to our <a href='https://www.wpgmaps.com/privacy-policy' target='_blank'>Privacy Policy</a> for information on Data Processing", 'wp-google-maps') . "
|
6185 |
+
|
|
6186 |
+
" . __("WP Google Maps encourages you to make use of the amazing icons at ", "wp-google-maps") . "<a href='https://mappity.org'>https://mappity.org</a>
|
6187 |
+
</small>
|
6188 |
+
</p>
|
6189 |
</div>
|
6190 |
|
6191 |
|
6427 |
|
6428 |
if($useSpatialData)
|
6429 |
{
|
6430 |
+
$columns[] = 'ST_X(latlng) AS lat';
|
6431 |
+
$columns[] = 'ST_Y(latlng) AS lng';
|
6432 |
}
|
6433 |
|
6434 |
return $columns;
|
8077 |
$res = wpgmza_get_map_data($mid);
|
8078 |
$circle_id = (int)$_GET['circle_id'];
|
8079 |
|
8080 |
+
$results = $wpdb->get_results("SELECT *, ST_AsText(center) AS center FROM $wpgmza_tblname_circles WHERE id = $circle_id");
|
8081 |
|
8082 |
if(empty($results))
|
8083 |
{
|
8420 |
$res = wpgmza_get_map_data($mid);
|
8421 |
$rectangle_id = (int)$_GET['rectangle_id'];
|
8422 |
|
8423 |
+
$results = $wpdb->get_results("SELECT *, ST_AsText(cornerA) AS cornerA, ST_AsText(cornerB) AS cornerB FROM $wpgmza_tblname_rectangles WHERE id = $rectangle_id");
|
8424 |
|
8425 |
if(empty($results))
|
8426 |
{
|
8522 |
global $wpdb;
|
8523 |
global $wpgmza_tblname_circles;
|
8524 |
|
8525 |
+
$stmt = $wpdb->prepare("SELECT *, ST_AsText(center) AS center FROM $wpgmza_tblname_circles WHERE map_id=%d", array($map_id));
|
8526 |
$results = $wpdb->get_results($stmt);
|
8527 |
|
8528 |
$circles = array();
|
8540 |
global $wpdb;
|
8541 |
global $wpgmza_tblname_rectangles;
|
8542 |
|
8543 |
+
$stmt = $wpdb->prepare("SELECT *, ST_AsText(cornerA) AS cornerA, ST_AsText(cornerB) AS cornerB FROM $wpgmza_tblname_rectangles WHERE map_id=%d", array($map_id));
|
8544 |
$results = $wpdb->get_results($stmt);
|
8545 |
|
8546 |
$rectangles = array();
|