WP Google Maps - Version 7.10.19

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 Icon 128x128 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 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
- <fieldset>
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
- <fieldset>
18
- <label for="wpgmza_gdpr_company_name">
19
- <?php
20
- _e('Company Name', 'wp-google-maps');
21
- ?>
22
- </label>
23
- <input name="wpgmza_gdpr_company_name"/>
24
- </fieldset>
 
 
 
 
 
 
 
 
25
 
26
- <fieldset>
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
- <fieldset>
36
- <label for="wpgmza_gdpr_notice">
37
- <?php
38
- _e('GDPR Notice', 'wp-google-maps');
39
- ?>
40
- <i class="fa fa-question-circle"
41
- title="<?php _e('Users will be asked to accept the notice shown here, in the form of a check box.', 'wp-google-maps'); ?>"></i>
42
- </label>
43
- <textarea name="wpgmza_gdpr_notice"></textarea>
44
- </fieldset>
 
 
 
 
 
 
45
 
46
- <fieldset>
47
- <label for="wpgmza_gdpr_require_consent_before_load">
48
- <?php
49
- _e('Require consent before load', 'wp-google-maps');
50
- ?>
51
- <i class="fa fa-question-circle"
52
- title="<?php _e('Check this box if you would like to prevent the map API from loading until the user gives consent to the notice above.', 'wp-google-maps'); ?>"/>
53
- </label>
54
- <input name="wpgmza_gdpr_require_consent_before_load" type="checkbox"/>
55
- </fieldset>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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-06-14 13:20:10 :- Scanning dependencies
2
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/circle.js
3
- 2018-06-14 13:20:10 :- Found wpgmza-circle
4
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-map-object
5
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/compatibility.js
6
- 2018-06-14 13:20:10 :- Found wpgmza-compatibility
7
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
8
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/core.js
9
- 2018-06-14 13:20:10 :- Found wpgmza
10
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/distance.js
11
- 2018-06-14 13:20:10 :- Found wpgmza-distance
12
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
13
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/event-dispatcher.js
14
- 2018-06-14 13:20:10 :- Found wpgmza-event-dispatcher
15
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
16
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/event.js
17
- 2018-06-14 13:20:10 :- Found wpgmza-event
18
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
19
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/friendly-error.js
20
- 2018-06-14 13:20:10 :- Found wpgmza-friendly-error
21
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
22
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/geocoder.js
23
- 2018-06-14 13:20:10 :- Found wpgmza-geocoder
24
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
25
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/info-window.js
26
- 2018-06-14 13:20:10 :- Found wpgmza-info-window
27
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-event-dispatcher
28
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/latlng.js
29
- 2018-06-14 13:20:10 :- Found wpgmza-lat-lng
30
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
31
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/latlngbounds.js
32
- 2018-06-14 13:20:10 :- Found wpgmza-lat-lng-bounds
33
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
34
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/map-object.js
35
- 2018-06-14 13:20:10 :- Found wpgmza-map-object
36
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-event-dispatcher
37
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/map-settings-page.js
38
- 2018-06-14 13:20:10 :- Found wpgmza-map-settings-page
39
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
40
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/map-settings.js
41
- 2018-06-14 13:20:10 :- Found wpgmza-map-settings
42
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
43
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/map.js
44
- 2018-06-14 13:20:10 :- Found wpgmza-map
45
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-event-dispatcher
46
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/maps-engine-dialog.js
47
- 2018-06-14 13:20:10 :- Found wpgmza-maps-engine-dialog
48
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
49
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/marker.js
50
- 2018-06-14 13:20:10 :- Found wpgmza-marker
51
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
52
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/modern-store-locator-circle.js
53
- 2018-06-14 13:20:10 :- Found wpgmza-modern-store-locator-circle
54
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
55
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/modern-store-locator.js
56
- 2018-06-14 13:20:10 :- Found wpgmza-modern-store-locator
57
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
58
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/polygon.js
59
- 2018-06-14 13:20:10 :- Found wpgmza-polygon
60
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-map-object
61
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/polyline.js
62
- 2018-06-14 13:20:10 :- Found wpgmza-polyline
63
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-map-object
64
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/v7-custom-script.js
65
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/version.js
66
- 2018-06-14 13:20:10 :- Found wpgmza-version
67
- 2018-06-14 13:20:10 :- Adding dependency wpgmza
68
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-circle.js
69
- 2018-06-14 13:20:10 :- Found wpgmza-google-circle
70
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-circle
71
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-geocoder.js
72
- 2018-06-14 13:20:10 :- Found wpgmza-google-geocoder
73
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-geocoder
74
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-info-window.js
75
- 2018-06-14 13:20:10 :- Found wpgmza-google-info-window
76
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-info-window
77
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-map.js
78
- 2018-06-14 13:20:10 :- Found wpgmza-google-map
79
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-map
80
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-marker.js
81
- 2018-06-14 13:20:10 :- Found wpgmza-google-marker
82
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-marker
83
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-modern-store-locator-circle.js
84
- 2018-06-14 13:20:10 :- Found wpgmza-google-modern-store-locator-circle
85
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-modern-store-locator-circle
86
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-modern-store-locator.js
87
- 2018-06-14 13:20:10 :- Found wpgmza-google-modern-store-locator
88
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-modern-store-locator
89
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-polygon.js
90
- 2018-06-14 13:20:10 :- Found wpgmza-google-polygon
91
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-polygon
92
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-polyline.js
93
- 2018-06-14 13:20:10 :- Found wpgmza-google-polyline
94
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-polyline
95
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/google-maps/google-vertex-context-menu.js
96
- 2018-06-14 13:20:10 :- Found wpgmza-google-vertex-context-menu
97
- 2018-06-14 13:20:10 :- Adding dependency wpgmza_api_call
98
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-circle.js
99
- 2018-06-14 13:20:10 :- Found wpgmza-ol-circle
100
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-circle
101
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-geocoder.js
102
- 2018-06-14 13:20:10 :- Found wpgmza-ol-geocoder
103
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-geocoder
104
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-info-window.js
105
- 2018-06-14 13:20:10 :- Found wpgmza-ol-info-window
106
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-info-window
107
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-map.js
108
- 2018-06-14 13:20:10 :- Found wpgmza-ol-map
109
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-map
110
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-marker.js
111
- 2018-06-14 13:20:10 :- Found wpgmza-ol-marker
112
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-marker
113
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-modern-store-locator-circle.js
114
- 2018-06-14 13:20:10 :- Found wpgmza-ol-modern-store-locator-circle
115
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-modern-store-locator-circle
116
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-modern-store-locator.js
117
- 2018-06-14 13:20:10 :- Found wpgmza-ol-modern-store-locator
118
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-modern-store-locator
119
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-polygon.js
120
- 2018-06-14 13:20:10 :- Found wpgmza-ol-polygon
121
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-polygon
122
- 2018-06-14 13:20:10 :- Reading E:\Programming\Code Cabin\htdocs\wp-content\plugins\wp-google-maps/js/v8/open-layers/ol-polyline.js
123
- 2018-06-14 13:20:10 :- Found wpgmza-ol-polyline
124
- 2018-06-14 13:20:10 :- Adding dependency wpgmza-polyline
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 = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');
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
- $subject = mb_convert_encoding($subject, 'HTML-ENTITIES', 'UTF-8');
246
 
247
  $temp = new DOMDocument('1.0', 'UTF-8');
248
  $str = "<div id='domdocument-import-payload___'>" . $subject . "</div>";
249
 
250
- if(!empty(Plugin::$settings->developer_mode))
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
- $this->setDefaultSettings();
20
  }
21
 
22
  public function getDefaultSettings()
23
  {
24
  return array(
25
- 'wpgmza_gdpr_enabled' => 1,
26
- 'wpgmza_gdpr_notice' => apply_filters('wpgmza_gdpr_notice',
27
- __('I agree for my personal data to be processed by {COMPANY_NAME}.
28
-
29
- 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.
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
- 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.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
- 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.'), 'wp-google-maps'),
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 = get_option('WPGMZA_OTHER_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
- if(!$wpgmza_other_settings || empty($wpgmza_other_settings['wpgmza_gdpr_notice']))
95
- return '';
96
 
97
- $html = $wpgmza_other_settings['wpgmza_gdpr_notice'];
 
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
- return $html;
 
 
 
 
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&amp;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() && !empty($settings['wpgmza_gdpr_require_consent_before_load']) && !isset($_COOKIE['wpgmza-api-consent-given']))
 
 
 
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 "GeomFromText(%s)";
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=GeomFromText(%s) WHERE id=%d", $params);
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 *, AsText(center) AS center FROM $wpgmza_tblname_circles";
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 *, AsText(cornerA) AS cornerA, AsText(cornerB) AS cornerB FROM $wpgmza_tblname_rectangles";
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(function(){
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(function(){
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(position);
 
 
 
226
  },
227
  function(error) {
228
 
229
  options.enableHighAccuracy = false;
230
 
231
  navigator.geolocation.getCurrentPosition(function(position) {
232
- callback(position);
 
 
 
233
  },
234
  function(error) {
235
  console.warn(error.code, error.message);
@@ -286,12 +292,12 @@
286
 
287
  switch(WPGMZA.settings.engine)
288
  {
289
- case "google-maps":
290
- engine = "Google";
291
  break;
292
 
293
  default:
294
- engine = "OL";
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 "google-maps":
22
- return WPGMZA.GoogleGeocoder;
23
  break;
24
 
25
  default:
26
- return WPGMZA.OLGeocoder;
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 "google-maps":
45
  if(WPGMZA.isProVersion())
46
- return WPGMZA.GoogleProInfoWindow;
47
- return WPGMZA.GoogleInfoWindow;
48
  break;
49
-
50
  default:
51
  if(WPGMZA.isProVersion())
52
- return WPGMZA.OLProInfoWindow;
53
- return WPGMZA.OLInfoWindow;
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 "google-maps":
49
  if(WPGMZA.isProVersion())
50
- return WPGMZA.GoogleProMap;
51
 
52
- return WPGMZA.GoogleMap;
53
  break;
54
-
55
  default:
56
  if(WPGMZA.isProVersion())
57
- return WPGMZA.OLProMap;
58
 
59
- return WPGMZA.OLMap;
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 "google-maps":
59
  if(WPGMZA.isProVersion())
60
- return WPGMZA.GoogleProMarker;
61
- return WPGMZA.GoogleMarker;
62
  break;
63
 
64
  default:
65
  if(WPGMZA.isProVersion())
66
- return WPGMZA.OLProMarker;
67
- return WPGMZA.OLMarker;
68
  break;
69
  }
70
  }
@@ -138,7 +138,15 @@
138
 
139
  WPGMZA.Marker.prototype.getIcon = function()
140
  {
141
- return WPGMZA.settings.default_marker_icon;
 
 
 
 
 
 
 
 
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].lat = parseFloat(response[i].lat);
128
- response[i].lng = parseFloat(response[i].lon);
 
 
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 "google-maps":
29
  if(WPGMZA.isProVersion())
30
- return WPGMZA.GoogleProPolygon;
31
- return WPGMZA.GooglePolygon;
32
  break;
33
-
34
  default:
35
  if(WPGMZA.isProVersion())
36
- return WPGMZA.OLProPolygon;
37
- return WPGMZA.OLPolygon;
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 "google-maps":
26
- return WPGMZA.GooglePolyline;
27
  break;
28
-
29
  default:
30
- return WPGMZA.OLPolyline;
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.18
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, GeomFromText(%s), %s, %s, %s, %d, %s, %s, %s, %s, %d)", array(
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' => 'GeomFromText(%s)',
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 = GeomFromText(%s),
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, true);
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 = GeomFromText('POINT(%f %f)')
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 = GeomFromText(%s),
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
- (GeomFromText(%s), %d, %s, %s, %f, %f)
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 = GeomFromText(%s),
3613
- cornerB = GeomFromText(%s)
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, GeomFromText(%s), GeomFromText(%s))
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 = GeomFromText('POINT(%f %f)')
3870
  WHERE id = %d",
3871
 
3872
  $wpgmaps_marker_lat,
@@ -6160,9 +6175,17 @@ function wpgmza_basic_menu() {
6160
 
6161
  </table>
6162
 
6163
-
6164
-
6165
- <p><br /><br />".__("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></p>
 
 
 
 
 
 
 
 
6166
  </div>
6167
 
6168
 
@@ -6404,8 +6427,8 @@ if(!function_exists('wpgmza_get_marker_columns'))
6404
 
6405
  if($useSpatialData)
6406
  {
6407
- $columns[] = 'X(latlng) AS lat';
6408
- $columns[] = 'Y(latlng) AS lng';
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 *, AsText(center) AS center FROM $wpgmza_tblname_circles WHERE id = $circle_id");
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 *, AsText(cornerA) AS cornerA, AsText(cornerB) AS cornerB FROM $wpgmza_tblname_rectangles WHERE id = $rectangle_id");
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 *, AsText(center) AS center FROM $wpgmza_tblname_circles WHERE map_id=%d", array($map_id));
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 *, AsText(cornerA) AS cornerA, AsText(cornerB) AS cornerB FROM $wpgmza_tblname_rectangles WHERE map_id=%d", array($map_id));
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();