WP Store Locator - Version 2.2.20

Version Description

Download this release

Release Info

Developer tijmensmit
Plugin Icon 128x128 WP Store Locator
Version 2.2.20
Comparing to
See all releases

Code changes from version 2.2.19 to 2.2.20

admin/class-settings.php CHANGED
@@ -144,6 +144,8 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
144
  $output['search_radius'] = wpsl_get_default_setting( 'search_radius' );
145
  }
146
 
 
 
147
  // Check if we have a valid zoom level, it has to be between 1 or 12. If not set it to the default of 3.
148
  $output['zoom_level'] = wpsl_valid_zoom_level( $_POST['wpsl_map']['zoom_level'] );
149
 
@@ -289,6 +291,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
289
 
290
  // Permalink and taxonomy slug.
291
  $output['permalinks'] = isset( $_POST['wpsl_permalinks']['active'] ) ? 1 : 0;
 
292
 
293
  if ( !empty( $_POST['wpsl_permalinks']['slug'] ) ) {
294
  $output['permalink_slug'] = sanitize_text_field( $_POST['wpsl_permalinks']['slug'] );
@@ -400,8 +403,15 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
400
 
401
  global $wpsl_settings;
402
 
403
- if ( ( $wpsl_settings['permalinks'] != $new_settings['permalinks'] ) || ( $wpsl_settings['permalink_slug'] != $new_settings['permalink_slug'] ) || ( $wpsl_settings['category_slug'] != $new_settings['category_slug'] ) ) {
404
- update_option( 'wpsl_flush_rewrite', 1 );
 
 
 
 
 
 
 
405
  }
406
  }
407
 
144
  $output['search_radius'] = wpsl_get_default_setting( 'search_radius' );
145
  }
146
 
147
+ $output['force_postalcode'] = isset( $_POST['wpsl_search']['force_postalcode'] ) ? 1 : 0;
148
+
149
  // Check if we have a valid zoom level, it has to be between 1 or 12. If not set it to the default of 3.
150
  $output['zoom_level'] = wpsl_valid_zoom_level( $_POST['wpsl_map']['zoom_level'] );
151
 
291
 
292
  // Permalink and taxonomy slug.
293
  $output['permalinks'] = isset( $_POST['wpsl_permalinks']['active'] ) ? 1 : 0;
294
+ $output['permalink_remove_front'] = isset( $_POST['wpsl_permalinks']['remove_front'] ) ? 1 : 0;
295
 
296
  if ( !empty( $_POST['wpsl_permalinks']['slug'] ) ) {
297
  $output['permalink_slug'] = sanitize_text_field( $_POST['wpsl_permalinks']['slug'] );
403
 
404
  global $wpsl_settings;
405
 
406
+ // The settings fields to check.
407
+ $fields = array( 'permalinks', 'permalink_slug', 'permalink_remove_front', 'category_slug' );
408
+
409
+ foreach ( $fields as $k => $field ) {
410
+ if ( $wpsl_settings[$field] != $new_settings[$field] ) {
411
+ update_option( 'wpsl_flush_rewrite', 1 );
412
+
413
+ break;
414
+ }
415
  }
416
  }
417
 
admin/css/style.css CHANGED
@@ -287,10 +287,6 @@
287
  clear: both;
288
  }
289
 
290
- .wpsl-search-settings .wpsl-info-text {
291
- white-space: nowrap;
292
- }
293
-
294
  .wpsl-info-text:after {
295
  position: absolute;
296
  border-left: 11px solid transparent;
287
  clear: both;
288
  }
289
 
 
 
 
 
290
  .wpsl-info-text:after {
291
  position: absolute;
292
  border-left: 11px solid transparent;
admin/css/style.min.css CHANGED
@@ -1 +1 @@
1
- #wpsl-wrap.wpsl-add-stores p,.wpsl-marker-list,.wpsl-store-meta p{overflow:hidden}.wpsl-info:before,[class*=" wpsl-icon-"]:before,[class^=wpsl-icon-]:before{font-family:fontello;font-style:normal;speak:none;text-decoration:inherit;font-variant:normal;text-transform:none}@font-face{font-family:fontello;src:url(../font/fontello.eot?54620740);src:url(../font/fontello.eot?54620740#iefix) format('embedded-opentype'),url(../font/fontello.woff?54620740) format('woff'),url(../font/fontello.ttf?54620740) format('truetype'),url(../font/fontello.svg?54620740#fontello) format('svg');font-weight:400;font-style:normal}#wpsl-store-overview .widefat td,#wpsl-wrap .widefat td{padding:12px 7px}#wpsl-wrap.wpsl-settings h2{margin-bottom:15px}#wpsl-wrap .submit{padding:0!important;margin-bottom:-10px!important}#wpsl-store-overview .column-action a{float:left;margin-right:5px}#wpsl-store-overview p.search-box{margin:0 0 1em}.column-action{width:130px}#wpsl-delete-confirmation,.wpsl-hide{display:none}.wpsl-preloader{float:right;margin:4px 0 0 4px}#wpsl-mainnav{border-bottom:1px solid #CCC;float:left;margin-bottom:15px;padding-left:7px;width:99.4%}#wpsl-mainnav li a{display:block;padding:9px 12px;text-decoration:none}#wpsl-mainnav li{float:left;margin:0}#wpsl-wrap label,#wpsl-wrap.wpsl-add-stores label{width:85px;margin-top:6px}#wpsl-wrap.wpsl-add-stores label{float:left}#wpsl-wrap.wpsl-add-stores .wpsl-radioboxes label{float:none;margin-right:10px}#wpsl-wrap textarea{width:489px;resize:none}#wpsl-wrap textarea,.wpsl-tab #wpsl-hours{height:185px}#wpsl-wrap .wpsl-style-input textarea{width:509px;resize:none;margin-bottom:12px;height:165px}#wpsl-style-preview{float:left;margin-bottom:12px}.wpsl-style-preview-error{float:left;margin:6px 0 0 10px;color:#b91111}.wpsl-curve{float:left;border-radius:3px}#wpsl-wrap.wpsl-settings .wpsl-error,.wpsl-store-meta .wpsl-error{border:1px solid #c01313}#wpsl-lookup-location{margin-bottom:7px}#wpsl-wrap input[type=email],#wpsl-wrap input[type=text],#wpsl-wrap input[type=url]{width:340px}#wpsl-api-region,#wpsl-wrap.wpsl-settings input[type=text].textinput{width:255px}.wpsl-add-store{float:left;width:100%;clear:both}#wpsl-wrap .metabox-holder{float:left;margin-right:20px}#wpsl-wrap .metabox-holder.wpsl-wide{width:100%;padding-top:0}#wpsl-wrap .wpsl-edit-header{margin-bottom:12px}#wpsl-wrap.wpsl-settings .metabox-holder{width:100%}#wpsl-wrap.wpsl-settings .metabox-holder h3:hover{cursor:auto}#wpsl-meta-nav li:hover,#wpsl-store-hours .dashicons:hover,.wpsl-add-period:hover,.wpsl-info:hover,[class*=" wpsl-icon-"]:hover,[class^=wpsl-icon-]:hover{cursor:pointer}#wpsl-gmap-wrap{float:left;width:100%;height:250px;border-radius:3px;margin-top:0;margin-bottom:20px}#wpsl-map-preview #wpsl-gmap-wrap{margin:6px 0 12px}#wpsl-gmap-wrap.wpsl-styles-preview{float:none;margin:0;border-radius:0;clear:both}#wpsl-style-url{display:none;margin:20px 0 0}.wpsl-marker-list li{float:left;padding:10px;margin-right:5px;text-align:center}.wpsl-marker-list li input[type=radio]{margin-right:0}.wpsl-marker-list img{display:block;margin-bottom:7px}.wpsl-active-marker,.wpsl-marker-list li:hover{background:#E4E4E4;border-radius:5px;cursor:pointer}#wpsl-license-form .postbox-container,#wpsl-settings-form .postbox-container{width:535px;clear:both}#wpsl-wrap .metabox-holder{padding-top:0}.wpsl-info{position:relative;margin-left:3px}.wpsl-info:before{content:'\e802';font-size:14px;font-weight:400;display:inline-block;width:1em;margin-right:.2em;text-align:center;line-height:1em;margin-left:.2em}.wpsl-info.wpsl-required-setting:before{color:#b91111}.wpsl-info-text{position:absolute;padding:10px;left:-29px;bottom:28px;color:#eee;min-width:200px;background:#222;border-radius:3px;line-height:1.4em}#wpsl-map-preview .wpsl-info-text{width:175px;min-width:0;left:-88px}#wpsl-map-preview .wpsl-info-text::after{left:auto;right:87px}#wpsl-map-preview .wpsl-info{position:absolute;margin-left:5px;top:5px}.wpsl-submit-wrap{position:relative;clear:both}.wpsl-search-settings .wpsl-info-text{white-space:nowrap}.wpsl-info-text:after{position:absolute;border-left:11px solid transparent;border-right:11px solid transparent;border-top:11px solid #222;content:"";left:27px;bottom:-10px}.wpsl-info-text a{color:#fff}#wpsl-settings-form label{position:relative;display:inline-block;font-weight:400;margin:0 10px 0 0;width:220px}#wpsl-save-settings{float:left;clear:both}#wpsl-settings-form .wpsl-radioboxes label{float:none;margin-right:10px;width:auto}#wpsl-faq dt{margin-bottom:4px;font-weight:700;font-size:110%}#wpsl-faq dd{margin-left:0}#wpsl-faq dl{margin-bottom:25px}.wp-list-table .column-action .button{margin:3px 5px 3px 0}.wpsl-store-meta label,.wpsl-store-meta legend{float:left;width:95px;margin-top:3px}.wpsl-store-meta fieldset label{display:inline-block;line-height:1.4em;margin:.25em 0 .5em!important}.wpsl-store-meta input[type=email],.wpsl-store-meta input[type=url],.wpsl-store-meta input[type=text],.wpsl-store-meta textarea{width:340px}.wpsl-store-meta textarea{resize:none}#wpsl-map-preview em,#wpsl-settings-form em,.wpsl-store-meta em{display:block}#wpsl-settings-form .wpsl-info em{display:inline}#wpsl-meta-nav{margin:19px 0 6px}#wpsl-meta-nav li{display:inline;margin-right:5px}#wpsl-meta-nav li a{padding:6px 9px;border-radius:3px 3px 0 0;border-bottom:none;text-decoration:none;outline:0}.wpsl-tab{padding:5px 15px;display:none;border:1px solid #eee;border-radius:0 3px 3px}div.wpsl-active{display:block;background:#fdfdfd}#wpsl-meta-nav .wpsl-active a{border:1px solid #eee;border-bottom:1px solid #fdfdfd;background:#fdfdfd;color:#444}.wpsl-star{color:#c01313}#wpsl-store-hours{border-collapse:collapse;margin:5px 0 20px}#wpsl-settings-form #wpsl-store-hours{width:100%}#wpsl-store-hours div{margin:0;padding:3px;background:#eee;border:1px solid #eee;border-radius:3px;white-space:nowrap}#wpsl-store-hours .wpsl-store-closed{border:none;background:0 0;margin-top:9px;margin-bottom:0}.wpsl-add-period,.wpsl-current-period{float:left}#wpsl-store-hours .wpsl-multiple-periods{float:left;clear:both;margin-top:8px}.wpsl-add-period span,.wpsl-current-period span{float:left;margin:6px 7px 0}.wpsl-add-period span{margin:6px 0 0 7px}#wpsl-store-hours .wpsl-remove-period{background:#999;border-radius:9px}.wpsl-add-period{border:none;background:#eee;border-radius:3px;font-size:13px;padding:3px 10px}.wpsl-default-hours{margin-top:25px}#wpsl-store-hours select{float:left}#wpsl-store-hours th{text-align:left;padding:8px 10px 8px 0;border-bottom:1px solid #eee}#wpsl-settings-form #wpsl-store-hours th{text-align:left}#wpsl-store-hours td{border-bottom:1px solid #eee;padding:7px 10px 7px 0;vertical-align:top}#wpsl-store-hours .wpsl-opening-day{min-width:80px;padding:17px 17px 0 0;text-align:left;vertical-align:top}.wpsl-twentyfour-format .wpsl-opening-hours{width:197px}.wpsl-twelve-format .wpsl-opening-hours{width:245px}#wpsl-settings-form #wpsl-store-hours .wpsl-opening-day{width:150px}#wpsl-settings-form #wpsl-store-hours td p{padding:10px 0 0;margin:0;text-align:left}#wpsl-store-hours .wpsl-add-period{height:30px}.wpsl-pre-38 .wpsl-add-period{height:27px}#wpsl-store-hours .dashicons{color:#999;margin:0 3px}#wpsl-store-hours .dashicons:hover,#wpsl-store-hours .wpsl-add-period:hover .dashicons{color:#444}#wpsl-wrap.wpsl-pre-38 .submit{margin-bottom:0!important}[class*=" wpsl-icon-"]:before,[class^=wpsl-icon-]:before{font-weight:400;display:inline-block;width:1em;margin-right:.2em;text-align:center;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wpsl-icon-location:before{content:'\e801'}.wpsl-icon-attention-circled:before{content:'\e802'}.wpsl-icon-cancel-circled:before{content:'\e803'}.wpsl-icon-plus-circled:before{content:'\e805'}#wpsl-store-hours .wpsl-icon-cancel-circled,#wpsl-store-hours .wpsl-icon-plus-circled{margin-top:1px;font-size:18px;display:inline-block;color:#999}#wpsl-store-hours .wpsl-icon-cancel-circled:hover,#wpsl-store-hours .wpsl-icon-plus-circled:hover{color:#444}.wpsl-add-on{float:left;position:relative;width:300px;height:240px;background:#fff;margin:20px 20px 0 0;border:1px solid #e8e8e8;border-radius:3px}.wpsl-add-on p{margin-top:0}.wpsl-add-on img{height:auto;max-width:100%;vertical-align:bottom}.wpsl-add-on>a{width:300px;display:inline-block}.wpsl-add-on a img:hover{opacity:.95}.wpsl-add-on .wpsl-add-on-desc{padding:20px}.wpsl-add-on-status{position:absolute;left:20px;bottom:20px}.wpsl-add-on-status p{margin:0 0 4px}.wpsl-api-error{margin-top:13px;padding:10px;color:#fff;border-radius:3px;background:#c01313}.wpsl-api-error a{font-weight:700;color:#fff!important}
1
+ #wpsl-wrap.wpsl-add-stores p,.wpsl-marker-list,.wpsl-store-meta p{overflow:hidden}.wpsl-info:before,[class*=" wpsl-icon-"]:before,[class^=wpsl-icon-]:before{font-family:fontello;font-style:normal;speak:none;text-decoration:inherit;font-variant:normal;text-transform:none}@font-face{font-family:fontello;src:url(../font/fontello.eot?54620740);src:url(../font/fontello.eot?54620740#iefix) format('embedded-opentype'),url(../font/fontello.woff?54620740) format('woff'),url(../font/fontello.ttf?54620740) format('truetype'),url(../font/fontello.svg?54620740#fontello) format('svg');font-weight:400;font-style:normal}#wpsl-store-overview .widefat td,#wpsl-wrap .widefat td{padding:12px 7px}#wpsl-wrap.wpsl-settings h2{margin-bottom:15px}#wpsl-wrap .submit{padding:0!important;margin-bottom:-10px!important}#wpsl-store-overview .column-action a{float:left;margin-right:5px}#wpsl-store-overview p.search-box{margin:0 0 1em}.column-action{width:130px}#wpsl-delete-confirmation,.wpsl-hide{display:none}.wpsl-preloader{float:right;margin:4px 0 0 4px}#wpsl-mainnav{border-bottom:1px solid #CCC;float:left;margin-bottom:15px;padding-left:7px;width:99.4%}#wpsl-mainnav li a{display:block;padding:9px 12px;text-decoration:none}#wpsl-mainnav li{float:left;margin:0}#wpsl-wrap label,#wpsl-wrap.wpsl-add-stores label{width:85px;margin-top:6px}#wpsl-wrap.wpsl-add-stores label{float:left}#wpsl-wrap.wpsl-add-stores .wpsl-radioboxes label{float:none;margin-right:10px}#wpsl-wrap textarea{width:489px;resize:none}#wpsl-wrap textarea,.wpsl-tab #wpsl-hours{height:185px}#wpsl-wrap .wpsl-style-input textarea{width:509px;resize:none;margin-bottom:12px;height:165px}#wpsl-style-preview{float:left;margin-bottom:12px}.wpsl-style-preview-error{float:left;margin:6px 0 0 10px;color:#b91111}.wpsl-curve{float:left;border-radius:3px}#wpsl-wrap.wpsl-settings .wpsl-error,.wpsl-store-meta .wpsl-error{border:1px solid #c01313}#wpsl-lookup-location{margin-bottom:7px}#wpsl-wrap input[type=email],#wpsl-wrap input[type=text],#wpsl-wrap input[type=url]{width:340px}#wpsl-api-region,#wpsl-wrap.wpsl-settings input[type=text].textinput{width:255px}.wpsl-add-store{float:left;width:100%;clear:both}#wpsl-wrap .metabox-holder{float:left;margin-right:20px}#wpsl-wrap .metabox-holder.wpsl-wide{width:100%;padding-top:0}#wpsl-wrap .wpsl-edit-header{margin-bottom:12px}#wpsl-wrap.wpsl-settings .metabox-holder{width:100%}#wpsl-wrap.wpsl-settings .metabox-holder h3:hover{cursor:auto}#wpsl-meta-nav li:hover,#wpsl-store-hours .dashicons:hover,.wpsl-add-period:hover,.wpsl-info:hover,[class*=" wpsl-icon-"]:hover,[class^=wpsl-icon-]:hover{cursor:pointer}#wpsl-gmap-wrap{float:left;width:100%;height:250px;border-radius:3px;margin-top:0;margin-bottom:20px}#wpsl-map-preview #wpsl-gmap-wrap{margin:6px 0 12px}#wpsl-gmap-wrap.wpsl-styles-preview{float:none;margin:0;border-radius:0;clear:both}#wpsl-style-url{display:none;margin:20px 0 0}.wpsl-marker-list li{float:left;padding:10px;margin-right:5px;text-align:center}.wpsl-marker-list li input[type=radio]{margin-right:0}.wpsl-marker-list img{display:block;margin-bottom:7px}.wpsl-active-marker,.wpsl-marker-list li:hover{background:#E4E4E4;border-radius:5px;cursor:pointer}#wpsl-license-form .postbox-container,#wpsl-settings-form .postbox-container{width:535px;clear:both}#wpsl-wrap .metabox-holder{padding-top:0}.wpsl-info{position:relative;margin-left:3px}.wpsl-info:before{content:'\e802';font-size:14px;font-weight:400;display:inline-block;width:1em;margin-right:.2em;text-align:center;line-height:1em;margin-left:.2em}.wpsl-info.wpsl-required-setting:before{color:#b91111}.wpsl-info-text{position:absolute;padding:10px;left:-29px;bottom:28px;color:#eee;min-width:200px;background:#222;border-radius:3px;line-height:1.4em}#wpsl-map-preview .wpsl-info-text{width:175px;min-width:0;left:-88px}#wpsl-map-preview .wpsl-info-text::after{left:auto;right:87px}#wpsl-map-preview .wpsl-info{position:absolute;margin-left:5px;top:5px}.wpsl-submit-wrap{position:relative;clear:both}.wpsl-info-text:after{position:absolute;border-left:11px solid transparent;border-right:11px solid transparent;border-top:11px solid #222;content:"";left:27px;bottom:-10px}.wpsl-info-text a{color:#fff}#wpsl-settings-form label{position:relative;display:inline-block;font-weight:400;margin:0 10px 0 0;width:220px}#wpsl-save-settings{float:left;clear:both}#wpsl-settings-form .wpsl-radioboxes label{float:none;margin-right:10px;width:auto}#wpsl-faq dt{margin-bottom:4px;font-weight:700;font-size:110%}#wpsl-faq dd{margin-left:0}#wpsl-faq dl{margin-bottom:25px}.wp-list-table .column-action .button{margin:3px 5px 3px 0}.wpsl-store-meta label,.wpsl-store-meta legend{float:left;width:95px;margin-top:3px}.wpsl-store-meta fieldset label{display:inline-block;line-height:1.4em;margin:.25em 0 .5em!important}.wpsl-store-meta input[type=email],.wpsl-store-meta input[type=url],.wpsl-store-meta input[type=text],.wpsl-store-meta textarea{width:340px}.wpsl-store-meta textarea{resize:none}#wpsl-map-preview em,#wpsl-settings-form em,.wpsl-store-meta em{display:block}#wpsl-settings-form .wpsl-info em{display:inline}#wpsl-meta-nav{margin:19px 0 6px}#wpsl-meta-nav li{display:inline;margin-right:5px}#wpsl-meta-nav li a{padding:6px 9px;border-radius:3px 3px 0 0;border-bottom:none;text-decoration:none;outline:0}.wpsl-tab{padding:5px 15px;display:none;border:1px solid #eee;border-radius:0 3px 3px}div.wpsl-active{display:block;background:#fdfdfd}#wpsl-meta-nav .wpsl-active a{border:1px solid #eee;border-bottom:1px solid #fdfdfd;background:#fdfdfd;color:#444}.wpsl-star{color:#c01313}#wpsl-store-hours{border-collapse:collapse;margin:5px 0 20px}#wpsl-settings-form #wpsl-store-hours{width:100%}#wpsl-store-hours div{margin:0;padding:3px;background:#eee;border:1px solid #eee;border-radius:3px;white-space:nowrap}#wpsl-store-hours .wpsl-store-closed{border:none;background:0 0;margin-top:9px;margin-bottom:0}.wpsl-add-period,.wpsl-current-period{float:left}#wpsl-store-hours .wpsl-multiple-periods{float:left;clear:both;margin-top:8px}.wpsl-add-period span,.wpsl-current-period span{float:left;margin:6px 7px 0}.wpsl-add-period span{margin:6px 0 0 7px}#wpsl-store-hours .wpsl-remove-period{background:#999;border-radius:9px}.wpsl-add-period{border:none;background:#eee;border-radius:3px;font-size:13px;padding:3px 10px}.wpsl-default-hours{margin-top:25px}#wpsl-store-hours select{float:left}#wpsl-store-hours th{text-align:left;padding:8px 10px 8px 0;border-bottom:1px solid #eee}#wpsl-settings-form #wpsl-store-hours th{text-align:left}#wpsl-store-hours td{border-bottom:1px solid #eee;padding:7px 10px 7px 0;vertical-align:top}#wpsl-store-hours .wpsl-opening-day{min-width:80px;padding:17px 17px 0 0;text-align:left;vertical-align:top}.wpsl-twentyfour-format .wpsl-opening-hours{width:197px}.wpsl-twelve-format .wpsl-opening-hours{width:245px}#wpsl-settings-form #wpsl-store-hours .wpsl-opening-day{width:150px}#wpsl-settings-form #wpsl-store-hours td p{padding:10px 0 0;margin:0;text-align:left}#wpsl-store-hours .wpsl-add-period{height:30px}.wpsl-pre-38 .wpsl-add-period{height:27px}#wpsl-store-hours .dashicons{color:#999;margin:0 3px}#wpsl-store-hours .dashicons:hover,#wpsl-store-hours .wpsl-add-period:hover .dashicons{color:#444}#wpsl-wrap.wpsl-pre-38 .submit{margin-bottom:0!important}[class*=" wpsl-icon-"]:before,[class^=wpsl-icon-]:before{font-weight:400;display:inline-block;width:1em;margin-right:.2em;text-align:center;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wpsl-icon-location:before{content:'\e801'}.wpsl-icon-attention-circled:before{content:'\e802'}.wpsl-icon-cancel-circled:before{content:'\e803'}.wpsl-icon-plus-circled:before{content:'\e805'}#wpsl-store-hours .wpsl-icon-cancel-circled,#wpsl-store-hours .wpsl-icon-plus-circled{margin-top:1px;font-size:18px;display:inline-block;color:#999}#wpsl-store-hours .wpsl-icon-cancel-circled:hover,#wpsl-store-hours .wpsl-icon-plus-circled:hover{color:#444}.wpsl-add-on{float:left;position:relative;width:300px;height:240px;background:#fff;margin:20px 20px 0 0;border:1px solid #e8e8e8;border-radius:3px}.wpsl-add-on p{margin-top:0}.wpsl-add-on img{height:auto;max-width:100%;vertical-align:bottom}.wpsl-add-on>a{width:300px;display:inline-block}.wpsl-add-on a img:hover{opacity:.95}.wpsl-add-on .wpsl-add-on-desc{padding:20px}.wpsl-add-on-status{position:absolute;left:20px;bottom:20px}.wpsl-add-on-status p{margin:0 0 4px}.wpsl-api-error{margin-top:13px;padding:10px;color:#fff;border-radius:3px;background:#c01313}.wpsl-api-error a{font-weight:700;color:#fff!important}
admin/js/wpsl-admin.js CHANGED
@@ -1,929 +1,948 @@
1
- jQuery( document ).ready( function( $ ) {
2
- var map, geocoder, markersArray = [];
3
-
4
- if ( $( "#wpsl-gmap-wrap" ).length ) {
5
- initializeGmap();
6
- }
7
-
8
- /*
9
- * If we're on the settings page, then check for returned
10
- * browser key errors from the autocomplete field
11
- * and validate the server key when necessary.
12
- */
13
- if ( $( "#wpsl-map-settings").length ) {
14
- observeBrowserKeyErrors();
15
-
16
- /**
17
- * Check if we need to validate the server key, and if no
18
- * error message is already visible after saving the setting page.
19
- */
20
- if ( $( "#wpsl-api-server-key" ).hasClass( "wpsl-validate-me" ) && !$( "#setting-error-server-key" ).length ) {
21
- validateServerKey();
22
- }
23
- }
24
-
25
- /**
26
- * Initialize the map with the correct settings.
27
- *
28
- * @since 1.0.0
29
- * @returns {void}
30
- */
31
- function initializeGmap() {
32
- var defaultLatLng = wpslSettings.defaultLatLng.split( "," ),
33
- latLng = new google.maps.LatLng( defaultLatLng[0], defaultLatLng[1] ),
34
- mapOptions = {};
35
-
36
- mapOptions = {
37
- zoom: parseInt( wpslSettings.defaultZoom ),
38
- center: latLng,
39
- mapTypeId: google.maps.MapTypeId[ wpslSettings.mapType.toUpperCase() ],
40
- mapTypeControl: false,
41
- streetViewControl: false,
42
- zoomControlOptions: {
43
- position: google.maps.ControlPosition.RIGHT_TOP
44
- }
45
- };
46
-
47
- geocoder = new google.maps.Geocoder();
48
- map = new google.maps.Map( document.getElementById( "wpsl-gmap-wrap" ), mapOptions );
49
-
50
- checkEditStoreMarker();
51
- }
52
-
53
- /**
54
- * Check if we have an existing latlng value.
55
- *
56
- * If there is an latlng value, then we add a marker to the map.
57
- * This can only happen on the edit store page.
58
- *
59
- * @since 1.0.0
60
- * @returns {void}
61
- */
62
- function checkEditStoreMarker() {
63
- var location,
64
- lat = $( "#wpsl-lat" ).val(),
65
- lng = $( "#wpsl-lng" ).val();
66
-
67
- if ( ( lat ) && ( lng ) ) {
68
- location = new google.maps.LatLng( lat, lng );
69
-
70
- map.setCenter( location );
71
- map.setZoom( 16 );
72
- addMarker( location );
73
- }
74
- }
75
-
76
- // If we have a city/country input field enable the autocomplete.
77
- if ( $( "#wpsl-start-name" ).length ) {
78
- activateAutoComplete();
79
- }
80
-
81
- /**
82
- * Activate the autocomplete function for the city/country field.
83
- *
84
- * @since 1.0.0
85
- * @returns {void}
86
- */
87
- function activateAutoComplete() {
88
- var latlng,
89
- input = document.getElementById( "wpsl-start-name" ),
90
- options = {
91
- types: ['geocode']
92
- },
93
- autocomplete = new google.maps.places.Autocomplete( input, options );
94
-
95
- google.maps.event.addListener( autocomplete, "place_changed", function() {
96
- latlng = autocomplete.getPlace().geometry.location;
97
- setLatlng( latlng, "zoom" );
98
- });
99
- }
100
-
101
- /**
102
- * Add a new marker to the map based on the provided location (latlng).
103
- *
104
- * @since 1.0.0
105
- * @param {object} location The latlng value
106
- * @returns {void}
107
- */
108
- function addMarker( location ) {
109
- var marker = new google.maps.Marker({
110
- position: location,
111
- map: map,
112
- draggable: true
113
- });
114
-
115
- markersArray.push( marker );
116
-
117
- // If the marker is dragged on the map, make sure the latlng values are updated.
118
- google.maps.event.addListener( marker, "dragend", function() {
119
- setLatlng( marker.getPosition(), "store" );
120
- });
121
- }
122
-
123
- // Lookup the provided location with the Google Maps API.
124
- $( "#wpsl-lookup-location" ).on( "click", function( e ) {
125
- e.preventDefault();
126
- codeAddress();
127
- });
128
-
129
- /**
130
- * Update the hidden input field with the current latlng values.
131
- *
132
- * @since 1.0.0
133
- * @param {object} latLng The latLng values
134
- * @param {string} target The location where we need to set the latLng
135
- * @returns {void}
136
- */
137
- function setLatlng( latLng, target ) {
138
- var coordinates = stripCoordinates( latLng ),
139
- lat = roundCoordinate( coordinates[0] ),
140
- lng = roundCoordinate( coordinates[1] );
141
-
142
- if ( target == "store" ) {
143
- $( "#wpsl-lat" ).val( lat );
144
- $( "#wpsl-lng" ).val( lng );
145
- } else if ( target == "zoom" ) {
146
- $( "#wpsl-latlng" ).val( lat + ',' + lng );
147
- }
148
- }
149
-
150
- /**
151
- * Geocode the user input.
152
- *
153
- * @since 1.0.0
154
- * @returns {void}
155
- */
156
- function codeAddress() {
157
- var filteredResponse, geocodeAddress;
158
-
159
- // Check if we have all the required data before attempting to geocode the address.
160
- if ( !validatePreviewFields() ) {
161
- geocodeAddress = createGeocodeAddress();
162
-
163
- geocoder.geocode( { 'address': geocodeAddress }, function( response, status ) {
164
- if ( status === google.maps.GeocoderStatus.OK ) {
165
-
166
- // If we have a previous marker on the map we remove it.
167
- if ( typeof( markersArray[0] ) !== "undefined" ) {
168
- if ( markersArray[0].draggable ) {
169
- markersArray[0].setMap( null );
170
- markersArray.splice(0, 1);
171
- }
172
- }
173
-
174
- // Center and zoom to the searched location.
175
- map.setCenter( response[0].geometry.location );
176
- map.setZoom( 16 );
177
-
178
- addMarker( response[0].geometry.location );
179
- setLatlng( response[0].geometry.location, "store" );
180
-
181
- filteredResponse = filterApiResponse( response );
182
-
183
- $( "#wpsl-country" ).val( filteredResponse.country.long_name );
184
- $( "#wpsl-country_iso" ).val( filteredResponse.country.short_name );
185
- } else {
186
- alert( wpslL10n.geocodeFail + ": " + status );
187
- }
188
- });
189
-
190
- return false;
191
- } else {
192
- activateStoreTab( "first" );
193
-
194
- alert( wpslL10n.missingGeoData );
195
-
196
- return true;
197
- }
198
- }
199
-
200
- /**
201
- * Check that all required fields for the map preview are there.
202
- *
203
- * @since 1.0.0
204
- * @returns {boolean} error Whether all the required fields contained data.
205
- */
206
- function validatePreviewFields() {
207
- var i, fieldData, requiredFields,
208
- error = false;
209
-
210
- $( ".wpsl-store-meta input" ).removeClass( "wpsl-error" );
211
-
212
- // Check which fields are required.
213
- if ( typeof wpslSettings.requiredFields !== "undefined" && _.isArray( wpslSettings.requiredFields ) ) {
214
- requiredFields = wpslSettings.requiredFields;
215
-
216
- // Check if all the required fields contain data.
217
- for ( i = 0; i < requiredFields.length; i++ ) {
218
- fieldData = $.trim( $( "#wpsl-" + requiredFields[i] ).val() );
219
-
220
- if ( !fieldData ) {
221
- $( "#wpsl-" + requiredFields[i] ).addClass( "wpsl-error" );
222
- error = true;
223
- }
224
-
225
- fieldData = '';
226
- }
227
- }
228
-
229
- return error;
230
- }
231
-
232
- /**
233
- * Build the address that's send to the Geocode API.
234
- *
235
- * @since 2.1.0
236
- * @returns {string} geocodeAddress The address separated by , that's send to the Geocoder.
237
- */
238
- function createGeocodeAddress() {
239
- var i, part,
240
- address = [],
241
- addressParts = [ "address", "city", "state", "zip", "country" ];
242
-
243
- for ( i = 0; i < addressParts.length; i++ ) {
244
- part = $.trim( $( "#wpsl-" + addressParts[i] ).val() );
245
-
246
- /*
247
- * At this point we already know the address, city and country fields contain data.
248
- * But no need to include the zip and state if they are empty.
249
- */
250
- if ( part ) {
251
- address.push( part );
252
- }
253
-
254
- part = "";
255
- }
256
-
257
- return address.join();
258
- }
259
-
260
- /**
261
- * Filter out the country name from the API response.
262
- *
263
- * @since 1.0.0
264
- * @param {object} response The response of the geocode API
265
- * @returns {object} collectedData The short and long country name
266
- */
267
- function filterApiResponse( response ) {
268
- var i, responseType,
269
- country = {},
270
- collectedData = {},
271
- addressLength = response[0].address_components.length;
272
-
273
- // Loop over the API response.
274
- for ( i = 0; i < addressLength; i++ ) {
275
- responseType = response[0].address_components[i].types;
276
-
277
- // Filter out the country name.
278
- if ( /^country,political$/.test( responseType ) ) {
279
- country = {
280
- long_name: response[0].address_components[i].long_name,
281
- short_name: response[0].address_components[i].short_name
282
- };
283
- }
284
- }
285
-
286
- collectedData = {
287
- country: country
288
- };
289
-
290
- return collectedData;
291
- }
292
-
293
- /**
294
- * Round the coordinate to 6 digits after the comma.
295
- *
296
- * @since 1.0.0
297
- * @param {string} coordinate The coordinate
298
- * @returns {number} roundedCoord The rounded coordinate
299
- */
300
- function roundCoordinate( coordinate ) {
301
- var roundedCoord, decimals = 6;
302
-
303
- roundedCoord = Math.round( coordinate * Math.pow( 10, decimals ) ) / Math.pow( 10, decimals );
304
-
305
- return roundedCoord;
306
- }
307
-
308
- /**
309
- * Strip the '(' and ')' from the captured coordinates and split them.
310
- *
311
- * @since 1.0.0
312
- * @param {string} coordinates The coordinates
313
- * @returns {object} latLng The latlng coordinates
314
- */
315
- function stripCoordinates( coordinates ) {
316
- var latLng = [],
317
- selected = coordinates.toString(),
318
- latLngStr = selected.split( ",", 2 );
319
-
320
- latLng[0] = latLngStr[0].replace( "(", "" );
321
- latLng[1] = latLngStr[1].replace( ")", "" );
322
-
323
- return latLng;
324
- }
325
-
326
- $( ".wpsl-marker-list input[type=radio]" ).click( function() {
327
- $( this ).parents( ".wpsl-marker-list" ).find( "li" ).removeClass();
328
- $( this ).parent( "li" ).addClass( "wpsl-active-marker" );
329
- });
330
-
331
- $( ".wpsl-marker-list li" ).click( function() {
332
- $( this ).parents( ".wpsl-marker-list" ).find( "input" ).prop( "checked", false );
333
- $( this ).find( "input" ).prop( "checked", true );
334
- $( this ).siblings().removeClass();
335
- $( this ).addClass( "wpsl-active-marker" );
336
- });
337
-
338
- // Detect changes in checkboxes that have a conditional option.
339
- $( ".wpsl-has-conditional-option" ).on( "change", function() {
340
- $( this ).parent().next( ".wpsl-conditional-option" ).toggle();
341
- });
342
-
343
- /*
344
- * Detect changes to the store template dropdown. If the template is selected to
345
- * show the store list under the map then we show the option to hide the scrollbar.
346
- */
347
- $( "#wpsl-store-template" ).on( "change", function() {
348
- var $scrollOption = $( "#wpsl-listing-below-no-scroll" );
349
-
350
- if ( $( this ).val() == "below_map" ) {
351
- $scrollOption.show();
352
- } else {
353
- $scrollOption.hide();
354
- }
355
- });
356
-
357
- $( "#wpsl-api-region" ).on( "change", function() {
358
- var $geocodeComponent = $( "#wpsl-geocode-component" );
359
-
360
- if ( $( this ).val() ) {
361
- $geocodeComponent.show();
362
- } else {
363
- $geocodeComponent.hide();
364
- }
365
- });
366
-
367
- // Make sure the correct hour input format is visible.
368
- $( "#wpsl-editor-hour-input" ).on( "change", function() {
369
- $( ".wpsl-" + $( this ).val() + "-hours" ).show().siblings( "div" ).hide();
370
- $( ".wpsl-hour-notice" ).toggle();
371
- });
372
-
373
- // Set the correct tab to active and show the correct content block.
374
- $( "#wpsl-meta-nav li" ).on( "click", function( e ) {
375
- var activeClass = $( this ).attr( "class" );
376
- activeClass = activeClass.split( "-tab" );
377
-
378
- e.stopPropagation();
379
-
380
- // Set the correct tab and metabox to active.
381
- $( this ).addClass( "wpsl-active" ).siblings().removeClass( "wpsl-active" );
382
- $( ".wpsl-store-meta ." + activeClass[0] + "" ).show().addClass( "wpsl-active" ).siblings( "div" ).hide().removeClass( "wpsl-active" );
383
- });
384
-
385
- // Make sure the required store fields contain data.
386
- if ( $( "#wpsl-store-details" ).length ) {
387
- $( "#publish" ).click( function() {
388
- var firstErrorElem, currentTabClass, elemClass,
389
- errorMsg = '<div id="message" class="error"><p>' + wpslL10n.requiredFields + '</p></div>',
390
- missingData = false;
391
-
392
- // Remove error messages and css classes from previous submissions.
393
- $( "#wpbody-content .wrap #message" ).remove();
394
- $( ".wpsl-required" ).removeClass( "wpsl-error" );
395
-
396
- // Loop over the required fields and check for a value.
397
- $( ".wpsl-required" ).each( function() {
398
- if ( $( this ).val() == "" ) {
399
- $( this ).addClass( "wpsl-error" );
400
-
401
- if ( typeof firstErrorElem === "undefined" ) {
402
- firstErrorElem = getFirstErrorElemAttr( $( this ) );
403
- }
404
-
405
- missingData = true;
406
- }
407
- });
408
-
409
- // If one of the required fields are empty, then show the error msg and make sure the correct tab is visible.
410
- if ( missingData ) {
411
- $( "#wpbody-content .wrap > h2" ).after( errorMsg );
412
-
413
- if ( typeof firstErrorElem.val !== "undefined" ) {
414
- if ( firstErrorElem.type == "id" ) {
415
- currentTabClass = $( "#" + firstErrorElem.val + "" ).parents( ".wpsl-tab" ).attr( "class" );
416
- $( "html, body" ).scrollTop( Math.round( $( "#" + firstErrorElem.val + "" ).offset().top - 100 ) );
417
- } else if ( firstErrorElem.type == "class" ) {
418
- elemClass = firstErrorElem.val.replace( /wpsl-required|wpsl-error/g, "" );
419
- currentTabClass = $( "." + elemClass + "" ).parents( ".wpsl-tab" ).attr( "class" );
420
- $( "html, body" ).scrollTop( Math.round( $( "." + elemClass + "" ).offset().top - 100 ) );
421
- }
422
-
423
- currentTabClass = $.trim( currentTabClass.replace( /wpsl-tab|wpsl-active/g, "" ) );
424
- }
425
-
426
- // If we don't have a class of the tab that should be set to visible, we just show the first one.
427
- if ( !currentTabClass ) {
428
- activateStoreTab( 'first' );
429
- } else {
430
- activateStoreTab( currentTabClass );
431
- }
432
-
433
- /*
434
- * If not all required fields contains data, and the user has
435
- * clicked the submit button. Then an extra css class is added to the
436
- * button that will disabled it. This only happens in WP 3.8 or earlier.
437
- *
438
- * We need to make sure this css class doesn't exist otherwise
439
- * the user can never resubmit the page.
440
- */
441
- $( "#publish" ).removeClass( "button-primary-disabled" );
442
- $( ".spinner" ).hide();
443
-
444
- return false;
445
- } else {
446
- return true;
447
- }
448
- });
449
- }
450
-
451
- /**
452
- * Set the correct tab to visible, and hide all other metaboxes
453
- *
454
- * @since 2.0.0
455
- * @param {string} $target The name of the tab to show
456
- * @returns {void}
457
- */
458
- function activateStoreTab( $target ) {
459
- if ( $target == 'first' ) {
460
- $target = ':first-child';
461
- } else {
462
- $target = '.' + $target;
463
- }
464
-
465
- if ( !$( "#wpsl-meta-nav li" + $target + "-tab" ).hasClass( "wpsl-active" ) ) {
466
- $( "#wpsl-meta-nav li" + $target + "-tab" ).addClass( "wpsl-active" ).siblings().removeClass( "wpsl-active" );
467
- $( ".wpsl-store-meta > div" + $target + "" ).show().addClass( "wpsl-active" ).siblings( "div" ).hide().removeClass( "wpsl-active" );
468
- }
469
- }
470
-
471
- /**
472
- * Get the id or class of the first element that's an required field, but is empty.
473
- *
474
- * We need this to determine which tab we need to set active,
475
- * which will be the tab were the first error occured.
476
- *
477
- * @since 2.0.0
478
- * @param {object} elem The element the error occured on
479
- * @returns {object} firstErrorElem The id/class set on the first elem that an error occured on and the attr value
480
- */
481
- function getFirstErrorElemAttr( elem ) {
482
- var firstErrorElem = { "type": "id", "val" : elem.attr( "id" ) };
483
-
484
- // If no ID value exists, then check if we can get the class name.
485
- if ( typeof firstErrorElem.val === "undefined" ) {
486
- firstErrorElem = { "type": "class", "val" : elem.attr( "class" ) };
487
- }
488
-
489
- return firstErrorElem;
490
- }
491
-
492
- // If we have a store hours dropdown, init the event handler.
493
- if ( $( "#wpsl-store-hours" ).length ) {
494
- initHourEvents();
495
- }
496
-
497
- /**
498
- * Assign an event handler to the button that enables
499
- * users to remove an opening hour period.
500
- *
501
- * @since 2.0.0
502
- * @returns {void}
503
- */
504
- function initHourEvents() {
505
- $( "#wpsl-store-hours .wpsl-icon-cancel-circled" ).off();
506
- $( "#wpsl-store-hours .wpsl-icon-cancel-circled" ).on( "click", function() {
507
- removePeriod( $( this ) );
508
- });
509
- }
510
-
511
- // Add new openings period to the openings hours table.
512
- $( ".wpsl-add-period" ).on( "click", function( e ) {
513
- var newPeriod,
514
- hours = {},
515
- returnList = true,
516
- $tr = $( this ).parents( "tr" ),
517
- periodCount = currentPeriodCount( $( this ) ),
518
- periodCss = ( periodCount >= 1 ) ? "wpsl-current-period wpsl-multiple-periods" : "wpsl-current-period",
519
- day = $tr.find( ".wpsl-opening-hours" ).attr( "data-day" ),
520
- selectName = ( $( "#wpsl-settings-form" ).length ) ? "wpsl_editor[dropdown]" : "wpsl[hours]";
521
-
522
- newPeriod = '<div class="' + periodCss +'">';
523
- newPeriod += '<select autocomplete="off" name="' + selectName + '[' + day + '_open][]" class="wpsl-open-hour">' + createHourOptionList( returnList ) + '</select>';
524
- newPeriod += '<span> - </span>';
525
- newPeriod += '<select autocomplete="off" name="' + selectName + '[' + day + '_close][]" class="wpsl-close-hour">' + createHourOptionList( returnList ) + '</select>';
526
- newPeriod += '<div class="wpsl-icon-cancel-circled"></div>';
527
- newPeriod += '</div>';
528
-
529
- $tr.find( ".wpsl-store-closed" ).remove();
530
- $( "#wpsl-hours-" + day + "" ).append( newPeriod ).end();
531
-
532
- initHourEvents();
533
-
534
- if ( $( "#wpsl-editor-hour-format" ).val() == 24 ) {
535
- hours = {
536
- "open": "09:00",
537
- "close": "17:00"
538
- };
539
- } else {
540
- hours = {
541
- "open": "9:00 AM",
542
- "close": "5:00 PM"
543
- };
544
- }
545
-
546
- $tr.find( ".wpsl-open-hour:last option[value='" + hours.open + "']" ).attr( "selected", "selected" );
547
- $tr.find( ".wpsl-close-hour:last option[value='" + hours.close + "']" ).attr( "selected", "selected" );
548
-
549
- e.preventDefault();
550
- });
551
-
552
- /**
553
- * Remove an openings period
554
- *
555
- * @since 2.0.0
556
- * @param {object} elem The clicked element
557
- * @return {void}
558
- */
559
- function removePeriod( elem ) {
560
- var periodsLeft = currentPeriodCount( elem ),
561
- $tr = elem.parents( "tr" ),
562
- day = $tr.find( ".wpsl-opening-hours" ).attr( "data-day" );
563
-
564
- // If there was 1 opening hour left then we add the 'Closed' text.
565
- if ( periodsLeft == 1 ) {
566
- $tr.find( ".wpsl-opening-hours" ).html( "<p class='wpsl-store-closed'>" + wpslL10n.closedDate + "<input type='hidden' name='wpsl[hours][" + day + "_open]' value='' /></p>" );
567
- }
568
-
569
- // Remove the selected openings period.
570
- elem.parent().closest( ".wpsl-current-period" ).remove();
571
-
572
- // If the first element has the multiple class, then we need to remove it.
573
- if ( $tr.find( ".wpsl-opening-hours div:first-child" ).hasClass( "wpsl-multiple-periods" ) ) {
574
- $tr.find( ".wpsl-opening-hours div:first-child" ).removeClass( "wpsl-multiple-periods" );
575
- }
576
- }
577
-
578
- /**
579
- * Count the current opening periods in a day block
580
- *
581
- * @since 2.0.0
582
- * @param {object} elem The clicked element
583
- * @return {string} currentPeriods The ammount of period divs found
584
- */
585
- function currentPeriodCount( elem ) {
586
- var currentPeriods = elem.parents( "tr" ).find( ".wpsl-current-period" ).length;
587
-
588
- return currentPeriods;
589
- }
590
-
591
- /**
592
- * Create an option list with the correct opening hour format and interval
593
- *
594
- * @since 2.0.0
595
- * @param {string} returnList Whether to return the option list or call the setSelectedOpeningHours function
596
- * @return {mixed} optionList The html for the option list of or void
597
- */
598
- function createHourOptionList( returnList ) {
599
- var openingHours, openingHourInterval, hour, hrFormat,
600
- pm = false,
601
- twelveHrsAfternoon = false,
602
- pmOrAm = "",
603
- optionList = "",
604
- openingTimes = [],
605
- openingHourOptions = {
606
- "hours": {
607
- "hr12": [ 12, 1, 2, 3 ,4 ,5 ,6, 7, 8, 9, 10, 11, 12, 1, 2, 3 , 4, 5, 6, 7, 8, 9, 10, 11 ],
608
- "hr24": [ 0, 1, 2, 3 ,4 ,5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ,16, 17, 18, 19, 20, 21, 22, 23 ]
609
- },
610
- "interval": [ '00', '15', '30', '45' ]
611
- };
612
-
613
- if ( $( "#wpsl-editor-hour-format" ).length ) {
614
- hrFormat = $( "#wpsl-editor-hour-format" ).val();
615
- } else {
616
- hrFormat = wpslSettings.hourFormat;
617
- }
618
-
619
- $( "#wpsl-store-hours td" ).removeAttr( "style" );
620
-
621
- if ( hrFormat == 12 ) {
622
- $( "#wpsl-store-hours" ).removeClass().addClass( "wpsl-twelve-format" );
623
- openingHours = openingHourOptions.hours.hr12;
624
- } else {
625
- $( "#wpsl-store-hours" ).removeClass().addClass( "wpsl-twentyfour-format" );
626
- openingHours = openingHourOptions.hours.hr24;
627
- }
628
-
629
- openingHourInterval = openingHourOptions.interval;
630
-
631
- for ( var i = 0; i < openingHours.length; i++ ) {
632
- hour = openingHours[i];
633
-
634
- /*
635
- * If the 12hr format is selected, then check if we need to show AM or PM.
636
- *
637
- * If the 24hr format is selected and the hour is a single digit
638
- * then we add a 0 to the start so 5:00 becomes 05:00.
639
- */
640
- if ( hrFormat == 12 ) {
641
- if ( hour >= 12 ) {
642
- pm = ( twelveHrsAfternoon ) ? true : false;
643
-
644
- twelveHrsAfternoon = true;
645
- }
646
-
647
- pmOrAm = ( pm ) ? "PM" : "AM";
648
- } else if ( ( hrFormat == 24 ) && ( hour.toString().length == 1 ) ) {
649
- hour = "0" + hour;
650
- }
651
-
652
- // Collect the new opening hour format and interval.
653
- for ( var j = 0; j < openingHourInterval.length; j++ ) {
654
- openingTimes.push( hour + ":" + openingHourInterval[j] + " " + pmOrAm );
655
- }
656
- }
657
-
658
- // Create the <option> list.
659
- for ( var i = 0; i < openingTimes.length; i++ ) {
660
- optionList = optionList + '<option value="' + $.trim( openingTimes[i] ) + '">' + $.trim( openingTimes[i] ) + '</option>';
661
- }
662
-
663
- if ( returnList ) {
664
- return optionList;
665
- } else {
666
- setSelectedOpeningHours( optionList, hrFormat );
667
- }
668
- }
669
-
670
- /**
671
- * Set the correct selected opening hour in the dropdown
672
- *
673
- * @since 2.0.0
674
- * @param {string} optionList The html for the option list
675
- * @param {string} hrFormat The html for the option list
676
- * @return {void}
677
- */
678
- function setSelectedOpeningHours( optionList, hrFormat ) {
679
- var splitHour, hourType, periodBlock,
680
- hours = {};
681
-
682
- /*
683
- * Loop over each open/close block and make sure the selected
684
- * value is still set as selected after changing the hr format.
685
- */
686
- $( ".wpsl-current-period" ).each( function() {
687
- periodBlock = $( this ),
688
- hours = {
689
- "open": $( this ).find( ".wpsl-open-hour" ).val(),
690
- "close": $( this ).find( ".wpsl-close-hour" ).val()
691
- };
692
-
693
- // Set the new hour format for both dropdowns.
694
- $( this ).find( "select" ).html( optionList ).promise().done( function() {
695
-
696
- // Select the correct start/end hours as selected.
697
- for ( var key in hours ) {
698
- if ( hours.hasOwnProperty( key ) ) {
699
-
700
- // Breakup the hour, so we can check the part before and after the : separately.
701
- splitHour = hours[key].split( ":" );
702
-
703
- if ( hrFormat == 12 ) {
704
- hourType = "";
705
-
706
- // Change the hours to a 12hr format and add the correct AM or PM.
707
- if ( hours[key].charAt( 0 ) == 0 ) {
708
- hours[key] = hours[key].substr( 1 );
709
- hourType = " AM";
710
- } else if ( ( splitHour[0].length == 2 ) && ( splitHour[0] > 12 ) ) {
711
- hours[key] = ( splitHour[0] - 12 ) + ":" + splitHour[1];
712
- hourType = " PM";
713
- } else if ( splitHour[0] < 12 ) {
714
- hours[key] = splitHour[0] + ":" + splitHour[1];
715
- hourType = " AM";
716
- } else if ( splitHour[0] == 12 ) {
717
- hours[key] = splitHour[0] + ":" + splitHour[1];
718
- hourType = " PM";
719
- }
720
-
721
- // Add either AM or PM behind the time.
722
- if ( ( splitHour[1].indexOf( "PM" ) == -1 ) && ( splitHour[1].indexOf( "AM" ) == -1 ) ) {
723
- hours[key] = hours[key] + hourType;
724
- }
725
-
726
- } else if ( hrFormat == 24 ) {
727
-
728
- // Change the hours to a 24hr format and remove the AM or PM.
729
- if ( splitHour[1].indexOf( "PM" ) != -1 ) {
730
- if ( splitHour[0] == 12 ) {
731
- hours[key] = "12:" + splitHour[1].replace( " PM", "" );
732
- } else {
733
- hours[key] = ( + splitHour[0] + 12 ) + ":" + splitHour[1].replace( " PM", "" );
734
- }
735
- } else if ( splitHour[1].indexOf( "AM" ) != -1 ) {
736
- if ( splitHour[0].toString().length == 1 ) {
737
- hours[key] = "0" + splitHour[0] + ":" + splitHour[1].replace( " AM", "" );
738
- } else {
739
- hours[key] = splitHour[0] + ":" + splitHour[1].replace( " AM", "" );
740
- }
741
- } else {
742
- hours[key] = splitHour[0] + ":" + splitHour[1]; // When the interval is changed
743
- }
744
- }
745
-
746
- // Set the correct value as the selected one.
747
- periodBlock.find( ".wpsl-" + key + "-hour option[value='" + $.trim( hours[key] ) + "']" ).attr( "selected", "selected" );
748
- }
749
- }
750
-
751
- });
752
- });
753
- }
754
-
755
- // Update the opening hours format if one of the dropdown values change.
756
- $( "#wpsl-editor-hour-format, #wpsl-editor-hour-interval" ).on( "change", function() {
757
- createHourOptionList();
758
- });
759
-
760
- // Show the tooltips.
761
- $( ".wpsl-info" ).on( "mouseover", function() {
762
- $( this ).find( ".wpsl-info-text" ).show();
763
- });
764
-
765
- $( ".wpsl-info" ).on( "mouseout", function() {
766
- $( this ).find( ".wpsl-info-text" ).hide();
767
- });
768
-
769
- // If the start location is empty, then we color the info icon red instead of black.
770
- if ( $( "#wpsl-latlng" ).length && !$( "#wpsl-latlng" ).val() ) {
771
- $( "#wpsl-latlng" ).siblings( "label" ).find( ".wpsl-info" ).addClass( "wpsl-required-setting" );
772
- }
773
-
774
- /**
775
- * Try to apply the custom style data to the map.
776
- *
777
- * If the style data is invalid json we show an error.
778
- *
779
- * @since 2.0.0
780
- * @return {void}
781
- */
782
- function tryCustomMapStyle() {
783
- var validStyle = "",
784
- mapStyle = $.trim( $( "#wpsl-map-style" ).val() );
785
-
786
- $( ".wpsl-style-preview-error" ).remove();
787
-
788
- if ( mapStyle ) {
789
-
790
- // Make sure the data is valid json.
791
- validStyle = tryParseJSON( mapStyle );
792
-
793
- if ( !validStyle ) {
794
- $( "#wpsl-style-preview" ).after( "<div class='wpsl-style-preview-error'>" + wpslL10n.styleError + "</div>" );
795
- }
796
- }
797
-
798
- map.setOptions({ styles: validStyle });
799
- }
800
-
801
- // Handle the map style changes on the settings page.
802
- if ( $( "#wpsl-map-style" ).val() ) {
803
- tryCustomMapStyle();
804
- }
805
-
806
- // Handle clicks on the map style preview button.
807
- $( "#wpsl-style-preview" ).on( "click", function() {
808
- tryCustomMapStyle();
809
-
810
- return false;
811
- });
812
-
813
- /**
814
- * Make sure the JSON is valid.
815
- *
816
- * @link http://stackoverflow.com/a/20392392/1065294
817
- * @since 2.0.0
818
- * @param {string} jsonString The JSON data
819
- * @return {object|boolean} The JSON string or false if it's invalid json.
820
- */
821
- function tryParseJSON( jsonString ) {
822
-
823
- try {
824
- var o = JSON.parse( jsonString );
825
-
826
- /*
827
- * Handle non-exception-throwing cases:
828
- * Neither JSON.parse(false) or JSON.parse(1234) throw errors, hence the type-checking,
829
- * but... JSON.parse(null) returns 'null', and typeof null === "object",
830
- * so we must check for that, too.
831
- */
832
- if ( o && typeof o === "object" && o !== null ) {
833
- return o;
834
- }
835
- }
836
- catch ( e ) { }
837
-
838
- return false;
839
- }
840
-
841
- /**
842
- * Look for changes on the start location input field.
843
- *
844
- * If there's a problem with the browser API key,
845
- * then a 'gm-err-autocomplete' class is added to the input field.
846
- *
847
- * When this happens we create a notice explaining how to fix the issue.
848
- *
849
- * @since 2.2.10
850
- * @return void
851
- */
852
- function observeBrowserKeyErrors() {
853
- var observer,
854
- attributeValue = '',
855
- MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
856
- $startName = $( "#wpsl-start-name" );
857
-
858
- if ( typeof MutationObserver !== "undefined" ) {
859
- observer = new MutationObserver( function( mutations ) {
860
-
861
- // Loop over the mutations.
862
- mutations.forEach( function( mutation ) {
863
- if ( mutation.attributeName === "class" ) {
864
- attributeValue = $( mutation.target ).prop( mutation.attributeName );
865
-
866
- // Look for a specific class that's added when there's a problem with the browser API key
867
- if ( ( attributeValue.indexOf( "gm-err-autocomplete" ) !== -1 ) ) {
868
- createErrorNotice( wpslL10n.browserKeyError, "browser-key" );
869
- }
870
- }
871
- });
872
- });
873
-
874
- observer.observe( $startName[0], {
875
- attributes: true
876
- });
877
- }
878
- }
879
-
880
- /**
881
- * Make a request to the geocode API with the
882
- * provided server key to check for any errors.
883
- *
884
- * @since 2.2.10
885
- * @return void
886
- */
887
- function validateServerKey() {
888
- var ajaxData = {
889
- action: "validate_server_key",
890
- server_key: $( "#wpsl-api-server-key" ).val()
891
- };
892
-
893
- $.get( wpslSettings.ajaxurl, ajaxData, function( response ) {
894
- if ( !response.valid && typeof response.msg !== "undefined" ) {
895
- createErrorNotice( response.msg, "server-key" );
896
- } else {
897
- $( "#wpsl-api-server-key" ).removeClass( "wpsl-error" );
898
- }
899
- });
900
- }
901
-
902
- /**
903
- * Create the error notice.
904
- *
905
- * @since 2.2.10
906
- * @param {string} errorMsg The error message to show
907
- * @param {string} type The type of API key we need to show the notice for
908
- * @return void
909
- */
910
- function createErrorNotice( errorMsg, type ) {
911
- var errorNotice, noticeLocation;
912
-
913
- errorNotice = '<div id="setting-error-' + type + '" class="error settings-error notice is-dismissible">';
914
- errorNotice += '<p><strong>' + errorMsg + '</strong></p>';
915
- errorNotice += '<button type="button" class="notice-dismiss"><span class="screen-reader-text">' + wpslL10n.dismissNotice + '</span></button>';
916
- errorNotice += '</div>';
917
-
918
- noticeLocation = ( $( "#wpsl-tabs" ).length ) ? 'wpsl-tabs' : 'wpsl-settings-form';
919
-
920
- $( "#" + noticeLocation + "" ).before( errorNotice );
921
- $( "#wpsl-api-" + type + "").addClass( "wpsl-error" );
922
- }
923
-
924
- // Make sure the custom error notices can be removed
925
- $( "#wpsl-wrap" ).on( "click", "button.notice-dismiss", function() {
926
- $( this ).closest( 'div.notice' ).remove();
927
- })
928
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
929
  });
1
+ jQuery( document ).ready( function( $ ) {
2
+ var map, geocoder, markersArray = [];
3
+
4
+ if ( $( "#wpsl-gmap-wrap" ).length ) {
5
+ initializeGmap();
6
+ }
7
+
8
+ /*
9
+ * If we're on the settings page, then check for returned
10
+ * browser key errors from the autocomplete field
11
+ * and validate the server key when necessary.
12
+ */
13
+ if ( $( "#wpsl-map-settings").length ) {
14
+ observeBrowserKeyErrors();
15
+
16
+ /**
17
+ * Check if we need to validate the server key, and if no
18
+ * error message is already visible after saving the setting page.
19
+ */
20
+ if ( $( "#wpsl-api-server-key" ).hasClass( "wpsl-validate-me" ) && !$( "#setting-error-server-key" ).length ) {
21
+ validateServerKey();
22
+ }
23
+ }
24
+
25
+ /**
26
+ * Initialize the map with the correct settings.
27
+ *
28
+ * @since 1.0.0
29
+ * @returns {void}
30
+ */
31
+ function initializeGmap() {
32
+ var defaultLatLng = wpslSettings.defaultLatLng.split( "," ),
33
+ latLng = new google.maps.LatLng( defaultLatLng[0], defaultLatLng[1] ),
34
+ mapOptions = {};
35
+
36
+ mapOptions = {
37
+ zoom: parseInt( wpslSettings.defaultZoom ),
38
+ center: latLng,
39
+ mapTypeId: google.maps.MapTypeId[ wpslSettings.mapType.toUpperCase() ],
40
+ mapTypeControl: false,
41
+ streetViewControl: false,
42
+ zoomControlOptions: {
43
+ position: google.maps.ControlPosition.RIGHT_TOP
44
+ }
45
+ };
46
+
47
+ geocoder = new google.maps.Geocoder();
48
+ map = new google.maps.Map( document.getElementById( "wpsl-gmap-wrap" ), mapOptions );
49
+
50
+ checkEditStoreMarker();
51
+ }
52
+
53
+ /**
54
+ * Check if we have an existing latlng value.
55
+ *
56
+ * If there is an latlng value, then we add a marker to the map.
57
+ * This can only happen on the edit store page.
58
+ *
59
+ * @since 1.0.0
60
+ * @returns {void}
61
+ */
62
+ function checkEditStoreMarker() {
63
+ var location,
64
+ lat = $( "#wpsl-lat" ).val(),
65
+ lng = $( "#wpsl-lng" ).val();
66
+
67
+ if ( ( lat ) && ( lng ) ) {
68
+ location = new google.maps.LatLng( lat, lng );
69
+
70
+ map.setCenter( location );
71
+ map.setZoom( 16 );
72
+ addMarker( location );
73
+ }
74
+ }
75
+
76
+ // If we have a city/country input field enable the autocomplete.
77
+ if ( $( "#wpsl-start-name" ).length ) {
78
+ activateAutoComplete();
79
+ }
80
+
81
+ /**
82
+ * Activate the autocomplete function for the city/country field.
83
+ *
84
+ * @since 1.0.0
85
+ * @returns {void}
86
+ */
87
+ function activateAutoComplete() {
88
+ var latlng,
89
+ input = document.getElementById( "wpsl-start-name" ),
90
+ options = {
91
+ types: ['geocode']
92
+ },
93
+ autocomplete = new google.maps.places.Autocomplete( input, options );
94
+
95
+ google.maps.event.addListener( autocomplete, "place_changed", function() {
96
+ latlng = autocomplete.getPlace().geometry.location;
97
+ setLatlng( latlng, "zoom" );
98
+ });
99
+ }
100
+
101
+ /**
102
+ * Add a new marker to the map based on the provided location (latlng).
103
+ *
104
+ * @since 1.0.0
105
+ * @param {object} location The latlng value
106
+ * @returns {void}
107
+ */
108
+ function addMarker( location ) {
109
+ var marker = new google.maps.Marker({
110
+ position: location,
111
+ map: map,
112
+ draggable: true
113
+ });
114
+
115
+ markersArray.push( marker );
116
+
117
+ // If the marker is dragged on the map, make sure the latlng values are updated.
118
+ google.maps.event.addListener( marker, "dragend", function() {
119
+ setLatlng( marker.getPosition(), "store" );
120
+ });
121
+ }
122
+
123
+ // Lookup the provided location with the Google Maps API.
124
+ $( "#wpsl-lookup-location" ).on( "click", function( e ) {
125
+ e.preventDefault();
126
+ codeAddress();
127
+ });
128
+
129
+ /**
130
+ * Update the hidden input field with the current latlng values.
131
+ *
132
+ * @since 1.0.0
133
+ * @param {object} latLng The latLng values
134
+ * @param {string} target The location where we need to set the latLng
135
+ * @returns {void}
136
+ */
137
+ function setLatlng( latLng, target ) {
138
+ var coordinates = stripCoordinates( latLng ),
139
+ lat = roundCoordinate( coordinates[0] ),
140
+ lng = roundCoordinate( coordinates[1] );
141
+
142
+ if ( target == "store" ) {
143
+ $( "#wpsl-lat" ).val( lat );
144
+ $( "#wpsl-lng" ).val( lng );
145
+ } else if ( target == "zoom" ) {
146
+ $( "#wpsl-latlng" ).val( lat + ',' + lng );
147
+ }
148
+ }
149
+
150
+ /**
151
+ * Geocode the user input.
152
+ *
153
+ * @since 1.0.0
154
+ * @returns {void}
155
+ */
156
+ function codeAddress() {
157
+ var filteredResponse, geocodeAddress;
158
+
159
+ // Check if we have all the required data before attempting to geocode the address.
160
+ if ( !validatePreviewFields() ) {
161
+ geocodeAddress = createGeocodeAddress();
162
+
163
+ geocoder.geocode( { 'address': geocodeAddress }, function( response, status ) {
164
+ if ( status === google.maps.GeocoderStatus.OK ) {
165
+
166
+ // If we have a previous marker on the map we remove it.
167
+ if ( typeof( markersArray[0] ) !== "undefined" ) {
168
+ if ( markersArray[0].draggable ) {
169
+ markersArray[0].setMap( null );
170
+ markersArray.splice(0, 1);
171
+ }
172
+ }
173
+
174
+ // Center and zoom to the searched location.
175
+ map.setCenter( response[0].geometry.location );
176
+ map.setZoom( 16 );
177
+
178
+ addMarker( response[0].geometry.location );
179
+ setLatlng( response[0].geometry.location, "store" );
180
+
181
+ filteredResponse = filterApiResponse( response );
182
+
183
+ $( "#wpsl-country" ).val( filteredResponse.country.long_name );
184
+ $( "#wpsl-country_iso" ).val( filteredResponse.country.short_name );
185
+ } else {
186
+ alert( wpslL10n.geocodeFail + ": " + status );
187
+ }
188
+ });
189
+
190
+ return false;
191
+ } else {
192
+ activateStoreTab( "first" );
193
+
194
+ alert( wpslL10n.missingGeoData );
195
+
196
+ return true;
197
+ }
198
+ }
199
+
200
+ /**
201
+ * Check that all required fields for the map preview are there.
202
+ *
203
+ * @since 1.0.0
204
+ * @returns {boolean} error Whether all the required fields contained data.
205
+ */
206
+ function validatePreviewFields() {
207
+ var i, fieldData, requiredFields,
208
+ error = false;
209
+
210
+ $( ".wpsl-store-meta input" ).removeClass( "wpsl-error" );
211
+
212
+ // Check which fields are required.
213
+ if ( typeof wpslSettings.requiredFields !== "undefined" && _.isArray( wpslSettings.requiredFields ) ) {
214
+ requiredFields = wpslSettings.requiredFields;
215
+
216
+ // Check if all the required fields contain data.
217
+ for ( i = 0; i < requiredFields.length; i++ ) {
218
+ fieldData = $.trim( $( "#wpsl-" + requiredFields[i] ).val() );
219
+
220
+ if ( !fieldData ) {
221
+ $( "#wpsl-" + requiredFields[i] ).addClass( "wpsl-error" );
222
+ error = true;
223
+ }
224
+
225
+ fieldData = '';
226
+ }
227
+ }
228
+
229
+ return error;
230
+ }
231
+
232
+ /**
233
+ * Build the address that's send to the Geocode API.
234
+ *
235
+ * @since 2.1.0
236
+ * @returns {string} geocodeAddress The address separated by , that's send to the Geocoder.
237
+ */
238
+ function createGeocodeAddress() {
239
+ var i, part,
240
+ address = [],
241
+ addressParts = [ "address", "city", "state", "zip", "country" ];
242
+
243
+ for ( i = 0; i < addressParts.length; i++ ) {
244
+ part = $.trim( $( "#wpsl-" + addressParts[i] ).val() );
245
+
246
+ /*
247
+ * At this point we already know the address, city and country fields contain data.
248
+ * But no need to include the zip and state if they are empty.
249
+ */
250
+ if ( part ) {
251
+ address.push( part );
252
+ }
253
+
254
+ part = "";
255
+ }
256
+
257
+ return address.join();
258
+ }
259
+
260
+ /**
261
+ * Filter out the country name from the API response.
262
+ *
263
+ * @since 1.0.0
264
+ * @param {object} response The response of the geocode API
265
+ * @returns {object} collectedData The short and long country name
266
+ */
267
+ function filterApiResponse( response ) {
268
+ var i, responseType,
269
+ country = {},
270
+ collectedData = {},
271
+ addressLength = response[0].address_components.length;
272
+
273
+ // Loop over the API response.
274
+ for ( i = 0; i < addressLength; i++ ) {
275
+ responseType = response[0].address_components[i].types;
276
+
277
+ // Filter out the country name.
278
+ if ( /^country,political$/.test( responseType ) ) {
279
+ country = {
280
+ long_name: response[0].address_components[i].long_name,
281
+ short_name: response[0].address_components[i].short_name
282
+ };
283
+ }
284
+ }
285
+
286
+ collectedData = {
287
+ country: country
288
+ };
289
+
290
+ return collectedData;
291
+ }
292
+
293
+ /**
294
+ * Round the coordinate to 6 digits after the comma.
295
+ *
296
+ * @since 1.0.0
297
+ * @param {string} coordinate The coordinate
298
+ * @returns {number} roundedCoord The rounded coordinate
299
+ */
300
+ function roundCoordinate( coordinate ) {
301
+ var roundedCoord, decimals = 6;
302
+
303
+ roundedCoord = Math.round( coordinate * Math.pow( 10, decimals ) ) / Math.pow( 10, decimals );
304
+
305
+ return roundedCoord;
306
+ }
307
+
308
+ /**
309
+ * Strip the '(' and ')' from the captured coordinates and split them.
310
+ *
311
+ * @since 1.0.0
312
+ * @param {string} coordinates The coordinates
313
+ * @returns {object} latLng The latlng coordinates
314
+ */
315
+ function stripCoordinates( coordinates ) {
316
+ var latLng = [],
317
+ selected = coordinates.toString(),
318
+ latLngStr = selected.split( ",", 2 );
319
+
320
+ latLng[0] = latLngStr[0].replace( "(", "" );
321
+ latLng[1] = latLngStr[1].replace( ")", "" );
322
+
323
+ return latLng;
324
+ }
325
+
326
+ $( ".wpsl-marker-list input[type=radio]" ).click( function() {
327
+ $( this ).parents( ".wpsl-marker-list" ).find( "li" ).removeClass();
328
+ $( this ).parent( "li" ).addClass( "wpsl-active-marker" );
329
+ });
330
+
331
+ $( ".wpsl-marker-list li" ).click( function() {
332
+ $( this ).parents( ".wpsl-marker-list" ).find( "input" ).prop( "checked", false );
333
+ $( this ).find( "input" ).prop( "checked", true );
334
+ $( this ).siblings().removeClass();
335
+ $( this ).addClass( "wpsl-active-marker" );
336
+ });
337
+
338
+ // Detect changes in checkboxes that have a conditional option.
339
+ $( ".wpsl-has-conditional-option" ).on( "change", function() {
340
+ $( this ).parent().next( ".wpsl-conditional-option" ).toggle();
341
+ });
342
+
343
+ /*
344
+ * Detect changes to the store template dropdown. If the template is selected to
345
+ * show the store list under the map then we show the option to hide the scrollbar.
346
+ */
347
+ $( "#wpsl-store-template" ).on( "change", function() {
348
+ var $scrollOption = $( "#wpsl-listing-below-no-scroll" );
349
+
350
+ if ( $( this ).val() == "below_map" ) {
351
+ $scrollOption.show();
352
+ } else {
353
+ $scrollOption.hide();
354
+ }
355
+ });
356
+
357
+ $( "#wpsl-api-region" ).on( "change", function() {
358
+ var $geocodeComponent = $( "#wpsl-geocode-component" );
359
+
360
+ if ( $( this ).val() ) {
361
+ $geocodeComponent.show();
362
+ } else {
363
+ $geocodeComponent.hide();
364
+ }
365
+ });
366
+
367
+ // Make sure the correct hour input format is visible.
368
+ $( "#wpsl-editor-hour-input" ).on( "change", function() {
369
+ $( ".wpsl-" + $( this ).val() + "-hours" ).show().siblings( "div" ).hide();
370
+ $( ".wpsl-hour-notice" ).toggle();
371
+ });
372
+
373
+ // Set the correct tab to active and show the correct content block.
374
+ $( "#wpsl-meta-nav li" ).on( "click", function( e ) {
375
+ var activeClass = $( this ).attr( "class" );
376
+ activeClass = activeClass.split( "-tab" );
377
+
378
+ e.stopPropagation();
379
+
380
+ // Set the correct tab and metabox to active.
381
+ $( this ).addClass( "wpsl-active" ).siblings().removeClass( "wpsl-active" );
382
+ $( ".wpsl-store-meta ." + activeClass[0] + "" ).show().addClass( "wpsl-active" ).siblings( "div" ).hide().removeClass( "wpsl-active" );
383
+ });
384
+
385
+ // Make sure the required store fields contain data.
386
+ if ( $( "#wpsl-store-details" ).length ) {
387
+ $( "#publish" ).click( function() {
388
+ var firstErrorElem, currentTabClass, elemClass,
389
+ errorMsg = '<div id="message" class="error"><p>' + wpslL10n.requiredFields + '</p></div>',
390
+ missingData = false;
391
+
392
+ // Remove error messages and css classes from previous submissions.
393
+ $( "#wpbody-content .wrap #message" ).remove();
394
+ $( ".wpsl-required" ).removeClass( "wpsl-error" );
395
+
396
+ // Loop over the required fields and check for a value.
397
+ $( ".wpsl-required" ).each( function() {
398
+ if ( $( this ).val() == "" ) {
399
+ $( this ).addClass( "wpsl-error" );
400
+
401
+ if ( typeof firstErrorElem === "undefined" ) {
402
+ firstErrorElem = getFirstErrorElemAttr( $( this ) );
403
+ }
404
+
405
+ missingData = true;
406
+ }
407
+ });
408
+
409
+ // If one of the required fields are empty, then show the error msg and make sure the correct tab is visible.
410
+ if ( missingData ) {
411
+ $( "#wpbody-content .wrap > h2" ).after( errorMsg );
412
+
413
+ if ( typeof firstErrorElem.val !== "undefined" ) {
414
+ if ( firstErrorElem.type == "id" ) {
415
+ currentTabClass = $( "#" + firstErrorElem.val + "" ).parents( ".wpsl-tab" ).attr( "class" );
416
+ $( "html, body" ).scrollTop( Math.round( $( "#" + firstErrorElem.val + "" ).offset().top - 100 ) );
417
+ } else if ( firstErrorElem.type == "class" ) {
418
+ elemClass = firstErrorElem.val.replace( /wpsl-required|wpsl-error/g, "" );
419
+ currentTabClass = $( "." + elemClass + "" ).parents( ".wpsl-tab" ).attr( "class" );
420
+ $( "html, body" ).scrollTop( Math.round( $( "." + elemClass + "" ).offset().top - 100 ) );
421
+ }
422
+
423
+ currentTabClass = $.trim( currentTabClass.replace( /wpsl-tab|wpsl-active/g, "" ) );
424
+ }
425
+
426
+ // If we don't have a class of the tab that should be set to visible, we just show the first one.
427
+ if ( !currentTabClass ) {
428
+ activateStoreTab( 'first' );
429
+ } else {
430
+ activateStoreTab( currentTabClass );
431
+ }
432
+
433
+ /*
434
+ * If not all required fields contains data, and the user has
435
+ * clicked the submit button. Then an extra css class is added to the
436
+ * button that will disabled it. This only happens in WP 3.8 or earlier.
437
+ *
438
+ * We need to make sure this css class doesn't exist otherwise
439
+ * the user can never resubmit the page.
440
+ */
441
+ $( "#publish" ).removeClass( "button-primary-disabled" );
442
+ $( ".spinner" ).hide();
443
+
444
+ return false;
445
+ } else {
446
+ return true;
447
+ }
448
+ });
449
+ }
450
+
451
+ /**
452
+ * Set the correct tab to visible, and hide all other metaboxes
453
+ *
454
+ * @since 2.0.0
455
+ * @param {string} $target The name of the tab to show
456
+ * @returns {void}
457
+ */
458
+ function activateStoreTab( $target ) {
459
+ if ( $target == 'first' ) {
460
+ $target = ':first-child';
461
+ } else {
462
+ $target = '.' + $target;
463
+ }
464
+
465
+ if ( !$( "#wpsl-meta-nav li" + $target + "-tab" ).hasClass( "wpsl-active" ) ) {
466
+ $( "#wpsl-meta-nav li" + $target + "-tab" ).addClass( "wpsl-active" ).siblings().removeClass( "wpsl-active" );
467
+ $( ".wpsl-store-meta > div" + $target + "" ).show().addClass( "wpsl-active" ).siblings( "div" ).hide().removeClass( "wpsl-active" );
468
+ }
469
+ }
470
+
471
+ /**
472
+ * Get the id or class of the first element that's an required field, but is empty.
473
+ *
474
+ * We need this to determine which tab we need to set active,
475
+ * which will be the tab were the first error occured.
476
+ *
477
+ * @since 2.0.0
478
+ * @param {object} elem The element the error occured on
479
+ * @returns {object} firstErrorElem The id/class set on the first elem that an error occured on and the attr value
480
+ */
481
+ function getFirstErrorElemAttr( elem ) {
482
+ var firstErrorElem = { "type": "id", "val" : elem.attr( "id" ) };
483
+
484
+ // If no ID value exists, then check if we can get the class name.
485
+ if ( typeof firstErrorElem.val === "undefined" ) {
486
+ firstErrorElem = { "type": "class", "val" : elem.attr( "class" ) };
487
+ }
488
+
489
+ return firstErrorElem;
490
+ }
491
+
492
+ // If we have a store hours dropdown, init the event handler.
493
+ if ( $( "#wpsl-store-hours" ).length ) {
494
+ initHourEvents();
495
+ }
496
+
497
+ /**
498
+ * Assign an event handler to the button that enables
499
+ * users to remove an opening hour period.
500
+ *
501
+ * @since 2.0.0
502
+ * @returns {void}
503
+ */
504
+ function initHourEvents() {
505
+ $( "#wpsl-store-hours .wpsl-icon-cancel-circled" ).off();
506
+ $( "#wpsl-store-hours .wpsl-icon-cancel-circled" ).on( "click", function() {
507
+ removePeriod( $( this ) );
508
+ });
509
+ }
510
+
511
+ // Add new openings period to the openings hours table.
512
+ $( ".wpsl-add-period" ).on( "click", function( e ) {
513
+ var newPeriod,
514
+ hours = {},
515
+ returnList = true,
516
+ $tr = $( this ).parents( "tr" ),
517
+ periodCount = currentPeriodCount( $( this ) ),
518
+ periodCss = ( periodCount >= 1 ) ? "wpsl-current-period wpsl-multiple-periods" : "wpsl-current-period",
519
+ day = $tr.find( ".wpsl-opening-hours" ).attr( "data-day" ),
520
+ selectName = ( $( "#wpsl-settings-form" ).length ) ? "wpsl_editor[dropdown]" : "wpsl[hours]";
521
+
522
+ newPeriod = '<div class="' + periodCss +'">';
523
+ newPeriod += '<select autocomplete="off" name="' + selectName + '[' + day + '_open][]" class="wpsl-open-hour">' + createHourOptionList( returnList ) + '</select>';
524
+ newPeriod += '<span> - </span>';
525
+ newPeriod += '<select autocomplete="off" name="' + selectName + '[' + day + '_close][]" class="wpsl-close-hour">' + createHourOptionList( returnList ) + '</select>';
526
+ newPeriod += '<div class="wpsl-icon-cancel-circled"></div>';
527
+ newPeriod += '</div>';
528
+
529
+ $tr.find( ".wpsl-store-closed" ).remove();
530
+ $( "#wpsl-hours-" + day + "" ).append( newPeriod ).end();
531
+
532
+ initHourEvents();
533
+
534
+ if ( $( "#wpsl-editor-hour-format" ).val() == 24 ) {
535
+ hours = {
536
+ "open": "09:00",
537
+ "close": "17:00"
538
+ };
539
+ } else {
540
+ hours = {
541
+ "open": "9:00 AM",
542
+ "close": "5:00 PM"
543
+ };
544
+ }
545
+
546
+ $tr.find( ".wpsl-open-hour:last option[value='" + hours.open + "']" ).attr( "selected", "selected" );
547
+ $tr.find( ".wpsl-close-hour:last option[value='" + hours.close + "']" ).attr( "selected", "selected" );
548
+
549
+ e.preventDefault();
550
+ });
551
+
552
+ /**
553
+ * Remove an openings period
554
+ *
555
+ * @since 2.0.0
556
+ * @param {object} elem The clicked element
557
+ * @return {void}
558
+ */
559
+ function removePeriod( elem ) {
560
+ var periodsLeft = currentPeriodCount( elem ),
561
+ $tr = elem.parents( "tr" ),
562
+ day = $tr.find( ".wpsl-opening-hours" ).attr( "data-day" );
563
+
564
+ // If there was 1 opening hour left then we add the 'Closed' text.
565
+ if ( periodsLeft == 1 ) {
566
+ $tr.find( ".wpsl-opening-hours" ).html( "<p class='wpsl-store-closed'>" + wpslL10n.closedDate + "<input type='hidden' name='wpsl[hours][" + day + "_open]' value='' /></p>" );
567
+ }
568
+
569
+ // Remove the selected openings period.
570
+ elem.parent().closest( ".wpsl-current-period" ).remove();
571
+
572
+ // If the first element has the multiple class, then we need to remove it.
573
+ if ( $tr.find( ".wpsl-opening-hours div:first-child" ).hasClass( "wpsl-multiple-periods" ) ) {
574
+ $tr.find( ".wpsl-opening-hours div:first-child" ).removeClass( "wpsl-multiple-periods" );
575
+ }
576
+ }
577
+
578
+ /**
579
+ * Count the current opening periods in a day block
580
+ *
581
+ * @since 2.0.0
582
+ * @param {object} elem The clicked element
583
+ * @return {string} currentPeriods The ammount of period divs found
584
+ */
585
+ function currentPeriodCount( elem ) {
586
+ var currentPeriods = elem.parents( "tr" ).find( ".wpsl-current-period" ).length;
587
+
588
+ return currentPeriods;
589
+ }
590
+
591
+ /**
592
+ * Create an option list with the correct opening hour format and interval
593
+ *
594
+ * @since 2.0.0
595
+ * @param {string} returnList Whether to return the option list or call the setSelectedOpeningHours function
596
+ * @return {mixed} optionList The html for the option list of or void
597
+ */
598
+ function createHourOptionList( returnList ) {
599
+ var openingHours, openingHourInterval, hour, hrFormat,
600
+ pm = false,
601
+ twelveHrsAfternoon = false,
602
+ pmOrAm = "",
603
+ optionList = "",
604
+ openingTimes = [],
605
+ openingHourOptions = {
606
+ "hours": {
607
+ "hr12": [ 12, 1, 2, 3 ,4 ,5 ,6, 7, 8, 9, 10, 11, 12, 1, 2, 3 , 4, 5, 6, 7, 8, 9, 10, 11 ],
608
+ "hr24": [ 0, 1, 2, 3 ,4 ,5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ,16, 17, 18, 19, 20, 21, 22, 23 ]
609
+ },
610
+ "interval": [ '00', '15', '30', '45' ]
611
+ };
612
+
613
+ if ( $( "#wpsl-editor-hour-format" ).length ) {
614
+ hrFormat = $( "#wpsl-editor-hour-format" ).val();
615
+ } else {
616
+ hrFormat = wpslSettings.hourFormat;
617
+ }
618
+
619
+ $( "#wpsl-store-hours td" ).removeAttr( "style" );
620
+
621
+ if ( hrFormat == 12 ) {
622
+ $( "#wpsl-store-hours" ).removeClass().addClass( "wpsl-twelve-format" );
623
+ openingHours = openingHourOptions.hours.hr12;
624
+ } else {
625
+ $( "#wpsl-store-hours" ).removeClass().addClass( "wpsl-twentyfour-format" );
626
+ openingHours = openingHourOptions.hours.hr24;
627
+ }
628
+
629
+ openingHourInterval = openingHourOptions.interval;
630
+
631
+ for ( var i = 0; i < openingHours.length; i++ ) {
632
+ hour = openingHours[i];
633
+
634
+ /*
635
+ * If the 12hr format is selected, then check if we need to show AM or PM.
636
+ *
637
+ * If the 24hr format is selected and the hour is a single digit
638
+ * then we add a 0 to the start so 5:00 becomes 05:00.
639
+ */
640
+ if ( hrFormat == 12 ) {
641
+ if ( hour >= 12 ) {
642
+ pm = ( twelveHrsAfternoon ) ? true : false;
643
+
644
+ twelveHrsAfternoon = true;
645
+ }
646
+
647
+ pmOrAm = ( pm ) ? "PM" : "AM";
648
+ } else if ( ( hrFormat == 24 ) && ( hour.toString().length == 1 ) ) {
649
+ hour = "0" + hour;
650
+ }
651
+
652
+ // Collect the new opening hour format and interval.
653
+ for ( var j = 0; j < openingHourInterval.length; j++ ) {
654
+ openingTimes.push( hour + ":" + openingHourInterval[j] + " " + pmOrAm );
655
+ }
656
+ }
657
+
658
+ // Create the <option> list.
659
+ for ( var i = 0; i < openingTimes.length; i++ ) {
660
+ optionList = optionList + '<option value="' + $.trim( openingTimes[i] ) + '">' + $.trim( openingTimes[i] ) + '</option>';
661
+ }
662
+
663
+ if ( returnList ) {
664
+ return optionList;
665
+ } else {
666
+ setSelectedOpeningHours( optionList, hrFormat );
667
+ }
668
+ }
669
+
670
+ /**
671
+ * Set the correct selected opening hour in the dropdown
672
+ *
673
+ * @since 2.0.0
674
+ * @param {string} optionList The html for the option list
675
+ * @param {string} hrFormat The html for the option list
676
+ * @return {void}
677
+ */
678
+ function setSelectedOpeningHours( optionList, hrFormat ) {
679
+ var splitHour, hourType, periodBlock,
680
+ hours = {};
681
+
682
+ /*
683
+ * Loop over each open/close block and make sure the selected
684
+ * value is still set as selected after changing the hr format.
685
+ */
686
+ $( ".wpsl-current-period" ).each( function() {
687
+ periodBlock = $( this ),
688
+ hours = {
689
+ "open": $( this ).find( ".wpsl-open-hour" ).val(),
690
+ "close": $( this ).find( ".wpsl-close-hour" ).val()
691
+ };
692
+
693
+ // Set the new hour format for both dropdowns.
694
+ $( this ).find( "select" ).html( optionList ).promise().done( function() {
695
+
696
+ // Select the correct start/end hours as selected.
697
+ for ( var key in hours ) {
698
+ if ( hours.hasOwnProperty( key ) ) {
699
+
700
+ // Breakup the hour, so we can check the part before and after the : separately.
701
+ splitHour = hours[key].split( ":" );
702
+
703
+ if ( hrFormat == 12 ) {
704
+ hourType = "";
705
+
706
+ // Change the hours to a 12hr format and add the correct AM or PM.
707
+ if ( hours[key].charAt( 0 ) == 0 ) {
708
+ hours[key] = hours[key].substr( 1 );
709
+ hourType = " AM";
710
+ } else if ( ( splitHour[0].length == 2 ) && ( splitHour[0] > 12 ) ) {
711
+ hours[key] = ( splitHour[0] - 12 ) + ":" + splitHour[1];
712
+ hourType = " PM";
713
+ } else if ( splitHour[0] < 12 ) {
714
+ hours[key] = splitHour[0] + ":" + splitHour[1];
715
+ hourType = " AM";
716
+ } else if ( splitHour[0] == 12 ) {
717
+ hours[key] = splitHour[0] + ":" + splitHour[1];
718
+ hourType = " PM";
719
+ }
720
+
721
+ // Add either AM or PM behind the time.
722
+ if ( ( splitHour[1].indexOf( "PM" ) == -1 ) && ( splitHour[1].indexOf( "AM" ) == -1 ) ) {
723
+ hours[key] = hours[key] + hourType;
724
+ }
725
+
726
+ } else if ( hrFormat == 24 ) {
727
+
728
+ // Change the hours to a 24hr format and remove the AM or PM.
729
+ if ( splitHour[1].indexOf( "PM" ) != -1 ) {
730
+ if ( splitHour[0] == 12 ) {
731
+ hours[key] = "12:" + splitHour[1].replace( " PM", "" );
732
+ } else {
733
+ hours[key] = ( + splitHour[0] + 12 ) + ":" + splitHour[1].replace( " PM", "" );
734
+ }
735
+ } else if ( splitHour[1].indexOf( "AM" ) != -1 ) {
736
+ if ( splitHour[0].toString().length == 1 ) {
737
+ hours[key] = "0" + splitHour[0] + ":" + splitHour[1].replace( " AM", "" );
738
+ } else {
739
+ hours[key] = splitHour[0] + ":" + splitHour[1].replace( " AM", "" );
740
+ }
741
+ } else {
742
+ hours[key] = splitHour[0] + ":" + splitHour[1]; // When the interval is changed
743
+ }
744
+ }
745
+
746
+ // Set the correct value as the selected one.
747
+ periodBlock.find( ".wpsl-" + key + "-hour option[value='" + $.trim( hours[key] ) + "']" ).attr( "selected", "selected" );
748
+ }
749
+ }
750
+
751
+ });
752
+ });
753
+ }
754
+
755
+ // Update the opening hours format if one of the dropdown values change.
756
+ $( "#wpsl-editor-hour-format, #wpsl-editor-hour-interval" ).on( "change", function() {
757
+ createHourOptionList();
758
+ });
759
+
760
+ // Show the tooltips.
761
+ $( ".wpsl-info" ).on( "mouseover", function() {
762
+ $( this ).find( ".wpsl-info-text" ).show();
763
+ });
764
+
765
+ $( ".wpsl-info" ).on( "mouseout", function() {
766
+ $( this ).find( ".wpsl-info-text" ).hide();
767
+ });
768
+
769
+ // If the start location is empty, then we color the info icon red instead of black.
770
+ if ( $( "#wpsl-latlng" ).length && !$( "#wpsl-latlng" ).val() ) {
771
+ $( "#wpsl-latlng" ).siblings( "label" ).find( ".wpsl-info" ).addClass( "wpsl-required-setting" );
772
+ }
773
+
774
+ /**
775
+ * Try to apply the custom style data to the map.
776
+ *
777
+ * If the style data is invalid json we show an error.
778
+ *
779
+ * @since 2.0.0
780
+ * @return {void}
781
+ */
782
+ function tryCustomMapStyle() {
783
+ var validStyle = "",
784
+ mapStyle = $.trim( $( "#wpsl-map-style" ).val() );
785
+
786
+ $( ".wpsl-style-preview-error" ).remove();
787
+
788
+ if ( mapStyle ) {
789
+
790
+ // Make sure the data is valid json.
791
+ validStyle = tryParseJSON( mapStyle );
792
+
793
+ if ( !validStyle ) {
794
+ $( "#wpsl-style-preview" ).after( "<div class='wpsl-style-preview-error'>" + wpslL10n.styleError + "</div>" );
795
+ }
796
+ }
797
+
798
+ map.setOptions({ styles: validStyle });
799
+ }
800
+
801
+ // Handle the map style changes on the settings page.
802
+ if ( $( "#wpsl-map-style" ).val() ) {
803
+ tryCustomMapStyle();
804
+ }
805
+
806
+ // Handle clicks on the map style preview button.
807
+ $( "#wpsl-style-preview" ).on( "click", function() {
808
+ tryCustomMapStyle();
809
+
810
+ return false;
811
+ });
812
+
813
+ /**
814
+ * Make sure the JSON is valid.
815
+ *
816
+ * @link http://stackoverflow.com/a/20392392/1065294
817
+ * @since 2.0.0
818
+ * @param {string} jsonString The JSON data
819
+ * @return {object|boolean} The JSON string or false if it's invalid json.
820
+ */
821
+ function tryParseJSON( jsonString ) {
822
+
823
+ try {
824
+ var o = JSON.parse( jsonString );
825
+
826
+ /*
827
+ * Handle non-exception-throwing cases:
828
+ * Neither JSON.parse(false) or JSON.parse(1234) throw errors, hence the type-checking,
829
+ * but... JSON.parse(null) returns 'null', and typeof null === "object",
830
+ * so we must check for that, too.
831
+ */
832
+ if ( o && typeof o === "object" && o !== null ) {
833
+ return o;
834
+ }
835
+ }
836
+ catch ( e ) { }
837
+
838
+ return false;
839
+ }
840
+
841
+ /**
842
+ * Look for changes on the start location input field.
843
+ *
844
+ * If there's a problem with the browser API key,
845
+ * then a 'gm-err-autocomplete' class is added to the input field.
846
+ *
847
+ * When this happens we create a notice explaining how to fix the issue.
848
+ *
849
+ * @since 2.2.10
850
+ * @return void
851
+ */
852
+ function observeBrowserKeyErrors() {
853
+ var observer,
854
+ attributeValue = '',
855
+ MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
856
+ $startName = $( "#wpsl-start-name" );
857
+
858
+ if ( typeof MutationObserver !== "undefined" ) {
859
+ observer = new MutationObserver( function( mutations ) {
860
+
861
+ // Loop over the mutations.
862
+ mutations.forEach( function( mutation ) {
863
+ if ( mutation.attributeName === "class" ) {
864
+ attributeValue = $( mutation.target ).prop( mutation.attributeName );
865
+
866
+ // Look for a specific class that's added when there's a problem with the browser API key
867
+ if ( ( attributeValue.indexOf( "gm-err-autocomplete" ) !== -1 ) ) {
868
+ createErrorNotice( wpslL10n.browserKeyError, "browser-key" );
869
+ }
870
+ }
871
+ });
872
+ });
873
+
874
+ observer.observe( $startName[0], {
875
+ attributes: true
876
+ });
877
+ }
878
+ }
879
+
880
+ /**
881
+ * Make a request to the geocode API with the
882
+ * provided server key to check for any errors.
883
+ *
884
+ * @since 2.2.10
885
+ * @return void
886
+ */
887
+ function validateServerKey() {
888
+ var ajaxData = {
889
+ action: "validate_server_key",
890
+ server_key: $( "#wpsl-api-server-key" ).val()
891
+ };
892
+
893
+ $.get( wpslSettings.ajaxurl, ajaxData, function( response ) {
894
+ if ( !response.valid && typeof response.msg !== "undefined" ) {
895
+ createErrorNotice( response.msg, "server-key" );
896
+ } else {
897
+ $( "#wpsl-api-server-key" ).removeClass( "wpsl-error" );
898
+ }
899
+ });
900
+ }
901
+
902
+ /**
903
+ * Create the error notice.
904
+ *
905
+ * @since 2.2.10
906
+ * @param {string} errorMsg The error message to show
907
+ * @param {string} type The type of API key we need to show the notice for
908
+ * @return void
909
+ */
910
+ function createErrorNotice( errorMsg, type ) {
911
+ var errorNotice, noticeLocation;
912
+
913
+ errorNotice = '<div id="setting-error-' + type + '" class="error settings-error notice is-dismissible">';
914
+ errorNotice += '<p><strong>' + errorMsg + '</strong></p>';
915
+ errorNotice += '<button type="button" class="notice-dismiss"><span class="screen-reader-text">' + wpslL10n.dismissNotice + '</span></button>';
916
+ errorNotice += '</div>';
917
+
918
+ noticeLocation = ( $( "#wpsl-tabs" ).length ) ? 'wpsl-tabs' : 'wpsl-settings-form';
919
+
920
+ $( "#" + noticeLocation + "" ).before( errorNotice );
921
+ $( "#wpsl-api-" + type + "").addClass( "wpsl-error" );
922
+ }
923
+
924
+ // Make sure the custom error notices can be removed
925
+ $( "#wpsl-wrap" ).on( "click", "button.notice-dismiss", function() {
926
+ $( this ).closest( 'div.notice' ).remove();
927
+ })
928
+
929
+ /**
930
+ * Handle the red warning that's shown next to the
931
+ * force zipcode search option if the autocomplete
932
+ * value is changed.
933
+ *
934
+ * The autocomplete option itself doesn't support
935
+ * zip only searches, so having both of them enabled
936
+ * gives the user the wrong expectation.
937
+ */
938
+ $( "#wpsl-search-autocomplete, #wpsl-force-postalcode" ).change( function() {
939
+ var $info = $( "#wpsl-force-postalcode" ).parent( "p" ).find( ".wpsl-info-zip-only" );
940
+
941
+ if ( $( "#wpsl-search-autocomplete" ).is( ":checked" ) && $( "#wpsl-force-postalcode" ).is( ":checked" ) ) {
942
+ $info.show();
943
+ } else {
944
+ $info.hide();
945
+ }
946
+ });
947
+
948
  });
admin/js/wpsl-admin.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(e){var s,t,o,l,r,n,i,a,p,c,d,w,u,v=[];function h(e){var t=new google.maps.Marker({position:e,map:s,draggable:!0});v.push(t),google.maps.event.addListener(t,"dragend",function(){m(t.getPosition(),"store")})}function m(s,t){var o,l,r=(o=[],l=s.toString().split(",",2),o[0]=l[0].replace("(",""),o[1]=l[1].replace(")",""),o),n=g(r[0]),i=g(r[1]);"store"==t?(e("#wpsl-lat").val(n),e("#wpsl-lng").val(i)):"zoom"==t&&e("#wpsl-latlng").val(n+","+i)}function g(e){return Math.round(e*Math.pow(10,6))/Math.pow(10,6)}function f(s){e("#wpsl-meta-nav li"+(s="first"==s?":first-child":"."+s)+"-tab").hasClass("wpsl-active")||(e("#wpsl-meta-nav li"+s+"-tab").addClass("wpsl-active").siblings().removeClass("wpsl-active"),e(".wpsl-store-meta > div"+s).show().addClass("wpsl-active").siblings("div").hide().removeClass("wpsl-active"))}function y(){e("#wpsl-store-hours .wpsl-icon-cancel-circled").off(),e("#wpsl-store-hours .wpsl-icon-cancel-circled").on("click",function(){!function(e){var s=b(e),t=e.parents("tr"),o=t.find(".wpsl-opening-hours").attr("data-day");1==s&&t.find(".wpsl-opening-hours").html("<p class='wpsl-store-closed'>"+wpslL10n.closedDate+"<input type='hidden' name='wpsl[hours]["+o+"_open]' value='' /></p>");e.parent().closest(".wpsl-current-period").remove(),t.find(".wpsl-opening-hours div:first-child").hasClass("wpsl-multiple-periods")&&t.find(".wpsl-opening-hours div:first-child").removeClass("wpsl-multiple-periods")}(e(this))})}function b(e){return e.parents("tr").find(".wpsl-current-period").length}function C(s){var t,o,l,r,n,i,a,p,c,d,w=!1,u=!1,v="",h="",m=[],g={hr12:[12,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11],hr24:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]},f=["00","15","30","45"];r=e("#wpsl-editor-hour-format").length?e("#wpsl-editor-hour-format").val():wpslSettings.hourFormat,e("#wpsl-store-hours td").removeAttr("style"),12==r?(e("#wpsl-store-hours").removeClass().addClass("wpsl-twelve-format"),t=g.hr12):(e("#wpsl-store-hours").removeClass().addClass("wpsl-twentyfour-format"),t=g.hr24),o=f;for(var y=0;y<t.length;y++){l=t[y],12==r?(l>=12&&(w=!!u,u=!0),v=w?"PM":"AM"):24==r&&1==l.toString().length&&(l="0"+l);for(var b=0;b<o.length;b++)m.push(l+":"+o[b]+" "+v)}for(y=0;y<m.length;y++)h=h+'<option value="'+e.trim(m[y])+'">'+e.trim(m[y])+"</option>";if(s)return h;n=h,i=r,d={},e(".wpsl-current-period").each(function(){c=e(this),d={open:e(this).find(".wpsl-open-hour").val(),close:e(this).find(".wpsl-close-hour").val()},e(this).find("select").html(n).promise().done(function(){for(var s in d)d.hasOwnProperty(s)&&(a=d[s].split(":"),12==i?(p="",0==d[s].charAt(0)?(d[s]=d[s].substr(1),p=" AM"):2==a[0].length&&a[0]>12?(d[s]=a[0]-12+":"+a[1],p=" PM"):a[0]<12?(d[s]=a[0]+":"+a[1],p=" AM"):12==a[0]&&(d[s]=a[0]+":"+a[1],p=" PM"),-1==a[1].indexOf("PM")&&-1==a[1].indexOf("AM")&&(d[s]=d[s]+p)):24==i&&(-1!=a[1].indexOf("PM")?12==a[0]?d[s]="12:"+a[1].replace(" PM",""):d[s]=+a[0]+12+":"+a[1].replace(" PM",""):-1!=a[1].indexOf("AM")?1==a[0].toString().length?d[s]="0"+a[0]+":"+a[1].replace(" AM",""):d[s]=a[0]+":"+a[1].replace(" AM",""):d[s]=a[0]+":"+a[1]),c.find(".wpsl-"+s+"-hour option[value='"+e.trim(d[s])+"']").attr("selected","selected"))})})}function M(){var t="",o=e.trim(e("#wpsl-map-style").val());e(".wpsl-style-preview-error").remove(),o&&((t=function(e){try{var s=JSON.parse(e);if(s&&"object"==typeof s&&null!==s)return s}catch(e){}return!1}(o))||e("#wpsl-style-preview").after("<div class='wpsl-style-preview-error'>"+wpslL10n.styleError+"</div>")),s.setOptions({styles:t})}function k(s,t){var o,l;o='<div id="setting-error-'+t+'" class="error settings-error notice is-dismissible">',o+="<p><strong>"+s+"</strong></p>",o+='<button type="button" class="notice-dismiss"><span class="screen-reader-text">'+wpslL10n.dismissNotice+"</span></button>",o+="</div>",l=e("#wpsl-tabs").length?"wpsl-tabs":"wpsl-settings-form",e("#"+l).before(o),e("#wpsl-api-"+t).addClass("wpsl-error")}e("#wpsl-gmap-wrap").length&&(o=wpslSettings.defaultLatLng.split(","),l=new google.maps.LatLng(o[0],o[1]),r={},r={zoom:parseInt(wpslSettings.defaultZoom),center:l,mapTypeId:google.maps.MapTypeId[wpslSettings.mapType.toUpperCase()],mapTypeControl:!1,streetViewControl:!1,zoomControlOptions:{position:google.maps.ControlPosition.RIGHT_TOP}},t=new google.maps.Geocoder,s=new google.maps.Map(document.getElementById("wpsl-gmap-wrap"),r),i=e("#wpsl-lat").val(),a=e("#wpsl-lng").val(),i&&a&&(n=new google.maps.LatLng(i,a),s.setCenter(n),s.setZoom(16),h(n))),e("#wpsl-map-settings").length&&(c=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver,d=e("#wpsl-start-name"),void 0!==c&&new c(function(s){s.forEach(function(s){"class"===s.attributeName&&-1!==e(s.target).prop(s.attributeName).indexOf("gm-err-autocomplete")&&k(wpslL10n.browserKeyError,"browser-key")})}).observe(d[0],{attributes:!0}),e("#wpsl-api-server-key").hasClass("wpsl-validate-me")&&!e("#setting-error-server-key").length&&(p={action:"validate_server_key",server_key:e("#wpsl-api-server-key").val()},e.get(wpslSettings.ajaxurl,p,function(s){s.valid||void 0===s.msg?e("#wpsl-api-server-key").removeClass("wpsl-error"):k(s.msg,"server-key")}))),e("#wpsl-start-name").length&&(w=document.getElementById("wpsl-start-name"),u=new google.maps.places.Autocomplete(w,{types:["geocode"]}),google.maps.event.addListener(u,"place_changed",function(){m(u.getPlace().geometry.location,"zoom")})),e("#wpsl-lookup-location").on("click",function(o){var l,r;o.preventDefault(),!function(){var s,t,o=!1;if(e(".wpsl-store-meta input").removeClass("wpsl-error"),void 0!==wpslSettings.requiredFields&&_.isArray(wpslSettings.requiredFields))for(t=wpslSettings.requiredFields,s=0;s<t.length;s++)e.trim(e("#wpsl-"+t[s]).val())||(e("#wpsl-"+t[s]).addClass("wpsl-error"),o=!0);return o}()?(r=function(){var s,t,o=[],l=["address","city","state","zip","country"];for(s=0;s<l.length;s++)(t=e.trim(e("#wpsl-"+l[s]).val()))&&o.push(t),t="";return o.join()}(),t.geocode({address:r},function(t,o){o===google.maps.GeocoderStatus.OK?(void 0!==v[0]&&v[0].draggable&&(v[0].setMap(null),v.splice(0,1)),s.setCenter(t[0].geometry.location),s.setZoom(16),h(t[0].geometry.location),m(t[0].geometry.location,"store"),l=function(e){var s,t,o={},l=e[0].address_components.length;for(s=0;s<l;s++)t=e[0].address_components[s].types,/^country,political$/.test(t)&&(o={long_name:e[0].address_components[s].long_name,short_name:e[0].address_components[s].short_name});return{country:o}}(t),e("#wpsl-country").val(l.country.long_name),e("#wpsl-country_iso").val(l.country.short_name)):alert(wpslL10n.geocodeFail+": "+o)})):(f("first"),alert(wpslL10n.missingGeoData))}),e(".wpsl-marker-list input[type=radio]").click(function(){e(this).parents(".wpsl-marker-list").find("li").removeClass(),e(this).parent("li").addClass("wpsl-active-marker")}),e(".wpsl-marker-list li").click(function(){e(this).parents(".wpsl-marker-list").find("input").prop("checked",!1),e(this).find("input").prop("checked",!0),e(this).siblings().removeClass(),e(this).addClass("wpsl-active-marker")}),e(".wpsl-has-conditional-option").on("change",function(){e(this).parent().next(".wpsl-conditional-option").toggle()}),e("#wpsl-store-template").on("change",function(){var s=e("#wpsl-listing-below-no-scroll");"below_map"==e(this).val()?s.show():s.hide()}),e("#wpsl-api-region").on("change",function(){var s=e("#wpsl-geocode-component");e(this).val()?s.show():s.hide()}),e("#wpsl-editor-hour-input").on("change",function(){e(".wpsl-"+e(this).val()+"-hours").show().siblings("div").hide(),e(".wpsl-hour-notice").toggle()}),e("#wpsl-meta-nav li").on("click",function(s){var t=e(this).attr("class");t=t.split("-tab"),s.stopPropagation(),e(this).addClass("wpsl-active").siblings().removeClass("wpsl-active"),e(".wpsl-store-meta ."+t[0]).show().addClass("wpsl-active").siblings("div").hide().removeClass("wpsl-active")}),e("#wpsl-store-details").length&&e("#publish").click(function(){var s,t,o,l='<div id="message" class="error"><p>'+wpslL10n.requiredFields+"</p></div>",r=!1;return e("#wpbody-content .wrap #message").remove(),e(".wpsl-required").removeClass("wpsl-error"),e(".wpsl-required").each(function(){""==e(this).val()&&(e(this).addClass("wpsl-error"),void 0===s&&(s=function(e){var s={type:"id",val:e.attr("id")};void 0===s.val&&(s={type:"class",val:e.attr("class")});return s}(e(this))),r=!0)}),!r||(e("#wpbody-content .wrap > h2").after(l),void 0!==s.val&&("id"==s.type?(t=e("#"+s.val).parents(".wpsl-tab").attr("class"),e("html, body").scrollTop(Math.round(e("#"+s.val).offset().top-100))):"class"==s.type&&(o=s.val.replace(/wpsl-required|wpsl-error/g,""),t=e("."+o).parents(".wpsl-tab").attr("class"),e("html, body").scrollTop(Math.round(e("."+o).offset().top-100))),t=e.trim(t.replace(/wpsl-tab|wpsl-active/g,""))),f(t||"first"),e("#publish").removeClass("button-primary-disabled"),e(".spinner").hide(),!1)}),e("#wpsl-store-hours").length&&y(),e(".wpsl-add-period").on("click",function(s){var t,o={},l=e(this).parents("tr"),r=b(e(this))>=1?"wpsl-current-period wpsl-multiple-periods":"wpsl-current-period",n=l.find(".wpsl-opening-hours").attr("data-day"),i=e("#wpsl-settings-form").length?"wpsl_editor[dropdown]":"wpsl[hours]";t='<div class="'+r+'">',t+='<select autocomplete="off" name="'+i+"["+n+'_open][]" class="wpsl-open-hour">'+C(!0)+"</select>",t+="<span> - </span>",t+='<select autocomplete="off" name="'+i+"["+n+'_close][]" class="wpsl-close-hour">'+C(!0)+"</select>",t+='<div class="wpsl-icon-cancel-circled"></div>',t+="</div>",l.find(".wpsl-store-closed").remove(),e("#wpsl-hours-"+n).append(t).end(),y(),o=24==e("#wpsl-editor-hour-format").val()?{open:"09:00",close:"17:00"}:{open:"9:00 AM",close:"5:00 PM"},l.find(".wpsl-open-hour:last option[value='"+o.open+"']").attr("selected","selected"),l.find(".wpsl-close-hour:last option[value='"+o.close+"']").attr("selected","selected"),s.preventDefault()}),e("#wpsl-editor-hour-format, #wpsl-editor-hour-interval").on("change",function(){C()}),e(".wpsl-info").on("mouseover",function(){e(this).find(".wpsl-info-text").show()}),e(".wpsl-info").on("mouseout",function(){e(this).find(".wpsl-info-text").hide()}),e("#wpsl-latlng").length&&!e("#wpsl-latlng").val()&&e("#wpsl-latlng").siblings("label").find(".wpsl-info").addClass("wpsl-required-setting"),e("#wpsl-map-style").val()&&M(),e("#wpsl-style-preview").on("click",function(){return M(),!1}),e("#wpsl-wrap").on("click","button.notice-dismiss",function(){e(this).closest("div.notice").remove()})});
1
+ jQuery(document).ready(function(e){var s,t,o,l,r,n,i,a,p,c,d,w,u,h=[];function v(e){var t=new google.maps.Marker({position:e,map:s,draggable:!0});h.push(t),google.maps.event.addListener(t,"dragend",function(){m(t.getPosition(),"store")})}function m(s,t){var o,l,r=(o=[],l=s.toString().split(",",2),o[0]=l[0].replace("(",""),o[1]=l[1].replace(")",""),o),n=g(r[0]),i=g(r[1]);"store"==t?(e("#wpsl-lat").val(n),e("#wpsl-lng").val(i)):"zoom"==t&&e("#wpsl-latlng").val(n+","+i)}function g(e){return Math.round(e*Math.pow(10,6))/Math.pow(10,6)}function f(s){e("#wpsl-meta-nav li"+(s="first"==s?":first-child":"."+s)+"-tab").hasClass("wpsl-active")||(e("#wpsl-meta-nav li"+s+"-tab").addClass("wpsl-active").siblings().removeClass("wpsl-active"),e(".wpsl-store-meta > div"+s).show().addClass("wpsl-active").siblings("div").hide().removeClass("wpsl-active"))}function y(){e("#wpsl-store-hours .wpsl-icon-cancel-circled").off(),e("#wpsl-store-hours .wpsl-icon-cancel-circled").on("click",function(){!function(e){var s=b(e),t=e.parents("tr"),o=t.find(".wpsl-opening-hours").attr("data-day");1==s&&t.find(".wpsl-opening-hours").html("<p class='wpsl-store-closed'>"+wpslL10n.closedDate+"<input type='hidden' name='wpsl[hours]["+o+"_open]' value='' /></p>");e.parent().closest(".wpsl-current-period").remove(),t.find(".wpsl-opening-hours div:first-child").hasClass("wpsl-multiple-periods")&&t.find(".wpsl-opening-hours div:first-child").removeClass("wpsl-multiple-periods")}(e(this))})}function b(e){return e.parents("tr").find(".wpsl-current-period").length}function C(s){var t,o,l,r,n,i,a,p,c,d,w=!1,u=!1,h="",v="",m=[],g={hr12:[12,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11],hr24:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]},f=["00","15","30","45"];r=e("#wpsl-editor-hour-format").length?e("#wpsl-editor-hour-format").val():wpslSettings.hourFormat,e("#wpsl-store-hours td").removeAttr("style"),12==r?(e("#wpsl-store-hours").removeClass().addClass("wpsl-twelve-format"),t=g.hr12):(e("#wpsl-store-hours").removeClass().addClass("wpsl-twentyfour-format"),t=g.hr24),o=f;for(var y=0;y<t.length;y++){l=t[y],12==r?(l>=12&&(w=!!u,u=!0),h=w?"PM":"AM"):24==r&&1==l.toString().length&&(l="0"+l);for(var b=0;b<o.length;b++)m.push(l+":"+o[b]+" "+h)}for(y=0;y<m.length;y++)v=v+'<option value="'+e.trim(m[y])+'">'+e.trim(m[y])+"</option>";if(s)return v;n=v,i=r,d={},e(".wpsl-current-period").each(function(){c=e(this),d={open:e(this).find(".wpsl-open-hour").val(),close:e(this).find(".wpsl-close-hour").val()},e(this).find("select").html(n).promise().done(function(){for(var s in d)d.hasOwnProperty(s)&&(a=d[s].split(":"),12==i?(p="",0==d[s].charAt(0)?(d[s]=d[s].substr(1),p=" AM"):2==a[0].length&&a[0]>12?(d[s]=a[0]-12+":"+a[1],p=" PM"):a[0]<12?(d[s]=a[0]+":"+a[1],p=" AM"):12==a[0]&&(d[s]=a[0]+":"+a[1],p=" PM"),-1==a[1].indexOf("PM")&&-1==a[1].indexOf("AM")&&(d[s]=d[s]+p)):24==i&&(-1!=a[1].indexOf("PM")?12==a[0]?d[s]="12:"+a[1].replace(" PM",""):d[s]=+a[0]+12+":"+a[1].replace(" PM",""):-1!=a[1].indexOf("AM")?1==a[0].toString().length?d[s]="0"+a[0]+":"+a[1].replace(" AM",""):d[s]=a[0]+":"+a[1].replace(" AM",""):d[s]=a[0]+":"+a[1]),c.find(".wpsl-"+s+"-hour option[value='"+e.trim(d[s])+"']").attr("selected","selected"))})})}function k(){var t="",o=e.trim(e("#wpsl-map-style").val());e(".wpsl-style-preview-error").remove(),o&&((t=function(e){try{var s=JSON.parse(e);if(s&&"object"==typeof s&&null!==s)return s}catch(e){}return!1}(o))||e("#wpsl-style-preview").after("<div class='wpsl-style-preview-error'>"+wpslL10n.styleError+"</div>")),s.setOptions({styles:t})}function M(s,t){var o,l;o='<div id="setting-error-'+t+'" class="error settings-error notice is-dismissible">',o+="<p><strong>"+s+"</strong></p>",o+='<button type="button" class="notice-dismiss"><span class="screen-reader-text">'+wpslL10n.dismissNotice+"</span></button>",o+="</div>",l=e("#wpsl-tabs").length?"wpsl-tabs":"wpsl-settings-form",e("#"+l).before(o),e("#wpsl-api-"+t).addClass("wpsl-error")}e("#wpsl-gmap-wrap").length&&(o=wpslSettings.defaultLatLng.split(","),l=new google.maps.LatLng(o[0],o[1]),r={},r={zoom:parseInt(wpslSettings.defaultZoom),center:l,mapTypeId:google.maps.MapTypeId[wpslSettings.mapType.toUpperCase()],mapTypeControl:!1,streetViewControl:!1,zoomControlOptions:{position:google.maps.ControlPosition.RIGHT_TOP}},t=new google.maps.Geocoder,s=new google.maps.Map(document.getElementById("wpsl-gmap-wrap"),r),i=e("#wpsl-lat").val(),a=e("#wpsl-lng").val(),i&&a&&(n=new google.maps.LatLng(i,a),s.setCenter(n),s.setZoom(16),v(n))),e("#wpsl-map-settings").length&&(c=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver,d=e("#wpsl-start-name"),void 0!==c&&new c(function(s){s.forEach(function(s){"class"===s.attributeName&&-1!==e(s.target).prop(s.attributeName).indexOf("gm-err-autocomplete")&&M(wpslL10n.browserKeyError,"browser-key")})}).observe(d[0],{attributes:!0}),e("#wpsl-api-server-key").hasClass("wpsl-validate-me")&&!e("#setting-error-server-key").length&&(p={action:"validate_server_key",server_key:e("#wpsl-api-server-key").val()},e.get(wpslSettings.ajaxurl,p,function(s){s.valid||void 0===s.msg?e("#wpsl-api-server-key").removeClass("wpsl-error"):M(s.msg,"server-key")}))),e("#wpsl-start-name").length&&(w=document.getElementById("wpsl-start-name"),u=new google.maps.places.Autocomplete(w,{types:["geocode"]}),google.maps.event.addListener(u,"place_changed",function(){m(u.getPlace().geometry.location,"zoom")})),e("#wpsl-lookup-location").on("click",function(o){var l,r;o.preventDefault(),!function(){var s,t,o=!1;if(e(".wpsl-store-meta input").removeClass("wpsl-error"),void 0!==wpslSettings.requiredFields&&_.isArray(wpslSettings.requiredFields))for(t=wpslSettings.requiredFields,s=0;s<t.length;s++)e.trim(e("#wpsl-"+t[s]).val())||(e("#wpsl-"+t[s]).addClass("wpsl-error"),o=!0);return o}()?(r=function(){var s,t,o=[],l=["address","city","state","zip","country"];for(s=0;s<l.length;s++)(t=e.trim(e("#wpsl-"+l[s]).val()))&&o.push(t),t="";return o.join()}(),t.geocode({address:r},function(t,o){o===google.maps.GeocoderStatus.OK?(void 0!==h[0]&&h[0].draggable&&(h[0].setMap(null),h.splice(0,1)),s.setCenter(t[0].geometry.location),s.setZoom(16),v(t[0].geometry.location),m(t[0].geometry.location,"store"),l=function(e){var s,t,o={},l=e[0].address_components.length;for(s=0;s<l;s++)t=e[0].address_components[s].types,/^country,political$/.test(t)&&(o={long_name:e[0].address_components[s].long_name,short_name:e[0].address_components[s].short_name});return{country:o}}(t),e("#wpsl-country").val(l.country.long_name),e("#wpsl-country_iso").val(l.country.short_name)):alert(wpslL10n.geocodeFail+": "+o)})):(f("first"),alert(wpslL10n.missingGeoData))}),e(".wpsl-marker-list input[type=radio]").click(function(){e(this).parents(".wpsl-marker-list").find("li").removeClass(),e(this).parent("li").addClass("wpsl-active-marker")}),e(".wpsl-marker-list li").click(function(){e(this).parents(".wpsl-marker-list").find("input").prop("checked",!1),e(this).find("input").prop("checked",!0),e(this).siblings().removeClass(),e(this).addClass("wpsl-active-marker")}),e(".wpsl-has-conditional-option").on("change",function(){e(this).parent().next(".wpsl-conditional-option").toggle()}),e("#wpsl-store-template").on("change",function(){var s=e("#wpsl-listing-below-no-scroll");"below_map"==e(this).val()?s.show():s.hide()}),e("#wpsl-api-region").on("change",function(){var s=e("#wpsl-geocode-component");e(this).val()?s.show():s.hide()}),e("#wpsl-editor-hour-input").on("change",function(){e(".wpsl-"+e(this).val()+"-hours").show().siblings("div").hide(),e(".wpsl-hour-notice").toggle()}),e("#wpsl-meta-nav li").on("click",function(s){var t=e(this).attr("class");t=t.split("-tab"),s.stopPropagation(),e(this).addClass("wpsl-active").siblings().removeClass("wpsl-active"),e(".wpsl-store-meta ."+t[0]).show().addClass("wpsl-active").siblings("div").hide().removeClass("wpsl-active")}),e("#wpsl-store-details").length&&e("#publish").click(function(){var s,t,o,l='<div id="message" class="error"><p>'+wpslL10n.requiredFields+"</p></div>",r=!1;return e("#wpbody-content .wrap #message").remove(),e(".wpsl-required").removeClass("wpsl-error"),e(".wpsl-required").each(function(){""==e(this).val()&&(e(this).addClass("wpsl-error"),void 0===s&&(s=function(e){var s={type:"id",val:e.attr("id")};void 0===s.val&&(s={type:"class",val:e.attr("class")});return s}(e(this))),r=!0)}),!r||(e("#wpbody-content .wrap > h2").after(l),void 0!==s.val&&("id"==s.type?(t=e("#"+s.val).parents(".wpsl-tab").attr("class"),e("html, body").scrollTop(Math.round(e("#"+s.val).offset().top-100))):"class"==s.type&&(o=s.val.replace(/wpsl-required|wpsl-error/g,""),t=e("."+o).parents(".wpsl-tab").attr("class"),e("html, body").scrollTop(Math.round(e("."+o).offset().top-100))),t=e.trim(t.replace(/wpsl-tab|wpsl-active/g,""))),f(t||"first"),e("#publish").removeClass("button-primary-disabled"),e(".spinner").hide(),!1)}),e("#wpsl-store-hours").length&&y(),e(".wpsl-add-period").on("click",function(s){var t,o={},l=e(this).parents("tr"),r=b(e(this))>=1?"wpsl-current-period wpsl-multiple-periods":"wpsl-current-period",n=l.find(".wpsl-opening-hours").attr("data-day"),i=e("#wpsl-settings-form").length?"wpsl_editor[dropdown]":"wpsl[hours]";t='<div class="'+r+'">',t+='<select autocomplete="off" name="'+i+"["+n+'_open][]" class="wpsl-open-hour">'+C(!0)+"</select>",t+="<span> - </span>",t+='<select autocomplete="off" name="'+i+"["+n+'_close][]" class="wpsl-close-hour">'+C(!0)+"</select>",t+='<div class="wpsl-icon-cancel-circled"></div>',t+="</div>",l.find(".wpsl-store-closed").remove(),e("#wpsl-hours-"+n).append(t).end(),y(),o=24==e("#wpsl-editor-hour-format").val()?{open:"09:00",close:"17:00"}:{open:"9:00 AM",close:"5:00 PM"},l.find(".wpsl-open-hour:last option[value='"+o.open+"']").attr("selected","selected"),l.find(".wpsl-close-hour:last option[value='"+o.close+"']").attr("selected","selected"),s.preventDefault()}),e("#wpsl-editor-hour-format, #wpsl-editor-hour-interval").on("change",function(){C()}),e(".wpsl-info").on("mouseover",function(){e(this).find(".wpsl-info-text").show()}),e(".wpsl-info").on("mouseout",function(){e(this).find(".wpsl-info-text").hide()}),e("#wpsl-latlng").length&&!e("#wpsl-latlng").val()&&e("#wpsl-latlng").siblings("label").find(".wpsl-info").addClass("wpsl-required-setting"),e("#wpsl-map-style").val()&&k(),e("#wpsl-style-preview").on("click",function(){return k(),!1}),e("#wpsl-wrap").on("click","button.notice-dismiss",function(){e(this).closest("div.notice").remove()}),e("#wpsl-search-autocomplete, #wpsl-force-postalcode").change(function(){var s=e("#wpsl-force-postalcode").parent("p").find(".wpsl-info-zip-only");e("#wpsl-search-autocomplete").is(":checked")&&e("#wpsl-force-postalcode").is(":checked")?s.show():s.hide()})});
admin/templates/map-settings.php CHANGED
@@ -128,7 +128,7 @@ global $wpdb, $wpsl, $wpsl_admin, $wp_version, $wpsl_settings;
128
  </div>
129
  </div>
130
 
131
- <div class="postbox-container wpsl-search-settings">
132
  <div class="metabox-holder">
133
  <div id="wpsl-search-settings" class="postbox">
134
  <h3 class="hndle"><span><?php _e( 'Search', 'wpsl' ); ?></span></h3>
@@ -137,6 +137,24 @@ global $wpdb, $wpsl, $wpsl_admin, $wp_version, $wpsl_settings;
137
  <label for="wpsl-search-autocomplete"><?php _e( 'Enable autocomplete?', 'wpsl' ); ?></label>
138
  <input type="checkbox" value="" <?php checked( $wpsl_settings['autocomplete'], true ); ?> name="wpsl_search[autocomplete]" id="wpsl-search-autocomplete">
139
  </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  <p>
141
  <label for="wpsl-results-dropdown"><?php _e( 'Show the max results dropdown?', 'wpsl' ); ?></label>
142
  <input type="checkbox" value="" <?php checked( $wpsl_settings['results_dropdown'], true ); ?> name="wpsl_search[results_dropdown]" id="wpsl-results-dropdown">
@@ -165,11 +183,11 @@ global $wpdb, $wpsl, $wpsl_admin, $wp_version, $wpsl_settings;
165
  </span>
166
  </p>
167
  <p>
168
- <label for="wpsl-max-results"><?php _e( 'Max search results', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php _e( 'The default value is set between the [ ].', 'wpsl' ); ?></span></span></label>
169
  <input type="text" value="<?php echo esc_attr( $wpsl_settings['max_results'] ); ?>" name="wpsl_search[max_results]" class="textinput" id="wpsl-max-results">
170
  </p>
171
  <p>
172
- <label for="wpsl-search-radius"><?php _e( 'Search radius options', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php _e( 'The default value is set between the [ ].', 'wpsl' ); ?></span></span></label>
173
  <input type="text" value="<?php echo esc_attr( $wpsl_settings['search_radius'] ); ?>" name="wpsl_search[radius]" class="textinput" id="wpsl-search-radius">
174
  </p>
175
  <p class="submit">
@@ -458,6 +476,10 @@ global $wpdb, $wpsl, $wpsl_admin, $wp_version, $wpsl_settings;
458
  <input type="checkbox" value="" <?php checked( $wpsl_settings['permalinks'], true ); ?> name="wpsl_permalinks[active]" id="wpsl-permalinks-active" class="wpsl-has-conditional-option">
459
  </p>
460
  <div class="wpsl-conditional-option" <?php if ( !$wpsl_settings['permalinks'] ) { echo 'style="display:none;"'; } ?>>
 
 
 
 
461
  <p>
462
  <label for="wpsl-permalinks-slug"><?php _e( 'Store slug', 'wpsl' ); ?>:</label>
463
  <input type="text" value="<?php echo esc_attr( $wpsl_settings['permalink_slug'] ); ?>" name="wpsl_permalinks[slug]" class="textinput" id="wpsl-permalinks-slug">
128
  </div>
129
  </div>
130
 
131
+ <div class="postbox-container">
132
  <div class="metabox-holder">
133
  <div id="wpsl-search-settings" class="postbox">
134
  <h3 class="hndle"><span><?php _e( 'Search', 'wpsl' ); ?></span></h3>
137
  <label for="wpsl-search-autocomplete"><?php _e( 'Enable autocomplete?', 'wpsl' ); ?></label>
138
  <input type="checkbox" value="" <?php checked( $wpsl_settings['autocomplete'], true ); ?> name="wpsl_search[autocomplete]" id="wpsl-search-autocomplete">
139
  </p>
140
+ <?php $autocomplete_warning = false; ?>
141
+ <p>
142
+ <label for="wpsl-force-postalcode"><?php _e( 'Force zipcode only search', 'wpsl' ); ?>:
143
+ <?php
144
+ if ( $wpsl_settings['force_postalcode'] && ( !$wpsl_settings['api_geocode_component'] || !$wpsl_settings['api_region'] ) ) {
145
+ ?>
146
+ <span class="wpsl-info wpsl-required-setting"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'For this option to work correctly you need to set a map region and restrict the results to the selected region. %s You can do this in the %sGoogle Maps API section%s.', 'wpsl' ), '<br><br>', '<a href="#wpsl-api-settings">', '</a>' ); ?></span></span>
147
+ <?php
148
+ }
149
+
150
+ if ( $wpsl_settings['autocomplete'] && $wpsl_settings['force_postalcode'] ) {
151
+ $autocomplete_warning = true;
152
+ }
153
+ ?>
154
+ <span class="wpsl-info <?php if ( !$autocomplete_warning ) { echo 'wpsl-hide'; } ?> wpsl-required-setting wpsl-info-zip-only"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( "Zipcode only search does unfortunately not work well in combination with the autocomplete option. %s It's recommended to not have both options active at the same time.", "wpsl" ), "<br><br>" ); ?></span></span>
155
+ </label>
156
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['force_postalcode'], true ); ?> name="wpsl_search[force_postalcode]" id="wpsl-force-postalcode">
157
+ </p>
158
  <p>
159
  <label for="wpsl-results-dropdown"><?php _e( 'Show the max results dropdown?', 'wpsl' ); ?></label>
160
  <input type="checkbox" value="" <?php checked( $wpsl_settings['results_dropdown'], true ); ?> name="wpsl_search[results_dropdown]" id="wpsl-results-dropdown">
183
  </span>
184
  </p>
185
  <p>
186
+ <label for="wpsl-max-results"><?php _e( 'Max search results', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php _e( 'The default value is set between the [ ].', 'wpsl' ); ?></span></span></label>
187
  <input type="text" value="<?php echo esc_attr( $wpsl_settings['max_results'] ); ?>" name="wpsl_search[max_results]" class="textinput" id="wpsl-max-results">
188
  </p>
189
  <p>
190
+ <label for="wpsl-search-radius"><?php _e( 'Search radius options', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php _e( 'The default value is set between the [ ].', 'wpsl' ); ?></span></span></label>
191
  <input type="text" value="<?php echo esc_attr( $wpsl_settings['search_radius'] ); ?>" name="wpsl_search[radius]" class="textinput" id="wpsl-search-radius">
192
  </p>
193
  <p class="submit">
476
  <input type="checkbox" value="" <?php checked( $wpsl_settings['permalinks'], true ); ?> name="wpsl_permalinks[active]" id="wpsl-permalinks-active" class="wpsl-has-conditional-option">
477
  </p>
478
  <div class="wpsl-conditional-option" <?php if ( !$wpsl_settings['permalinks'] ) { echo 'style="display:none;"'; } ?>>
479
+ <p>
480
+ <label for="wpsl-permalink-remove-front"><?php _e( 'Remove the front base from the permalink structure?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'The front base is set on the %spermalink settings%s page in the "Custom structure" field. %s If a front base is set ( for example /blog/ ), then enabling this option will remove it from the store locator permalinks.', 'wpsl' ), '<a href="https://codex.wordpress.org/Settings_Permalinks_Screen#Customize_Permalink_Structure" target="_blank">', '</a>', '<br><br>' ); ?></span></span></label>
481
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['permalink_remove_front'], true ); ?> name="wpsl_permalinks[remove_front]" id="wpsl-permalink-remove-front">
482
+ </p>
483
  <p>
484
  <label for="wpsl-permalinks-slug"><?php _e( 'Store slug', 'wpsl' ); ?>:</label>
485
  <input type="text" value="<?php echo esc_attr( $wpsl_settings['permalink_slug'] ); ?>" name="wpsl_permalinks[slug]" class="textinput" id="wpsl-permalinks-slug">
admin/upgrade.php CHANGED
@@ -414,6 +414,13 @@ function wpsl_check_upgrade() {
414
  update_option( 'wpsl_settings', $wpsl_settings );
415
  }
416
 
 
 
 
 
 
 
 
417
  update_option( 'wpsl_version', WPSL_VERSION_NUM );
418
  }
419
 
414
  update_option( 'wpsl_settings', $wpsl_settings );
415
  }
416
 
417
+ if ( version_compare( $current_version, '2.2.20', '<' ) ) {
418
+ $wpsl_settings['force_postalcode'] = 0;
419
+ $wpsl_settings['permalink_remove_front'] = 0;
420
+
421
+ update_option( 'wpsl_settings', $wpsl_settings );
422
+ }
423
+
424
  update_option( 'wpsl_version', WPSL_VERSION_NUM );
425
  }
426
 
frontend/class-frontend.php CHANGED
@@ -1773,14 +1773,32 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
1773
  $locator_map_settings['noResults'] = $no_results_msg;
1774
  }
1775
 
1776
- /*
1777
  * If enabled, include the component filter settings.
1778
  * @todo see https://developers.google.com/maps/documentation/javascript/releases#327
1779
  * See https://developers.google.com/maps/documentation/javascript/geocoding#ComponentFiltering
1780
  */
1781
  if ( $wpsl_settings['api_region'] && $wpsl_settings['api_geocode_component'] ) {
1782
- $locator_map_settings['geocodeComponents'] = apply_filters( 'wpsl_geocode_components', array(
1783
- 'country' => strtoupper( $wpsl_settings['api_region'] )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1784
  ) );
1785
  }
1786
 
1773
  $locator_map_settings['noResults'] = $no_results_msg;
1774
  }
1775
 
1776
+ /**
1777
  * If enabled, include the component filter settings.
1778
  * @todo see https://developers.google.com/maps/documentation/javascript/releases#327
1779
  * See https://developers.google.com/maps/documentation/javascript/geocoding#ComponentFiltering
1780
  */
1781
  if ( $wpsl_settings['api_region'] && $wpsl_settings['api_geocode_component'] ) {
1782
+ $geocode_components = array();
1783
+ $geocode_components['country'] = strtoupper( $wpsl_settings['api_region'] );
1784
+
1785
+ if ( $wpsl_settings['force_postalcode'] ) {
1786
+ $geocode_components['postalCode'] = '';
1787
+ }
1788
+
1789
+ $locator_map_settings['geocodeComponents'] = apply_filters( 'wpsl_geocode_components', $geocode_components );
1790
+ }
1791
+
1792
+ /**
1793
+ * Reduce the requested data fields with each autocomplete API call.
1794
+ *
1795
+ * You can see the supported fields here https://developers.google.com/maps/documentation/javascript/reference/places-service#PlaceResult
1796
+ * and other possible options to target here https://developers.google.com/maps/documentation/javascript/reference/places-widget#AutocompleteOptions
1797
+ */
1798
+ if ( $wpsl_settings['autocomplete'] ) {
1799
+ $locator_map_settings['autoCompleteOptions'] = apply_filters( 'wpsl_autocomplete_options', array(
1800
+ 'fields' => array( 'geometry.location' ),
1801
+ 'types' => array( '(regions)' )
1802
  ) );
1803
  }
1804
 
inc/class-post-types.php CHANGED
@@ -1,280 +1,284 @@
1
- <?php
2
- /**
3
- * Store Locator custom post type.
4
- *
5
- * @author Tijmen Smit
6
- * @since 2.0.0
7
- */
8
-
9
- if ( !defined( 'ABSPATH' ) ) exit;
10
-
11
- if ( !class_exists( 'WPSL_Post_Types' ) ) {
12
-
13
- class WPSL_Post_Types {
14
-
15
- /**
16
- * Constructor
17
- */
18
- public function __construct() {
19
- add_action( 'init', array( $this, 'maybe_show_in_rest' ) );
20
- add_action( 'init', array( $this, 'register_post_types' ), 10, 1 );
21
- add_action( 'init', array( $this, 'register_taxonomies' ), 10, 1 );
22
- add_action( 'manage_wpsl_stores_posts_custom_column', array( $this, 'custom_columns' ), 10, 2 );
23
-
24
- add_filter( 'enter_title_here', array( $this, 'change_default_title' ) );
25
- add_filter( 'manage_edit-wpsl_stores_columns', array( $this, 'edit_columns' ) );
26
- add_filter( 'manage_edit-wpsl_stores_sortable_columns', array( $this, 'sortable_columns' ) );
27
- add_filter( 'request', array( $this, 'sort_columns' ) );
28
- }
29
-
30
- /**
31
- * Check if we need to set 'show_in_rest' to true/false,
32
- * and thereby enabling the REST API.
33
- *
34
- * This needs to be set to true for
35
- * Gutenberg to be enabled.
36
- *
37
- * Full REST API support will come in the 3.0 update.
38
- *
39
- * @since 2.2.19
40
- * @return bool
41
- */
42
- public function maybe_show_in_rest() {
43
-
44
- global $wp_version;
45
-
46
- return ( version_compare( $wp_version, '5', '>=' ) ) ? true : false;
47
- }
48
-
49
-
50
- /**
51
- * Register the WPSL post type.
52
- *
53
- * @since 2.0.0
54
- * @return void
55
- */
56
- public function register_post_types() {
57
-
58
- global $wpsl_settings;
59
-
60
- // Enable permalinks for the post type?
61
- if ( isset( $wpsl_settings['permalinks'] ) && $wpsl_settings['permalinks'] ) {
62
- $public = true;
63
- $exclude_from_search = false;
64
- $rewrite = array( 'slug' => $wpsl_settings['permalink_slug'] );
65
- } else {
66
- $public = false;
67
- $exclude_from_search = true;
68
- $rewrite = false;
69
- }
70
-
71
- // The labels for the wpsl_stores post type.
72
- $labels = apply_filters( 'wpsl_post_type_labels', array(
73
- 'name' => __( 'Store Locator', 'wpsl' ),
74
- 'all_items' => __( 'All Stores', 'wpsl' ),
75
- 'singular_name' => __( 'Store', 'wpsl' ),
76
- 'add_new' => __( 'New Store', 'wpsl' ),
77
- 'add_new_item' => __( 'Add New Store', 'wpsl' ),
78
- 'edit_item' => __( 'Edit Store', 'wpsl' ),
79
- 'new_item' => __( 'New Store', 'wpsl' ),
80
- 'view_item' => __( 'View Stores', 'wpsl' ),
81
- 'search_items' => __( 'Search Stores', 'wpsl' ),
82
- 'not_found' => __( 'No Stores found', 'wpsl' ),
83
- 'not_found_in_trash' => __( 'No Stores found in trash', 'wpsl' ),
84
- )
85
- );
86
-
87
- // The arguments for the wpsl_stores post type.
88
- $args = apply_filters( 'wpsl_post_type_args', array(
89
- 'labels' => $labels,
90
- 'public' => $public,
91
- 'exclude_from_search' => $exclude_from_search,
92
- 'show_ui' => true,
93
- 'menu_position' => apply_filters( 'wpsl_post_type_menu_position', null ),
94
- 'capability_type' => 'store',
95
- 'map_meta_cap' => true,
96
- 'rewrite' => $rewrite,
97
- 'query_var' => 'wpsl_stores',
98
- 'supports' => array( 'title', 'editor', 'author', 'excerpt', 'revisions', 'thumbnail' ),
99
- 'show_in_rest' => $this->maybe_show_in_rest()
100
- )
101
- );
102
-
103
- register_post_type( 'wpsl_stores', $args );
104
- }
105
-
106
- /**
107
- * Register the WPSL custom taxonomy.
108
- *
109
- * @since 2.0.0
110
- * @return void
111
- */
112
- public function register_taxonomies() {
113
-
114
- global $wpsl_settings;
115
-
116
- // Enable permalinks for the taxonomy?
117
- if ( isset( $wpsl_settings['permalinks'] ) && $wpsl_settings['permalinks'] ) {
118
- $public = true;
119
- $rewrite = array( 'slug' => $wpsl_settings['category_slug'] );
120
- } else {
121
- $public = false;
122
- $rewrite = false;
123
- }
124
-
125
- $labels = array(
126
- 'name' => __( 'Store Categories', 'wpsl' ),
127
- 'singular_name' => __( 'Store Category', 'wpsl' ),
128
- 'search_items' => __( 'Search Store Categories', 'wpsl' ),
129
- 'all_items' => __( 'All Store Categories', 'wpsl' ),
130
- 'parent_item' => __( 'Parent Store Category', 'wpsl' ),
131
- 'parent_item_colon' => __( 'Parent Store Category:', 'wpsl' ),
132
- 'edit_item' => __( 'Edit Store Category', 'wpsl' ),
133
- 'update_item' => __( 'Update Store Category', 'wpsl' ),
134
- 'add_new_item' => __( 'Add New Store Category', 'wpsl' ),
135
- 'new_item_name' => __( 'New Store Category Name', 'wpsl' ),
136
- 'menu_name' => __( 'Store Categories', 'wpsl' ),
137
- );
138
-
139
- $args = apply_filters( 'wpsl_store_category_args', array(
140
- 'labels' => $labels,
141
- 'public' => $public,
142
- 'hierarchical' => true,
143
- 'show_ui' => true,
144
- 'show_admin_column' => true,
145
- 'update_count_callback' => '_update_post_term_count',
146
- 'query_var' => true,
147
- 'rewrite' => $rewrite,
148
- 'show_in_rest' => $this->maybe_show_in_rest()
149
- )
150
- );
151
-
152
- register_taxonomy( 'wpsl_store_category', 'wpsl_stores', $args );
153
- }
154
-
155
- /**
156
- * Change the default "Enter title here" placeholder.
157
- *
158
- * @since 2.0.0
159
- * @param string $title The default title placeholder
160
- * @return string $title The new title placeholder
161
- */
162
- public function change_default_title( $title ) {
163
-
164
- $screen = get_current_screen();
165
-
166
- if ( $screen->post_type == 'wpsl_stores' ) {
167
- $title = __( 'Enter store title here', 'wpsl' );
168
- }
169
-
170
- return $title;
171
- }
172
-
173
- /**
174
- * Add new columns to the store list table.
175
- *
176
- * @since 2.0.0
177
- * @param array $columns The default columns
178
- * @return array $columns Updated column list
179
- */
180
- public function edit_columns( $columns ) {
181
-
182
- $columns['address'] = __( 'Address', 'wpsl' );
183
- $columns['city'] = __( 'City', 'wpsl' );
184
- $columns['state'] = __( 'State', 'wpsl' );
185
- $columns['zip'] = __( 'Zip', 'wpsl' );
186
-
187
- return $columns;
188
- }
189
-
190
- /**
191
- * Show the correct store content in the correct custom column.
192
- *
193
- * @since 2.0.0
194
- * @param string $column The column name
195
- * @param int $post_id The post id
196
- * @return void
197
- */
198
- public function custom_columns( $column, $post_id ) {
199
-
200
- switch ( $column ) {
201
- case 'address':
202
- echo esc_html( get_post_meta( $post_id, 'wpsl_address', true ) );
203
- break;
204
- case 'city':
205
- echo esc_html( get_post_meta( $post_id, 'wpsl_city', true ) );
206
- break;
207
- case 'state':
208
- echo esc_html( get_post_meta( $post_id, 'wpsl_state', true ) );
209
- break;
210
- case 'zip':
211
- echo esc_html( get_post_meta( $post_id, 'wpsl_zip', true ) );
212
- break;
213
- }
214
- }
215
-
216
- /**
217
- * Define the columns that are sortable.
218
- *
219
- * @since 2.0.0
220
- * @param array $columns List of sortable columns
221
- * @return array
222
- */
223
- public function sortable_columns( $columns ) {
224
-
225
- $custom = array(
226
- 'address' => 'wpsl_address',
227
- 'city' => 'wpsl_city',
228
- 'state' => 'wpsl_state',
229
- 'zip' => 'wpsl_zip'
230
- );
231
-
232
- return wp_parse_args( $custom, $columns );
233
- }
234
-
235
- /**
236
- * Set the correct column sort parameters.
237
- *
238
- * @since 2.0.0
239
- * @param array $vars Column sorting parameters
240
- * @return array $vars The column sorting parameters inc the correct orderby and wpsl meta_key
241
- */
242
- public function sort_columns( $vars ) {
243
-
244
- if ( isset( $vars['post_type'] ) && $vars['post_type'] == 'wpsl_stores' ) {
245
- if ( isset( $vars['orderby'] ) ) {
246
- if ( $vars['orderby'] === 'wpsl_address' ) {
247
- $vars = array_merge( $vars, array(
248
- 'meta_key' => 'wpsl_address',
249
- 'orderby' => 'meta_value'
250
- ) );
251
- }
252
-
253
- if ( $vars['orderby'] === 'wpsl_city' ) {
254
- $vars = array_merge( $vars, array(
255
- 'meta_key' => 'wpsl_city',
256
- 'orderby' => 'meta_value'
257
- ) );
258
- }
259
-
260
- if ( $vars['orderby'] === 'wpsl_state' ) {
261
- $vars = array_merge( $vars, array(
262
- 'meta_key' => 'wpsl_state',
263
- 'orderby' => 'meta_value'
264
- ) );
265
- }
266
-
267
- if ( $vars['orderby'] === 'wpsl_zip' ) {
268
- $vars = array_merge( $vars, array(
269
- 'meta_key' => 'wpsl_zip',
270
- 'orderby' => 'meta_value'
271
- ) );
272
- }
273
- }
274
- }
275
-
276
- return $vars;
277
- }
278
- }
279
-
 
 
 
 
280
  }
1
+ <?php
2
+ /**
3
+ * Store Locator custom post type.
4
+ *
5
+ * @author Tijmen Smit
6
+ * @since 2.0.0
7
+ */
8
+
9
+ if ( !defined( 'ABSPATH' ) ) exit;
10
+
11
+ if ( !class_exists( 'WPSL_Post_Types' ) ) {
12
+
13
+ class WPSL_Post_Types {
14
+
15
+ /**
16
+ * Constructor
17
+ */
18
+ public function __construct() {
19
+ add_action( 'init', array( $this, 'maybe_show_in_rest' ) );
20
+ add_action( 'init', array( $this, 'register_post_types' ), 10, 1 );
21
+ add_action( 'init', array( $this, 'register_taxonomies' ), 10, 1 );
22
+ add_action( 'manage_wpsl_stores_posts_custom_column', array( $this, 'custom_columns' ), 10, 2 );
23
+
24
+ add_filter( 'enter_title_here', array( $this, 'change_default_title' ) );
25
+ add_filter( 'manage_edit-wpsl_stores_columns', array( $this, 'edit_columns' ) );
26
+ add_filter( 'manage_edit-wpsl_stores_sortable_columns', array( $this, 'sortable_columns' ) );
27
+ add_filter( 'request', array( $this, 'sort_columns' ) );
28
+ }
29
+
30
+ /**
31
+ * Check if we need to set 'show_in_rest' to true/false,
32
+ * and thereby enabling the REST API.
33
+ *
34
+ * This needs to be set to true for
35
+ * Gutenberg to be enabled.
36
+ *
37
+ * Full REST API support will come in the 3.0 update.
38
+ *
39
+ * @since 2.2.19
40
+ * @return bool
41
+ */
42
+ public function maybe_show_in_rest() {
43
+
44
+ global $wp_version;
45
+
46
+ return ( version_compare( $wp_version, '5', '>=' ) ) ? true : false;
47
+ }
48
+
49
+
50
+ /**
51
+ * Register the WPSL post type.
52
+ *
53
+ * @since 2.0.0
54
+ * @return void
55
+ */
56
+ public function register_post_types() {
57
+
58
+ global $wpsl_settings;
59
+
60
+ // Enable permalinks for the post type?
61
+ if ( isset( $wpsl_settings['permalinks'] ) && $wpsl_settings['permalinks'] ) {
62
+ $public = true;
63
+ $exclude_from_search = false;
64
+ $rewrite = array( 'slug' => $wpsl_settings['permalink_slug'] );
65
+
66
+ if ( $wpsl_settings['permalink_remove_front'] ) {
67
+ $rewrite['with_front'] = false;
68
+ }
69
+ } else {
70
+ $public = false;
71
+ $exclude_from_search = true;
72
+ $rewrite = false;
73
+ }
74
+
75
+ // The labels for the wpsl_stores post type.
76
+ $labels = apply_filters( 'wpsl_post_type_labels', array(
77
+ 'name' => __( 'Store Locator', 'wpsl' ),
78
+ 'all_items' => __( 'All Stores', 'wpsl' ),
79
+ 'singular_name' => __( 'Store', 'wpsl' ),
80
+ 'add_new' => __( 'New Store', 'wpsl' ),
81
+ 'add_new_item' => __( 'Add New Store', 'wpsl' ),
82
+ 'edit_item' => __( 'Edit Store', 'wpsl' ),
83
+ 'new_item' => __( 'New Store', 'wpsl' ),
84
+ 'view_item' => __( 'View Stores', 'wpsl' ),
85
+ 'search_items' => __( 'Search Stores', 'wpsl' ),
86
+ 'not_found' => __( 'No Stores found', 'wpsl' ),
87
+ 'not_found_in_trash' => __( 'No Stores found in trash', 'wpsl' ),
88
+ )
89
+ );
90
+
91
+ // The arguments for the wpsl_stores post type.
92
+ $args = apply_filters( 'wpsl_post_type_args', array(
93
+ 'labels' => $labels,
94
+ 'public' => $public,
95
+ 'exclude_from_search' => $exclude_from_search,
96
+ 'show_ui' => true,
97
+ 'menu_position' => apply_filters( 'wpsl_post_type_menu_position', null ),
98
+ 'capability_type' => 'store',
99
+ 'map_meta_cap' => true,
100
+ 'rewrite' => $rewrite,
101
+ 'query_var' => 'wpsl_stores',
102
+ 'supports' => array( 'title', 'editor', 'author', 'excerpt', 'revisions', 'thumbnail' ),
103
+ 'show_in_rest' => $this->maybe_show_in_rest()
104
+ )
105
+ );
106
+
107
+ register_post_type( 'wpsl_stores', $args );
108
+ }
109
+
110
+ /**
111
+ * Register the WPSL custom taxonomy.
112
+ *
113
+ * @since 2.0.0
114
+ * @return void
115
+ */
116
+ public function register_taxonomies() {
117
+
118
+ global $wpsl_settings;
119
+
120
+ // Enable permalinks for the taxonomy?
121
+ if ( isset( $wpsl_settings['permalinks'] ) && $wpsl_settings['permalinks'] ) {
122
+ $public = true;
123
+ $rewrite = array( 'slug' => $wpsl_settings['category_slug'] );
124
+ } else {
125
+ $public = false;
126
+ $rewrite = false;
127
+ }
128
+
129
+ $labels = array(
130
+ 'name' => __( 'Store Categories', 'wpsl' ),
131
+ 'singular_name' => __( 'Store Category', 'wpsl' ),
132
+ 'search_items' => __( 'Search Store Categories', 'wpsl' ),
133
+ 'all_items' => __( 'All Store Categories', 'wpsl' ),
134
+ 'parent_item' => __( 'Parent Store Category', 'wpsl' ),
135
+ 'parent_item_colon' => __( 'Parent Store Category:', 'wpsl' ),
136
+ 'edit_item' => __( 'Edit Store Category', 'wpsl' ),
137
+ 'update_item' => __( 'Update Store Category', 'wpsl' ),
138
+ 'add_new_item' => __( 'Add New Store Category', 'wpsl' ),
139
+ 'new_item_name' => __( 'New Store Category Name', 'wpsl' ),
140
+ 'menu_name' => __( 'Store Categories', 'wpsl' ),
141
+ );
142
+
143
+ $args = apply_filters( 'wpsl_store_category_args', array(
144
+ 'labels' => $labels,
145
+ 'public' => $public,
146
+ 'hierarchical' => true,
147
+ 'show_ui' => true,
148
+ 'show_admin_column' => true,
149
+ 'update_count_callback' => '_update_post_term_count',
150
+ 'query_var' => true,
151
+ 'rewrite' => $rewrite,
152
+ 'show_in_rest' => $this->maybe_show_in_rest()
153
+ )
154
+ );
155
+
156
+ register_taxonomy( 'wpsl_store_category', 'wpsl_stores', $args );
157
+ }
158
+
159
+ /**
160
+ * Change the default "Enter title here" placeholder.
161
+ *
162
+ * @since 2.0.0
163
+ * @param string $title The default title placeholder
164
+ * @return string $title The new title placeholder
165
+ */
166
+ public function change_default_title( $title ) {
167
+
168
+ $screen = get_current_screen();
169
+
170
+ if ( $screen->post_type == 'wpsl_stores' ) {
171
+ $title = __( 'Enter store title here', 'wpsl' );
172
+ }
173
+
174
+ return $title;
175
+ }
176
+
177
+ /**
178
+ * Add new columns to the store list table.
179
+ *
180
+ * @since 2.0.0
181
+ * @param array $columns The default columns
182
+ * @return array $columns Updated column list
183
+ */
184
+ public function edit_columns( $columns ) {
185
+
186
+ $columns['address'] = __( 'Address', 'wpsl' );
187
+ $columns['city'] = __( 'City', 'wpsl' );
188
+ $columns['state'] = __( 'State', 'wpsl' );
189
+ $columns['zip'] = __( 'Zip', 'wpsl' );
190
+
191
+ return $columns;
192
+ }
193
+
194
+ /**
195
+ * Show the correct store content in the correct custom column.
196
+ *
197
+ * @since 2.0.0
198
+ * @param string $column The column name
199
+ * @param int $post_id The post id
200
+ * @return void
201
+ */
202
+ public function custom_columns( $column, $post_id ) {
203
+
204
+ switch ( $column ) {
205
+ case 'address':
206
+ echo esc_html( get_post_meta( $post_id, 'wpsl_address', true ) );
207
+ break;
208
+ case 'city':
209
+ echo esc_html( get_post_meta( $post_id, 'wpsl_city', true ) );
210
+ break;
211
+ case 'state':
212
+ echo esc_html( get_post_meta( $post_id, 'wpsl_state', true ) );
213
+ break;
214
+ case 'zip':
215
+ echo esc_html( get_post_meta( $post_id, 'wpsl_zip', true ) );
216
+ break;
217
+ }
218
+ }
219
+
220
+ /**
221
+ * Define the columns that are sortable.
222
+ *
223
+ * @since 2.0.0
224
+ * @param array $columns List of sortable columns
225
+ * @return array
226
+ */
227
+ public function sortable_columns( $columns ) {
228
+
229
+ $custom = array(
230
+ 'address' => 'wpsl_address',
231
+ 'city' => 'wpsl_city',
232
+ 'state' => 'wpsl_state',
233
+ 'zip' => 'wpsl_zip'
234
+ );
235
+
236
+ return wp_parse_args( $custom, $columns );
237
+ }
238
+
239
+ /**
240
+ * Set the correct column sort parameters.
241
+ *
242
+ * @since 2.0.0
243
+ * @param array $vars Column sorting parameters
244
+ * @return array $vars The column sorting parameters inc the correct orderby and wpsl meta_key
245
+ */
246
+ public function sort_columns( $vars ) {
247
+
248
+ if ( isset( $vars['post_type'] ) && $vars['post_type'] == 'wpsl_stores' ) {
249
+ if ( isset( $vars['orderby'] ) ) {
250
+ if ( $vars['orderby'] === 'wpsl_address' ) {
251
+ $vars = array_merge( $vars, array(
252
+ 'meta_key' => 'wpsl_address',
253
+ 'orderby' => 'meta_value'
254
+ ) );
255
+ }
256
+
257
+ if ( $vars['orderby'] === 'wpsl_city' ) {
258
+ $vars = array_merge( $vars, array(
259
+ 'meta_key' => 'wpsl_city',
260
+ 'orderby' => 'meta_value'
261
+ ) );
262
+ }
263
+
264
+ if ( $vars['orderby'] === 'wpsl_state' ) {
265
+ $vars = array_merge( $vars, array(
266
+ 'meta_key' => 'wpsl_state',
267
+ 'orderby' => 'meta_value'
268
+ ) );
269
+ }
270
+
271
+ if ( $vars['orderby'] === 'wpsl_zip' ) {
272
+ $vars = array_merge( $vars, array(
273
+ 'meta_key' => 'wpsl_zip',
274
+ 'orderby' => 'meta_value'
275
+ ) );
276
+ }
277
+ }
278
+ }
279
+
280
+ return $vars;
281
+ }
282
+ }
283
+
284
  }
inc/wpsl-functions.php CHANGED
@@ -75,6 +75,7 @@ function wpsl_get_default_settings() {
75
  'distance_unit' => 'km',
76
  'max_results' => '[25],50,75,100',
77
  'search_radius' => '10,25,[50],100,200,500',
 
78
  'marker_effect' => 'bounce',
79
  'address_format' => 'city_state_zip',
80
  'hide_distance' => 0,
@@ -128,6 +129,7 @@ function wpsl_get_default_settings() {
128
  'editor_map_type' => 'roadmap',
129
  'hide_hours' => 0,
130
  'permalinks' => 0,
 
131
  'permalink_slug' => __( 'stores', 'wpsl' ),
132
  'category_slug' => __( 'store-category', 'wpsl' ),
133
  'infowindow_style' => 'default',
75
  'distance_unit' => 'km',
76
  'max_results' => '[25],50,75,100',
77
  'search_radius' => '10,25,[50],100,200,500',
78
+ 'force_postalcode' => 0,
79
  'marker_effect' => 'bounce',
80
  'address_format' => 'city_state_zip',
81
  'hide_distance' => 0,
129
  'editor_map_type' => 'roadmap',
130
  'hide_hours' => 0,
131
  'permalinks' => 0,
132
+ 'permalink_remove_front' => 0,
133
  'permalink_slug' => __( 'stores', 'wpsl' ),
134
  'category_slug' => __( 'store-category', 'wpsl' ),
135
  'infowindow_style' => 'default',
js/wpsl-gmap.js CHANGED
@@ -1,4 +1,4 @@
1
- jQuery( document ).ready( function( $ ) {
2
  var geocoder, map, directionsDisplay, directionsService, autoCompleteLatLng,
3
  activeWindowMarkerId, infoWindow, markerClusterer, startMarkerData, startAddress,
4
  openInfoWindow = [],
@@ -228,25 +228,47 @@ function activateAutocomplete() {
228
  var input, autocomplete, place,
229
  options = {};
230
 
231
- // Check if we need to set the geocode component restrictions.
 
 
 
 
 
 
 
232
  if ( typeof wpslSettings.geocodeComponents !== "undefined" && !$.isEmptyObject( wpslSettings.geocodeComponents ) ) {
233
  options.componentRestrictions = wpslSettings.geocodeComponents;
 
 
 
 
 
 
234
  }
235
 
236
- input = document.getElementById( "wpsl-search-input" );
 
 
 
 
 
 
 
 
 
237
  autocomplete = new google.maps.places.Autocomplete( input, options );
238
 
239
  autocomplete.addListener( "place_changed", function() {
240
  place = autocomplete.getPlace();
241
 
242
- /*
243
- * Assign the returned latlng to the autoCompleteLatLng var.
244
  * This var is used when the users submits the search.
245
  */
246
  if ( place.geometry ) {
247
- autoCompleteLatLng = place.geometry.location;
248
  }
249
- });
250
  }
251
 
252
  /**
@@ -640,31 +662,18 @@ function handleGeolocationQuery( startLatLng, position, resetMap, infoWindow ) {
640
  function searchLocationBtn( infoWindow ) {
641
 
642
  $( "#wpsl-search-btn" ).unbind( "click" ).bind( "click", function( e ) {
643
- var keepStartMarker = false;
644
-
645
  $( "#wpsl-search-input" ).removeClass();
646
 
647
  if ( !$( "#wpsl-search-input" ).val() ) {
648
  $( "#wpsl-search-input" ).addClass( "wpsl-error" ).focus();
649
  } else {
650
- $( "#wpsl-result-list ul" ).empty();
651
- $( "#wpsl-stores" ).show();
652
- $( ".wpsl-direction-before, .wpsl-direction-after" ).remove();
653
- $( "#wpsl-direction-details" ).hide();
654
-
655
- resetMap = false;
656
-
657
- // Force the open InfoBox info window to close.
658
- closeInfoBoxWindow();
659
-
660
- deleteOverlays( keepStartMarker );
661
- deleteStartMarker();
662
 
663
  /*
664
- * Check if we need to geocode the user input,
665
- * or if autocomplete is enabled and we already
666
- * have the latlng values.
667
- */
668
  if ( wpslSettings.autoComplete == 1 && typeof autoCompleteLatLng !== "undefined" ) {
669
  prepareStoreSearch( autoCompleteLatLng, infoWindow );
670
  } else {
@@ -1093,14 +1102,19 @@ function calcRoute( start, end ) {
1093
  * @returns {void}
1094
  */
1095
  function codeAddress( infoWindow ) {
1096
- var latLng,
1097
- request = {
1098
- 'address': $( "#wpsl-search-input" ).val()
1099
- };
1100
 
1101
- // Check if we need to set the geocode component restrictions.
1102
  if ( typeof wpslSettings.geocodeComponents !== "undefined" && !$.isEmptyObject( wpslSettings.geocodeComponents ) ) {
1103
  request.componentRestrictions = wpslSettings.geocodeComponents;
 
 
 
 
 
 
 
 
1104
  }
1105
 
1106
  geocoder.geocode( request, function( response, status ) {
@@ -1129,7 +1143,7 @@ function codeAddress( infoWindow ) {
1129
  */
1130
  function prepareStoreSearch( latLng, infoWindow ) {
1131
  var autoLoad = false;
1132
-
1133
  // Add a new start marker.
1134
  addMarker( latLng, 0, '', true, infoWindow );
1135
 
@@ -1476,7 +1490,7 @@ function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
1476
  map.setCenter( markersArray[0].position );
1477
  }
1478
 
1479
- /*
1480
  * Store the default zoom and latlng values the first time
1481
  * all the stores are added to the map.
1482
  *
@@ -1492,13 +1506,13 @@ function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
1492
  zoomLevel: map.getZoom()
1493
  };
1494
 
1495
- /*
1496
  * Because the reset icon exists, we need to adjust
1497
  * the styling of the direction icon.
1498
  */
1499
  $( "#wpsl-map-controls" ).addClass( "wpsl-reset-exists" );
1500
 
1501
- /*
1502
  * The reset initialy is set to hidden to prevent
1503
  * users from clicking it before the map is loaded.
1504
  */
@@ -1507,7 +1521,7 @@ function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
1507
  }
1508
 
1509
  $( ".wpsl-icon-reset" ).removeClass( "wpsl-in-progress" );
1510
- }
1511
  });
1512
 
1513
  // Move the mousecursor to the store search field if the focus option is enabled.
@@ -2601,4 +2615,49 @@ function attachBoundsChangedListener( map, maxZoom ) {
2601
  });
2602
  }
2603
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2604
  });
1
+ jQuery( document ).ready( function( $ ) {
2
  var geocoder, map, directionsDisplay, directionsService, autoCompleteLatLng,
3
  activeWindowMarkerId, infoWindow, markerClusterer, startMarkerData, startAddress,
4
  openInfoWindow = [],
228
  var input, autocomplete, place,
229
  options = {};
230
 
231
+ // Handle autocomplete queries submitted by the user using the 'enter' key.
232
+ keyboardAutoCompleteSubmit();
233
+
234
+ /**
235
+ * Check if we need to set the geocode component restrictions.
236
+ * This is automatically included when a fixed map region is
237
+ * selected on the WPSL settings page.
238
+ */
239
  if ( typeof wpslSettings.geocodeComponents !== "undefined" && !$.isEmptyObject( wpslSettings.geocodeComponents ) ) {
240
  options.componentRestrictions = wpslSettings.geocodeComponents;
241
+
242
+ /**
243
+ * If the postalCode is included in the autocomplete together with '(regions)' ( which is included ),
244
+ * then it will break it. So we have to remove it.
245
+ */
246
+ options.componentRestrictions = _.omit( options.componentRestrictions, 'postalCode' );
247
  }
248
 
249
+ // Check if we need to restrict the autocomplete data.
250
+ if ( typeof wpslSettings.autoCompleteOptions !== "undefined" && !$.isEmptyObject( wpslSettings.autoCompleteOptions ) ) {
251
+ for ( var key in wpslSettings.autoCompleteOptions ) {
252
+ if ( wpslSettings.autoCompleteOptions.hasOwnProperty( key ) ) {
253
+ options[key] = wpslSettings.autoCompleteOptions[key];
254
+ }
255
+ }
256
+ }
257
+
258
+ input = document.getElementById( "wpsl-search-input" );
259
  autocomplete = new google.maps.places.Autocomplete( input, options );
260
 
261
  autocomplete.addListener( "place_changed", function() {
262
  place = autocomplete.getPlace();
263
 
264
+ /**
265
+ * Assign the returned latlng to the autoCompleteLatLng var.
266
  * This var is used when the users submits the search.
267
  */
268
  if ( place.geometry ) {
269
+ autoCompleteLatLng = place.geometry.location;
270
  }
271
+ });
272
  }
273
 
274
  /**
662
  function searchLocationBtn( infoWindow ) {
663
 
664
  $( "#wpsl-search-btn" ).unbind( "click" ).bind( "click", function( e ) {
 
 
665
  $( "#wpsl-search-input" ).removeClass();
666
 
667
  if ( !$( "#wpsl-search-input" ).val() ) {
668
  $( "#wpsl-search-input" ).addClass( "wpsl-error" ).focus();
669
  } else {
670
+ resetSearchResults();
 
 
 
 
 
 
 
 
 
 
 
671
 
672
  /*
673
+ * Check if we need to geocode the user input,
674
+ * or if autocomplete is enabled and we already
675
+ * have the latlng values.
676
+ */
677
  if ( wpslSettings.autoComplete == 1 && typeof autoCompleteLatLng !== "undefined" ) {
678
  prepareStoreSearch( autoCompleteLatLng, infoWindow );
679
  } else {
1102
  * @returns {void}
1103
  */
1104
  function codeAddress( infoWindow ) {
1105
+ var latLng, request = {};
 
 
 
1106
 
1107
+ // Check if we need to set the geocode component restrictions.
1108
  if ( typeof wpslSettings.geocodeComponents !== "undefined" && !$.isEmptyObject( wpslSettings.geocodeComponents ) ) {
1109
  request.componentRestrictions = wpslSettings.geocodeComponents;
1110
+
1111
+ if ( typeof request.componentRestrictions.postalCode !== "undefined" ) {
1112
+ request.componentRestrictions.postalCode = $( "#wpsl-search-input" ).val();
1113
+ } else {
1114
+ request.address = $( "#wpsl-search-input" ).val();
1115
+ }
1116
+ } else {
1117
+ request.address = $( "#wpsl-search-input" ).val();
1118
  }
1119
 
1120
  geocoder.geocode( request, function( response, status ) {
1143
  */
1144
  function prepareStoreSearch( latLng, infoWindow ) {
1145
  var autoLoad = false;
1146
+
1147
  // Add a new start marker.
1148
  addMarker( latLng, 0, '', true, infoWindow );
1149
 
1490
  map.setCenter( markersArray[0].position );
1491
  }
1492
 
1493
+ /*
1494
  * Store the default zoom and latlng values the first time
1495
  * all the stores are added to the map.
1496
  *
1506
  zoomLevel: map.getZoom()
1507
  };
1508
 
1509
+ /*
1510
  * Because the reset icon exists, we need to adjust
1511
  * the styling of the direction icon.
1512
  */
1513
  $( "#wpsl-map-controls" ).addClass( "wpsl-reset-exists" );
1514
 
1515
+ /*
1516
  * The reset initialy is set to hidden to prevent
1517
  * users from clicking it before the map is loaded.
1518
  */
1521
  }
1522
 
1523
  $( ".wpsl-icon-reset" ).removeClass( "wpsl-in-progress" );
1524
+ }
1525
  });
1526
 
1527
  // Move the mousecursor to the store search field if the focus option is enabled.
2615
  });
2616
  }
2617
 
2618
+ /**
2619
+ * Handle keyboard submits when the autocomplete option is enabled.
2620
+ *
2621
+ * If we don't do this, then the search will break the second time
2622
+ * the user makes a search, selects the item with the keyboard
2623
+ * and submits it with the enter key.
2624
+ *
2625
+ * @since 2.2.20
2626
+ * @returns {void}
2627
+ */
2628
+ function keyboardAutoCompleteSubmit() {
2629
+ $( "#wpsl-search-input" ).keypress( function( e ) {
2630
+
2631
+ if ( e.which == 13 ) {
2632
+ resetSearchResults();
2633
+ codeAddress( infoWindow );
2634
+
2635
+ return false;
2636
+ }
2637
+ });
2638
+ }
2639
+
2640
+ /**
2641
+ * Reset all elements before a search is made.
2642
+ *
2643
+ * @since 2.2.20
2644
+ * @returns {void}
2645
+ */
2646
+ function resetSearchResults() {
2647
+ var keepStartMarker = false;
2648
+
2649
+ $( "#wpsl-result-list ul" ).empty();
2650
+ $( "#wpsl-stores" ).show();
2651
+ $( ".wpsl-direction-before, .wpsl-direction-after" ).remove();
2652
+ $( "#wpsl-direction-details" ).hide();
2653
+
2654
+ resetMap = false;
2655
+
2656
+ // Force the open InfoBox info window to close.
2657
+ closeInfoBoxWindow();
2658
+
2659
+ deleteOverlays( keepStartMarker );
2660
+ deleteStartMarker();
2661
+ }
2662
+
2663
  });
js/wpsl-gmap.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(e){var t,s,o,n,l,i,a,r,p,c,d,w,g,u,m,f=[],h=[],v=[],S={},b={},C={},y=!1,L=!1,k="undefined"!=typeof wpslSettings?wpslSettings.autoLoad:"",x={},I={enabled:void 0!==wpslSettings.collectStatistics,addressComponents:""};function M(e,t){j(e,0,"",!0,t),$(e,y,k,t)}function N(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}function E(t,s){if(navigator.geolocation){var o,n,l=Number(wpslSettings.geoLocationTimeout);o=setInterval(function(){e(".wpsl-icon-direction").toggleClass("wpsl-active-icon")},600),n=setTimeout(function(){R(o),M(t,s)},l),navigator.geolocation.getCurrentPosition(function(l){R(o),clearTimeout(n),K(!1),T(t,l,y,s),e(".wpsl-search").addClass("wpsl-geolocation-run")},function(o){if(e(".wpsl-icon-direction").hasClass("wpsl-user-activated")&&!e(".wpsl-search").hasClass("wpsl-geolocation-run")){switch(o.code){case o.PERMISSION_DENIED:alert(wpslGeolocationErrors.denied);break;case o.POSITION_UNAVAILABLE:alert(wpslGeolocationErrors.unavailable);break;case o.TIMEOUT:alert(wpslGeolocationErrors.timeout);break;default:alert(wpslGeolocationErrors.generalError)}e(".wpsl-icon-direction").removeClass("wpsl-active-icon")}else e(".wpsl-search").hasClass("wpsl-geolocation-run")||(clearTimeout(n),M(t,s))},{maximumAge:6e4,timeout:l,enableHighAccuracy:!0})}else alert(wpslGeolocationErrors.unavailable),M(t,s)}function R(t){clearInterval(t),e(".wpsl-icon-direction").removeClass("wpsl-active-icon")}function T(e,t,o,n){if(void 0===t)M(e,n);else{var l=new google.maps.LatLng(t.coords.latitude,t.coords.longitude);x={position:t,newRequest:!0},s.setCenter(l),j(l,0,"",!0,n),$(l,o,k,n)}}function P(){void 0!==wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&void 0!==f[0]&&f[0].close()}function O(){void 0!==p&&""!==p&&(p.setMap(null),p="")}function U(t){var l,i,a,c,d;for(P(),d=t.parents("li").length>0?t.parents("li").data("store-id"):t.parents(".wpsl-info-window").data("store-id"),void 0!==p&&""!==p&&(i=p.getPosition()),b={centerLatlng:s.getCenter(),zoomLevel:s.getZoom()},l=0,c=h.length;l<c;l++)0!=h[l].storeId||void 0!==i&&""!==i?h[l].storeId==d&&(a=h[l].getPosition()):i=h[l].getPosition();i&&a?(e("#wpsl-direction-details ul").empty(),e(".wpsl-direction-before, .wpsl-direction-after").remove(),function(t,l){var i,a,c,d,w,g,u,m,f,v="";u="km"==wpslSettings.distanceUnit?"METRIC":"IMPERIAL";f={origin:t,destination:l,travelMode:wpslSettings.directionsTravelMode,unitSystem:google.maps.UnitSystem[u]},n.route(f,function(t,n){if(n==google.maps.DirectionsStatus.OK){if(o.setMap(s),o.setDirections(t),t.routes.length>0){for(d=t.routes[0],w=0;w<d.legs.length;w++)for(i=d.legs[w],g=0,a=i.steps.length;g<a;g++)c=i.steps[g],v=v+"<li><div class='wpsl-direction-index'>"+(g+1)+"</div><div class='wpsl-direction-txt'>"+c.instructions+"</div><div class='wpsl-direction-distance'>"+c.distance.text+"</div></li>";for(e("#wpsl-direction-details ul").append(v).before("<div class='wpsl-direction-before'><a class='wpsl-back' id='wpsl-direction-start' href='#'>"+wpslLabels.back+"</a><div><span class='wpsl-total-distance'>"+d.legs[0].distance.text+"</span> - <span class='wpsl-total-durations'>"+d.legs[0].duration.text+"</span></div></div>").after("<p class='wpsl-direction-after'>"+t.routes[0].copyrights+"</p>"),e("#wpsl-direction-details").show(),w=0,a=h.length;w<a;w++)h[w].setMap(null);r&&r.clearMarkers(),void 0!==p&&""!==p&&p.setMap(null),e("#wpsl-stores").hide(),1==wpslSettings.templateId&&(m=e("#wpsl-gmap").offset(),e(window).scrollTop(m.top))}}else!function(e){var t;switch(e){case"NOT_FOUND":case"ZERO_RESULTS":t=wpslLabels.noDirectionsFound;break;case"OVER_QUERY_LIMIT":t=wpslLabels.queryLimit;break;default:t=wpslLabels.generalError}alert(t)}(n)})}(i,a)):alert(wpslLabels.generalError)}function z(e,t){var s,o,n;for(s=0,o=h.length;s<o;s++)h[s].storeId==e&&(n=h[s],"start"==t?n.setAnimation(google.maps.Animation.BOUNCE):n.setAnimation(null))}function Z(e,t){j(e,0,"",!0,t),$(e,y,!1,t)}function B(s,o){var n=s.lat().toFixed(5),l=s.lng().toFixed(5);s.lat=function(){return parseFloat(n)},s.lng=function(){return parseFloat(l)},t.geocode({latLng:s},function(t,s){if(s==google.maps.GeocoderStatus.OK){if(1==wpslSettings.autoLocate&&x.newRequest){var n=function(e){var t,s,o,n=e[0].address_components.length;for(o=0;o<n;o++)s=e[0].address_components[o].types,(/^postal_code$/.test(s)||/^postal_code,postal_code_prefix$/.test(s))&&(t=e[0].address_components[o].long_name);return t}(t);""!==n&&e("#wpsl-search-input").val(n),x.newRequest=!1}wpslSettings.directionRedirect&&(c=t[0].formatted_address),I.enabled&&e("#wpsl-search-input").val().length>0&&e.isEmptyObject(I.addressComponents)&&A(t),o()}else Q(s)})}function A(t){var s,o,n,l,i,a,r,p={},c={};for(a=t,r="",e.each(a[0].address_components,function(e){if("country,political"==a[0].address_components[e].types.join(","))return r=a[0].address_components[e].short_name,!1}),s="GB"==(l=r)?{city:"postal_town",city_locality:"locality,political",region:"administrative_area_level_2,political",country:"administrative_area_level_1,political"}:{city:"locality,political",region:"administrative_area_level_1,political",country:"country,political"},o=t[0].address_components.length,u=0;u<o;u++){n=t[0].address_components[u].types;for(var d in s)s[d]==n.join(",")&&(t[0].address_components[u].long_name.length>0?c[d]=t[0].address_components[u].long_name:c[d]=t[0].address_components[u].short_name)}for(var d in s)void 0===c[d]&&(p[d]=s[d]);if("GB"==l&&void 0!==p.city_locality&&void 0===p.city&&(p={}),Object.keys(p).length>0)for(i=t.length,u=1;u<i;u++)for(o=t[u].address_components.length,m=0;m<o;m++){n=t[u].address_components[m].types;for(var d in p)s[d]==n.join(",")&&(c[d]=t[u].address_components[m].long_name)}void 0!==c.city_locality&&c.city_locality.length>0&&(c.city=c.city_locality,delete c.city_locality),I.addressComponents=c}function $(e,t,s,o){1==wpslSettings.directionRedirect||I.enabled?B(e,function(){V(e,t,s,o)}):V(e,t,s,o)}function V(t,o,n,l){var i,a,r="",p=e("#wpsl-listing-template").html(),c=e("#wpsl-stores ul"),d=wpslSettings.url+"img/ajax-loader.gif";a=function(t,s,o){var n,l,i,a,r,p="",c=e("#wpsl-wrap").hasClass("wpsl-mobile"),d=e("#wpsl-wrap").hasClass("wpsl-default-filters"),w={action:"store_search",lat:t.lat(),lng:t.lng()};s?(w.max_results=wpslSettings.maxResults,w.search_radius=wpslSettings.searchRadius):(c||d?(n=parseInt(e("#wpsl-results .wpsl-dropdown").val()),l=parseInt(e("#wpsl-radius .wpsl-dropdown").val())):(n=parseInt(e("#wpsl-results .wpsl-selected-item").attr("data-value")),l=parseInt(e("#wpsl-radius .wpsl-selected-item").attr("data-value"))),isNaN(n)?w.max_results=wpslSettings.maxResults:w.max_results=n,isNaN(l)?w.search_radius=wpslSettings.searchRadius:w.search_radius=l,void 0!==wpslSettings.categoryIds?w.filter=wpslSettings.categoryIds:e("#wpsl-category").length>0?(p=c||d?parseInt(e("#wpsl-category .wpsl-dropdown").val()):parseInt(e("#wpsl-category .wpsl-selected-item").attr("data-value")),isNaN(p)||0===p||(w.filter=p)):e("#wpsl-checkbox-filter").length>0&&e("#wpsl-checkbox-filter input:checked").length>0&&(w.filter=e("#wpsl-checkbox-filter input:checked").map(function(){return e(this).val()}).get().join(",")),e(".wpsl-custom-dropdown").length>0&&e(".wpsl-custom-dropdown").each(function(t){i="",a="",c||d?(i=e(this).attr("name"),a=e(this).val()):(i=e(this).attr("name"),a=e(this).next(".wpsl-selected-item").attr("data-value")),i&&a&&(w[i]=a)}),e(".wpsl-custom-checkboxes").length>0&&e(".wpsl-custom-checkboxes").each(function(t){var s,o;(r=e(this).attr("data-name"))&&(w[r]=(s=e("[data-name="+r+"]"),o=[],e(s).find("input:checked").each(function(t){o.push(e(this).val())}),o.join()))}));1==o&&(void 0!==x.position?w.skip_cache=1:(w.autoload=1,void 0!==wpslSettings.categoryIds&&(w.filter=wpslSettings.categoryIds)));I.enabled&&0==o&&(w.search=e("#wpsl-search-input").val(),w.statistics=I.addressComponents);return w}(t,o,n),c.empty().append("<li class='wpsl-preloader'><img src='"+d+"'/>"+wpslLabels.preloader+"</li>"),e("#wpsl-wrap").removeClass("wpsl-no-results"),e.get(wpslSettings.ajaxurl,a,function(o){e(".wpsl-preloader").remove(),o.length>0&&void 0===o.addon?(e.each(o,function(e){_.extend(o[e],G),j(new google.maps.LatLng(o[e].lat,o[e].lng),o[e].id,o[e],!1,l),r+=_.template(p)(o[e])}),e("#wpsl-result-list").off("click",".wpsl-directions"),c.empty(),c.append(r),e("#wpsl-result-list").on("click",".wpsl-directions",function(){if(1!=wpslSettings.directionRedirect)return U(e(this)),!1}),W(),e("#wpsl-result-list p:empty").remove()):(j(t,0,"",!0,l),i=function(){var e;e=void 0!==wpslSettings.noResults&&""!==wpslSettings.noResults?wpslSettings.noResults:wpslLabels.noResults;return e}(),e("#wpsl-wrap").addClass("wpsl-no-results"),c.html("<li class='wpsl-no-results-msg'>"+i+"</li>")),1==wpslSettings.runFitBounds?q():(s.setZoom(Number(wpslSettings.zoomLevel)),s.setCenter(h[0].position)),1==wpslSettings.resetMap&&(e.isEmptyObject(C)&&google.maps.event.addListenerOnce(s,"tilesloaded",function(){C={centerLatlng:s.getCenter(),zoomLevel:s.getZoom()},e("#wpsl-map-controls").addClass("wpsl-reset-exists"),e(".wpsl-icon-reset, #wpsl-reset-map").show()}),e(".wpsl-icon-reset").removeClass("wpsl-in-progress"))}),1!=wpslSettings.mouseFocus||N()||e("#wpsl-search-input").focus()}function W(){if(1==wpslSettings.markerClusters){var e,t=Number(wpslSettings.clusterZoom),o=Number(wpslSettings.clusterSize);isNaN(t)&&(t=""),isNaN(o)&&(o=""),void 0!==wpslSettings.excludeStartFromCluster&&1==wpslSettings.excludeStartFromCluster&&(e=h.slice(0)).splice(0,1),r=new MarkerClusterer(s,void 0===e?h:e,{gridSize:o,maxZoom:t})}}function j(t,o,n,l,i){var a,r,p,c;0===o?(n={store:wpslLabels.startPoint},a=S.url+wpslSettings.startMarker):a=void 0!==n.alternateMarkerUrl&&n.alternateMarkerUrl?n.alternateMarkerUrl:void 0!==n.categoryMarkerUrl&&n.categoryMarkerUrl?n.categoryMarkerUrl:S.url+wpslSettings.storeMarker,r={url:a,scaledSize:new google.maps.Size(Number(S.scaledSize[0]),Number(S.scaledSize[1])),origin:new google.maps.Point(Number(S.origin[0]),Number(S.origin[1])),anchor:new google.maps.Point(Number(S.anchor[0]),Number(S.anchor[1]))},p=new google.maps.Marker({position:t,map:s,optimized:!1,title:function(e){if(e)return e.replace(/&#(\d+);/g,function(e,t){return String.fromCharCode(t)})}(n.store),draggable:l,storeId:o,icon:r}),h.push(p),google.maps.event.addListener(p,"click",(c=s,function(){var s,l;0!=o?void 0!==wpslSettings.markerStreetView&&1==wpslSettings.markerStreetView?(s=t,l=function(){D(p,H(n),i,c)},(new google.maps.StreetViewService).getPanoramaByLocation(s,50,function(e,t){L=t==google.maps.StreetViewStatus.OK,l()})):D(p,H(n),i,c):D(p,wpslLabels.startPoint,i,c),google.maps.event.clearListeners(i,"domready"),google.maps.event.addListener(i,"domready",function(){var t,s;t=p,s=c,e(".wpsl-info-actions a").on("click",function(o){var n,l,i,a,r,p=Number(wpslSettings.autoZoomLevel);if(o.stopImmediatePropagation(),e(this).hasClass("wpsl-directions")){if(1==wpslSettings.directionRedirect)return!0;U(e(this))}else e(this).hasClass("wpsl-streetview")?(n=t,(i=(l=s).getStreetView()).setPosition(n.getPosition()),i.setVisible(!0),e("#wpsl-map-controls").hide(),a=i,r=l,google.maps.event.addListener(a,"visible_changed",function(){if(!a.getVisible()){var t=r.getZoom();e("#wpsl-map-controls").show(),r.setZoom(t-1),r.setZoom(t)}})):e(this).hasClass("wpsl-zoom-here")&&(s.setCenter(t.getPosition()),s.setZoom(p));return!1}),F()})})),l&&google.maps.event.addListener(p,"dragend",function(e){K(!0),s.setCenter(e.latLng),B(e.latLng),$(e.latLng,y,k=!1,i)})}(_.templateSettings={evaluate:/\<\%(.+?)\%\>/g,interpolate:/\<\%=(.+?)\%\>/g,escape:/\<\%-(.+?)\%\>/g},e(".wpsl-gmap-canvas").length&&(e("<img />").attr("src",wpslSettings.url+"img/ajax-loader.gif"),e(".wpsl-gmap-canvas").each(function(i){!function(i,p){var c,d,w,g,u,m,f,h,b=Number(wpslSettings.zoomLevel),L=Number(wpslSettings.autoZoomLevel);w=function(e){var t,s,o,n,l,i,a,r=["zoomLevel","mapType","mapTypeControl","mapStyle","streetView","scrollWheel","controlPosition"],p={zoomLevel:wpslSettings.zoomLevel,mapType:wpslSettings.mapType,mapTypeControl:wpslSettings.mapTypeControl,mapStyle:wpslSettings.mapStyle,streetView:wpslSettings.streetView,scrollWheel:wpslSettings.scrollWheel,controlPosition:wpslSettings.controlPosition,gestureHandling:wpslSettings.gestureHandling};if(void 0!==window["wpslMap_"+e]&&void 0!==window["wpslMap_"+e].shortCode)for(t=0,s=r.length;t<s;t++)void 0!==(o=window["wpslMap_"+e].shortCode[r[t]])&&(p[r[t]]=o);return p.startLatLng=(n=e,a="",void 0!==window["wpslMap_"+n]&&void 0!==window["wpslMap_"+n].locations&&(a=window["wpslMap_"+n].locations[0]),void 0!==a&&void 0!==a.lat&&void 0!==a.lng?l=new google.maps.LatLng(a.lat,a.lng):""!==wpslSettings.startLatlng?(i=wpslSettings.startLatlng.split(","),l=new google.maps.LatLng(i[0],i[1])):l=new google.maps.LatLng(0,0),l),p}(p),(h=Number(w.zoomLevel))!==b&&(L=h);z={},void 0!==wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle?(R=wpslSettings.infoBoxClearance.split(","),U=wpslSettings.infoBoxPixelOffset.split(","),z={alignBottom:!0,boxClass:wpslSettings.infoBoxClass,closeBoxMargin:wpslSettings.infoBoxCloseMargin,closeBoxURL:wpslSettings.infoBoxCloseUrl,content:"",disableAutoPan:!!Number(wpslSettings.infoBoxDisableAutoPan),enableEventPropagation:!!Number(wpslSettings.infoBoxEnableEventPropagation),infoBoxClearance:new google.maps.Size(Number(R[0]),Number(R[1])),pixelOffset:new google.maps.Size(Number(U[0]),Number(U[1])),zIndex:Number(wpslSettings.infoBoxZindex)},a=new InfoBox(z)):a=new google.maps.InfoWindow,g=a,t=new google.maps.Geocoder,o=new google.maps.DirectionsRenderer,n=new google.maps.DirectionsService,c={zoom:h,center:w.startLatLng,mapTypeId:google.maps.MapTypeId[w.mapType.toUpperCase()],mapTypeControl:!!Number(w.mapTypeControl),streetViewControl:!!Number(w.streetView),gestureHandling:w.gestureHandling,zoomControlOptions:{position:google.maps.ControlPosition[w.controlPosition.toUpperCase()+"_TOP"]}},"cooperative"!==w.gestureHandling&&(c.scrollwheel=!!Number(w.scrollWheel));var R,U,z;S=function(){var e,t=wpslSettings.markerIconProps,s={};void 0!==t.url?s.url=t.url:void 0!==t.categoryMarkerUrl?s.categoryMarkerUrl=t.categoryMarkerUrl:void 0!==t.alternateMarkerUrl?s.alternateMarkerUrl=t.alternateMarkerUrl:s.url=wpslSettings.url+"img/markers/";for(var o in t)t.hasOwnProperty(o)&&2==(e=t[o].split(",")).length&&(s[o]=e);return s}(),s=new google.maps.Map(document.getElementById(i),c),B=w.mapStyle,(B=function(e){try{var t=JSON.parse(e);if(t&&"object"==typeof t&&null!==t)return t}catch(e){}return!1}(B))&&s.setOptions({styles:B}),void 0!==window["wpslMap_"+p]&&void 0!==window["wpslMap_"+p].locations&&(m=new google.maps.LatLngBounds,f=window["wpslMap_"+p].locations,e.each(f,function(e){j(u=new google.maps.LatLng(f[e].lat,f[e].lng),f[e].id,f[e],!1,g),m.extend(u)}),f.length>1&&(X(s,L),s.fitBounds(m)),_.isArray(wpslSettings.mapTabAnchor)&&(d={map:s,bounds:m,maxZoom:L},v.push(d)));var B;e("#wpsl-gmap").length&&(1==wpslSettings.autoComplete&&function(){var t,s,o,n={};void 0===wpslSettings.geocodeComponents||e.isEmptyObject(wpslSettings.geocodeComponents)||(n.componentRestrictions=wpslSettings.geocodeComponents);t=document.getElementById("wpsl-search-input"),(s=new google.maps.places.Autocomplete(t,n)).addListener("place_changed",function(){(o=s.getPlace()).geometry&&(l=o.geometry.location)})}(),!N()&&e(".wpsl-dropdown").length&&1==wpslSettings.enableStyledDropdowns?(G=Number(wpslSettings.maxDropdownHeight),e(".wpsl-dropdown").each(function(t){var s,o,n=e(this);n.$dropdownWrap=n.wrap("<div class='wpsl-dropdown'></div>").parent(),n.$selectedVal=n.val(),n.$dropdownElem=e("<div><ul/></div>").appendTo(n.$dropdownWrap),n.$dropdown=n.$dropdownElem.find("ul"),n.$options=n.$dropdownWrap.find("option"),n.hide().removeClass("wpsl-dropdown"),e.each(n.$options,function(){s=e(this).val()==n.$selectedVal?'class="wpsl-selected-dropdown"':"",n.$dropdown.append("<li data-value="+e(this).val()+" "+s+">"+e(this).text()+"</li>")}),n.$dropdownElem.before("<span data-value="+n.find(":selected").val()+" class='wpsl-selected-item'>"+n.find(":selected").text()+"</span>"),n.$dropdownItem=n.$dropdownElem.find("li"),n.$dropdownWrap.on("click",function(t){e(this).hasClass("wpsl-active")?e(this).removeClass("wpsl-active"):(Y(),e(this).toggleClass("wpsl-active"),o=0,e(this).hasClass("wpsl-active")?(n.$dropdownItem.each(function(t){o+=e(this).outerHeight()}),n.$dropdownElem.css("height",o+2+"px")):n.$dropdownElem.css("height",0),o>G&&(e(this).addClass("wpsl-scroll-required"),n.$dropdownElem.css("height",G+"px")),t.stopPropagation())}),n.$dropdownItem.on("click",function(t){n.$dropdownWrap.find(e(".wpsl-selected-item")).html(e(this).text()).attr("data-value",e(this).attr("data-value")),n.$dropdownItem.removeClass("wpsl-selected-dropdown"),e(this).addClass("wpsl-selected-dropdown"),Y(),t.stopPropagation()})}),e(document).click(function(){Y()})):(e("#wpsl-search-wrap select").show(),N()?e("#wpsl-wrap").addClass("wpsl-mobile"):e("#wpsl-wrap").addClass("wpsl-default-filters")),e(".wpsl-search").hasClass("wpsl-widget")||(1==wpslSettings.autoLocate?E(w.startLatLng,g):1==wpslSettings.autoLoad&&M(w.startLatLng,g)),1!=wpslSettings.mouseFocus||N()||e("#wpsl-search-input").focus(),D=g,e("#wpsl-search-btn").unbind("click").bind("click",function(s){return e("#wpsl-search-input").removeClass(),e("#wpsl-search-input").val()?(e("#wpsl-result-list ul").empty(),e("#wpsl-stores").show(),e(".wpsl-direction-before, .wpsl-direction-after").remove(),e("#wpsl-direction-details").hide(),y=!1,P(),K(!1),O(),1==wpslSettings.autoComplete&&void 0!==l?Z(l,D):(o=D,n={address:e("#wpsl-search-input").val()},void 0===wpslSettings.geocodeComponents||e.isEmptyObject(wpslSettings.geocodeComponents)||(n.componentRestrictions=wpslSettings.geocodeComponents),t.geocode(n,function(e,t){t==google.maps.GeocoderStatus.OK?(I.enabled&&A(e),Z(e[0].geometry.location,o)):Q(t)}))):e("#wpsl-search-input").addClass("wpsl-error").focus(),!1;var o,n}),$=w,V=s,W=g,google.maps.event.addListenerOnce(V,"tilesloaded",function(){var t,o;e(".gm-style").append(wpslSettings.mapControls),e(".wpsl-icon-reset, #wpsl-reset-map").length>0&&(t=$.startLatLng,o=W,e(".wpsl-icon-reset, #wpsl-reset-map").on("click",function(){e(this).hasClass("wpsl-in-progress")||(1==wpslSettings.autoLoad&&(k=1),s.getCenter().lat()===C.centerLatlng.lat()&&s.getCenter().lng()===C.centerLatlng.lng()&&s.getZoom()===C.zoomLevel||(K(!1),e("#wpsl-search-input").val("").removeClass(),e(".wpsl-icon-reset").addClass("wpsl-in-progress"),r&&r.clearMarkers(),O(),function(){var t,s,o,n,l,i,a,r,p=e("#wpsl-wrap").hasClass("wpsl-default-filters"),c=[wpslSettings.searchRadius+" "+wpslSettings.distanceUnit,wpslSettings.maxResults],d=["wpsl-radius","wpsl-results"];for(t=0,s=d.length;t<s;t++)e("#"+d[t]+" select").val(parseInt(c[t])),e("#"+d[t]+" li").removeClass(),"wpsl-radius"==d[t]?o=wpslSettings.searchRadius:"wpsl-results"==d[t]&&(o=wpslSettings.maxResults),e("#"+d[t]+" li").each(function(){e(this).text()===c[t]&&(e(this).addClass("wpsl-selected-dropdown"),e("#"+d[t]+" .wpsl-selected-item").html(c[t]).attr("data-value",o))});e("#wpsl-category").length&&(e("#wpsl-category select").val(0),e("#wpsl-category li").removeClass(),e("#wpsl-category li:first-child").addClass("wpsl-selected-dropdown"),n=e("#wpsl-category li:first-child").text(),e("#wpsl-category .wpsl-selected-item").html(n).attr("data-value",0)),e(".wpsl-custom-dropdown").length>0&&e(".wpsl-custom-dropdown").each(function(t){p?e(this).find("option").removeAttr("selected"):(l=e(this).siblings("div"),i=l.find("li:first-child"),a=i.text(),r=i.attr("data-value"),l.find("li").removeClass(),l.prev().html(a).attr("data-value",r))})}(),1==wpslSettings.autoLocate?T(t,x.position,!0,o):M(t,o)),e("#wpsl-stores").show(),e("#wpsl-direction-details").hide())}),e(".wpsl-icon-reset").hide()),e(".wpsl-icon-direction").on("click",function(){e(this).addClass("wpsl-user-activated"),E($.startLatLng,W)})}),e(".wpsl-search").hasClass("wpsl-widget")&&(e("#wpsl-search-btn").trigger("click"),e(".wpsl-search").removeClass("wpsl-widget")));var $,V,W;var D;var G;void 0!==wpslSettings.markerZoomTo&&1==wpslSettings.markerZoomTo&&google.maps.event.addListener(s,"zoom_changed",function(){F()})}(e(this).attr("id"),i)}),function(){var t,o;if(_.isArray(wpslSettings.mapTabAnchor))for(t=0,o=v.length;t<o;t++)J(v[t],wpslSettings.mapTabAnchor[t],t);else e("a[href='#"+wpslSettings.mapTabAnchor+"']").length&&J(s,wpslSettings.mapTabAnchor)}()),e("#wpsl-result-list").on("click",".wpsl-back",function(){var t,n;for(o.setMap(null),t=0,n=h.length;t<n;t++)h[t].setMap(s);return void 0!==p&&""!==p&&p.setMap(s),r&&W(),s.setCenter(b.centerLatlng),s.setZoom(b.zoomLevel),e(".wpsl-direction-before, .wpsl-direction-after").remove(),e("#wpsl-stores").show(),e("#wpsl-direction-details").hide(),!1}),e("#wpsl-gmap").length&&("bounce"==wpslSettings.markerEffect?(e("#wpsl-stores").on("mouseenter","li",function(){z(e(this).data("store-id"),"start")}),e("#wpsl-stores").on("mouseleave","li",function(){z(e(this).data("store-id"),"stop")})):"info_window"==wpslSettings.markerEffect&&e("#wpsl-stores").on("mouseenter","li",function(){var t,o;for(t=0,o=h.length;t<o;t++)h[t].storeId==e(this).data("store-id")&&(google.maps.event.trigger(h[t],"click"),s.setCenter(h[t].position))})),void 0!==wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&1==wpslSettings.markerClusters)&&google.maps.event.addListener(s,"zoom_changed",function(){google.maps.event.addListenerOnce(s,"idle",function(){if(void 0!==r&&(d=r.clusters_).length)for(u=0,w=d.length;u<w;u++)for(m=0,g=d[u].markers_.length;m<g;m++)if(d[u].markers_[m].storeId==i){a.getVisible()&&null===d[u].markers_[m].map?a.setVisible(!1):a.getVisible()||null===d[u].markers_[m].map||a.setVisible(!0);break}})});function D(e,t,s,o){f.length=0,s.setContent(t),s.open(o,e),f.push(s),void 0!==wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&1==wpslSettings.markerClusters&&(i=e.storeId,s.setVisible(!0))}function F(){s.getZoom()>=wpslSettings.autoZoomLevel?e(".wpsl-zoom-here").hide():e(".wpsl-zoom-here").show()}var G={formatPhoneNumber:function(e){return(1==wpslSettings.phoneUrl&&N()||1==wpslSettings.clickableDetails)&&(e="<a href='tel:"+G.formatClickablePhoneNumber(e)+"'>"+e+"</a>"),e},formatClickablePhoneNumber:function(e){return-1!=e.indexOf("+")&&-1!=e.indexOf("(0)")&&(e=e.replace("(0)","")),e.replace(/(-| |\(|\)|\.|)/g,"")},formatEmail:function(e){return 1==wpslSettings.clickableDetails&&(e="<a href='mailto:"+e+"'>"+e+"</a>"),e},createInfoWindowActions:function(t){var s,o="",n="";return e("#wpsl-gmap").length&&(L&&(o="<a class='wpsl-streetview' href='#'>"+wpslLabels.streetView+"</a>"),1==wpslSettings.markerZoomTo&&(n="<a class='wpsl-zoom-here' href='#'>"+wpslLabels.zoomHere+"</a>"),s="<div class='wpsl-info-actions'>"+G.createDirectionUrl(t)+o+n+"</div>"),s},createDirectionUrl:function(t){var s,o,n={};return 1==wpslSettings.directionRedirect?(void 0===c&&(c=""),n.target="target='_blank'",void 0!==t?n.src=e("[data-store-id="+t+"] .wpsl-directions").attr("href"):(o=this.zip?this.zip+", ":"",s=this.address+", "+this.city+", "+o+this.country,n.src="https://www.google.com/maps/dir/?api=1&origin="+G.rfc3986EncodeURIComponent(c)+"&destination="+G.rfc3986EncodeURIComponent(s)+"&travelmode="+wpslSettings.directionsTravelMode.toLowerCase())):n={src:"#",target:""},"<a class='wpsl-directions' "+n.target+" href='"+n.src+"'>"+wpslLabels.directions+"</a>"},rfc3986EncodeURIComponent:function(e){return encodeURIComponent(e).replace(/[!'()*]/g,escape)}};function H(t){var s;return s=e("#wpsl-base-gmap_0").length?e("#wpsl-cpt-info-window-template").html():e("#wpsl-info-window-template").html(),_.template(s)(t)}function q(){var e,t,o=Number(wpslSettings.autoZoomLevel),n=new google.maps.LatLngBounds;for(X(s,o),e=0,t=h.length;e<t;e++)n.extend(h[e].position);s.fitBounds(n)}function K(e){var t,s;if(o.setMap(null),h){for(s=0,t=h.length;s<t;s++)e?1!=h[s].draggable?h[s].setMap(null):p=h[s]:h[s].setMap(null);h.length=0}r&&r.clearMarkers()}function Q(e){var t;switch(e){case"ZERO_RESULTS":t=wpslLabels.noResults;break;case"OVER_QUERY_LIMIT":t=wpslLabels.queryLimit;break;default:t=wpslLabels.generalError}alert(t)}function Y(){e(".wpsl-dropdown").removeClass("wpsl-active"),e(".wpsl-dropdown div").css("height",0)}function J(t,s,o){var n,l,i,a,r,p=!!Number(wpslSettings.mapTabAnchorReturn),c=e("a[href='#"+s+"']");i=void 0!==t.maxZoom?t.maxZoom:Number(wpslSettings.autoZoomLevel),void 0!==o&&0==o&&c.addClass("wpsl-fitbounds"),c.on("click",function(){return setTimeout(function(){void 0!==t.map?(a=t.bounds,r=t.map):r=t,n=r.getZoom(),l=r.getCenter(),google.maps.event.trigger(r,"resize"),c.hasClass("wpsl-fitbounds")||(X(r,i),r.setZoom(n),r.setCenter(l),void 0!==a?r.fitBounds(a):q(),c.addClass("wpsl-fitbounds"))},50),p})}function X(e,t){google.maps.event.addListenerOnce(e,"bounds_changed",function(){google.maps.event.addListenerOnce(e,"idle",function(){this.getZoom()>t&&this.setZoom(t)})})}e("#wpsl-stores").on("click",".wpsl-store-details",function(){var t,s,o=e(this).parents("li"),n=o.data("store-id");if("info window"==wpslSettings.moreInfoLocation)for(t=0,s=h.length;t<s;t++)h[t].storeId==n&&google.maps.event.trigger(h[t],"click");else o.find(".wpsl-more-info-listings").is(":visible")?e(this).removeClass("wpsl-active-details"):e(this).addClass("wpsl-active-details"),o.siblings().find(".wpsl-store-details").removeClass("wpsl-active-details"),o.siblings().find(".wpsl-more-info-listings").hide(),o.find(".wpsl-more-info-listings").toggle();if("default"!=wpslSettings.templateId||"store listings"==wpslSettings.moreInfoLocation)return!1})});
1
+ jQuery(document).ready(function(e){var t,s,o,n,l,i,a,r,p,c,d,w,g,u,m,f=[],h=[],v=[],S={},b={},C={},y=!1,L=!1,k="undefined"!=typeof wpslSettings?wpslSettings.autoLoad:"",x={},I={enabled:void 0!==wpslSettings.collectStatistics,addressComponents:""};function M(e,t){D(e,0,"",!0,t),V(e,y,k,t)}function E(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}function N(t,s){if(navigator.geolocation){var o,n,l=Number(wpslSettings.geoLocationTimeout);o=setInterval(function(){e(".wpsl-icon-direction").toggleClass("wpsl-active-icon")},600),n=setTimeout(function(){R(o),M(t,s)},l),navigator.geolocation.getCurrentPosition(function(l){R(o),clearTimeout(n),Q(!1),O(t,l,y,s),e(".wpsl-search").addClass("wpsl-geolocation-run")},function(o){if(e(".wpsl-icon-direction").hasClass("wpsl-user-activated")&&!e(".wpsl-search").hasClass("wpsl-geolocation-run")){switch(o.code){case o.PERMISSION_DENIED:alert(wpslGeolocationErrors.denied);break;case o.POSITION_UNAVAILABLE:alert(wpslGeolocationErrors.unavailable);break;case o.TIMEOUT:alert(wpslGeolocationErrors.timeout);break;default:alert(wpslGeolocationErrors.generalError)}e(".wpsl-icon-direction").removeClass("wpsl-active-icon")}else e(".wpsl-search").hasClass("wpsl-geolocation-run")||(clearTimeout(n),M(t,s))},{maximumAge:6e4,timeout:l,enableHighAccuracy:!0})}else alert(wpslGeolocationErrors.unavailable),M(t,s)}function R(t){clearInterval(t),e(".wpsl-icon-direction").removeClass("wpsl-active-icon")}function O(e,t,o,n){if(void 0===t)M(e,n);else{var l=new google.maps.LatLng(t.coords.latitude,t.coords.longitude);x={position:t,newRequest:!0},s.setCenter(l),D(l,0,"",!0,n),V(l,o,k,n)}}function P(){void 0!==wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&void 0!==f[0]&&f[0].close()}function T(){void 0!==p&&""!==p&&(p.setMap(null),p="")}function U(t){var l,i,a,c,d;for(P(),d=t.parents("li").length>0?t.parents("li").data("store-id"):t.parents(".wpsl-info-window").data("store-id"),void 0!==p&&""!==p&&(i=p.getPosition()),b={centerLatlng:s.getCenter(),zoomLevel:s.getZoom()},l=0,c=h.length;l<c;l++)0!=h[l].storeId||void 0!==i&&""!==i?h[l].storeId==d&&(a=h[l].getPosition()):i=h[l].getPosition();i&&a?(e("#wpsl-direction-details ul").empty(),e(".wpsl-direction-before, .wpsl-direction-after").remove(),function(t,l){var i,a,c,d,w,g,u,m,f,v="";u="km"==wpslSettings.distanceUnit?"METRIC":"IMPERIAL";f={origin:t,destination:l,travelMode:wpslSettings.directionsTravelMode,unitSystem:google.maps.UnitSystem[u]},n.route(f,function(t,n){if(n==google.maps.DirectionsStatus.OK){if(o.setMap(s),o.setDirections(t),t.routes.length>0){for(d=t.routes[0],w=0;w<d.legs.length;w++)for(i=d.legs[w],g=0,a=i.steps.length;g<a;g++)c=i.steps[g],v=v+"<li><div class='wpsl-direction-index'>"+(g+1)+"</div><div class='wpsl-direction-txt'>"+c.instructions+"</div><div class='wpsl-direction-distance'>"+c.distance.text+"</div></li>";for(e("#wpsl-direction-details ul").append(v).before("<div class='wpsl-direction-before'><a class='wpsl-back' id='wpsl-direction-start' href='#'>"+wpslLabels.back+"</a><div><span class='wpsl-total-distance'>"+d.legs[0].distance.text+"</span> - <span class='wpsl-total-durations'>"+d.legs[0].duration.text+"</span></div></div>").after("<p class='wpsl-direction-after'>"+t.routes[0].copyrights+"</p>"),e("#wpsl-direction-details").show(),w=0,a=h.length;w<a;w++)h[w].setMap(null);r&&r.clearMarkers(),void 0!==p&&""!==p&&p.setMap(null),e("#wpsl-stores").hide(),1==wpslSettings.templateId&&(m=e("#wpsl-gmap").offset(),e(window).scrollTop(m.top))}}else!function(e){var t;switch(e){case"NOT_FOUND":case"ZERO_RESULTS":t=wpslLabels.noDirectionsFound;break;case"OVER_QUERY_LIMIT":t=wpslLabels.queryLimit;break;default:t=wpslLabels.generalError}alert(t)}(n)})}(i,a)):alert(wpslLabels.generalError)}function z(e,t){var s,o,n;for(s=0,o=h.length;s<o;s++)h[s].storeId==e&&(n=h[s],"start"==t?n.setAnimation(google.maps.Animation.BOUNCE):n.setAnimation(null))}function Z(s){var o={};void 0===wpslSettings.geocodeComponents||e.isEmptyObject(wpslSettings.geocodeComponents)?o.address=e("#wpsl-search-input").val():(o.componentRestrictions=wpslSettings.geocodeComponents,void 0!==o.componentRestrictions.postalCode?o.componentRestrictions.postalCode=e("#wpsl-search-input").val():o.address=e("#wpsl-search-input").val()),console.log("request params"),console.log(o),t.geocode(o,function(e,t){t==google.maps.GeocoderStatus.OK?(I.enabled&&$(e),B(e[0].geometry.location,s)):Y(t)})}function B(e,t){D(e,0,"",!0,t),V(e,y,!1,t)}function A(s,o){var n=s.lat().toFixed(5),l=s.lng().toFixed(5);s.lat=function(){return parseFloat(n)},s.lng=function(){return parseFloat(l)},t.geocode({latLng:s},function(t,s){if(s==google.maps.GeocoderStatus.OK){if(1==wpslSettings.autoLocate&&x.newRequest){var n=function(e){var t,s,o,n=e[0].address_components.length;for(o=0;o<n;o++)s=e[0].address_components[o].types,(/^postal_code$/.test(s)||/^postal_code,postal_code_prefix$/.test(s))&&(t=e[0].address_components[o].long_name);return t}(t);""!==n&&e("#wpsl-search-input").val(n),x.newRequest=!1}wpslSettings.directionRedirect&&(c=t[0].formatted_address),I.enabled&&e("#wpsl-search-input").val().length>0&&e.isEmptyObject(I.addressComponents)&&$(t),o()}else Y(s)})}function $(t){var s,o,n,l,i,a,r,p={},c={};for(a=t,r="",e.each(a[0].address_components,function(e){if("country,political"==a[0].address_components[e].types.join(","))return r=a[0].address_components[e].short_name,!1}),s="GB"==(l=r)?{city:"postal_town",city_locality:"locality,political",region:"administrative_area_level_2,political",country:"administrative_area_level_1,political"}:{city:"locality,political",region:"administrative_area_level_1,political",country:"country,political"},o=t[0].address_components.length,u=0;u<o;u++){n=t[0].address_components[u].types;for(var d in s)s[d]==n.join(",")&&(t[0].address_components[u].long_name.length>0?c[d]=t[0].address_components[u].long_name:c[d]=t[0].address_components[u].short_name)}for(var d in s)void 0===c[d]&&(p[d]=s[d]);if("GB"==l&&void 0!==p.city_locality&&void 0===p.city&&(p={}),Object.keys(p).length>0)for(i=t.length,u=1;u<i;u++)for(o=t[u].address_components.length,m=0;m<o;m++){n=t[u].address_components[m].types;for(var d in p)s[d]==n.join(",")&&(c[d]=t[u].address_components[m].long_name)}void 0!==c.city_locality&&c.city_locality.length>0&&(c.city=c.city_locality,delete c.city_locality),I.addressComponents=c}function V(e,t,s,o){1==wpslSettings.directionRedirect||I.enabled?A(e,function(){W(e,t,s,o)}):W(e,t,s,o)}function W(t,o,n,l){var i,a,r="",p=e("#wpsl-listing-template").html(),c=e("#wpsl-stores ul"),d=wpslSettings.url+"img/ajax-loader.gif";a=function(t,s,o){var n,l,i,a,r,p="",c=e("#wpsl-wrap").hasClass("wpsl-mobile"),d=e("#wpsl-wrap").hasClass("wpsl-default-filters"),w={action:"store_search",lat:t.lat(),lng:t.lng()};s?(w.max_results=wpslSettings.maxResults,w.search_radius=wpslSettings.searchRadius):(c||d?(n=parseInt(e("#wpsl-results .wpsl-dropdown").val()),l=parseInt(e("#wpsl-radius .wpsl-dropdown").val())):(n=parseInt(e("#wpsl-results .wpsl-selected-item").attr("data-value")),l=parseInt(e("#wpsl-radius .wpsl-selected-item").attr("data-value"))),isNaN(n)?w.max_results=wpslSettings.maxResults:w.max_results=n,isNaN(l)?w.search_radius=wpslSettings.searchRadius:w.search_radius=l,void 0!==wpslSettings.categoryIds?w.filter=wpslSettings.categoryIds:e("#wpsl-category").length>0?(p=c||d?parseInt(e("#wpsl-category .wpsl-dropdown").val()):parseInt(e("#wpsl-category .wpsl-selected-item").attr("data-value")),isNaN(p)||0===p||(w.filter=p)):e("#wpsl-checkbox-filter").length>0&&e("#wpsl-checkbox-filter input:checked").length>0&&(w.filter=e("#wpsl-checkbox-filter input:checked").map(function(){return e(this).val()}).get().join(",")),e(".wpsl-custom-dropdown").length>0&&e(".wpsl-custom-dropdown").each(function(t){i="",a="",c||d?(i=e(this).attr("name"),a=e(this).val()):(i=e(this).attr("name"),a=e(this).next(".wpsl-selected-item").attr("data-value")),i&&a&&(w[i]=a)}),e(".wpsl-custom-checkboxes").length>0&&e(".wpsl-custom-checkboxes").each(function(t){var s,o;(r=e(this).attr("data-name"))&&(w[r]=(s=e("[data-name="+r+"]"),o=[],e(s).find("input:checked").each(function(t){o.push(e(this).val())}),o.join()))}));1==o&&(void 0!==x.position?w.skip_cache=1:(w.autoload=1,void 0!==wpslSettings.categoryIds&&(w.filter=wpslSettings.categoryIds)));I.enabled&&0==o&&(w.search=e("#wpsl-search-input").val(),w.statistics=I.addressComponents);return w}(t,o,n),c.empty().append("<li class='wpsl-preloader'><img src='"+d+"'/>"+wpslLabels.preloader+"</li>"),e("#wpsl-wrap").removeClass("wpsl-no-results"),e.get(wpslSettings.ajaxurl,a,function(o){e(".wpsl-preloader").remove(),o.length>0&&void 0===o.addon?(e.each(o,function(e){_.extend(o[e],H),D(new google.maps.LatLng(o[e].lat,o[e].lng),o[e].id,o[e],!1,l),r+=_.template(p)(o[e])}),e("#wpsl-result-list").off("click",".wpsl-directions"),c.empty(),c.append(r),e("#wpsl-result-list").on("click",".wpsl-directions",function(){if(1!=wpslSettings.directionRedirect)return U(e(this)),!1}),j(),e("#wpsl-result-list p:empty").remove()):(D(t,0,"",!0,l),i=function(){var e;e=void 0!==wpslSettings.noResults&&""!==wpslSettings.noResults?wpslSettings.noResults:wpslLabels.noResults;return e}(),e("#wpsl-wrap").addClass("wpsl-no-results"),c.html("<li class='wpsl-no-results-msg'>"+i+"</li>")),1==wpslSettings.runFitBounds?K():(s.setZoom(Number(wpslSettings.zoomLevel)),s.setCenter(h[0].position)),1==wpslSettings.resetMap&&(e.isEmptyObject(C)&&google.maps.event.addListenerOnce(s,"tilesloaded",function(){C={centerLatlng:s.getCenter(),zoomLevel:s.getZoom()},e("#wpsl-map-controls").addClass("wpsl-reset-exists"),e(".wpsl-icon-reset, #wpsl-reset-map").show()}),e(".wpsl-icon-reset").removeClass("wpsl-in-progress"))}),1!=wpslSettings.mouseFocus||E()||e("#wpsl-search-input").focus()}function j(){if(1==wpslSettings.markerClusters){var e,t=Number(wpslSettings.clusterZoom),o=Number(wpslSettings.clusterSize);isNaN(t)&&(t=""),isNaN(o)&&(o=""),void 0!==wpslSettings.excludeStartFromCluster&&1==wpslSettings.excludeStartFromCluster&&(e=h.slice(0)).splice(0,1),r=new MarkerClusterer(s,void 0===e?h:e,{gridSize:o,maxZoom:t})}}function D(t,o,n,l,i){var a,r,p,c;0===o?(n={store:wpslLabels.startPoint},a=S.url+wpslSettings.startMarker):a=void 0!==n.alternateMarkerUrl&&n.alternateMarkerUrl?n.alternateMarkerUrl:void 0!==n.categoryMarkerUrl&&n.categoryMarkerUrl?n.categoryMarkerUrl:S.url+wpslSettings.storeMarker,r={url:a,scaledSize:new google.maps.Size(Number(S.scaledSize[0]),Number(S.scaledSize[1])),origin:new google.maps.Point(Number(S.origin[0]),Number(S.origin[1])),anchor:new google.maps.Point(Number(S.anchor[0]),Number(S.anchor[1]))},p=new google.maps.Marker({position:t,map:s,optimized:!1,title:function(e){if(e)return e.replace(/&#(\d+);/g,function(e,t){return String.fromCharCode(t)})}(n.store),draggable:l,storeId:o,icon:r}),h.push(p),google.maps.event.addListener(p,"click",(c=s,function(){var s,l;0!=o?void 0!==wpslSettings.markerStreetView&&1==wpslSettings.markerStreetView?(s=t,l=function(){F(p,q(n),i,c)},(new google.maps.StreetViewService).getPanoramaByLocation(s,50,function(e,t){L=t==google.maps.StreetViewStatus.OK,l()})):F(p,q(n),i,c):F(p,wpslLabels.startPoint,i,c),google.maps.event.clearListeners(i,"domready"),google.maps.event.addListener(i,"domready",function(){var t,s;t=p,s=c,e(".wpsl-info-actions a").on("click",function(o){var n,l,i,a,r,p=Number(wpslSettings.autoZoomLevel);if(o.stopImmediatePropagation(),e(this).hasClass("wpsl-directions")){if(1==wpslSettings.directionRedirect)return!0;U(e(this))}else e(this).hasClass("wpsl-streetview")?(n=t,(i=(l=s).getStreetView()).setPosition(n.getPosition()),i.setVisible(!0),e("#wpsl-map-controls").hide(),a=i,r=l,google.maps.event.addListener(a,"visible_changed",function(){if(!a.getVisible()){var t=r.getZoom();e("#wpsl-map-controls").show(),r.setZoom(t-1),r.setZoom(t)}})):e(this).hasClass("wpsl-zoom-here")&&(s.setCenter(t.getPosition()),s.setZoom(p));return!1}),G()})})),l&&google.maps.event.addListener(p,"dragend",function(e){Q(!0),s.setCenter(e.latLng),A(e.latLng),V(e.latLng,y,k=!1,i)})}(_.templateSettings={evaluate:/\<\%(.+?)\%\>/g,interpolate:/\<\%=(.+?)\%\>/g,escape:/\<\%-(.+?)\%\>/g},e(".wpsl-gmap-canvas").length&&(e("<img />").attr("src",wpslSettings.url+"img/ajax-loader.gif"),e(".wpsl-gmap-canvas").each(function(i){!function(i,p){var c,d,w,g,u,m,f,h,b=Number(wpslSettings.zoomLevel),y=Number(wpslSettings.autoZoomLevel);w=function(e){var t,s,o,n,l,i,a,r=["zoomLevel","mapType","mapTypeControl","mapStyle","streetView","scrollWheel","controlPosition"],p={zoomLevel:wpslSettings.zoomLevel,mapType:wpslSettings.mapType,mapTypeControl:wpslSettings.mapTypeControl,mapStyle:wpslSettings.mapStyle,streetView:wpslSettings.streetView,scrollWheel:wpslSettings.scrollWheel,controlPosition:wpslSettings.controlPosition,gestureHandling:wpslSettings.gestureHandling};if(void 0!==window["wpslMap_"+e]&&void 0!==window["wpslMap_"+e].shortCode)for(t=0,s=r.length;t<s;t++)void 0!==(o=window["wpslMap_"+e].shortCode[r[t]])&&(p[r[t]]=o);return p.startLatLng=(n=e,a="",void 0!==window["wpslMap_"+n]&&void 0!==window["wpslMap_"+n].locations&&(a=window["wpslMap_"+n].locations[0]),void 0!==a&&void 0!==a.lat&&void 0!==a.lng?l=new google.maps.LatLng(a.lat,a.lng):""!==wpslSettings.startLatlng?(i=wpslSettings.startLatlng.split(","),l=new google.maps.LatLng(i[0],i[1])):l=new google.maps.LatLng(0,0),l),p}(p),(h=Number(w.zoomLevel))!==b&&(y=h);R={},void 0!==wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle?(L=wpslSettings.infoBoxClearance.split(","),I=wpslSettings.infoBoxPixelOffset.split(","),R={alignBottom:!0,boxClass:wpslSettings.infoBoxClass,closeBoxMargin:wpslSettings.infoBoxCloseMargin,closeBoxURL:wpslSettings.infoBoxCloseUrl,content:"",disableAutoPan:!!Number(wpslSettings.infoBoxDisableAutoPan),enableEventPropagation:!!Number(wpslSettings.infoBoxEnableEventPropagation),infoBoxClearance:new google.maps.Size(Number(L[0]),Number(L[1])),pixelOffset:new google.maps.Size(Number(I[0]),Number(I[1])),zIndex:Number(wpslSettings.infoBoxZindex)},a=new InfoBox(R)):a=new google.maps.InfoWindow,g=a,t=new google.maps.Geocoder,o=new google.maps.DirectionsRenderer,n=new google.maps.DirectionsService,c={zoom:h,center:w.startLatLng,mapTypeId:google.maps.MapTypeId[w.mapType.toUpperCase()],mapTypeControl:!!Number(w.mapTypeControl),streetViewControl:!!Number(w.streetView),gestureHandling:w.gestureHandling,zoomControlOptions:{position:google.maps.ControlPosition[w.controlPosition.toUpperCase()+"_TOP"]}},"cooperative"!==w.gestureHandling&&(c.scrollwheel=!!Number(w.scrollWheel));var L,I,R;S=function(){var e,t=wpslSettings.markerIconProps,s={};void 0!==t.url?s.url=t.url:void 0!==t.categoryMarkerUrl?s.categoryMarkerUrl=t.categoryMarkerUrl:void 0!==t.alternateMarkerUrl?s.alternateMarkerUrl=t.alternateMarkerUrl:s.url=wpslSettings.url+"img/markers/";for(var o in t)t.hasOwnProperty(o)&&2==(e=t[o].split(",")).length&&(s[o]=e);return s}(),s=new google.maps.Map(document.getElementById(i),c),P=w.mapStyle,(P=function(e){try{var t=JSON.parse(e);if(t&&"object"==typeof t&&null!==t)return t}catch(e){}return!1}(P))&&s.setOptions({styles:P}),void 0!==window["wpslMap_"+p]&&void 0!==window["wpslMap_"+p].locations&&(m=new google.maps.LatLngBounds,f=window["wpslMap_"+p].locations,e.each(f,function(e){D(u=new google.maps.LatLng(f[e].lat,f[e].lng),f[e].id,f[e],!1,g),m.extend(u)}),f.length>1&&(ee(s,y),s.fitBounds(m)),_.isArray(wpslSettings.mapTabAnchor)&&(d={map:s,bounds:m,maxZoom:y},v.push(d)));var P;e("#wpsl-gmap").length&&(1==wpslSettings.autoComplete&&function(){var t,s,o,n={};e("#wpsl-search-input").keypress(function(e){if(13==e.which)return te(),Z(a),!1}),void 0===wpslSettings.geocodeComponents||e.isEmptyObject(wpslSettings.geocodeComponents)||(n.componentRestrictions=wpslSettings.geocodeComponents,n.componentRestrictions=_.omit(n.componentRestrictions,"postalCode"));if(void 0!==wpslSettings.autoCompleteOptions&&!e.isEmptyObject(wpslSettings.autoCompleteOptions))for(var i in wpslSettings.autoCompleteOptions)wpslSettings.autoCompleteOptions.hasOwnProperty(i)&&(n[i]=wpslSettings.autoCompleteOptions[i]);t=document.getElementById("wpsl-search-input"),(s=new google.maps.places.Autocomplete(t,n)).addListener("place_changed",function(){(o=s.getPlace()).geometry&&(l=o.geometry.location)})}(),!E()&&e(".wpsl-dropdown").length&&1==wpslSettings.enableStyledDropdowns?(V=Number(wpslSettings.maxDropdownHeight),e(".wpsl-dropdown").each(function(t){var s,o,n=e(this);n.$dropdownWrap=n.wrap("<div class='wpsl-dropdown'></div>").parent(),n.$selectedVal=n.val(),n.$dropdownElem=e("<div><ul/></div>").appendTo(n.$dropdownWrap),n.$dropdown=n.$dropdownElem.find("ul"),n.$options=n.$dropdownWrap.find("option"),n.hide().removeClass("wpsl-dropdown"),e.each(n.$options,function(){s=e(this).val()==n.$selectedVal?'class="wpsl-selected-dropdown"':"",n.$dropdown.append("<li data-value="+e(this).val()+" "+s+">"+e(this).text()+"</li>")}),n.$dropdownElem.before("<span data-value="+n.find(":selected").val()+" class='wpsl-selected-item'>"+n.find(":selected").text()+"</span>"),n.$dropdownItem=n.$dropdownElem.find("li"),n.$dropdownWrap.on("click",function(t){e(this).hasClass("wpsl-active")?e(this).removeClass("wpsl-active"):(J(),e(this).toggleClass("wpsl-active"),o=0,e(this).hasClass("wpsl-active")?(n.$dropdownItem.each(function(t){o+=e(this).outerHeight()}),n.$dropdownElem.css("height",o+2+"px")):n.$dropdownElem.css("height",0),o>V&&(e(this).addClass("wpsl-scroll-required"),n.$dropdownElem.css("height",V+"px")),t.stopPropagation())}),n.$dropdownItem.on("click",function(t){n.$dropdownWrap.find(e(".wpsl-selected-item")).html(e(this).text()).attr("data-value",e(this).attr("data-value")),n.$dropdownItem.removeClass("wpsl-selected-dropdown"),e(this).addClass("wpsl-selected-dropdown"),J(),t.stopPropagation()})}),e(document).click(function(){J()})):(e("#wpsl-search-wrap select").show(),E()?e("#wpsl-wrap").addClass("wpsl-mobile"):e("#wpsl-wrap").addClass("wpsl-default-filters")),e(".wpsl-search").hasClass("wpsl-widget")||(1==wpslSettings.autoLocate?N(w.startLatLng,g):1==wpslSettings.autoLoad&&M(w.startLatLng,g)),1!=wpslSettings.mouseFocus||E()||e("#wpsl-search-input").focus(),$=g,e("#wpsl-search-btn").unbind("click").bind("click",function(t){return e("#wpsl-search-input").removeClass(),e("#wpsl-search-input").val()?(te(),1==wpslSettings.autoComplete&&void 0!==l?B(l,$):Z($)):e("#wpsl-search-input").addClass("wpsl-error").focus(),!1}),U=w,z=s,A=g,google.maps.event.addListenerOnce(z,"tilesloaded",function(){var t,o;e(".gm-style").append(wpslSettings.mapControls),e(".wpsl-icon-reset, #wpsl-reset-map").length>0&&(t=U.startLatLng,o=A,e(".wpsl-icon-reset, #wpsl-reset-map").on("click",function(){e(this).hasClass("wpsl-in-progress")||(1==wpslSettings.autoLoad&&(k=1),s.getCenter().lat()===C.centerLatlng.lat()&&s.getCenter().lng()===C.centerLatlng.lng()&&s.getZoom()===C.zoomLevel||(Q(!1),e("#wpsl-search-input").val("").removeClass(),e(".wpsl-icon-reset").addClass("wpsl-in-progress"),r&&r.clearMarkers(),T(),function(){var t,s,o,n,l,i,a,r,p=e("#wpsl-wrap").hasClass("wpsl-default-filters"),c=[wpslSettings.searchRadius+" "+wpslSettings.distanceUnit,wpslSettings.maxResults],d=["wpsl-radius","wpsl-results"];for(t=0,s=d.length;t<s;t++)e("#"+d[t]+" select").val(parseInt(c[t])),e("#"+d[t]+" li").removeClass(),"wpsl-radius"==d[t]?o=wpslSettings.searchRadius:"wpsl-results"==d[t]&&(o=wpslSettings.maxResults),e("#"+d[t]+" li").each(function(){e(this).text()===c[t]&&(e(this).addClass("wpsl-selected-dropdown"),e("#"+d[t]+" .wpsl-selected-item").html(c[t]).attr("data-value",o))});e("#wpsl-category").length&&(e("#wpsl-category select").val(0),e("#wpsl-category li").removeClass(),e("#wpsl-category li:first-child").addClass("wpsl-selected-dropdown"),n=e("#wpsl-category li:first-child").text(),e("#wpsl-category .wpsl-selected-item").html(n).attr("data-value",0)),e(".wpsl-custom-dropdown").length>0&&e(".wpsl-custom-dropdown").each(function(t){p?e(this).find("option").removeAttr("selected"):(l=e(this).siblings("div"),i=l.find("li:first-child"),a=i.text(),r=i.attr("data-value"),l.find("li").removeClass(),l.prev().html(a).attr("data-value",r))})}(),1==wpslSettings.autoLocate?O(t,x.position,!0,o):M(t,o)),e("#wpsl-stores").show(),e("#wpsl-direction-details").hide())}),e(".wpsl-icon-reset").hide()),e(".wpsl-icon-direction").on("click",function(){e(this).addClass("wpsl-user-activated"),N(U.startLatLng,A)})}),e(".wpsl-search").hasClass("wpsl-widget")&&(e("#wpsl-search-btn").trigger("click"),e(".wpsl-search").removeClass("wpsl-widget")));var U,z,A;var $;var V;void 0!==wpslSettings.markerZoomTo&&1==wpslSettings.markerZoomTo&&google.maps.event.addListener(s,"zoom_changed",function(){G()})}(e(this).attr("id"),i)}),function(){var t,o;if(_.isArray(wpslSettings.mapTabAnchor))for(t=0,o=v.length;t<o;t++)X(v[t],wpslSettings.mapTabAnchor[t],t);else e("a[href='#"+wpslSettings.mapTabAnchor+"']").length&&X(s,wpslSettings.mapTabAnchor)}()),e("#wpsl-result-list").on("click",".wpsl-back",function(){var t,n;for(o.setMap(null),t=0,n=h.length;t<n;t++)h[t].setMap(s);return void 0!==p&&""!==p&&p.setMap(s),r&&j(),s.setCenter(b.centerLatlng),s.setZoom(b.zoomLevel),e(".wpsl-direction-before, .wpsl-direction-after").remove(),e("#wpsl-stores").show(),e("#wpsl-direction-details").hide(),!1}),e("#wpsl-gmap").length&&("bounce"==wpslSettings.markerEffect?(e("#wpsl-stores").on("mouseenter","li",function(){z(e(this).data("store-id"),"start")}),e("#wpsl-stores").on("mouseleave","li",function(){z(e(this).data("store-id"),"stop")})):"info_window"==wpslSettings.markerEffect&&e("#wpsl-stores").on("mouseenter","li",function(){var t,o;for(t=0,o=h.length;t<o;t++)h[t].storeId==e(this).data("store-id")&&(google.maps.event.trigger(h[t],"click"),s.setCenter(h[t].position))})),void 0!==wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&1==wpslSettings.markerClusters)&&google.maps.event.addListener(s,"zoom_changed",function(){google.maps.event.addListenerOnce(s,"idle",function(){if(void 0!==r&&(d=r.clusters_).length)for(u=0,w=d.length;u<w;u++)for(m=0,g=d[u].markers_.length;m<g;m++)if(d[u].markers_[m].storeId==i){a.getVisible()&&null===d[u].markers_[m].map?a.setVisible(!1):a.getVisible()||null===d[u].markers_[m].map||a.setVisible(!0);break}})});function F(e,t,s,o){f.length=0,s.setContent(t),s.open(o,e),f.push(s),void 0!==wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&1==wpslSettings.markerClusters&&(i=e.storeId,s.setVisible(!0))}function G(){s.getZoom()>=wpslSettings.autoZoomLevel?e(".wpsl-zoom-here").hide():e(".wpsl-zoom-here").show()}var H={formatPhoneNumber:function(e){return(1==wpslSettings.phoneUrl&&E()||1==wpslSettings.clickableDetails)&&(e="<a href='tel:"+H.formatClickablePhoneNumber(e)+"'>"+e+"</a>"),e},formatClickablePhoneNumber:function(e){return-1!=e.indexOf("+")&&-1!=e.indexOf("(0)")&&(e=e.replace("(0)","")),e.replace(/(-| |\(|\)|\.|)/g,"")},formatEmail:function(e){return 1==wpslSettings.clickableDetails&&(e="<a href='mailto:"+e+"'>"+e+"</a>"),e},createInfoWindowActions:function(t){var s,o="",n="";return e("#wpsl-gmap").length&&(L&&(o="<a class='wpsl-streetview' href='#'>"+wpslLabels.streetView+"</a>"),1==wpslSettings.markerZoomTo&&(n="<a class='wpsl-zoom-here' href='#'>"+wpslLabels.zoomHere+"</a>"),s="<div class='wpsl-info-actions'>"+H.createDirectionUrl(t)+o+n+"</div>"),s},createDirectionUrl:function(t){var s,o,n={};return 1==wpslSettings.directionRedirect?(void 0===c&&(c=""),n.target="target='_blank'",void 0!==t?n.src=e("[data-store-id="+t+"] .wpsl-directions").attr("href"):(o=this.zip?this.zip+", ":"",s=this.address+", "+this.city+", "+o+this.country,n.src="https://www.google.com/maps/dir/?api=1&origin="+H.rfc3986EncodeURIComponent(c)+"&destination="+H.rfc3986EncodeURIComponent(s)+"&travelmode="+wpslSettings.directionsTravelMode.toLowerCase())):n={src:"#",target:""},"<a class='wpsl-directions' "+n.target+" href='"+n.src+"'>"+wpslLabels.directions+"</a>"},rfc3986EncodeURIComponent:function(e){return encodeURIComponent(e).replace(/[!'()*]/g,escape)}};function q(t){var s;return s=e("#wpsl-base-gmap_0").length?e("#wpsl-cpt-info-window-template").html():e("#wpsl-info-window-template").html(),_.template(s)(t)}function K(){var e,t,o=Number(wpslSettings.autoZoomLevel),n=new google.maps.LatLngBounds;for(ee(s,o),e=0,t=h.length;e<t;e++)n.extend(h[e].position);s.fitBounds(n)}function Q(e){var t,s;if(o.setMap(null),h){for(s=0,t=h.length;s<t;s++)e?1!=h[s].draggable?h[s].setMap(null):p=h[s]:h[s].setMap(null);h.length=0}r&&r.clearMarkers()}function Y(e){var t;switch(e){case"ZERO_RESULTS":t=wpslLabels.noResults;break;case"OVER_QUERY_LIMIT":t=wpslLabels.queryLimit;break;default:t=wpslLabels.generalError}alert(t)}function J(){e(".wpsl-dropdown").removeClass("wpsl-active"),e(".wpsl-dropdown div").css("height",0)}function X(t,s,o){var n,l,i,a,r,p=!!Number(wpslSettings.mapTabAnchorReturn),c=e("a[href='#"+s+"']");i=void 0!==t.maxZoom?t.maxZoom:Number(wpslSettings.autoZoomLevel),void 0!==o&&0==o&&c.addClass("wpsl-fitbounds"),c.on("click",function(){return setTimeout(function(){void 0!==t.map?(a=t.bounds,r=t.map):r=t,n=r.getZoom(),l=r.getCenter(),google.maps.event.trigger(r,"resize"),c.hasClass("wpsl-fitbounds")||(ee(r,i),r.setZoom(n),r.setCenter(l),void 0!==a?r.fitBounds(a):K(),c.addClass("wpsl-fitbounds"))},50),p})}function ee(e,t){google.maps.event.addListenerOnce(e,"bounds_changed",function(){google.maps.event.addListenerOnce(e,"idle",function(){this.getZoom()>t&&this.setZoom(t)})})}function te(){e("#wpsl-result-list ul").empty(),e("#wpsl-stores").show(),e(".wpsl-direction-before, .wpsl-direction-after").remove(),e("#wpsl-direction-details").hide(),y=!1,P(),Q(!1),T()}e("#wpsl-stores").on("click",".wpsl-store-details",function(){var t,s,o=e(this).parents("li"),n=o.data("store-id");if("info window"==wpslSettings.moreInfoLocation)for(t=0,s=h.length;t<s;t++)h[t].storeId==n&&google.maps.event.trigger(h[t],"click");else o.find(".wpsl-more-info-listings").is(":visible")?e(this).removeClass("wpsl-active-details"):e(this).addClass("wpsl-active-details"),o.siblings().find(".wpsl-store-details").removeClass("wpsl-active-details"),o.siblings().find(".wpsl-more-info-listings").hide(),o.find(".wpsl-more-info-listings").toggle();if("default"!=wpslSettings.templateId||"store listings"==wpslSettings.moreInfoLocation)return!1})});
languages/wpsl-nl_NL.mo CHANGED
Binary file
languages/wpsl-nl_NL.po CHANGED
@@ -1,9 +1,9 @@
1
  msgid ""
2
  msgstr ""
3
- "Project-Id-Version: WP Store Locator 2.2.18\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2018-12-01 22:32+0700\n"
6
- "PO-Revision-Date: 2018-12-01 22:33+0700\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "Language: nl_NL\n"
@@ -85,7 +85,7 @@ msgstr "Er kan geen adres gevonden worden voor deze locatie."
85
  msgid "Geocode was not successful for the following reason"
86
  msgstr "Geocode was niet succesvol om de volgende reden"
87
 
88
- #: admin/class-admin.php:297 admin/upgrade.php:458
89
  msgid "Security check failed, reload the page and try again."
90
  msgstr ""
91
  "Beveiligings controle mislukt, herlaad de pagina en probeer het nog een keer."
@@ -292,7 +292,7 @@ msgstr "Export"
292
  msgid "Location"
293
  msgstr "Locatie"
294
 
295
- #: admin/class-metaboxes.php:59 inc/class-post-types.php:160
296
  msgid "Address"
297
  msgstr "Adres"
298
 
@@ -300,11 +300,11 @@ msgstr "Adres"
300
  msgid "Address 2"
301
  msgstr "Adres 2"
302
 
303
- #: admin/class-metaboxes.php:66 inc/class-post-types.php:161
304
  msgid "City"
305
  msgstr "Stad"
306
 
307
- #: admin/class-metaboxes.php:70 inc/class-post-types.php:162
308
  msgid "State"
309
  msgstr "Provincie"
310
 
@@ -329,9 +329,9 @@ msgstr "Lengtegraad"
329
  msgid "Opening Hours"
330
  msgstr "Openingstijden"
331
 
332
- #: admin/class-metaboxes.php:91 admin/templates/map-settings.php:548
333
- #: admin/templates/map-settings.php:549 frontend/underscore-functions.php:160
334
- #: inc/wpsl-functions.php:156
335
  msgid "Hours"
336
  msgstr "Uren"
337
 
@@ -343,24 +343,24 @@ msgstr "Extra informatie"
343
  msgid "Tel"
344
  msgstr "Tel."
345
 
346
- #: admin/class-metaboxes.php:100 admin/templates/map-settings.php:536
347
- #: admin/templates/map-settings.php:537 frontend/class-frontend.php:832
348
  #: frontend/underscore-functions.php:32 frontend/underscore-functions.php:68
349
- #: frontend/underscore-functions.php:150 inc/wpsl-functions.php:153
350
  msgid "Fax"
351
  msgstr "Fax"
352
 
353
- #: admin/class-metaboxes.php:103 admin/templates/map-settings.php:540
354
- #: admin/templates/map-settings.php:541 admin/upgrade.php:198
355
  #: frontend/class-frontend.php:836 frontend/underscore-functions.php:35
356
  #: frontend/underscore-functions.php:71 frontend/underscore-functions.php:153
357
- #: inc/wpsl-functions.php:154
358
  msgid "Email"
359
  msgstr "E-mail"
360
 
361
- #: admin/class-metaboxes.php:106 admin/templates/map-settings.php:544
362
- #: admin/templates/map-settings.php:545 admin/upgrade.php:202
363
- #: frontend/class-frontend.php:841 inc/wpsl-functions.php:155
364
  msgid "Url"
365
  msgstr "Url"
366
 
@@ -456,25 +456,25 @@ msgstr "Winkel voorbeeld"
456
  msgid "WP Store Locator Transients Cleared"
457
  msgstr "WP Store Locator transients verwijderd"
458
 
459
- #: admin/class-settings.php:368
460
  #, php-format
461
  msgid "There's a problem with the provided %sserver key%s. %s"
462
  msgstr "Er is een probleem met de opgegeven %sserver sleutel%s. %s"
463
 
464
- #: admin/class-settings.php:482
465
  msgid ""
466
  "The max results field cannot be empty, the default value has been restored."
467
  msgstr ""
468
  "Het max. zoek resulaten veld kan niet leeg zijn, de standaard waarde is "
469
  "hersteld."
470
 
471
- #: admin/class-settings.php:485
472
  msgid ""
473
  "The search radius field cannot be empty, the default value has been restored."
474
  msgstr ""
475
  "Het zoek radius veld kan niet leeg zijn, de standaard waarde is hersteld."
476
 
477
- #: admin/class-settings.php:488
478
  #, php-format
479
  msgid ""
480
  "Please provide the name of a city or country that can be used as a starting "
@@ -486,1296 +486,1296 @@ msgstr ""
486
  "automatische achterhalen van de gebruikers locatie mislukt, of het "
487
  "automatische achterhalen is uitgeschakeld."
488
 
489
- #: admin/class-settings.php:509
490
  msgid "Select your language"
491
  msgstr "Kies uw taal"
492
 
493
- #: admin/class-settings.php:510
494
  msgid "English"
495
  msgstr "Engels"
496
 
497
- #: admin/class-settings.php:511
498
  msgid "Arabic"
499
  msgstr "Arabisch"
500
 
501
- #: admin/class-settings.php:512
502
  msgid "Basque"
503
  msgstr "Bask"
504
 
505
- #: admin/class-settings.php:513
506
  msgid "Bulgarian"
507
  msgstr "Bulgaars"
508
 
509
- #: admin/class-settings.php:514
510
  msgid "Bengali"
511
  msgstr "Bengali"
512
 
513
- #: admin/class-settings.php:515
514
  msgid "Catalan"
515
  msgstr "Catalaans"
516
 
517
- #: admin/class-settings.php:516
518
  msgid "Czech"
519
  msgstr "Tjechisch"
520
 
521
- #: admin/class-settings.php:517
522
  msgid "Danish"
523
  msgstr "Deens"
524
 
525
- #: admin/class-settings.php:518
526
  msgid "German"
527
  msgstr "Duits"
528
 
529
- #: admin/class-settings.php:519
530
  msgid "Greek"
531
  msgstr "Grieks"
532
 
533
- #: admin/class-settings.php:520
534
  msgid "English (Australian)"
535
  msgstr "Engels (Australisch)"
536
 
537
- #: admin/class-settings.php:521
538
  msgid "English (Great Britain)"
539
  msgstr "Engels (Verenigd Koninkrijk)"
540
 
541
- #: admin/class-settings.php:522
542
  msgid "Spanish"
543
  msgstr "Spaans"
544
 
545
- #: admin/class-settings.php:523
546
  msgid "Farsi"
547
  msgstr "Farsi"
548
 
549
- #: admin/class-settings.php:524
550
  msgid "Finnish"
551
  msgstr "Fins"
552
 
553
- #: admin/class-settings.php:525
554
  msgid "Filipino"
555
  msgstr "Filipijns"
556
 
557
- #: admin/class-settings.php:526
558
  msgid "French"
559
  msgstr "Frans"
560
 
561
- #: admin/class-settings.php:527
562
  msgid "Galician"
563
  msgstr "Gallisch"
564
 
565
- #: admin/class-settings.php:528
566
  msgid "Gujarati"
567
  msgstr "Gujurati"
568
 
569
- #: admin/class-settings.php:529
570
  msgid "Hindi"
571
  msgstr "Hindi"
572
 
573
- #: admin/class-settings.php:530
574
  msgid "Croatian"
575
  msgstr "Kroatisch"
576
 
577
- #: admin/class-settings.php:531
578
  msgid "Hungarian"
579
  msgstr "Hongaars"
580
 
581
- #: admin/class-settings.php:532
582
  msgid "Indonesian"
583
  msgstr "Indonesisch"
584
 
585
- #: admin/class-settings.php:533
586
  msgid "Italian"
587
  msgstr "Italiaans"
588
 
589
- #: admin/class-settings.php:534
590
  msgid "Hebrew"
591
  msgstr "Hebreeuws"
592
 
593
- #: admin/class-settings.php:535
594
  msgid "Japanese"
595
  msgstr "Japans"
596
 
597
- #: admin/class-settings.php:536
598
  msgid "Kannada"
599
  msgstr "Kannada"
600
 
601
- #: admin/class-settings.php:537
602
  msgid "Korean"
603
  msgstr "Koreaans"
604
 
605
- #: admin/class-settings.php:538
606
  msgid "Lithuanian"
607
  msgstr "Litouws"
608
 
609
- #: admin/class-settings.php:539
610
  msgid "Latvian"
611
  msgstr "Lets"
612
 
613
- #: admin/class-settings.php:540
614
  msgid "Malayalam"
615
  msgstr "Malayalam"
616
 
617
- #: admin/class-settings.php:541
618
  msgid "Marathi"
619
  msgstr "Marathi"
620
 
621
- #: admin/class-settings.php:542
622
  msgid "Dutch"
623
  msgstr "Nederlands"
624
 
625
- #: admin/class-settings.php:543
626
  msgid "Norwegian"
627
  msgstr "Noors"
628
 
629
- #: admin/class-settings.php:544
630
  msgid "Norwegian Nynorsk"
631
  msgstr "Noors Nynorsk"
632
 
633
- #: admin/class-settings.php:545
634
  msgid "Polish"
635
  msgstr "Pools"
636
 
637
- #: admin/class-settings.php:546
638
  msgid "Portuguese"
639
  msgstr "Portugees"
640
 
641
- #: admin/class-settings.php:547
642
  msgid "Portuguese (Brazil)"
643
  msgstr "Portugees (Brazilië)"
644
 
645
- #: admin/class-settings.php:548
646
  msgid "Portuguese (Portugal)"
647
  msgstr "Portugees (Portugal)"
648
 
649
- #: admin/class-settings.php:549
650
  msgid "Romanian"
651
  msgstr "Roemeens"
652
 
653
- #: admin/class-settings.php:550
654
  msgid "Russian"
655
  msgstr "Russisch"
656
 
657
- #: admin/class-settings.php:551
658
  msgid "Slovak"
659
  msgstr "Slowaaks"
660
 
661
- #: admin/class-settings.php:552
662
  msgid "Slovenian"
663
  msgstr "Sloveens"
664
 
665
- #: admin/class-settings.php:553
666
  msgid "Serbian"
667
  msgstr "Servisch"
668
 
669
- #: admin/class-settings.php:554
670
  msgid "Swedish"
671
  msgstr "Zweeds"
672
 
673
- #: admin/class-settings.php:555
674
  msgid "Tagalog"
675
  msgstr "Tagalog"
676
 
677
- #: admin/class-settings.php:556
678
  msgid "Tamil"
679
  msgstr "Tamil"
680
 
681
- #: admin/class-settings.php:557
682
  msgid "Telugu"
683
  msgstr "Telugu"
684
 
685
- #: admin/class-settings.php:558
686
  msgid "Thai"
687
  msgstr "Thai"
688
 
689
- #: admin/class-settings.php:559
690
  msgid "Turkish"
691
  msgstr "Turks"
692
 
693
- #: admin/class-settings.php:560
694
  msgid "Ukrainian"
695
  msgstr "Oekraïens"
696
 
697
- #: admin/class-settings.php:561
698
  msgid "Vietnamese"
699
  msgstr "Vietnamees"
700
 
701
- #: admin/class-settings.php:562
702
  msgid "Chinese (Simplified)"
703
  msgstr "Chinees (Vereenvoudigd)"
704
 
705
- #: admin/class-settings.php:563
706
  msgid "Chinese (Traditional)"
707
  msgstr "Chinees (Traditioneel)"
708
 
709
- #: admin/class-settings.php:568
710
  msgid "Select your region"
711
  msgstr "Kies uw regio"
712
 
713
- #: admin/class-settings.php:569
714
  msgid "Afghanistan"
715
  msgstr "Afghanistan"
716
 
717
- #: admin/class-settings.php:570
718
  msgid "Albania"
719
  msgstr "Albanië"
720
 
721
- #: admin/class-settings.php:571
722
  msgid "Algeria"
723
  msgstr "Algerije"
724
 
725
- #: admin/class-settings.php:572
726
  msgid "American Samoa"
727
  msgstr "Amerikaans Samoa"
728
 
729
- #: admin/class-settings.php:573
730
  msgid "Andorra"
731
  msgstr "Andorra"
732
 
733
- #: admin/class-settings.php:574
734
  msgid "Angola"
735
  msgstr "Angola"
736
 
737
- #: admin/class-settings.php:575
738
  msgid "Anguilla"
739
  msgstr "Anguilla"
740
 
741
- #: admin/class-settings.php:576
742
  msgid "Antarctica"
743
  msgstr "Antarctica"
744
 
745
- #: admin/class-settings.php:577
746
  msgid "Antigua and Barbuda"
747
  msgstr "Antigua en Barbuda"
748
 
749
- #: admin/class-settings.php:578
750
  msgid "Argentina"
751
  msgstr "Argentinië"
752
 
753
- #: admin/class-settings.php:579
754
  msgid "Armenia"
755
  msgstr "Armenia"
756
 
757
- #: admin/class-settings.php:580
758
  msgid "Aruba"
759
  msgstr "Aruba"
760
 
761
- #: admin/class-settings.php:581
762
  msgid "Ascension Island"
763
  msgstr "Ascension"
764
 
765
- #: admin/class-settings.php:582
766
  msgid "Australia"
767
  msgstr "Australië"
768
 
769
- #: admin/class-settings.php:583
770
  msgid "Austria"
771
  msgstr "Oostenrijk"
772
 
773
- #: admin/class-settings.php:584
774
  msgid "Azerbaijan"
775
  msgstr "Azerbeidzjan"
776
 
777
- #: admin/class-settings.php:585
778
  msgid "Bahamas"
779
  msgstr "Bahamas"
780
 
781
- #: admin/class-settings.php:586
782
  msgid "Bahrain"
783
  msgstr "Bahrein"
784
 
785
- #: admin/class-settings.php:587
786
  msgid "Bangladesh"
787
  msgstr "Bangladesh"
788
 
789
- #: admin/class-settings.php:588
790
  msgid "Barbados"
791
  msgstr "Barbados"
792
 
793
- #: admin/class-settings.php:589
794
  msgid "Belarus"
795
  msgstr "Wit-Rusland"
796
 
797
- #: admin/class-settings.php:590
798
  msgid "Belgium"
799
  msgstr "België"
800
 
801
- #: admin/class-settings.php:591
802
  msgid "Belize"
803
  msgstr "Belize"
804
 
805
- #: admin/class-settings.php:592
806
  msgid "Benin"
807
  msgstr "Benin"
808
 
809
- #: admin/class-settings.php:593
810
  msgid "Bermuda"
811
  msgstr "Bermuda"
812
 
813
- #: admin/class-settings.php:594
814
  msgid "Bhutan"
815
  msgstr "Bhutan"
816
 
817
- #: admin/class-settings.php:595
818
  msgid "Bolivia"
819
  msgstr "Bolivia"
820
 
821
- #: admin/class-settings.php:596
822
  msgid "Bosnia and Herzegovina"
823
  msgstr "Bosnia en Herzegovina"
824
 
825
- #: admin/class-settings.php:597
826
  msgid "Botswana"
827
  msgstr "Botswana"
828
 
829
- #: admin/class-settings.php:598
830
  msgid "Bouvet Island"
831
  msgstr "Bouvet"
832
 
833
- #: admin/class-settings.php:599
834
  msgid "Brazil"
835
  msgstr "Brazilië"
836
 
837
- #: admin/class-settings.php:600
838
  msgid "British Indian Ocean Territory"
839
  msgstr "Brits Indische Oceaanterritorium"
840
 
841
- #: admin/class-settings.php:601
842
  msgid "British Virgin Islands"
843
  msgstr "Britse Maagdeneilanden"
844
 
845
- #: admin/class-settings.php:602
846
  msgid "Brunei"
847
  msgstr "Brunei"
848
 
849
- #: admin/class-settings.php:603
850
  msgid "Bulgaria"
851
  msgstr "Bulgarije"
852
 
853
- #: admin/class-settings.php:604
854
  msgid "Burkina Faso"
855
  msgstr "Burkina Faso"
856
 
857
- #: admin/class-settings.php:605
858
  msgid "Burundi"
859
  msgstr "Burundi"
860
 
861
- #: admin/class-settings.php:606
862
  msgid "Cambodia"
863
  msgstr "Cambodja"
864
 
865
- #: admin/class-settings.php:607
866
  msgid "Cameroon"
867
  msgstr "Kameroen"
868
 
869
- #: admin/class-settings.php:608
870
  msgid "Canada"
871
  msgstr "Canada"
872
 
873
- #: admin/class-settings.php:609
874
  msgid "Canary Islands"
875
  msgstr "Canarische Eilanden"
876
 
877
- #: admin/class-settings.php:610
878
  msgid "Cape Verde"
879
  msgstr "Kaapverdië"
880
 
881
- #: admin/class-settings.php:611
882
  msgid "Caribbean Netherlands"
883
  msgstr "Caribisch Nederland"
884
 
885
- #: admin/class-settings.php:612
886
  msgid "Cayman Islands"
887
  msgstr "Kaaimaneilanden"
888
 
889
- #: admin/class-settings.php:613
890
  msgid "Central African Republic"
891
  msgstr "Centraal-Afrikaanse Republiek"
892
 
893
- #: admin/class-settings.php:614
894
  msgid "Ceuta and Melilla"
895
  msgstr "Ceuta en Melilla"
896
 
897
- #: admin/class-settings.php:615
898
  msgid "Chad"
899
  msgstr "Chad"
900
 
901
- #: admin/class-settings.php:616
902
  msgid "Chile"
903
  msgstr "Chili"
904
 
905
- #: admin/class-settings.php:617
906
  msgid "China"
907
  msgstr "China"
908
 
909
- #: admin/class-settings.php:618
910
  msgid "Christmas Island"
911
  msgstr "Christmaseiland"
912
 
913
- #: admin/class-settings.php:619
914
  msgid "Clipperton Island"
915
  msgstr "Clipperton"
916
 
917
- #: admin/class-settings.php:620
918
  msgid "Cocos (Keeling) Islands"
919
  msgstr "Cocoseilanden"
920
 
921
- #: admin/class-settings.php:621
922
  msgid "Colombia"
923
  msgstr "Colombia"
924
 
925
- #: admin/class-settings.php:622
926
  msgid "Comoros"
927
  msgstr "Comoren"
928
 
929
- #: admin/class-settings.php:623
930
  msgid "Congo (DRC)"
931
  msgstr "Congo (DRC)"
932
 
933
- #: admin/class-settings.php:624
934
  msgid "Congo (Republic)"
935
  msgstr "Republiek Congo"
936
 
937
- #: admin/class-settings.php:625
938
  msgid "Cook Islands"
939
  msgstr "Cookeilanden"
940
 
941
- #: admin/class-settings.php:626
942
  msgid "Costa Rica"
943
  msgstr "Costa Rica"
944
 
945
- #: admin/class-settings.php:627
946
  msgid "Croatia"
947
  msgstr "Kroatië"
948
 
949
- #: admin/class-settings.php:628
950
  msgid "Cuba"
951
  msgstr "Cuba"
952
 
953
- #: admin/class-settings.php:629
954
  msgid "Curaçao"
955
  msgstr "Curaçao"
956
 
957
- #: admin/class-settings.php:630
958
  msgid "Cyprus"
959
  msgstr "Cyprus"
960
 
961
- #: admin/class-settings.php:631
962
  msgid "Czech Republic"
963
  msgstr "Tsjechië"
964
 
965
- #: admin/class-settings.php:632
966
  msgid "Côte d'Ivoire"
967
  msgstr "Ivoorkust"
968
 
969
- #: admin/class-settings.php:633
970
  msgid "Denmark"
971
  msgstr "Denemarken"
972
 
973
- #: admin/class-settings.php:634
974
  msgid "Djibouti"
975
  msgstr "Djibouti"
976
 
977
- #: admin/class-settings.php:635
978
  msgid "Democratic Republic of the Congo"
979
  msgstr "Democratische Republiek Congo"
980
 
981
- #: admin/class-settings.php:636
982
  msgid "Dominica"
983
  msgstr "Dominica"
984
 
985
- #: admin/class-settings.php:637
986
  msgid "Dominican Republic"
987
  msgstr "Dominicaanse Republiek"
988
 
989
- #: admin/class-settings.php:638
990
  msgid "Ecuador"
991
  msgstr "Ecuador"
992
 
993
- #: admin/class-settings.php:639
994
  msgid "Egypt"
995
  msgstr "Egypte"
996
 
997
- #: admin/class-settings.php:640
998
  msgid "El Salvador"
999
  msgstr "El Salvador"
1000
 
1001
- #: admin/class-settings.php:641
1002
  msgid "Equatorial Guinea"
1003
  msgstr "Equatoriaal-Guinea"
1004
 
1005
- #: admin/class-settings.php:642
1006
  msgid "Eritrea"
1007
  msgstr "Eritrea"
1008
 
1009
- #: admin/class-settings.php:643
1010
  msgid "Estonia"
1011
  msgstr "Estland"
1012
 
1013
- #: admin/class-settings.php:644
1014
  msgid "Ethiopia"
1015
  msgstr "Ethiopië"
1016
 
1017
- #: admin/class-settings.php:645
1018
  msgid "Falkland Islands(Islas Malvinas)"
1019
  msgstr "Falklandeilanden"
1020
 
1021
- #: admin/class-settings.php:646
1022
  msgid "Faroe Islands"
1023
  msgstr "Faeröer"
1024
 
1025
- #: admin/class-settings.php:647
1026
  msgid "Fiji"
1027
  msgstr "Fiji"
1028
 
1029
- #: admin/class-settings.php:648
1030
  msgid "Finland"
1031
  msgstr "Finland"
1032
 
1033
- #: admin/class-settings.php:649
1034
  msgid "France"
1035
  msgstr "Frankrijk"
1036
 
1037
- #: admin/class-settings.php:650
1038
  msgid "French Guiana"
1039
  msgstr "Frans Guyana"
1040
 
1041
- #: admin/class-settings.php:651
1042
  msgid "French Polynesia"
1043
  msgstr "Frans-Polynesië"
1044
 
1045
- #: admin/class-settings.php:652
1046
  msgid "French Southern Territories"
1047
  msgstr "Franse Zuidelijke en Antarctische Gebieden"
1048
 
1049
- #: admin/class-settings.php:653
1050
  msgid "Gabon"
1051
  msgstr "Gabon"
1052
 
1053
- #: admin/class-settings.php:654
1054
  msgid "Gambia"
1055
  msgstr "Gambia"
1056
 
1057
- #: admin/class-settings.php:655
1058
  msgid "Georgia"
1059
  msgstr "Georgië"
1060
 
1061
- #: admin/class-settings.php:656
1062
  msgid "Germany"
1063
  msgstr "Duitsland"
1064
 
1065
- #: admin/class-settings.php:657
1066
  msgid "Ghana"
1067
  msgstr "Ghana"
1068
 
1069
- #: admin/class-settings.php:658
1070
  msgid "Gibraltar"
1071
  msgstr "Gibraltar"
1072
 
1073
- #: admin/class-settings.php:659
1074
  msgid "Greece"
1075
  msgstr "Griekenland"
1076
 
1077
- #: admin/class-settings.php:660
1078
  msgid "Greenland"
1079
  msgstr "Groenland"
1080
 
1081
- #: admin/class-settings.php:661
1082
  msgid "Grenada"
1083
  msgstr "Grenada"
1084
 
1085
- #: admin/class-settings.php:662 admin/class-settings.php:664
1086
  msgid "Guam"
1087
  msgstr "Guam"
1088
 
1089
- #: admin/class-settings.php:663
1090
  msgid "Guadeloupe"
1091
  msgstr "Guadeloupe"
1092
 
1093
- #: admin/class-settings.php:665
1094
  msgid "Guatemala"
1095
  msgstr "Guatemala"
1096
 
1097
- #: admin/class-settings.php:666
1098
  msgid "Guernsey"
1099
  msgstr "Guernsey"
1100
 
1101
- #: admin/class-settings.php:667
1102
  msgid "Guinea"
1103
  msgstr "Guinee"
1104
 
1105
- #: admin/class-settings.php:668
1106
  msgid "Guinea-Bissau"
1107
  msgstr "Guinee-Bissau"
1108
 
1109
- #: admin/class-settings.php:669
1110
  msgid "Guyana"
1111
  msgstr "Guyana"
1112
 
1113
- #: admin/class-settings.php:670
1114
  msgid "Haiti"
1115
  msgstr "Haïti"
1116
 
1117
- #: admin/class-settings.php:671
1118
  msgid "Heard and McDonald Islands"
1119
  msgstr "Heard en McDonaldeilanden"
1120
 
1121
- #: admin/class-settings.php:672
1122
  msgid "Honduras"
1123
  msgstr "Honduras"
1124
 
1125
- #: admin/class-settings.php:673
1126
  msgid "Hong Kong"
1127
  msgstr "Hong Kong"
1128
 
1129
- #: admin/class-settings.php:674
1130
  msgid "Hungary"
1131
  msgstr "Hongarije"
1132
 
1133
- #: admin/class-settings.php:675
1134
  msgid "Iceland"
1135
  msgstr "IJsland"
1136
 
1137
- #: admin/class-settings.php:676
1138
  msgid "India"
1139
  msgstr "India"
1140
 
1141
- #: admin/class-settings.php:677
1142
  msgid "Indonesia"
1143
  msgstr "Indonesië"
1144
 
1145
- #: admin/class-settings.php:678
1146
  msgid "Iran"
1147
  msgstr "Iran"
1148
 
1149
- #: admin/class-settings.php:679
1150
  msgid "Iraq"
1151
  msgstr "Irak"
1152
 
1153
- #: admin/class-settings.php:680
1154
  msgid "Ireland"
1155
  msgstr "Ierland"
1156
 
1157
- #: admin/class-settings.php:681
1158
  msgid "Isle of Man"
1159
  msgstr "Man (eiland)"
1160
 
1161
- #: admin/class-settings.php:682
1162
  msgid "Israel"
1163
  msgstr "Israël"
1164
 
1165
- #: admin/class-settings.php:683
1166
  msgid "Italy"
1167
  msgstr "Italië"
1168
 
1169
- #: admin/class-settings.php:684
1170
  msgid "Jamaica"
1171
  msgstr "Jamaica"
1172
 
1173
- #: admin/class-settings.php:685
1174
  msgid "Japan"
1175
  msgstr "Japan"
1176
 
1177
- #: admin/class-settings.php:686
1178
  msgid "Jersey"
1179
  msgstr "Jersey"
1180
 
1181
- #: admin/class-settings.php:687
1182
  msgid "Jordan"
1183
  msgstr "Jordanië"
1184
 
1185
- #: admin/class-settings.php:688
1186
  msgid "Kazakhstan"
1187
  msgstr "Kazachstan"
1188
 
1189
- #: admin/class-settings.php:689
1190
  msgid "Kenya"
1191
  msgstr "Kenia"
1192
 
1193
- #: admin/class-settings.php:690
1194
  msgid "Kiribati"
1195
  msgstr "Kiribati"
1196
 
1197
- #: admin/class-settings.php:691
1198
  msgid "Kosovo"
1199
  msgstr "Kosovo"
1200
 
1201
- #: admin/class-settings.php:692
1202
  msgid "Kuwait"
1203
  msgstr "Koeweit"
1204
 
1205
- #: admin/class-settings.php:693
1206
  msgid "Kyrgyzstan"
1207
  msgstr "Kirgizië"
1208
 
1209
- #: admin/class-settings.php:694
1210
  msgid "Laos"
1211
  msgstr "Laos"
1212
 
1213
- #: admin/class-settings.php:695
1214
  msgid "Latvia"
1215
  msgstr "Letland"
1216
 
1217
- #: admin/class-settings.php:696
1218
  msgid "Lebanon"
1219
  msgstr "Libanon"
1220
 
1221
- #: admin/class-settings.php:697
1222
  msgid "Lesotho"
1223
  msgstr "Lesotho"
1224
 
1225
- #: admin/class-settings.php:698
1226
  msgid "Liberia"
1227
  msgstr "Liberia"
1228
 
1229
- #: admin/class-settings.php:699
1230
  msgid "Libya"
1231
  msgstr "Libië"
1232
 
1233
- #: admin/class-settings.php:700
1234
  msgid "Liechtenstein"
1235
  msgstr "Liechtenstein"
1236
 
1237
- #: admin/class-settings.php:701
1238
  msgid "Lithuania"
1239
  msgstr "Litouwen"
1240
 
1241
- #: admin/class-settings.php:702
1242
  msgid "Luxembourg"
1243
  msgstr "Luxemburg"
1244
 
1245
- #: admin/class-settings.php:703
1246
  msgid "Macau"
1247
  msgstr "Macau"
1248
 
1249
- #: admin/class-settings.php:704
1250
  msgid "Macedonia (FYROM)"
1251
  msgstr "Macedonië"
1252
 
1253
- #: admin/class-settings.php:705
1254
  msgid "Madagascar"
1255
  msgstr "Madagascar"
1256
 
1257
- #: admin/class-settings.php:706
1258
  msgid "Malawi"
1259
  msgstr "Malawi"
1260
 
1261
- #: admin/class-settings.php:707
1262
  msgid "Malaysia "
1263
  msgstr "Maleisie"
1264
 
1265
- #: admin/class-settings.php:708
1266
  msgid "Maldives "
1267
  msgstr "Maldiven"
1268
 
1269
- #: admin/class-settings.php:709
1270
  msgid "Mali"
1271
  msgstr "Mali"
1272
 
1273
- #: admin/class-settings.php:710
1274
  msgid "Malta"
1275
  msgstr "Malta"
1276
 
1277
- #: admin/class-settings.php:711
1278
  msgid "Marshall Islands"
1279
  msgstr "Marshalleilanden"
1280
 
1281
- #: admin/class-settings.php:712
1282
  msgid "Martinique"
1283
  msgstr "Martinique"
1284
 
1285
- #: admin/class-settings.php:713
1286
  msgid "Mauritania"
1287
  msgstr "Mauritanië"
1288
 
1289
- #: admin/class-settings.php:714
1290
  msgid "Mauritius"
1291
  msgstr "Mauritius"
1292
 
1293
- #: admin/class-settings.php:715
1294
  msgid "Mayotte"
1295
  msgstr "Mayotte"
1296
 
1297
- #: admin/class-settings.php:716
1298
  msgid "Mexico"
1299
  msgstr "Mexico"
1300
 
1301
- #: admin/class-settings.php:717
1302
  msgid "Micronesia"
1303
  msgstr "Micronesia"
1304
 
1305
- #: admin/class-settings.php:718
1306
  msgid "Moldova"
1307
  msgstr "Moldavië"
1308
 
1309
- #: admin/class-settings.php:719
1310
  msgid "Monaco"
1311
  msgstr "Monaco"
1312
 
1313
- #: admin/class-settings.php:720
1314
  msgid "Mongolia"
1315
  msgstr "Mongolië"
1316
 
1317
- #: admin/class-settings.php:721
1318
  msgid "Montenegro"
1319
  msgstr "Montenegro"
1320
 
1321
- #: admin/class-settings.php:722
1322
  msgid "Montserrat"
1323
  msgstr "Montserrat "
1324
 
1325
- #: admin/class-settings.php:723
1326
  msgid "Morocco"
1327
  msgstr "Marokko"
1328
 
1329
- #: admin/class-settings.php:724
1330
  msgid "Mozambique"
1331
  msgstr "Mozambique"
1332
 
1333
- #: admin/class-settings.php:725
1334
  msgid "Myanmar (Burma)"
1335
  msgstr "Myanmar (Birma)"
1336
 
1337
- #: admin/class-settings.php:726
1338
  msgid "Namibia"
1339
  msgstr "Namibië"
1340
 
1341
- #: admin/class-settings.php:727
1342
  msgid "Nauru"
1343
  msgstr "Nauru"
1344
 
1345
- #: admin/class-settings.php:728
1346
  msgid "Nepal"
1347
  msgstr "Nepal"
1348
 
1349
- #: admin/class-settings.php:729
1350
  msgid "Netherlands"
1351
  msgstr "Nederland"
1352
 
1353
- #: admin/class-settings.php:730
1354
  msgid "Netherlands Antilles"
1355
  msgstr "Nederlandse Antillen"
1356
 
1357
- #: admin/class-settings.php:731
1358
  msgid "New Caledonia"
1359
  msgstr "Nieuw-Caledonië"
1360
 
1361
- #: admin/class-settings.php:732
1362
  msgid "New Zealand"
1363
  msgstr "Nieuw Zeeland"
1364
 
1365
- #: admin/class-settings.php:733
1366
  msgid "Nicaragua"
1367
  msgstr "Nicaragua"
1368
 
1369
- #: admin/class-settings.php:734
1370
  msgid "Niger"
1371
  msgstr "Niger"
1372
 
1373
- #: admin/class-settings.php:735
1374
  msgid "Nigeria"
1375
  msgstr "Nigeria"
1376
 
1377
- #: admin/class-settings.php:736
1378
  msgid "Niue"
1379
  msgstr "Niue"
1380
 
1381
- #: admin/class-settings.php:737
1382
  msgid "Norfolk Island"
1383
  msgstr "Norfolk (eiland)"
1384
 
1385
- #: admin/class-settings.php:738
1386
  msgid "North Korea"
1387
  msgstr "Noord-Korea"
1388
 
1389
- #: admin/class-settings.php:739
1390
  msgid "Northern Mariana Islands"
1391
  msgstr "Noordelijke Marianen"
1392
 
1393
- #: admin/class-settings.php:740
1394
  msgid "Norway"
1395
  msgstr "Noorwegen"
1396
 
1397
- #: admin/class-settings.php:741
1398
  msgid "Oman"
1399
  msgstr "Oman"
1400
 
1401
- #: admin/class-settings.php:742
1402
  msgid "Pakistan"
1403
  msgstr "Pakistan"
1404
 
1405
- #: admin/class-settings.php:743
1406
  msgid "Palau"
1407
  msgstr "Palau"
1408
 
1409
- #: admin/class-settings.php:744
1410
  msgid "Palestine"
1411
  msgstr "Palestine"
1412
 
1413
- #: admin/class-settings.php:745
1414
  msgid "Panama"
1415
  msgstr "Panama"
1416
 
1417
- #: admin/class-settings.php:746
1418
  msgid "Papua New Guinea"
1419
  msgstr "Papoea-Nieuw-Guinea"
1420
 
1421
- #: admin/class-settings.php:747
1422
  msgid "Paraguay"
1423
  msgstr "Paraguay"
1424
 
1425
- #: admin/class-settings.php:748
1426
  msgid "Peru"
1427
  msgstr "Peru"
1428
 
1429
- #: admin/class-settings.php:749
1430
  msgid "Philippines"
1431
  msgstr "Filipijnen"
1432
 
1433
- #: admin/class-settings.php:750
1434
  msgid "Pitcairn Islands"
1435
  msgstr "Pitcairneilanden"
1436
 
1437
- #: admin/class-settings.php:751
1438
  msgid "Poland"
1439
  msgstr "Polen"
1440
 
1441
- #: admin/class-settings.php:752
1442
  msgid "Portugal"
1443
  msgstr "Portugal"
1444
 
1445
- #: admin/class-settings.php:753
1446
  msgid "Puerto Rico"
1447
  msgstr "Puerto Rico"
1448
 
1449
- #: admin/class-settings.php:754
1450
  msgid "Qatar"
1451
  msgstr "Qatar"
1452
 
1453
- #: admin/class-settings.php:755
1454
  msgid "Reunion"
1455
  msgstr "Réunion"
1456
 
1457
- #: admin/class-settings.php:756
1458
  msgid "Romania"
1459
  msgstr "Roemenië"
1460
 
1461
- #: admin/class-settings.php:757
1462
  msgid "Russia"
1463
  msgstr "Rusland"
1464
 
1465
- #: admin/class-settings.php:758
1466
  msgid "Rwanda"
1467
  msgstr "Rwanda"
1468
 
1469
- #: admin/class-settings.php:759
1470
  msgid "Saint Helena"
1471
  msgstr "Sint-Helena"
1472
 
1473
- #: admin/class-settings.php:760
1474
  msgid "Saint Kitts and Nevis"
1475
  msgstr "Saint Kitts en Nevis"
1476
 
1477
- #: admin/class-settings.php:761
1478
  msgid "Saint Vincent and the Grenadines"
1479
  msgstr "Saint Vincent en de Grenadines"
1480
 
1481
- #: admin/class-settings.php:762
1482
  msgid "Saint Lucia"
1483
  msgstr "Saint Lucia"
1484
 
1485
- #: admin/class-settings.php:763
1486
  msgid "Samoa"
1487
  msgstr "Samoa"
1488
 
1489
- #: admin/class-settings.php:764
1490
  msgid "San Marino"
1491
  msgstr "San Marino"
1492
 
1493
- #: admin/class-settings.php:765
1494
  msgid "São Tomé and Príncipe"
1495
  msgstr "Sao Tomé en Principe"
1496
 
1497
- #: admin/class-settings.php:766
1498
  msgid "Saudi Arabia"
1499
  msgstr "Saoedi-Arabië"
1500
 
1501
- #: admin/class-settings.php:767
1502
  msgid "Senegal"
1503
  msgstr "Senegal"
1504
 
1505
- #: admin/class-settings.php:768
1506
  msgid "Serbia"
1507
  msgstr "Servië"
1508
 
1509
- #: admin/class-settings.php:769
1510
  msgid "Seychelles"
1511
  msgstr "Seychellen"
1512
 
1513
- #: admin/class-settings.php:770
1514
  msgid "Sierra Leone"
1515
  msgstr "Sierra Leone"
1516
 
1517
- #: admin/class-settings.php:771
1518
  msgid "Singapore"
1519
  msgstr "Singapore"
1520
 
1521
- #: admin/class-settings.php:772
1522
  msgid "Sint Maarten"
1523
  msgstr "Sint Maarten"
1524
 
1525
- #: admin/class-settings.php:773
1526
  msgid "Slovakia"
1527
  msgstr "Slowakije"
1528
 
1529
- #: admin/class-settings.php:774
1530
  msgid "Slovenia"
1531
  msgstr "Slovenië"
1532
 
1533
- #: admin/class-settings.php:775
1534
  msgid "Solomon Islands"
1535
  msgstr "Salomonseilanden"
1536
 
1537
- #: admin/class-settings.php:776
1538
  msgid "Somalia"
1539
  msgstr "Somalie"
1540
 
1541
- #: admin/class-settings.php:777
1542
  msgid "South Africa"
1543
  msgstr "Zuid Afrika"
1544
 
1545
- #: admin/class-settings.php:778
1546
  msgid "South Georgia and South Sandwich Islands"
1547
  msgstr "Zuid-Georgia en de Zuidelijke Sandwicheilanden"
1548
 
1549
- #: admin/class-settings.php:779
1550
  msgid "South Korea"
1551
  msgstr "Zuid Korea"
1552
 
1553
- #: admin/class-settings.php:780
1554
  msgid "South Sudan"
1555
  msgstr "Zuid Sudan"
1556
 
1557
- #: admin/class-settings.php:781
1558
  msgid "Spain"
1559
  msgstr "Spanje"
1560
 
1561
- #: admin/class-settings.php:782
1562
  msgid "Sri Lanka"
1563
  msgstr "Sri Lanka"
1564
 
1565
- #: admin/class-settings.php:783
1566
  msgid "Sudan"
1567
  msgstr "Sudan"
1568
 
1569
- #: admin/class-settings.php:784
1570
  msgid "Swaziland"
1571
  msgstr "Swaziland "
1572
 
1573
- #: admin/class-settings.php:785
1574
  msgid "Sweden"
1575
  msgstr "Zweden"
1576
 
1577
- #: admin/class-settings.php:786
1578
  msgid "Switzerland"
1579
  msgstr "Zwitserland"
1580
 
1581
- #: admin/class-settings.php:787
1582
  msgid "Syria"
1583
  msgstr "Syrië"
1584
 
1585
- #: admin/class-settings.php:788
1586
  msgid "São Tomé & Príncipe"
1587
  msgstr "São Tomé & Príncipe"
1588
 
1589
- #: admin/class-settings.php:789
1590
  msgid "Taiwan"
1591
  msgstr "Taiwan"
1592
 
1593
- #: admin/class-settings.php:790
1594
  msgid "Tajikistan"
1595
  msgstr "Tajikistan"
1596
 
1597
- #: admin/class-settings.php:791
1598
  msgid "Tanzania"
1599
  msgstr "Tanzania"
1600
 
1601
- #: admin/class-settings.php:792
1602
  msgid "Thailand"
1603
  msgstr "Thailand"
1604
 
1605
- #: admin/class-settings.php:793
1606
  msgid "Timor-Leste"
1607
  msgstr "Oost-Timor"
1608
 
1609
- #: admin/class-settings.php:794 admin/class-settings.php:796
1610
  msgid "Tokelau"
1611
  msgstr "Tokelau"
1612
 
1613
- #: admin/class-settings.php:795
1614
  msgid "Togo"
1615
  msgstr "Togo"
1616
 
1617
- #: admin/class-settings.php:797
1618
  msgid "Tonga"
1619
  msgstr "Tonga"
1620
 
1621
- #: admin/class-settings.php:798
1622
  msgid "Trinidad and Tobago"
1623
  msgstr "Trinidad en Tobago"
1624
 
1625
- #: admin/class-settings.php:799
1626
  msgid "Tristan da Cunha"
1627
  msgstr "Tristan da Cunha"
1628
 
1629
- #: admin/class-settings.php:800
1630
  msgid "Tunisia"
1631
  msgstr "Tunesië"
1632
 
1633
- #: admin/class-settings.php:801
1634
  msgid "Turkey"
1635
  msgstr "Turkije"
1636
 
1637
- #: admin/class-settings.php:802
1638
  msgid "Turkmenistan"
1639
  msgstr "Turkmenistan"
1640
 
1641
- #: admin/class-settings.php:803
1642
  msgid "Turks and Caicos Islands"
1643
  msgstr "Turks- en Caicos eilanden"
1644
 
1645
- #: admin/class-settings.php:804
1646
  msgid "Tuvalu"
1647
  msgstr "Tuvalu"
1648
 
1649
- #: admin/class-settings.php:805
1650
  msgid "Uganda"
1651
  msgstr "Uganda"
1652
 
1653
- #: admin/class-settings.php:806
1654
  msgid "Ukraine"
1655
  msgstr "Oekraïne"
1656
 
1657
- #: admin/class-settings.php:807
1658
  msgid "United Arab Emirates"
1659
  msgstr "Verenigde Arabische Emiraten"
1660
 
1661
- #: admin/class-settings.php:808
1662
  msgid "United Kingdom"
1663
  msgstr "Verenigd Koninkrijk"
1664
 
1665
- #: admin/class-settings.php:809
1666
  msgid "United States"
1667
  msgstr "Verenigde Staten"
1668
 
1669
- #: admin/class-settings.php:810
1670
  msgid "Uruguay"
1671
  msgstr "Uruguay"
1672
 
1673
- #: admin/class-settings.php:811
1674
  msgid "Uzbekistan"
1675
  msgstr "Uzbekistan"
1676
 
1677
- #: admin/class-settings.php:812
1678
  msgid "Vanuatu"
1679
  msgstr "Vanuatu"
1680
 
1681
- #: admin/class-settings.php:813
1682
  msgid "Vatican City"
1683
  msgstr "Vaticaanstad"
1684
 
1685
- #: admin/class-settings.php:814
1686
  msgid "Venezuela"
1687
  msgstr "Venezuela"
1688
 
1689
- #: admin/class-settings.php:815
1690
  msgid "Vietnam"
1691
  msgstr "Vietnam"
1692
 
1693
- #: admin/class-settings.php:816
1694
  msgid "Wallis Futuna"
1695
  msgstr "Wallis en Futuna"
1696
 
1697
- #: admin/class-settings.php:817
1698
  msgid "Western Sahara"
1699
  msgstr "Westelijke Sahara"
1700
 
1701
- #: admin/class-settings.php:818
1702
  msgid "Yemen"
1703
  msgstr "Yemen"
1704
 
1705
- #: admin/class-settings.php:819
1706
  msgid "Zambia"
1707
  msgstr "Zambia"
1708
 
1709
- #: admin/class-settings.php:820
1710
  msgid "Zimbabwe"
1711
  msgstr "Zimbabwe"
1712
 
1713
- #: admin/class-settings.php:821
1714
  msgid "Åland Islands"
1715
  msgstr "Åland Eiland"
1716
 
1717
- #: admin/class-settings.php:864
1718
  msgid "World view"
1719
  msgstr "Wereldkaart"
1720
 
1721
- #: admin/class-settings.php:867 admin/class-settings.php:981
1722
- #: inc/wpsl-functions.php:222
1723
  msgid "Default"
1724
  msgstr "Standaard"
1725
 
1726
- #: admin/class-settings.php:870 inc/wpsl-functions.php:295
1727
  msgid "Roadmap"
1728
  msgstr "Wegenkaart"
1729
 
1730
- #: admin/class-settings.php:1011
1731
  msgid "Start location marker"
1732
  msgstr "Start locatie marker"
1733
 
1734
- #: admin/class-settings.php:1013
1735
  msgid "Store location marker"
1736
  msgstr "Winkel locatie marker"
1737
 
1738
- #: admin/class-settings.php:1093
1739
  msgid "Textarea"
1740
  msgstr "Tekstvlak"
1741
 
1742
- #: admin/class-settings.php:1094
1743
  msgid "Dropdowns (recommended)"
1744
  msgstr "Dropdown (aangeraden)"
1745
 
1746
- #: admin/class-settings.php:1102
1747
  msgid "Bounces up and down"
1748
  msgstr "Beweegt op en neer"
1749
 
1750
- #: admin/class-settings.php:1103
1751
  msgid "Will open the info window"
1752
  msgstr "Opent de info window"
1753
 
1754
- #: admin/class-settings.php:1104
1755
  msgid "Does not respond"
1756
  msgstr "Reageert niet"
1757
 
1758
- #: admin/class-settings.php:1112
1759
  msgid "In the store listings"
1760
  msgstr "In de locatie lijst"
1761
 
1762
- #: admin/class-settings.php:1113
1763
  msgid "In the info window on the map"
1764
  msgstr "In de info window op de kaart"
1765
 
1766
- #: admin/class-settings.php:1145 admin/class-shortcode-generator.php:263
1767
  msgid "Dropdown"
1768
  msgstr "Dropdown"
1769
 
1770
- #: admin/class-settings.php:1146 admin/class-shortcode-generator.php:264
1771
  msgid "Checkboxes"
1772
  msgstr "Checkboxes"
1773
 
1774
- #: admin/class-settings.php:1178
1775
  msgid "12 Hours"
1776
  msgstr "12 uur"
1777
 
1778
- #: admin/class-settings.php:1179
1779
  msgid "24 Hours"
1780
  msgstr "24 uur"
1781
 
@@ -1796,7 +1796,7 @@ msgstr "Je hebt geen toestemming om deze actie uit te voeren"
1796
  msgid "General Options"
1797
  msgstr "Algemene instellingen"
1798
 
1799
- #: admin/class-shortcode-generator.php:234 admin/templates/map-settings.php:376
1800
  msgid "Markers"
1801
  msgstr "Markers"
1802
 
@@ -1804,7 +1804,7 @@ msgstr "Markers"
1804
  msgid "Select the used template"
1805
  msgstr "Selecteer de gebruikte template"
1806
 
1807
- #: admin/class-shortcode-generator.php:244 admin/templates/map-settings.php:203
1808
  msgid "Start point"
1809
  msgstr "Start locatie"
1810
 
@@ -1816,11 +1816,11 @@ msgstr ""
1816
  "Als er niks is opgegeven, dan zal de start locatie van de %sinstellingen%s "
1817
  "pagina gebruikt worden."
1818
 
1819
- #: admin/class-shortcode-generator.php:249 admin/templates/map-settings.php:189
1820
  msgid "Attempt to auto-locate the user"
1821
  msgstr "Probeer de locatie van de gebruiker automatische te achterhalen"
1822
 
1823
- #: admin/class-shortcode-generator.php:249 admin/templates/map-settings.php:189
1824
  #, php-format
1825
  msgid ""
1826
  "Most modern browsers %srequire%s a HTTPS connection before the Geolocation "
@@ -1857,7 +1857,7 @@ msgstr "Checkbox kolommen"
1857
  msgid "Set selected checkboxes"
1858
  msgstr "Kies de geslecteerde checkboxes"
1859
 
1860
- #: admin/class-shortcode-generator.php:341 admin/templates/map-settings.php:241
1861
  msgid "Map type"
1862
  msgstr "Kaart soort"
1863
 
@@ -1906,10 +1906,10 @@ msgid "Deactivate License"
1906
  msgstr "Deactiveer licensie"
1907
 
1908
  #: admin/templates/map-settings.php:85 admin/templates/map-settings.php:124
1909
- #: admin/templates/map-settings.php:176 admin/templates/map-settings.php:259
1910
- #: admin/templates/map-settings.php:366 admin/templates/map-settings.php:394
1911
- #: admin/templates/map-settings.php:444 admin/templates/map-settings.php:472
1912
- #: admin/templates/map-settings.php:584 admin/templates/map-settings.php:609
1913
  msgid "Save Changes"
1914
  msgstr "Wijzigingen opslaan"
1915
 
@@ -1990,9 +1990,9 @@ msgstr ""
1990
  "Om dit uit te sluiten kan je een restrictie plaatsen om dit te voorkomen. "
1991
  "%s Je kan de gebruikte restricties aanpassen met %sdeze%s filter."
1992
 
1993
- #: admin/templates/map-settings.php:134 admin/templates/map-settings.php:508
1994
- #: admin/templates/map-settings.php:509 frontend/templates/default.php:44
1995
- #: frontend/templates/store-listings-below.php:44 inc/wpsl-functions.php:139
1996
  msgid "Search"
1997
  msgstr "Zoek"
1998
 
@@ -2000,59 +2000,85 @@ msgstr "Zoek"
2000
  msgid "Enable autocomplete?"
2001
  msgstr "Activeer autocomplete?"
2002
 
2003
- #: admin/templates/map-settings.php:141
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2004
  msgid "Show the max results dropdown?"
2005
  msgstr "Toon de max resultaten dropdown?"
2006
 
2007
- #: admin/templates/map-settings.php:145
2008
  msgid "Show the search radius dropdown?"
2009
  msgstr "Toon de zoek radius dropdown?"
2010
 
2011
- #: admin/templates/map-settings.php:149
2012
  msgid "Enable category filters?"
2013
  msgstr "Activeer de categorie filters?"
2014
 
2015
- #: admin/templates/map-settings.php:154
2016
  msgid "Filter type:"
2017
  msgstr "Filter type:"
2018
 
2019
- #: admin/templates/map-settings.php:159
2020
  msgid "Distance unit"
2021
  msgstr "Afstands eenheid"
2022
 
2023
- #: admin/templates/map-settings.php:162
2024
  msgid "km"
2025
  msgstr "km"
2026
 
2027
- #: admin/templates/map-settings.php:164
2028
  msgid "mi"
2029
  msgstr "mi"
2030
 
2031
- #: admin/templates/map-settings.php:168
2032
  msgid "Max search results"
2033
  msgstr "Max zoek resultaten"
2034
 
2035
- #: admin/templates/map-settings.php:168 admin/templates/map-settings.php:172
2036
  msgid "The default value is set between the [ ]."
2037
  msgstr "* De standaard waarde staat tussen de []."
2038
 
2039
- #: admin/templates/map-settings.php:172
2040
  msgid "Search radius options"
2041
  msgstr "Zoek radius opties"
2042
 
2043
- #: admin/templates/map-settings.php:186
2044
  msgid "Map"
2045
  msgstr "Kaart"
2046
 
2047
- #: admin/templates/map-settings.php:193
2048
  msgid "Load locations on page load"
2049
  msgstr "Toon alle locaties op de kaart zodra de pagina geladen is"
2050
 
2051
- #: admin/templates/map-settings.php:198
2052
  msgid "Number of locations to show"
2053
  msgstr "Aantal getoonde locaties"
2054
 
2055
- #: admin/templates/map-settings.php:198
2056
  #, php-format
2057
  msgid ""
2058
  "Although the location data is cached after the first load, a lower number "
@@ -2065,7 +2091,7 @@ msgstr ""
2065
  "Als het veld leeg blijft of er wordt 0 ingevuld, dan worden alle locaties "
2066
  "geladen."
2067
 
2068
- #: admin/templates/map-settings.php:203
2069
  #, php-format
2070
  msgid ""
2071
  "%sRequired field.%s %s If auto-locating the user is disabled or fails, the "
@@ -2076,12 +2102,12 @@ msgstr ""
2076
  "locatie is uitgeschakeld of mislukt, dan wordt het middelpunt van de "
2077
  "opgegeven locatie als begin punt gebruikt."
2078
 
2079
- #: admin/templates/map-settings.php:208
2080
  msgid "Auto adjust the zoom level to make sure all markers are visible?"
2081
  msgstr ""
2082
  "Zoom de kaart automatische in om te zorgen dat alle markers zichtbaar zijn?"
2083
 
2084
- #: admin/templates/map-settings.php:208
2085
  msgid ""
2086
  "This runs after a search is made, and makes sure all the returned locations "
2087
  "are visible in the viewport."
@@ -2089,15 +2115,15 @@ msgstr ""
2089
  "Dit wordt uitgevoerd nadat een zoekopdracht is gemaakt, en zorgt ervoor dat "
2090
  "alle geretourneerde locaties zichtbaar zijn in de viewport."
2091
 
2092
- #: admin/templates/map-settings.php:212
2093
  msgid "Initial zoom level"
2094
  msgstr "Start zoom niveau"
2095
 
2096
- #: admin/templates/map-settings.php:216
2097
  msgid "Max auto zoom level"
2098
  msgstr "Max zoom niveau"
2099
 
2100
- #: admin/templates/map-settings.php:216
2101
  #, php-format
2102
  msgid ""
2103
  "This value sets the zoom level for the \"Zoom here\" link in the info "
@@ -2109,35 +2135,35 @@ msgstr ""
2109
  "limiteren als de viewport van de kaart verandert, wanneer geprobeerd wordt "
2110
  "om alle markers op het scherm te laten passen."
2111
 
2112
- #: admin/templates/map-settings.php:220
2113
  msgid "Show the street view controls?"
2114
  msgstr "Toon de street view controls?"
2115
 
2116
- #: admin/templates/map-settings.php:224
2117
  msgid "Show the map type control?"
2118
  msgstr "Toon de kaart type controls?"
2119
 
2120
- #: admin/templates/map-settings.php:228
2121
  msgid "Enable scroll wheel zooming?"
2122
  msgstr "Activeer het inzoomen met je scrollwheel?"
2123
 
2124
- #: admin/templates/map-settings.php:232
2125
  msgid "Zoom control position"
2126
  msgstr "Zoom bediening positie"
2127
 
2128
- #: admin/templates/map-settings.php:235
2129
  msgid "Left"
2130
  msgstr "Links"
2131
 
2132
- #: admin/templates/map-settings.php:237
2133
  msgid "Right"
2134
  msgstr "Rechts"
2135
 
2136
- #: admin/templates/map-settings.php:245
2137
  msgid "Map style"
2138
  msgstr "Kaart stijl"
2139
 
2140
- #: admin/templates/map-settings.php:245
2141
  msgid ""
2142
  "Custom map styles only work if the map type is set to \"Roadmap\" or "
2143
  "\"Terrain\"."
@@ -2145,7 +2171,7 @@ msgstr ""
2145
  "Custom map stijlen werken alleen maar als de kaart soort op \"Wegenkaart\" "
2146
  "of \"Terrein\" is gezet."
2147
 
2148
- #: admin/templates/map-settings.php:248
2149
  #, php-format
2150
  msgid ""
2151
  "You can use existing map styles from %sSnazzy Maps%s or %sMap Stylr%s and "
@@ -2156,7 +2182,7 @@ msgstr ""
2156
  "en in het onderstaande tekstvlak plaatsen. Of je kunt de map stijl genereren "
2157
  "via de %sMap Style Editor%s of de %sStyled Maps Wizard%s."
2158
 
2159
- #: admin/templates/map-settings.php:249
2160
  #, php-format
2161
  msgid ""
2162
  "If you like to write the style code yourself, then you can find the "
@@ -2165,46 +2191,46 @@ msgstr ""
2165
  "Als je zelf de stijl code wil schrijven dan kun je de documentatie %shier%s "
2166
  "vinden."
2167
 
2168
- #: admin/templates/map-settings.php:251
2169
  msgid "Preview Map Style"
2170
  msgstr "Map stijl voorbeeld"
2171
 
2172
- #: admin/templates/map-settings.php:255
2173
  msgid "Show credits?"
2174
  msgstr "Toon credits?"
2175
 
2176
- #: admin/templates/map-settings.php:255
2177
  msgid ""
2178
  "This will place a \"Search provided by WP Store Locator\" backlink below the "
2179
  "map."
2180
  msgstr ""
2181
  "Dit plaatst een \"Ondersteund door WP Store Locator\" link onder de kaart."
2182
 
2183
- #: admin/templates/map-settings.php:269
2184
  msgid "User Experience"
2185
  msgstr "Gebruikers ervaring"
2186
 
2187
- #: admin/templates/map-settings.php:272
2188
  msgid "Store Locator height"
2189
  msgstr "Store Locator hoogte"
2190
 
2191
- #: admin/templates/map-settings.php:276
2192
  msgid "Max width for the info window content"
2193
  msgstr "Max breedte voor de info window inhoud"
2194
 
2195
- #: admin/templates/map-settings.php:280
2196
  msgid "Search field width"
2197
  msgstr "Zoekveld breedte"
2198
 
2199
- #: admin/templates/map-settings.php:284
2200
  msgid "Search and radius label width"
2201
  msgstr "Zoek en radius label breedte"
2202
 
2203
- #: admin/templates/map-settings.php:288
2204
  msgid "Store Locator template"
2205
  msgstr "Store locator template"
2206
 
2207
- #: admin/templates/map-settings.php:288
2208
  #, php-format
2209
  msgid ""
2210
  "The selected template is used with the [wpsl] shortcode. %s You can add a "
@@ -2213,19 +2239,19 @@ msgstr ""
2213
  "De geselecteerde template wordt gebruikt bij de [wpsl] shortcode. %s Je kunt "
2214
  "een custom template gebruiken met behulp van de %swpsl_templates%s filter."
2215
 
2216
- #: admin/templates/map-settings.php:292
2217
  msgid "Hide the scrollbar?"
2218
  msgstr "Verberg de scrollbar?"
2219
 
2220
- #: admin/templates/map-settings.php:296
2221
  msgid "Open links in a new window?"
2222
  msgstr "Open links in een nieuw venster?"
2223
 
2224
- #: admin/templates/map-settings.php:300
2225
  msgid "Show a reset map button?"
2226
  msgstr "Toon een knop om de kaart te resetten?"
2227
 
2228
- #: admin/templates/map-settings.php:304
2229
  msgid ""
2230
  "When a user clicks on \"Directions\", open a new window, and show the route "
2231
  "on google.com/maps ?"
@@ -2233,11 +2259,11 @@ msgstr ""
2233
  "Zodra een gebruiker op \"Route\" klikt, open een nieuwe venster en toon de "
2234
  "route op google.com/maps?"
2235
 
2236
- #: admin/templates/map-settings.php:308
2237
  msgid "Show a \"More info\" link in the store listings?"
2238
  msgstr "Toon een \"Meer info\" link in de locatie lijst?"
2239
 
2240
- #: admin/templates/map-settings.php:308
2241
  msgid ""
2242
  "This places a \"More Info\" link below the address and will show the phone, "
2243
  "fax, email, opening hours and description once the link is clicked."
@@ -2246,24 +2272,24 @@ msgstr ""
2246
  "klikt dan wordt het telefoon / fax nummer, email, openings tijden en "
2247
  "omschrijving getoond."
2248
 
2249
- #: admin/templates/map-settings.php:313
2250
  msgid "Where do you want to show the \"More info\" details?"
2251
  msgstr "Waar wil je de \"Meer info\" details tonen?"
2252
 
2253
- #: admin/templates/map-settings.php:318
2254
  msgid ""
2255
  "Always show the contact details below the address in the search results?"
2256
  msgstr "Toon altijd de contact gegevens onder het adres in de zoek resultaten?"
2257
 
2258
- #: admin/templates/map-settings.php:322
2259
  msgid "Make the contact details always clickable?"
2260
  msgstr "Maak de contact gevens klikbaar?"
2261
 
2262
- #: admin/templates/map-settings.php:326
2263
  msgid "Make the store name clickable if a store URL exists?"
2264
  msgstr "Als een winkel url bestaat, maak de winkel naam dan klikbaar?"
2265
 
2266
- #: admin/templates/map-settings.php:326
2267
  #, php-format
2268
  msgid ""
2269
  "If %spermalinks%s are enabled, the store name will always link to the store "
@@ -2272,11 +2298,11 @@ msgstr ""
2272
  "Als de %spermalinks%s zijn ingeschakeld dan zal de winkel naam altijd linken "
2273
  "naar de winkel pagina."
2274
 
2275
- #: admin/templates/map-settings.php:330
2276
  msgid "Make the phone number clickable on mobile devices?"
2277
  msgstr "Maak het telefoonnummer klikbaar op mobiele apparaten?"
2278
 
2279
- #: admin/templates/map-settings.php:334
2280
  msgid ""
2281
  "If street view is available for the current location, then show a \"Street "
2282
  "view\" link in the info window?"
@@ -2284,7 +2310,7 @@ msgstr ""
2284
  "Als voor de huidge locatie street view beschikbaar is, toon dan een \"Street "
2285
  "view\" link om vanuit de info window?"
2286
 
2287
- #: admin/templates/map-settings.php:334
2288
  #, php-format
2289
  msgid ""
2290
  "Enabling this option can sometimes result in a small delay in the opening of "
@@ -2296,11 +2322,11 @@ msgstr ""
2296
  "er een verzoek naar de Google Maps API word gemaakt om te controleren ofdat "
2297
  "street view wel beschikbaar is voor de huidige locatie."
2298
 
2299
- #: admin/templates/map-settings.php:338
2300
  msgid "Show a \"Zoom here\" link in the info window?"
2301
  msgstr "Toon een \"zoom hier\" link in de info window?"
2302
 
2303
- #: admin/templates/map-settings.php:338
2304
  #, php-format
2305
  msgid ""
2306
  "Clicking this link will make the map zoom in to the %s max auto zoom level "
@@ -2309,12 +2335,12 @@ msgstr ""
2309
  "Als er op deze link geklikt word dan zoomt de kaart in totdat de %s max auto "
2310
  "zoom level %s bereikt is."
2311
 
2312
- #: admin/templates/map-settings.php:342
2313
  msgid "On page load move the mouse cursor to the search field?"
2314
  msgstr ""
2315
  "Als de pagina wordt geladen, verplaats de muiscursor dan naar het invulveld?"
2316
 
2317
- #: admin/templates/map-settings.php:342
2318
  #, php-format
2319
  msgid ""
2320
  "If the store locator is not placed at the top of the page, enabling this "
@@ -2325,11 +2351,11 @@ msgstr ""
2325
  "instelling ervoor zorgen dat de pagina naar benenden schuift tijden het "
2326
  "laden. %s %sDeze optie staat uit op mobiele apparaten.%s"
2327
 
2328
- #: admin/templates/map-settings.php:346
2329
  msgid "Use the default style for the info window?"
2330
  msgstr "Gebruik de standaard style voor de info window?"
2331
 
2332
- #: admin/templates/map-settings.php:346
2333
  #, php-format
2334
  msgid ""
2335
  "If the default style is disabled the %sInfoBox%s library will be used "
@@ -2340,21 +2366,21 @@ msgstr ""
2340
  "gebruikt. %s Dit script maakt het mogelijk om makkelijk het ontwerp te "
2341
  "wijzigen met behulp van de .wpsl-infobox css class."
2342
 
2343
- #: admin/templates/map-settings.php:350
2344
  msgid "Hide the country in the search results?"
2345
  msgstr "Verberg het land in de zoekresultaten?"
2346
 
2347
- #: admin/templates/map-settings.php:354
2348
  msgid "Hide the distance in the search results?"
2349
  msgstr "Verberg de afstand in de zoek resultaten?"
2350
 
2351
- #: admin/templates/map-settings.php:358
2352
  msgid "If a user hovers over the search results the store marker"
2353
  msgstr ""
2354
  "Als een gebruiker over de zoekresultaten beweegt met zijn muis de "
2355
  "bijbehorende marker"
2356
 
2357
- #: admin/templates/map-settings.php:358
2358
  #, php-format
2359
  msgid ""
2360
  "If marker clusters are enabled this option will not work as expected as long "
@@ -2369,11 +2395,11 @@ msgstr ""
2369
  "de marker cluster wordt omgezet naar losse markers. %s De info window wordt "
2370
  "wel geopend, maar het is niet duidelijk bij welke marker het hoort."
2371
 
2372
- #: admin/templates/map-settings.php:362
2373
  msgid "Address format"
2374
  msgstr "Adres formaat"
2375
 
2376
- #: admin/templates/map-settings.php:362
2377
  #, php-format
2378
  msgid ""
2379
  "You can add custom address formats with the %swpsl_address_formats%s filter."
@@ -2381,19 +2407,19 @@ msgstr ""
2381
  "Je kunt een nieuwe adres formaat toevoegen met de %swpsl_address_formats%s "
2382
  "filter."
2383
 
2384
- #: admin/templates/map-settings.php:380
2385
  msgid "Enable marker clusters?"
2386
  msgstr "Activeer marker clusters?"
2387
 
2388
- #: admin/templates/map-settings.php:380
2389
  msgid "Recommended for maps with a large amount of markers."
2390
  msgstr "Aan te raden voor kaarten met grote hoeveelheden markers."
2391
 
2392
- #: admin/templates/map-settings.php:385
2393
  msgid "Max zoom level"
2394
  msgstr "Max zoom niveau"
2395
 
2396
- #: admin/templates/map-settings.php:385
2397
  msgid ""
2398
  "If this zoom level is reached or exceeded, then all markers are moved out of "
2399
  "the marker cluster and shown as individual markers."
@@ -2401,11 +2427,11 @@ msgstr ""
2401
  "Als dit zoom niveau bereikt is of gepasseerd, dan worden alle markers uit de "
2402
  "marker cluster gehaald en als losse markers getoond."
2403
 
2404
- #: admin/templates/map-settings.php:389
2405
  msgid "Cluster size"
2406
  msgstr "Cluster grote"
2407
 
2408
- #: admin/templates/map-settings.php:389
2409
  #, php-format
2410
  msgid ""
2411
  "The grid size of a cluster in pixels. %s A larger number will result in a "
@@ -2415,27 +2441,27 @@ msgstr ""
2415
  "voor dat er minder clusters zichtbaar zijn en het algoritme dus ook sneller "
2416
  "klaar is."
2417
 
2418
- #: admin/templates/map-settings.php:404
2419
  msgid "Store Editor"
2420
  msgstr "Winkel editor"
2421
 
2422
- #: admin/templates/map-settings.php:407
2423
  msgid "Default country"
2424
  msgstr "Standaard land"
2425
 
2426
- #: admin/templates/map-settings.php:411
2427
  msgid "Map type for the location preview"
2428
  msgstr "Kaart type voor het lokatie voorbeeld"
2429
 
2430
- #: admin/templates/map-settings.php:415
2431
  msgid "Hide the opening hours?"
2432
  msgstr "Verberg de openingstijden?"
2433
 
2434
- #: admin/templates/map-settings.php:421
2435
  msgid "Opening hours input type"
2436
  msgstr "Openingstijden formaat"
2437
 
2438
- #: admin/templates/map-settings.php:425
2439
  #, php-format
2440
  msgid ""
2441
  "Opening hours created in version 1.x %sare not%s automatically converted to "
@@ -2444,15 +2470,15 @@ msgstr ""
2444
  "De openingstijden die zijn aangemaakt in versie 1.x %sworden niet%s "
2445
  "automatische omgezet naar het dropdown formaat."
2446
 
2447
- #: admin/templates/map-settings.php:428 admin/templates/map-settings.php:437
2448
  msgid "The default opening hours"
2449
  msgstr "De standaard openingstijden"
2450
 
2451
- #: admin/templates/map-settings.php:434
2452
  msgid "Opening hours format"
2453
  msgstr "Openingstijden formaat"
2454
 
2455
- #: admin/templates/map-settings.php:441
2456
  msgid ""
2457
  "The default country and opening hours are only used when a new store is "
2458
  "created. So changing the default values will have no effect on existing "
@@ -2462,39 +2488,55 @@ msgstr ""
2462
  "gebruikt als een nieuwe locatie wordt aangemaakt. Het wijzigen van deze "
2463
  "waardes heeft dus geen enkele invloed op de bestaande locaties."
2464
 
2465
- #: admin/templates/map-settings.php:454
2466
  msgid "Permalink"
2467
  msgstr "Permalink"
2468
 
2469
- #: admin/templates/map-settings.php:457
2470
  msgid "Enable permalink?"
2471
  msgstr "Activeer permalink?"
2472
 
2473
- #: admin/templates/map-settings.php:462
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2474
  msgid "Store slug"
2475
  msgstr "Winkel slug"
2476
 
2477
- #: admin/templates/map-settings.php:466
2478
  msgid "Category slug"
2479
  msgstr "Categorie slug"
2480
 
2481
- #: admin/templates/map-settings.php:469
2482
  #, php-format
2483
  msgid "The permalink slugs %smust be unique%s on your site."
2484
  msgstr "De permalink slug %smoet uniek%s zijn op je site."
2485
 
2486
- #: admin/templates/map-settings.php:482
2487
  msgid "Labels"
2488
  msgstr "Labels"
2489
 
2490
- #: admin/templates/map-settings.php:491
2491
  #, php-format
2492
  msgid "%sWarning!%s %sWPML%s, or a plugin using the WPML API is active."
2493
  msgstr ""
2494
  "%sWaarschuwing!%s %sWPML%s, of een plugin die de WPML API gebruikt is "
2495
  "actief."
2496
 
2497
- #: admin/templates/map-settings.php:492
2498
  msgid ""
2499
  "Please use the \"String Translations\" section in the used multilingual "
2500
  "plugin to change the labels. Changing them here will have no effect as long "
@@ -2504,125 +2546,125 @@ msgstr ""
2504
  "labels te wijzigen. Wijzigingen die in dit gedeelte worden aangebracht "
2505
  "hebben geen effect zolang de vertaal plugin actief is."
2506
 
2507
- #: admin/templates/map-settings.php:496 admin/templates/map-settings.php:497
2508
  #: frontend/templates/default.php:12
2509
- #: frontend/templates/store-listings-below.php:12 inc/wpsl-functions.php:138
2510
  msgid "Your location"
2511
  msgstr "Uw locatie"
2512
 
2513
- #: admin/templates/map-settings.php:500 admin/templates/map-settings.php:501
2514
  #: frontend/templates/default.php:21
2515
- #: frontend/templates/store-listings-below.php:21 inc/wpsl-functions.php:141
2516
  msgid "Search radius"
2517
  msgstr "Zoek radius"
2518
 
2519
- #: admin/templates/map-settings.php:504 admin/templates/map-settings.php:505
2520
- #: frontend/class-frontend.php:1818 inc/wpsl-functions.php:142
2521
  msgid "No results found"
2522
  msgstr "Geen resultaten gevonden"
2523
 
2524
- #: admin/templates/map-settings.php:512
2525
  msgid "Searching (preloader text)"
2526
  msgstr "Aan het zoeken (preloader tekst)"
2527
 
2528
- #: admin/templates/map-settings.php:513 frontend/class-frontend.php:1817
2529
- #: inc/wpsl-functions.php:140
2530
  msgid "Searching..."
2531
  msgstr "Zoeken..."
2532
 
2533
- #: admin/templates/map-settings.php:516 admin/templates/map-settings.php:517
2534
  #: frontend/templates/default.php:30
2535
- #: frontend/templates/store-listings-below.php:30 inc/wpsl-functions.php:143
2536
  msgid "Results"
2537
  msgstr "Resultaten"
2538
 
2539
- #: admin/templates/map-settings.php:520 admin/upgrade.php:206
2540
- #: inc/wpsl-functions.php:157
2541
  msgid "Category filter"
2542
  msgstr "Categorie filter"
2543
 
2544
- #: admin/templates/map-settings.php:521 frontend/class-frontend.php:1411
2545
  msgid "Category"
2546
  msgstr "Categorie"
2547
 
2548
- #: admin/templates/map-settings.php:524
2549
  msgid "Category first item"
2550
  msgstr "Eerste categorie item"
2551
 
2552
- #: admin/templates/map-settings.php:525 admin/upgrade.php:367
2553
- #: frontend/class-frontend.php:1414 inc/wpsl-functions.php:158
2554
  msgid "Any"
2555
  msgstr "Alle"
2556
 
2557
- #: admin/templates/map-settings.php:528 admin/templates/map-settings.php:529
2558
- #: admin/upgrade.php:59 frontend/class-frontend.php:1819
2559
  #: frontend/underscore-functions.php:138 frontend/underscore-functions.php:168
2560
- #: inc/wpsl-functions.php:144
2561
  msgid "More info"
2562
  msgstr "Meer info"
2563
 
2564
- #: admin/templates/map-settings.php:532 admin/templates/map-settings.php:533
2565
  #: frontend/class-frontend.php:828 frontend/underscore-functions.php:29
2566
  #: frontend/underscore-functions.php:65 frontend/underscore-functions.php:147
2567
- #: inc/wpsl-functions.php:152
2568
  msgid "Phone"
2569
  msgstr "Telefoon"
2570
 
2571
- #: admin/templates/map-settings.php:552 admin/templates/map-settings.php:553
2572
- #: frontend/class-frontend.php:1824 inc/wpsl-functions.php:137
2573
  msgid "Start location"
2574
  msgstr "Start locatie"
2575
 
2576
- #: admin/templates/map-settings.php:556
2577
  msgid "Get directions"
2578
  msgstr "Toon routebeschrijving"
2579
 
2580
- #: admin/templates/map-settings.php:557 frontend/class-frontend.php:861
2581
- #: frontend/class-frontend.php:1822 inc/wpsl-functions.php:145
2582
  msgid "Directions"
2583
  msgstr "Routebeschrijving"
2584
 
2585
- #: admin/templates/map-settings.php:560
2586
  msgid "No directions found"
2587
  msgstr "Geen routebeschrijving beschikbaar"
2588
 
2589
- #: admin/templates/map-settings.php:561 admin/upgrade.php:151
2590
- #: frontend/class-frontend.php:1823 inc/wpsl-functions.php:146
2591
  msgid "No route could be found between the origin and destination"
2592
  msgstr "Er kon geen route gevonden worden tussen het begin- en eindpunt"
2593
 
2594
- #: admin/templates/map-settings.php:564 admin/templates/map-settings.php:565
2595
- #: admin/upgrade.php:77 frontend/class-frontend.php:1825
2596
- #: inc/wpsl-functions.php:147
2597
  msgid "Back"
2598
  msgstr "Terug"
2599
 
2600
- #: admin/templates/map-settings.php:568 admin/templates/map-settings.php:569
2601
- #: admin/upgrade.php:143 frontend/class-frontend.php:1826
2602
- #: inc/wpsl-functions.php:148
2603
  msgid "Street view"
2604
  msgstr "Street view"
2605
 
2606
- #: admin/templates/map-settings.php:572 admin/templates/map-settings.php:573
2607
- #: admin/upgrade.php:147 frontend/class-frontend.php:1827
2608
- #: inc/wpsl-functions.php:149
2609
  msgid "Zoom here"
2610
  msgstr "Zoom hier"
2611
 
2612
- #: admin/templates/map-settings.php:576
2613
  msgid "General error"
2614
  msgstr "Foutmelding"
2615
 
2616
- #: admin/templates/map-settings.php:577 frontend/class-frontend.php:1820
2617
- #: inc/wpsl-functions.php:150
2618
  msgid "Something went wrong, please try again!"
2619
  msgstr "Er ging iets fout, probeer het nog een keer!"
2620
 
2621
- #: admin/templates/map-settings.php:580
2622
  msgid "Query limit error"
2623
  msgstr "Query limit foutmelding"
2624
 
2625
- #: admin/templates/map-settings.php:580
2626
  #, php-format
2627
  msgid ""
2628
  "You can raise the %susage limit%s by obtaining an API %skey%s, and fill in "
@@ -2631,20 +2673,20 @@ msgstr ""
2631
  "Je kan de %sgebruiks limiet%s verhogen door een API %ssleutel%s aan te "
2632
  "vragen en die in het \"API sleutel\" veld bovenaan de pagina in te vullen."
2633
 
2634
- #: admin/templates/map-settings.php:581 frontend/class-frontend.php:1821
2635
- #: inc/wpsl-functions.php:151
2636
  msgid "API usage limit reached"
2637
  msgstr "API gebruikslimiet bereikt"
2638
 
2639
- #: admin/templates/map-settings.php:594
2640
  msgid "Tools"
2641
  msgstr "Tools"
2642
 
2643
- #: admin/templates/map-settings.php:597
2644
  msgid "Enable store locator debug?"
2645
  msgstr "Activeer store locator debug?"
2646
 
2647
- #: admin/templates/map-settings.php:597
2648
  #, php-format
2649
  msgid ""
2650
  "This disables the WPSL transient cache. %sThe transient cache is only used "
@@ -2654,11 +2696,11 @@ msgstr ""
2654
  "alleen gebruikt als de %sToon alle locaties op de kaart zodra de pagina "
2655
  "geladen is%s optie is geactiveerd."
2656
 
2657
- #: admin/templates/map-settings.php:601
2658
  msgid "Enable compatibility mode?"
2659
  msgstr "Activeer de compatibiliteitsmodus?"
2660
 
2661
- #: admin/templates/map-settings.php:601
2662
  #, php-format
2663
  msgid ""
2664
  "If the %sbrowser console%s shows the error below, then enabling this option "
@@ -2672,11 +2714,11 @@ msgstr ""
2672
  "%s Deze foutmelding kan er in sommige situations voor zorgen dat de store "
2673
  "locator kaart niet goed functioneerd."
2674
 
2675
- #: admin/templates/map-settings.php:605
2676
  msgid "WPSL transients"
2677
  msgstr "WPSL transients"
2678
 
2679
- #: admin/templates/map-settings.php:606
2680
  msgid "Clear store locator transient cache"
2681
  msgstr "Verwijder het store locator transient cache."
2682
 
@@ -2688,15 +2730,15 @@ msgstr "info window"
2688
  msgid "Reset"
2689
  msgstr "Herstel"
2690
 
2691
- #: admin/upgrade.php:174 inc/wpsl-functions.php:131
2692
  msgid "stores"
2693
  msgstr "winkels"
2694
 
2695
- #: admin/upgrade.php:178 inc/wpsl-functions.php:132
2696
  msgid "store-category"
2697
  msgstr "winkel-categorie"
2698
 
2699
- #: admin/upgrade.php:436
2700
  #, php-format
2701
  msgid ""
2702
  "Because you updated WP Store Locator from version 1.x, the %s current store "
@@ -2705,7 +2747,7 @@ msgstr ""
2705
  "Doordat je WP Store Locator update van versie 1.x, de %s huidige winkel "
2706
  "locaties moeten worden %somgezet%s naar custom post types."
2707
 
2708
- #: admin/upgrade.php:457
2709
  #, php-format
2710
  msgid ""
2711
  "The script converting the locations timed out. %s You can click the \"Start "
@@ -2723,15 +2765,15 @@ msgstr ""
2723
  "heeft al geprobeerd om de maximum execution time uit te zetten, maar als je "
2724
  "dit leest dan is dat mislukt."
2725
 
2726
- #: admin/upgrade.php:478
2727
  msgid "Store locations to convert:"
2728
  msgstr "Locaties die omgezet worden:"
2729
 
2730
- #: admin/upgrade.php:480
2731
  msgid "Start Converting"
2732
  msgstr "Begin met omzetten"
2733
 
2734
- #: admin/upgrade.php:602
2735
  #, php-format
2736
  msgid ""
2737
  "All the store locations are now converted to custom post types. %s You can "
@@ -2787,91 +2829,91 @@ msgstr " Er heeft zich een onbekende fout voorgedaan."
2787
  msgid "Search provided by %sWP Store Locator%s"
2788
  msgstr "Ondersteund door %sWP Store Locator%s"
2789
 
2790
- #: inc/class-post-types.php:52
2791
  msgid "Store Locator"
2792
  msgstr "Store Locator"
2793
 
2794
- #: inc/class-post-types.php:53
2795
  msgid "All Stores"
2796
  msgstr "Alle winkels"
2797
 
2798
- #: inc/class-post-types.php:54
2799
  msgid "Store"
2800
  msgstr "winkel"
2801
 
2802
- #: inc/class-post-types.php:55 inc/class-post-types.php:58
2803
  msgid "New Store"
2804
  msgstr "Nieuwe winkel"
2805
 
2806
- #: inc/class-post-types.php:56
2807
  msgid "Add New Store"
2808
  msgstr "Voeg winkel toe"
2809
 
2810
- #: inc/class-post-types.php:57
2811
  msgid "Edit Store"
2812
  msgstr "Wijzig winkel"
2813
 
2814
- #: inc/class-post-types.php:59
2815
  msgid "View Stores"
2816
  msgstr "Bekijk winkel"
2817
 
2818
- #: inc/class-post-types.php:60
2819
  msgid "Search Stores"
2820
  msgstr "Zoek winkels"
2821
 
2822
- #: inc/class-post-types.php:61
2823
  msgid "No Stores found"
2824
  msgstr "Geen winkels gevonden"
2825
 
2826
- #: inc/class-post-types.php:62
2827
  msgid "No Stores found in trash"
2828
  msgstr "Geen winkels gevonden in de prullenbak"
2829
 
2830
- #: inc/class-post-types.php:105 inc/class-post-types.php:115
2831
  msgid "Store Categories"
2832
  msgstr "Winkel categorieën"
2833
 
2834
- #: inc/class-post-types.php:106
2835
  msgid "Store Category"
2836
  msgstr "Winkel categorie"
2837
 
2838
- #: inc/class-post-types.php:107
2839
  msgid "Search Store Categories"
2840
  msgstr "Zoek winkel categorieën"
2841
 
2842
- #: inc/class-post-types.php:108
2843
  msgid "All Store Categories"
2844
  msgstr "Alle winkel categorieën"
2845
 
2846
- #: inc/class-post-types.php:109
2847
  msgid "Parent Store Category"
2848
  msgstr "Hoofd winkel categorie"
2849
 
2850
- #: inc/class-post-types.php:110
2851
  msgid "Parent Store Category:"
2852
  msgstr "Hoofd winkel categorie:"
2853
 
2854
- #: inc/class-post-types.php:111
2855
  msgid "Edit Store Category"
2856
  msgstr "Wijzig winkel categorie"
2857
 
2858
- #: inc/class-post-types.php:112
2859
  msgid "Update Store Category"
2860
  msgstr "Winkel categorie bijwerken"
2861
 
2862
- #: inc/class-post-types.php:113
2863
  msgid "Add New Store Category"
2864
  msgstr "Voeg winkel categorie toe"
2865
 
2866
- #: inc/class-post-types.php:114
2867
  msgid "New Store Category Name"
2868
  msgstr "Naam winkel categorie"
2869
 
2870
- #: inc/class-post-types.php:145
2871
  msgid "Enter store title here"
2872
  msgstr "Voer winkel naam in"
2873
 
2874
- #: inc/class-post-types.php:163
2875
  msgid "Zip"
2876
  msgstr "Postcode"
2877
 
@@ -2887,79 +2929,117 @@ msgid ""
2887
  "parameters."
2888
  msgstr "Roep de %sget_template_details%s functie aan met de juiste parameters."
2889
 
2890
- #: inc/wpsl-functions.php:227
2891
  msgid "Show the store list below the map"
2892
  msgstr "Toon the locatie lijst onder de kaart"
2893
 
2894
- #: inc/wpsl-functions.php:244
2895
  msgid "Monday"
2896
  msgstr "Maandag"
2897
 
2898
- #: inc/wpsl-functions.php:245
2899
  msgid "Tuesday"
2900
  msgstr "Dinsdag"
2901
 
2902
- #: inc/wpsl-functions.php:246
2903
  msgid "Wednesday"
2904
  msgstr "Woensdag"
2905
 
2906
- #: inc/wpsl-functions.php:247
2907
  msgid "Thursday"
2908
  msgstr "Donderdag"
2909
 
2910
- #: inc/wpsl-functions.php:248
2911
  msgid "Friday"
2912
  msgstr "Vrijdag"
2913
 
2914
- #: inc/wpsl-functions.php:249
2915
  msgid "Saturday"
2916
  msgstr "Zaterdag"
2917
 
2918
- #: inc/wpsl-functions.php:250
2919
  msgid "Sunday"
2920
  msgstr "Zondag"
2921
 
2922
- #: inc/wpsl-functions.php:280
2923
  #, php-format
2924
  msgid "Mon %sTue %sWed %sThu %sFri %sSat Closed %sSun Closed"
2925
  msgstr "ma %sdi %swoe %sdo %svrij %szat gesloten %szo gesloten"
2926
 
2927
- #: inc/wpsl-functions.php:296
2928
  msgid "Satellite"
2929
  msgstr "Satelliet"
2930
 
2931
- #: inc/wpsl-functions.php:297
2932
  msgid "Hybrid"
2933
  msgstr "Hybrid"
2934
 
2935
- #: inc/wpsl-functions.php:298
2936
  msgid "Terrain"
2937
  msgstr "Terrein"
2938
 
2939
- #: inc/wpsl-functions.php:313
2940
  msgid "(city) (state) (zip code)"
2941
  msgstr "(stad) (provincie) (postcode)"
2942
 
2943
- #: inc/wpsl-functions.php:314
2944
  msgid "(city), (state) (zip code)"
2945
  msgstr "(stad), (provincie), (postcode)"
2946
 
2947
- #: inc/wpsl-functions.php:315
2948
  msgid "(city) (zip code)"
2949
  msgstr "(stad) (postcode)"
2950
 
2951
- #: inc/wpsl-functions.php:316
2952
  msgid "(city), (zip code)"
2953
  msgstr "(stad), (postcode)"
2954
 
2955
- #: inc/wpsl-functions.php:317
2956
  msgid "(zip code) (city) (state)"
2957
  msgstr "(postcode) (stad) (provincie)"
2958
 
2959
- #: inc/wpsl-functions.php:318
2960
  msgid "(zip code) (city)"
2961
  msgstr "(postcode) (stad)"
2962
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2963
  #~ msgid "%sError message: %s"
2964
  #~ msgstr "%sFout melding: %s"
2965
 
1
  msgid ""
2
  msgstr ""
3
+ "Project-Id-Version: WP Store Locator 2.2.20\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2018-12-26 14:02+0700\n"
6
+ "PO-Revision-Date: 2018-12-26 14:10+0700\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "Language: nl_NL\n"
85
  msgid "Geocode was not successful for the following reason"
86
  msgstr "Geocode was niet succesvol om de volgende reden"
87
 
88
+ #: admin/class-admin.php:297 admin/upgrade.php:465
89
  msgid "Security check failed, reload the page and try again."
90
  msgstr ""
91
  "Beveiligings controle mislukt, herlaad de pagina en probeer het nog een keer."
292
  msgid "Location"
293
  msgstr "Locatie"
294
 
295
+ #: admin/class-metaboxes.php:59 inc/class-post-types.php:186
296
  msgid "Address"
297
  msgstr "Adres"
298
 
300
  msgid "Address 2"
301
  msgstr "Adres 2"
302
 
303
+ #: admin/class-metaboxes.php:66 inc/class-post-types.php:187
304
  msgid "City"
305
  msgstr "Stad"
306
 
307
+ #: admin/class-metaboxes.php:70 inc/class-post-types.php:188
308
  msgid "State"
309
  msgstr "Provincie"
310
 
329
  msgid "Opening Hours"
330
  msgstr "Openingstijden"
331
 
332
+ #: admin/class-metaboxes.php:91 admin/templates/map-settings.php:564
333
+ #: admin/templates/map-settings.php:565 frontend/underscore-functions.php:160
334
+ #: inc/wpsl-functions.php:158
335
  msgid "Hours"
336
  msgstr "Uren"
337
 
343
  msgid "Tel"
344
  msgstr "Tel."
345
 
346
+ #: admin/class-metaboxes.php:100 admin/templates/map-settings.php:552
347
+ #: admin/templates/map-settings.php:553 frontend/class-frontend.php:832
348
  #: frontend/underscore-functions.php:32 frontend/underscore-functions.php:68
349
+ #: frontend/underscore-functions.php:150 inc/wpsl-functions.php:155
350
  msgid "Fax"
351
  msgstr "Fax"
352
 
353
+ #: admin/class-metaboxes.php:103 admin/templates/map-settings.php:556
354
+ #: admin/templates/map-settings.php:557 admin/upgrade.php:198
355
  #: frontend/class-frontend.php:836 frontend/underscore-functions.php:35
356
  #: frontend/underscore-functions.php:71 frontend/underscore-functions.php:153
357
+ #: inc/wpsl-functions.php:156
358
  msgid "Email"
359
  msgstr "E-mail"
360
 
361
+ #: admin/class-metaboxes.php:106 admin/templates/map-settings.php:560
362
+ #: admin/templates/map-settings.php:561 admin/upgrade.php:202
363
+ #: frontend/class-frontend.php:841 inc/wpsl-functions.php:157
364
  msgid "Url"
365
  msgstr "Url"
366
 
456
  msgid "WP Store Locator Transients Cleared"
457
  msgstr "WP Store Locator transients verwijderd"
458
 
459
+ #: admin/class-settings.php:371
460
  #, php-format
461
  msgid "There's a problem with the provided %sserver key%s. %s"
462
  msgstr "Er is een probleem met de opgegeven %sserver sleutel%s. %s"
463
 
464
+ #: admin/class-settings.php:492
465
  msgid ""
466
  "The max results field cannot be empty, the default value has been restored."
467
  msgstr ""
468
  "Het max. zoek resulaten veld kan niet leeg zijn, de standaard waarde is "
469
  "hersteld."
470
 
471
+ #: admin/class-settings.php:495
472
  msgid ""
473
  "The search radius field cannot be empty, the default value has been restored."
474
  msgstr ""
475
  "Het zoek radius veld kan niet leeg zijn, de standaard waarde is hersteld."
476
 
477
+ #: admin/class-settings.php:498
478
  #, php-format
479
  msgid ""
480
  "Please provide the name of a city or country that can be used as a starting "
486
  "automatische achterhalen van de gebruikers locatie mislukt, of het "
487
  "automatische achterhalen is uitgeschakeld."
488
 
489
+ #: admin/class-settings.php:519
490
  msgid "Select your language"
491
  msgstr "Kies uw taal"
492
 
493
+ #: admin/class-settings.php:520
494
  msgid "English"
495
  msgstr "Engels"
496
 
497
+ #: admin/class-settings.php:521
498
  msgid "Arabic"
499
  msgstr "Arabisch"
500
 
501
+ #: admin/class-settings.php:522
502
  msgid "Basque"
503
  msgstr "Bask"
504
 
505
+ #: admin/class-settings.php:523
506
  msgid "Bulgarian"
507
  msgstr "Bulgaars"
508
 
509
+ #: admin/class-settings.php:524
510
  msgid "Bengali"
511
  msgstr "Bengali"
512
 
513
+ #: admin/class-settings.php:525
514
  msgid "Catalan"
515
  msgstr "Catalaans"
516
 
517
+ #: admin/class-settings.php:526
518
  msgid "Czech"
519
  msgstr "Tjechisch"
520
 
521
+ #: admin/class-settings.php:527
522
  msgid "Danish"
523
  msgstr "Deens"
524
 
525
+ #: admin/class-settings.php:528
526
  msgid "German"
527
  msgstr "Duits"
528
 
529
+ #: admin/class-settings.php:529
530
  msgid "Greek"
531
  msgstr "Grieks"
532
 
533
+ #: admin/class-settings.php:530
534
  msgid "English (Australian)"
535
  msgstr "Engels (Australisch)"
536
 
537
+ #: admin/class-settings.php:531
538
  msgid "English (Great Britain)"
539
  msgstr "Engels (Verenigd Koninkrijk)"
540
 
541
+ #: admin/class-settings.php:532
542
  msgid "Spanish"
543
  msgstr "Spaans"
544
 
545
+ #: admin/class-settings.php:533
546
  msgid "Farsi"
547
  msgstr "Farsi"
548
 
549
+ #: admin/class-settings.php:534
550
  msgid "Finnish"
551
  msgstr "Fins"
552
 
553
+ #: admin/class-settings.php:535
554
  msgid "Filipino"
555
  msgstr "Filipijns"
556
 
557
+ #: admin/class-settings.php:536
558
  msgid "French"
559
  msgstr "Frans"
560
 
561
+ #: admin/class-settings.php:537
562
  msgid "Galician"
563
  msgstr "Gallisch"
564
 
565
+ #: admin/class-settings.php:538
566
  msgid "Gujarati"
567
  msgstr "Gujurati"
568
 
569
+ #: admin/class-settings.php:539
570
  msgid "Hindi"
571
  msgstr "Hindi"
572
 
573
+ #: admin/class-settings.php:540
574
  msgid "Croatian"
575
  msgstr "Kroatisch"
576
 
577
+ #: admin/class-settings.php:541
578
  msgid "Hungarian"
579
  msgstr "Hongaars"
580
 
581
+ #: admin/class-settings.php:542
582
  msgid "Indonesian"
583
  msgstr "Indonesisch"
584
 
585
+ #: admin/class-settings.php:543
586
  msgid "Italian"
587
  msgstr "Italiaans"
588
 
589
+ #: admin/class-settings.php:544
590
  msgid "Hebrew"
591
  msgstr "Hebreeuws"
592
 
593
+ #: admin/class-settings.php:545
594
  msgid "Japanese"
595
  msgstr "Japans"
596
 
597
+ #: admin/class-settings.php:546
598
  msgid "Kannada"
599
  msgstr "Kannada"
600
 
601
+ #: admin/class-settings.php:547
602
  msgid "Korean"
603
  msgstr "Koreaans"
604
 
605
+ #: admin/class-settings.php:548
606
  msgid "Lithuanian"
607
  msgstr "Litouws"
608
 
609
+ #: admin/class-settings.php:549
610
  msgid "Latvian"
611
  msgstr "Lets"
612
 
613
+ #: admin/class-settings.php:550
614
  msgid "Malayalam"
615
  msgstr "Malayalam"
616
 
617
+ #: admin/class-settings.php:551
618
  msgid "Marathi"
619
  msgstr "Marathi"
620
 
621
+ #: admin/class-settings.php:552
622
  msgid "Dutch"
623
  msgstr "Nederlands"
624
 
625
+ #: admin/class-settings.php:553
626
  msgid "Norwegian"
627
  msgstr "Noors"
628
 
629
+ #: admin/class-settings.php:554
630
  msgid "Norwegian Nynorsk"
631
  msgstr "Noors Nynorsk"
632
 
633
+ #: admin/class-settings.php:555
634
  msgid "Polish"
635
  msgstr "Pools"
636
 
637
+ #: admin/class-settings.php:556
638
  msgid "Portuguese"
639
  msgstr "Portugees"
640
 
641
+ #: admin/class-settings.php:557
642
  msgid "Portuguese (Brazil)"
643
  msgstr "Portugees (Brazilië)"
644
 
645
+ #: admin/class-settings.php:558
646
  msgid "Portuguese (Portugal)"
647
  msgstr "Portugees (Portugal)"
648
 
649
+ #: admin/class-settings.php:559
650
  msgid "Romanian"
651
  msgstr "Roemeens"
652
 
653
+ #: admin/class-settings.php:560
654
  msgid "Russian"
655
  msgstr "Russisch"
656
 
657
+ #: admin/class-settings.php:561
658
  msgid "Slovak"
659
  msgstr "Slowaaks"
660
 
661
+ #: admin/class-settings.php:562
662
  msgid "Slovenian"
663
  msgstr "Sloveens"
664
 
665
+ #: admin/class-settings.php:563
666
  msgid "Serbian"
667
  msgstr "Servisch"
668
 
669
+ #: admin/class-settings.php:564
670
  msgid "Swedish"
671
  msgstr "Zweeds"
672
 
673
+ #: admin/class-settings.php:565
674
  msgid "Tagalog"
675
  msgstr "Tagalog"
676
 
677
+ #: admin/class-settings.php:566
678
  msgid "Tamil"
679
  msgstr "Tamil"
680
 
681
+ #: admin/class-settings.php:567
682
  msgid "Telugu"
683
  msgstr "Telugu"
684
 
685
+ #: admin/class-settings.php:568
686
  msgid "Thai"
687
  msgstr "Thai"
688
 
689
+ #: admin/class-settings.php:569
690
  msgid "Turkish"
691
  msgstr "Turks"
692
 
693
+ #: admin/class-settings.php:570
694
  msgid "Ukrainian"
695
  msgstr "Oekraïens"
696
 
697
+ #: admin/class-settings.php:571
698
  msgid "Vietnamese"
699
  msgstr "Vietnamees"
700
 
701
+ #: admin/class-settings.php:572
702
  msgid "Chinese (Simplified)"
703
  msgstr "Chinees (Vereenvoudigd)"
704
 
705
+ #: admin/class-settings.php:573
706
  msgid "Chinese (Traditional)"
707
  msgstr "Chinees (Traditioneel)"
708
 
709
+ #: admin/class-settings.php:578
710
  msgid "Select your region"
711
  msgstr "Kies uw regio"
712
 
713
+ #: admin/class-settings.php:579
714
  msgid "Afghanistan"
715
  msgstr "Afghanistan"
716
 
717
+ #: admin/class-settings.php:580
718
  msgid "Albania"
719
  msgstr "Albanië"
720
 
721
+ #: admin/class-settings.php:581
722
  msgid "Algeria"
723
  msgstr "Algerije"
724
 
725
+ #: admin/class-settings.php:582
726
  msgid "American Samoa"
727
  msgstr "Amerikaans Samoa"
728
 
729
+ #: admin/class-settings.php:583
730
  msgid "Andorra"
731
  msgstr "Andorra"
732
 
733
+ #: admin/class-settings.php:584
734
  msgid "Angola"
735
  msgstr "Angola"
736
 
737
+ #: admin/class-settings.php:585
738
  msgid "Anguilla"
739
  msgstr "Anguilla"
740
 
741
+ #: admin/class-settings.php:586
742
  msgid "Antarctica"
743
  msgstr "Antarctica"
744
 
745
+ #: admin/class-settings.php:587
746
  msgid "Antigua and Barbuda"
747
  msgstr "Antigua en Barbuda"
748
 
749
+ #: admin/class-settings.php:588
750
  msgid "Argentina"
751
  msgstr "Argentinië"
752
 
753
+ #: admin/class-settings.php:589
754
  msgid "Armenia"
755
  msgstr "Armenia"
756
 
757
+ #: admin/class-settings.php:590
758
  msgid "Aruba"
759
  msgstr "Aruba"
760
 
761
+ #: admin/class-settings.php:591
762
  msgid "Ascension Island"
763
  msgstr "Ascension"
764
 
765
+ #: admin/class-settings.php:592
766
  msgid "Australia"
767
  msgstr "Australië"
768
 
769
+ #: admin/class-settings.php:593
770
  msgid "Austria"
771
  msgstr "Oostenrijk"
772
 
773
+ #: admin/class-settings.php:594
774
  msgid "Azerbaijan"
775
  msgstr "Azerbeidzjan"
776
 
777
+ #: admin/class-settings.php:595
778
  msgid "Bahamas"
779
  msgstr "Bahamas"
780
 
781
+ #: admin/class-settings.php:596
782
  msgid "Bahrain"
783
  msgstr "Bahrein"
784
 
785
+ #: admin/class-settings.php:597
786
  msgid "Bangladesh"
787
  msgstr "Bangladesh"
788
 
789
+ #: admin/class-settings.php:598
790
  msgid "Barbados"
791
  msgstr "Barbados"
792
 
793
+ #: admin/class-settings.php:599
794
  msgid "Belarus"
795
  msgstr "Wit-Rusland"
796
 
797
+ #: admin/class-settings.php:600
798
  msgid "Belgium"
799
  msgstr "België"
800
 
801
+ #: admin/class-settings.php:601
802
  msgid "Belize"
803
  msgstr "Belize"
804
 
805
+ #: admin/class-settings.php:602
806
  msgid "Benin"
807
  msgstr "Benin"
808
 
809
+ #: admin/class-settings.php:603
810
  msgid "Bermuda"
811
  msgstr "Bermuda"
812
 
813
+ #: admin/class-settings.php:604
814
  msgid "Bhutan"
815
  msgstr "Bhutan"
816
 
817
+ #: admin/class-settings.php:605
818
  msgid "Bolivia"
819
  msgstr "Bolivia"
820
 
821
+ #: admin/class-settings.php:606
822
  msgid "Bosnia and Herzegovina"
823
  msgstr "Bosnia en Herzegovina"
824
 
825
+ #: admin/class-settings.php:607
826
  msgid "Botswana"
827
  msgstr "Botswana"
828
 
829
+ #: admin/class-settings.php:608
830
  msgid "Bouvet Island"
831
  msgstr "Bouvet"
832
 
833
+ #: admin/class-settings.php:609
834
  msgid "Brazil"
835
  msgstr "Brazilië"
836
 
837
+ #: admin/class-settings.php:610
838
  msgid "British Indian Ocean Territory"
839
  msgstr "Brits Indische Oceaanterritorium"
840
 
841
+ #: admin/class-settings.php:611
842
  msgid "British Virgin Islands"
843
  msgstr "Britse Maagdeneilanden"
844
 
845
+ #: admin/class-settings.php:612
846
  msgid "Brunei"
847
  msgstr "Brunei"
848
 
849
+ #: admin/class-settings.php:613
850
  msgid "Bulgaria"
851
  msgstr "Bulgarije"
852
 
853
+ #: admin/class-settings.php:614
854
  msgid "Burkina Faso"
855
  msgstr "Burkina Faso"
856
 
857
+ #: admin/class-settings.php:615
858
  msgid "Burundi"
859
  msgstr "Burundi"
860
 
861
+ #: admin/class-settings.php:616
862
  msgid "Cambodia"
863
  msgstr "Cambodja"
864
 
865
+ #: admin/class-settings.php:617
866
  msgid "Cameroon"
867
  msgstr "Kameroen"
868
 
869
+ #: admin/class-settings.php:618
870
  msgid "Canada"
871
  msgstr "Canada"
872
 
873
+ #: admin/class-settings.php:619
874
  msgid "Canary Islands"
875
  msgstr "Canarische Eilanden"
876
 
877
+ #: admin/class-settings.php:620
878
  msgid "Cape Verde"
879
  msgstr "Kaapverdië"
880
 
881
+ #: admin/class-settings.php:621
882
  msgid "Caribbean Netherlands"
883
  msgstr "Caribisch Nederland"
884
 
885
+ #: admin/class-settings.php:622
886
  msgid "Cayman Islands"
887
  msgstr "Kaaimaneilanden"
888
 
889
+ #: admin/class-settings.php:623
890
  msgid "Central African Republic"
891
  msgstr "Centraal-Afrikaanse Republiek"
892
 
893
+ #: admin/class-settings.php:624
894
  msgid "Ceuta and Melilla"
895
  msgstr "Ceuta en Melilla"
896
 
897
+ #: admin/class-settings.php:625
898
  msgid "Chad"
899
  msgstr "Chad"
900
 
901
+ #: admin/class-settings.php:626
902
  msgid "Chile"
903
  msgstr "Chili"
904
 
905
+ #: admin/class-settings.php:627
906
  msgid "China"
907
  msgstr "China"
908
 
909
+ #: admin/class-settings.php:628
910
  msgid "Christmas Island"
911
  msgstr "Christmaseiland"
912
 
913
+ #: admin/class-settings.php:629
914
  msgid "Clipperton Island"
915
  msgstr "Clipperton"
916
 
917
+ #: admin/class-settings.php:630
918
  msgid "Cocos (Keeling) Islands"
919
  msgstr "Cocoseilanden"
920
 
921
+ #: admin/class-settings.php:631
922
  msgid "Colombia"
923
  msgstr "Colombia"
924
 
925
+ #: admin/class-settings.php:632
926
  msgid "Comoros"
927
  msgstr "Comoren"
928
 
929
+ #: admin/class-settings.php:633
930
  msgid "Congo (DRC)"
931
  msgstr "Congo (DRC)"
932
 
933
+ #: admin/class-settings.php:634
934
  msgid "Congo (Republic)"
935
  msgstr "Republiek Congo"
936
 
937
+ #: admin/class-settings.php:635
938
  msgid "Cook Islands"
939
  msgstr "Cookeilanden"
940
 
941
+ #: admin/class-settings.php:636
942
  msgid "Costa Rica"
943
  msgstr "Costa Rica"
944
 
945
+ #: admin/class-settings.php:637
946
  msgid "Croatia"
947
  msgstr "Kroatië"
948
 
949
+ #: admin/class-settings.php:638
950
  msgid "Cuba"
951
  msgstr "Cuba"
952
 
953
+ #: admin/class-settings.php:639
954
  msgid "Curaçao"
955
  msgstr "Curaçao"
956
 
957
+ #: admin/class-settings.php:640
958
  msgid "Cyprus"
959
  msgstr "Cyprus"
960
 
961
+ #: admin/class-settings.php:641
962
  msgid "Czech Republic"
963
  msgstr "Tsjechië"
964
 
965
+ #: admin/class-settings.php:642
966
  msgid "Côte d'Ivoire"
967
  msgstr "Ivoorkust"
968
 
969
+ #: admin/class-settings.php:643
970
  msgid "Denmark"
971
  msgstr "Denemarken"
972
 
973
+ #: admin/class-settings.php:644
974
  msgid "Djibouti"
975
  msgstr "Djibouti"
976
 
977
+ #: admin/class-settings.php:645
978
  msgid "Democratic Republic of the Congo"
979
  msgstr "Democratische Republiek Congo"
980
 
981
+ #: admin/class-settings.php:646
982
  msgid "Dominica"
983
  msgstr "Dominica"
984
 
985
+ #: admin/class-settings.php:647
986
  msgid "Dominican Republic"
987
  msgstr "Dominicaanse Republiek"
988
 
989
+ #: admin/class-settings.php:648
990
  msgid "Ecuador"
991
  msgstr "Ecuador"
992
 
993
+ #: admin/class-settings.php:649
994
  msgid "Egypt"
995
  msgstr "Egypte"
996
 
997
+ #: admin/class-settings.php:650
998
  msgid "El Salvador"
999
  msgstr "El Salvador"
1000
 
1001
+ #: admin/class-settings.php:651
1002
  msgid "Equatorial Guinea"
1003
  msgstr "Equatoriaal-Guinea"
1004
 
1005
+ #: admin/class-settings.php:652
1006
  msgid "Eritrea"
1007
  msgstr "Eritrea"
1008
 
1009
+ #: admin/class-settings.php:653
1010
  msgid "Estonia"
1011
  msgstr "Estland"
1012
 
1013
+ #: admin/class-settings.php:654
1014
  msgid "Ethiopia"
1015
  msgstr "Ethiopië"
1016
 
1017
+ #: admin/class-settings.php:655
1018
  msgid "Falkland Islands(Islas Malvinas)"
1019
  msgstr "Falklandeilanden"
1020
 
1021
+ #: admin/class-settings.php:656
1022
  msgid "Faroe Islands"
1023
  msgstr "Faeröer"
1024
 
1025
+ #: admin/class-settings.php:657
1026
  msgid "Fiji"
1027
  msgstr "Fiji"
1028
 
1029
+ #: admin/class-settings.php:658
1030
  msgid "Finland"
1031
  msgstr "Finland"
1032
 
1033
+ #: admin/class-settings.php:659
1034
  msgid "France"
1035
  msgstr "Frankrijk"
1036
 
1037
+ #: admin/class-settings.php:660
1038
  msgid "French Guiana"
1039
  msgstr "Frans Guyana"
1040
 
1041
+ #: admin/class-settings.php:661
1042
  msgid "French Polynesia"
1043
  msgstr "Frans-Polynesië"
1044
 
1045
+ #: admin/class-settings.php:662
1046
  msgid "French Southern Territories"
1047
  msgstr "Franse Zuidelijke en Antarctische Gebieden"
1048
 
1049
+ #: admin/class-settings.php:663
1050
  msgid "Gabon"
1051
  msgstr "Gabon"
1052
 
1053
+ #: admin/class-settings.php:664
1054
  msgid "Gambia"
1055
  msgstr "Gambia"
1056
 
1057
+ #: admin/class-settings.php:665
1058
  msgid "Georgia"
1059
  msgstr "Georgië"
1060
 
1061
+ #: admin/class-settings.php:666
1062
  msgid "Germany"
1063
  msgstr "Duitsland"
1064
 
1065
+ #: admin/class-settings.php:667
1066
  msgid "Ghana"
1067
  msgstr "Ghana"
1068
 
1069
+ #: admin/class-settings.php:668
1070
  msgid "Gibraltar"
1071
  msgstr "Gibraltar"
1072
 
1073
+ #: admin/class-settings.php:669
1074
  msgid "Greece"
1075
  msgstr "Griekenland"
1076
 
1077
+ #: admin/class-settings.php:670
1078
  msgid "Greenland"
1079
  msgstr "Groenland"
1080
 
1081
+ #: admin/class-settings.php:671
1082
  msgid "Grenada"
1083
  msgstr "Grenada"
1084
 
1085
+ #: admin/class-settings.php:672 admin/class-settings.php:674
1086
  msgid "Guam"
1087
  msgstr "Guam"
1088
 
1089
+ #: admin/class-settings.php:673
1090
  msgid "Guadeloupe"
1091
  msgstr "Guadeloupe"
1092
 
1093
+ #: admin/class-settings.php:675
1094
  msgid "Guatemala"
1095
  msgstr "Guatemala"
1096
 
1097
+ #: admin/class-settings.php:676
1098
  msgid "Guernsey"
1099
  msgstr "Guernsey"
1100
 
1101
+ #: admin/class-settings.php:677
1102
  msgid "Guinea"
1103
  msgstr "Guinee"
1104
 
1105
+ #: admin/class-settings.php:678
1106
  msgid "Guinea-Bissau"
1107
  msgstr "Guinee-Bissau"
1108
 
1109
+ #: admin/class-settings.php:679
1110
  msgid "Guyana"
1111
  msgstr "Guyana"
1112
 
1113
+ #: admin/class-settings.php:680
1114
  msgid "Haiti"
1115
  msgstr "Haïti"
1116
 
1117
+ #: admin/class-settings.php:681
1118
  msgid "Heard and McDonald Islands"
1119
  msgstr "Heard en McDonaldeilanden"
1120
 
1121
+ #: admin/class-settings.php:682
1122
  msgid "Honduras"
1123
  msgstr "Honduras"
1124
 
1125
+ #: admin/class-settings.php:683
1126
  msgid "Hong Kong"
1127
  msgstr "Hong Kong"
1128
 
1129
+ #: admin/class-settings.php:684
1130
  msgid "Hungary"
1131
  msgstr "Hongarije"
1132
 
1133
+ #: admin/class-settings.php:685
1134
  msgid "Iceland"
1135
  msgstr "IJsland"
1136
 
1137
+ #: admin/class-settings.php:686
1138
  msgid "India"
1139
  msgstr "India"
1140
 
1141
+ #: admin/class-settings.php:687
1142
  msgid "Indonesia"
1143
  msgstr "Indonesië"
1144
 
1145
+ #: admin/class-settings.php:688
1146
  msgid "Iran"
1147
  msgstr "Iran"
1148
 
1149
+ #: admin/class-settings.php:689
1150
  msgid "Iraq"
1151
  msgstr "Irak"
1152
 
1153
+ #: admin/class-settings.php:690
1154
  msgid "Ireland"
1155
  msgstr "Ierland"
1156
 
1157
+ #: admin/class-settings.php:691
1158
  msgid "Isle of Man"
1159
  msgstr "Man (eiland)"
1160
 
1161
+ #: admin/class-settings.php:692
1162
  msgid "Israel"
1163
  msgstr "Israël"
1164
 
1165
+ #: admin/class-settings.php:693
1166
  msgid "Italy"
1167
  msgstr "Italië"
1168
 
1169
+ #: admin/class-settings.php:694
1170
  msgid "Jamaica"
1171
  msgstr "Jamaica"
1172
 
1173
+ #: admin/class-settings.php:695
1174
  msgid "Japan"
1175
  msgstr "Japan"
1176
 
1177
+ #: admin/class-settings.php:696
1178
  msgid "Jersey"
1179
  msgstr "Jersey"
1180
 
1181
+ #: admin/class-settings.php:697
1182
  msgid "Jordan"
1183
  msgstr "Jordanië"
1184
 
1185
+ #: admin/class-settings.php:698
1186
  msgid "Kazakhstan"
1187
  msgstr "Kazachstan"
1188
 
1189
+ #: admin/class-settings.php:699
1190
  msgid "Kenya"
1191
  msgstr "Kenia"
1192
 
1193
+ #: admin/class-settings.php:700
1194
  msgid "Kiribati"
1195
  msgstr "Kiribati"
1196
 
1197
+ #: admin/class-settings.php:701
1198
  msgid "Kosovo"
1199
  msgstr "Kosovo"
1200
 
1201
+ #: admin/class-settings.php:702
1202
  msgid "Kuwait"
1203
  msgstr "Koeweit"
1204
 
1205
+ #: admin/class-settings.php:703
1206
  msgid "Kyrgyzstan"
1207
  msgstr "Kirgizië"
1208
 
1209
+ #: admin/class-settings.php:704
1210
  msgid "Laos"
1211
  msgstr "Laos"
1212
 
1213
+ #: admin/class-settings.php:705
1214
  msgid "Latvia"
1215
  msgstr "Letland"
1216
 
1217
+ #: admin/class-settings.php:706
1218
  msgid "Lebanon"
1219
  msgstr "Libanon"
1220
 
1221
+ #: admin/class-settings.php:707
1222
  msgid "Lesotho"
1223
  msgstr "Lesotho"
1224
 
1225
+ #: admin/class-settings.php:708
1226
  msgid "Liberia"
1227
  msgstr "Liberia"
1228
 
1229
+ #: admin/class-settings.php:709
1230
  msgid "Libya"
1231
  msgstr "Libië"
1232
 
1233
+ #: admin/class-settings.php:710
1234
  msgid "Liechtenstein"
1235
  msgstr "Liechtenstein"
1236
 
1237
+ #: admin/class-settings.php:711
1238
  msgid "Lithuania"
1239
  msgstr "Litouwen"
1240
 
1241
+ #: admin/class-settings.php:712
1242
  msgid "Luxembourg"
1243
  msgstr "Luxemburg"
1244
 
1245
+ #: admin/class-settings.php:713
1246
  msgid "Macau"
1247
  msgstr "Macau"
1248
 
1249
+ #: admin/class-settings.php:714
1250
  msgid "Macedonia (FYROM)"
1251
  msgstr "Macedonië"
1252
 
1253
+ #: admin/class-settings.php:715
1254
  msgid "Madagascar"
1255
  msgstr "Madagascar"
1256
 
1257
+ #: admin/class-settings.php:716
1258
  msgid "Malawi"
1259
  msgstr "Malawi"
1260
 
1261
+ #: admin/class-settings.php:717
1262
  msgid "Malaysia "
1263
  msgstr "Maleisie"
1264
 
1265
+ #: admin/class-settings.php:718
1266
  msgid "Maldives "
1267
  msgstr "Maldiven"
1268
 
1269
+ #: admin/class-settings.php:719
1270
  msgid "Mali"
1271
  msgstr "Mali"
1272
 
1273
+ #: admin/class-settings.php:720
1274
  msgid "Malta"
1275
  msgstr "Malta"
1276
 
1277
+ #: admin/class-settings.php:721
1278
  msgid "Marshall Islands"
1279
  msgstr "Marshalleilanden"
1280
 
1281
+ #: admin/class-settings.php:722
1282
  msgid "Martinique"
1283
  msgstr "Martinique"
1284
 
1285
+ #: admin/class-settings.php:723
1286
  msgid "Mauritania"
1287
  msgstr "Mauritanië"
1288
 
1289
+ #: admin/class-settings.php:724
1290
  msgid "Mauritius"
1291
  msgstr "Mauritius"
1292
 
1293
+ #: admin/class-settings.php:725
1294
  msgid "Mayotte"
1295
  msgstr "Mayotte"
1296
 
1297
+ #: admin/class-settings.php:726
1298
  msgid "Mexico"
1299
  msgstr "Mexico"
1300
 
1301
+ #: admin/class-settings.php:727
1302
  msgid "Micronesia"
1303
  msgstr "Micronesia"
1304
 
1305
+ #: admin/class-settings.php:728
1306
  msgid "Moldova"
1307
  msgstr "Moldavië"
1308
 
1309
+ #: admin/class-settings.php:729
1310
  msgid "Monaco"
1311
  msgstr "Monaco"
1312
 
1313
+ #: admin/class-settings.php:730
1314
  msgid "Mongolia"
1315
  msgstr "Mongolië"
1316
 
1317
+ #: admin/class-settings.php:731
1318
  msgid "Montenegro"
1319
  msgstr "Montenegro"
1320
 
1321
+ #: admin/class-settings.php:732
1322
  msgid "Montserrat"
1323
  msgstr "Montserrat "
1324
 
1325
+ #: admin/class-settings.php:733
1326
  msgid "Morocco"
1327
  msgstr "Marokko"
1328
 
1329
+ #: admin/class-settings.php:734
1330
  msgid "Mozambique"
1331
  msgstr "Mozambique"
1332
 
1333
+ #: admin/class-settings.php:735
1334
  msgid "Myanmar (Burma)"
1335
  msgstr "Myanmar (Birma)"
1336
 
1337
+ #: admin/class-settings.php:736
1338
  msgid "Namibia"
1339
  msgstr "Namibië"
1340
 
1341
+ #: admin/class-settings.php:737
1342
  msgid "Nauru"
1343
  msgstr "Nauru"
1344
 
1345
+ #: admin/class-settings.php:738
1346
  msgid "Nepal"
1347
  msgstr "Nepal"
1348
 
1349
+ #: admin/class-settings.php:739
1350
  msgid "Netherlands"
1351
  msgstr "Nederland"
1352
 
1353
+ #: admin/class-settings.php:740
1354
  msgid "Netherlands Antilles"
1355
  msgstr "Nederlandse Antillen"
1356
 
1357
+ #: admin/class-settings.php:741
1358
  msgid "New Caledonia"
1359
  msgstr "Nieuw-Caledonië"
1360
 
1361
+ #: admin/class-settings.php:742
1362
  msgid "New Zealand"
1363
  msgstr "Nieuw Zeeland"
1364
 
1365
+ #: admin/class-settings.php:743
1366
  msgid "Nicaragua"
1367
  msgstr "Nicaragua"
1368
 
1369
+ #: admin/class-settings.php:744
1370
  msgid "Niger"
1371
  msgstr "Niger"
1372
 
1373
+ #: admin/class-settings.php:745
1374
  msgid "Nigeria"
1375
  msgstr "Nigeria"
1376
 
1377
+ #: admin/class-settings.php:746
1378
  msgid "Niue"
1379
  msgstr "Niue"
1380
 
1381
+ #: admin/class-settings.php:747
1382
  msgid "Norfolk Island"
1383
  msgstr "Norfolk (eiland)"
1384
 
1385
+ #: admin/class-settings.php:748
1386
  msgid "North Korea"
1387
  msgstr "Noord-Korea"
1388
 
1389
+ #: admin/class-settings.php:749
1390
  msgid "Northern Mariana Islands"
1391
  msgstr "Noordelijke Marianen"
1392
 
1393
+ #: admin/class-settings.php:750
1394
  msgid "Norway"
1395
  msgstr "Noorwegen"
1396
 
1397
+ #: admin/class-settings.php:751
1398
  msgid "Oman"
1399
  msgstr "Oman"
1400
 
1401
+ #: admin/class-settings.php:752
1402
  msgid "Pakistan"
1403
  msgstr "Pakistan"
1404
 
1405
+ #: admin/class-settings.php:753
1406
  msgid "Palau"
1407
  msgstr "Palau"
1408
 
1409
+ #: admin/class-settings.php:754
1410
  msgid "Palestine"
1411
  msgstr "Palestine"
1412
 
1413
+ #: admin/class-settings.php:755
1414
  msgid "Panama"
1415
  msgstr "Panama"
1416
 
1417
+ #: admin/class-settings.php:756
1418
  msgid "Papua New Guinea"
1419
  msgstr "Papoea-Nieuw-Guinea"
1420
 
1421
+ #: admin/class-settings.php:757
1422
  msgid "Paraguay"
1423
  msgstr "Paraguay"
1424
 
1425
+ #: admin/class-settings.php:758
1426
  msgid "Peru"
1427
  msgstr "Peru"
1428
 
1429
+ #: admin/class-settings.php:759
1430
  msgid "Philippines"
1431
  msgstr "Filipijnen"
1432
 
1433
+ #: admin/class-settings.php:760
1434
  msgid "Pitcairn Islands"
1435
  msgstr "Pitcairneilanden"
1436
 
1437
+ #: admin/class-settings.php:761
1438
  msgid "Poland"
1439
  msgstr "Polen"
1440
 
1441
+ #: admin/class-settings.php:762
1442
  msgid "Portugal"
1443
  msgstr "Portugal"
1444
 
1445
+ #: admin/class-settings.php:763
1446
  msgid "Puerto Rico"
1447
  msgstr "Puerto Rico"
1448
 
1449
+ #: admin/class-settings.php:764
1450
  msgid "Qatar"
1451
  msgstr "Qatar"
1452
 
1453
+ #: admin/class-settings.php:765
1454
  msgid "Reunion"
1455
  msgstr "Réunion"
1456
 
1457
+ #: admin/class-settings.php:766
1458
  msgid "Romania"
1459
  msgstr "Roemenië"
1460
 
1461
+ #: admin/class-settings.php:767
1462
  msgid "Russia"
1463
  msgstr "Rusland"
1464
 
1465
+ #: admin/class-settings.php:768
1466
  msgid "Rwanda"
1467
  msgstr "Rwanda"
1468
 
1469
+ #: admin/class-settings.php:769
1470
  msgid "Saint Helena"
1471
  msgstr "Sint-Helena"
1472
 
1473
+ #: admin/class-settings.php:770
1474
  msgid "Saint Kitts and Nevis"
1475
  msgstr "Saint Kitts en Nevis"
1476
 
1477
+ #: admin/class-settings.php:771
1478
  msgid "Saint Vincent and the Grenadines"
1479
  msgstr "Saint Vincent en de Grenadines"
1480
 
1481
+ #: admin/class-settings.php:772
1482
  msgid "Saint Lucia"
1483
  msgstr "Saint Lucia"
1484
 
1485
+ #: admin/class-settings.php:773
1486
  msgid "Samoa"
1487
  msgstr "Samoa"
1488
 
1489
+ #: admin/class-settings.php:774
1490
  msgid "San Marino"
1491
  msgstr "San Marino"
1492
 
1493
+ #: admin/class-settings.php:775
1494
  msgid "São Tomé and Príncipe"
1495
  msgstr "Sao Tomé en Principe"
1496
 
1497
+ #: admin/class-settings.php:776
1498
  msgid "Saudi Arabia"
1499
  msgstr "Saoedi-Arabië"
1500
 
1501
+ #: admin/class-settings.php:777
1502
  msgid "Senegal"
1503
  msgstr "Senegal"
1504
 
1505
+ #: admin/class-settings.php:778
1506
  msgid "Serbia"
1507
  msgstr "Servië"
1508
 
1509
+ #: admin/class-settings.php:779
1510
  msgid "Seychelles"
1511
  msgstr "Seychellen"
1512
 
1513
+ #: admin/class-settings.php:780
1514
  msgid "Sierra Leone"
1515
  msgstr "Sierra Leone"
1516
 
1517
+ #: admin/class-settings.php:781
1518
  msgid "Singapore"
1519
  msgstr "Singapore"
1520
 
1521
+ #: admin/class-settings.php:782
1522
  msgid "Sint Maarten"
1523
  msgstr "Sint Maarten"
1524
 
1525
+ #: admin/class-settings.php:783
1526
  msgid "Slovakia"
1527
  msgstr "Slowakije"
1528
 
1529
+ #: admin/class-settings.php:784
1530
  msgid "Slovenia"
1531
  msgstr "Slovenië"
1532
 
1533
+ #: admin/class-settings.php:785
1534
  msgid "Solomon Islands"
1535
  msgstr "Salomonseilanden"
1536
 
1537
+ #: admin/class-settings.php:786
1538
  msgid "Somalia"
1539
  msgstr "Somalie"
1540
 
1541
+ #: admin/class-settings.php:787
1542
  msgid "South Africa"
1543
  msgstr "Zuid Afrika"
1544
 
1545
+ #: admin/class-settings.php:788
1546
  msgid "South Georgia and South Sandwich Islands"
1547
  msgstr "Zuid-Georgia en de Zuidelijke Sandwicheilanden"
1548
 
1549
+ #: admin/class-settings.php:789
1550
  msgid "South Korea"
1551
  msgstr "Zuid Korea"
1552
 
1553
+ #: admin/class-settings.php:790
1554
  msgid "South Sudan"
1555
  msgstr "Zuid Sudan"
1556
 
1557
+ #: admin/class-settings.php:791
1558
  msgid "Spain"
1559
  msgstr "Spanje"
1560
 
1561
+ #: admin/class-settings.php:792
1562
  msgid "Sri Lanka"
1563
  msgstr "Sri Lanka"
1564
 
1565
+ #: admin/class-settings.php:793
1566
  msgid "Sudan"
1567
  msgstr "Sudan"
1568
 
1569
+ #: admin/class-settings.php:794
1570
  msgid "Swaziland"
1571
  msgstr "Swaziland "
1572
 
1573
+ #: admin/class-settings.php:795
1574
  msgid "Sweden"
1575
  msgstr "Zweden"
1576
 
1577
+ #: admin/class-settings.php:796
1578
  msgid "Switzerland"
1579
  msgstr "Zwitserland"
1580
 
1581
+ #: admin/class-settings.php:797
1582
  msgid "Syria"
1583
  msgstr "Syrië"
1584
 
1585
+ #: admin/class-settings.php:798
1586
  msgid "São Tomé & Príncipe"
1587
  msgstr "São Tomé & Príncipe"
1588
 
1589
+ #: admin/class-settings.php:799
1590
  msgid "Taiwan"
1591
  msgstr "Taiwan"
1592
 
1593
+ #: admin/class-settings.php:800
1594
  msgid "Tajikistan"
1595
  msgstr "Tajikistan"
1596
 
1597
+ #: admin/class-settings.php:801
1598
  msgid "Tanzania"
1599
  msgstr "Tanzania"
1600
 
1601
+ #: admin/class-settings.php:802
1602
  msgid "Thailand"
1603
  msgstr "Thailand"
1604
 
1605
+ #: admin/class-settings.php:803
1606
  msgid "Timor-Leste"
1607
  msgstr "Oost-Timor"
1608
 
1609
+ #: admin/class-settings.php:804 admin/class-settings.php:806
1610
  msgid "Tokelau"
1611
  msgstr "Tokelau"
1612
 
1613
+ #: admin/class-settings.php:805
1614
  msgid "Togo"
1615
  msgstr "Togo"
1616
 
1617
+ #: admin/class-settings.php:807
1618
  msgid "Tonga"
1619
  msgstr "Tonga"
1620
 
1621
+ #: admin/class-settings.php:808
1622
  msgid "Trinidad and Tobago"
1623
  msgstr "Trinidad en Tobago"
1624
 
1625
+ #: admin/class-settings.php:809
1626
  msgid "Tristan da Cunha"
1627
  msgstr "Tristan da Cunha"
1628
 
1629
+ #: admin/class-settings.php:810
1630
  msgid "Tunisia"
1631
  msgstr "Tunesië"
1632
 
1633
+ #: admin/class-settings.php:811
1634
  msgid "Turkey"
1635
  msgstr "Turkije"
1636
 
1637
+ #: admin/class-settings.php:812
1638
  msgid "Turkmenistan"
1639
  msgstr "Turkmenistan"
1640
 
1641
+ #: admin/class-settings.php:813
1642
  msgid "Turks and Caicos Islands"
1643
  msgstr "Turks- en Caicos eilanden"
1644
 
1645
+ #: admin/class-settings.php:814
1646
  msgid "Tuvalu"
1647
  msgstr "Tuvalu"
1648
 
1649
+ #: admin/class-settings.php:815
1650
  msgid "Uganda"
1651
  msgstr "Uganda"
1652
 
1653
+ #: admin/class-settings.php:816
1654
  msgid "Ukraine"
1655
  msgstr "Oekraïne"
1656
 
1657
+ #: admin/class-settings.php:817
1658
  msgid "United Arab Emirates"
1659
  msgstr "Verenigde Arabische Emiraten"
1660
 
1661
+ #: admin/class-settings.php:818
1662
  msgid "United Kingdom"
1663
  msgstr "Verenigd Koninkrijk"
1664
 
1665
+ #: admin/class-settings.php:819
1666
  msgid "United States"
1667
  msgstr "Verenigde Staten"
1668
 
1669
+ #: admin/class-settings.php:820
1670
  msgid "Uruguay"
1671
  msgstr "Uruguay"
1672
 
1673
+ #: admin/class-settings.php:821
1674
  msgid "Uzbekistan"
1675
  msgstr "Uzbekistan"
1676
 
1677
+ #: admin/class-settings.php:822
1678
  msgid "Vanuatu"
1679
  msgstr "Vanuatu"
1680
 
1681
+ #: admin/class-settings.php:823
1682
  msgid "Vatican City"
1683
  msgstr "Vaticaanstad"
1684
 
1685
+ #: admin/class-settings.php:824
1686
  msgid "Venezuela"
1687
  msgstr "Venezuela"
1688
 
1689
+ #: admin/class-settings.php:825
1690
  msgid "Vietnam"
1691
  msgstr "Vietnam"
1692
 
1693
+ #: admin/class-settings.php:826
1694
  msgid "Wallis Futuna"
1695
  msgstr "Wallis en Futuna"
1696
 
1697
+ #: admin/class-settings.php:827
1698
  msgid "Western Sahara"
1699
  msgstr "Westelijke Sahara"
1700
 
1701
+ #: admin/class-settings.php:828
1702
  msgid "Yemen"
1703
  msgstr "Yemen"
1704
 
1705
+ #: admin/class-settings.php:829
1706
  msgid "Zambia"
1707
  msgstr "Zambia"
1708
 
1709
+ #: admin/class-settings.php:830
1710
  msgid "Zimbabwe"
1711
  msgstr "Zimbabwe"
1712
 
1713
+ #: admin/class-settings.php:831
1714
  msgid "Åland Islands"
1715
  msgstr "Åland Eiland"
1716
 
1717
+ #: admin/class-settings.php:874
1718
  msgid "World view"
1719
  msgstr "Wereldkaart"
1720
 
1721
+ #: admin/class-settings.php:877 admin/class-settings.php:991
1722
+ #: inc/wpsl-functions.php:224
1723
  msgid "Default"
1724
  msgstr "Standaard"
1725
 
1726
+ #: admin/class-settings.php:880 inc/wpsl-functions.php:297
1727
  msgid "Roadmap"
1728
  msgstr "Wegenkaart"
1729
 
1730
+ #: admin/class-settings.php:1021
1731
  msgid "Start location marker"
1732
  msgstr "Start locatie marker"
1733
 
1734
+ #: admin/class-settings.php:1023
1735
  msgid "Store location marker"
1736
  msgstr "Winkel locatie marker"
1737
 
1738
+ #: admin/class-settings.php:1103
1739
  msgid "Textarea"
1740
  msgstr "Tekstvlak"
1741
 
1742
+ #: admin/class-settings.php:1104
1743
  msgid "Dropdowns (recommended)"
1744
  msgstr "Dropdown (aangeraden)"
1745
 
1746
+ #: admin/class-settings.php:1112
1747
  msgid "Bounces up and down"
1748
  msgstr "Beweegt op en neer"
1749
 
1750
+ #: admin/class-settings.php:1113
1751
  msgid "Will open the info window"
1752
  msgstr "Opent de info window"
1753
 
1754
+ #: admin/class-settings.php:1114
1755
  msgid "Does not respond"
1756
  msgstr "Reageert niet"
1757
 
1758
+ #: admin/class-settings.php:1122
1759
  msgid "In the store listings"
1760
  msgstr "In de locatie lijst"
1761
 
1762
+ #: admin/class-settings.php:1123
1763
  msgid "In the info window on the map"
1764
  msgstr "In de info window op de kaart"
1765
 
1766
+ #: admin/class-settings.php:1155 admin/class-shortcode-generator.php:263
1767
  msgid "Dropdown"
1768
  msgstr "Dropdown"
1769
 
1770
+ #: admin/class-settings.php:1156 admin/class-shortcode-generator.php:264
1771
  msgid "Checkboxes"
1772
  msgstr "Checkboxes"
1773
 
1774
+ #: admin/class-settings.php:1188
1775
  msgid "12 Hours"
1776
  msgstr "12 uur"
1777
 
1778
+ #: admin/class-settings.php:1189
1779
  msgid "24 Hours"
1780
  msgstr "24 uur"
1781
 
1796
  msgid "General Options"
1797
  msgstr "Algemene instellingen"
1798
 
1799
+ #: admin/class-shortcode-generator.php:234 admin/templates/map-settings.php:388
1800
  msgid "Markers"
1801
  msgstr "Markers"
1802
 
1804
  msgid "Select the used template"
1805
  msgstr "Selecteer de gebruikte template"
1806
 
1807
+ #: admin/class-shortcode-generator.php:244 admin/templates/map-settings.php:215
1808
  msgid "Start point"
1809
  msgstr "Start locatie"
1810
 
1816
  "Als er niks is opgegeven, dan zal de start locatie van de %sinstellingen%s "
1817
  "pagina gebruikt worden."
1818
 
1819
+ #: admin/class-shortcode-generator.php:249 admin/templates/map-settings.php:201
1820
  msgid "Attempt to auto-locate the user"
1821
  msgstr "Probeer de locatie van de gebruiker automatische te achterhalen"
1822
 
1823
+ #: admin/class-shortcode-generator.php:249 admin/templates/map-settings.php:201
1824
  #, php-format
1825
  msgid ""
1826
  "Most modern browsers %srequire%s a HTTPS connection before the Geolocation "
1857
  msgid "Set selected checkboxes"
1858
  msgstr "Kies de geslecteerde checkboxes"
1859
 
1860
+ #: admin/class-shortcode-generator.php:341 admin/templates/map-settings.php:253
1861
  msgid "Map type"
1862
  msgstr "Kaart soort"
1863
 
1906
  msgstr "Deactiveer licensie"
1907
 
1908
  #: admin/templates/map-settings.php:85 admin/templates/map-settings.php:124
1909
+ #: admin/templates/map-settings.php:188 admin/templates/map-settings.php:271
1910
+ #: admin/templates/map-settings.php:378 admin/templates/map-settings.php:406
1911
+ #: admin/templates/map-settings.php:456 admin/templates/map-settings.php:488
1912
+ #: admin/templates/map-settings.php:600 admin/templates/map-settings.php:625
1913
  msgid "Save Changes"
1914
  msgstr "Wijzigingen opslaan"
1915
 
1990
  "Om dit uit te sluiten kan je een restrictie plaatsen om dit te voorkomen. "
1991
  "%s Je kan de gebruikte restricties aanpassen met %sdeze%s filter."
1992
 
1993
+ #: admin/templates/map-settings.php:134 admin/templates/map-settings.php:524
1994
+ #: admin/templates/map-settings.php:525 frontend/templates/default.php:44
1995
+ #: frontend/templates/store-listings-below.php:44 inc/wpsl-functions.php:141
1996
  msgid "Search"
1997
  msgstr "Zoek"
1998
 
2000
  msgid "Enable autocomplete?"
2001
  msgstr "Activeer autocomplete?"
2002
 
2003
+ #: admin/templates/map-settings.php:142
2004
+ msgid "Force zipcode only search"
2005
+ msgstr "Zoek alleen op postcodes"
2006
+
2007
+ #: admin/templates/map-settings.php:144
2008
+ #, php-format
2009
+ msgid ""
2010
+ "For this option to work correctly you need to set a map region and restrict "
2011
+ "the results to the selected region. %s You can do this in the %sGoogle Maps "
2012
+ "API section%s."
2013
+ msgstr ""
2014
+ "Deze optie werkt alleen maar correct als er een map region geselecteerd is "
2015
+ "en de 'Limiteer de geocode resultaten tot de geselecteerde map regio?' optie "
2016
+ "ook geactiveerd is. %s Dit kan je doen in het %sGoogle Maps API%s gedeelte."
2017
+
2018
+ #: admin/templates/map-settings.php:148
2019
+ #, php-format
2020
+ msgid ""
2021
+ "Zipcode only search does unfortunately not work well in combination with the "
2022
+ "autocomplete option. %s It's recommended to not have both options active at "
2023
+ "the same time."
2024
+ msgstr ""
2025
+ "De optie om alleen op een postcode te zoeken werkt helaas niet goed in "
2026
+ "combinatie met de autocomplete optie. %s Het is daarom beter om niet beide "
2027
+ "opties tegelijk actief te hebben."
2028
+
2029
+ #: admin/templates/map-settings.php:153
2030
  msgid "Show the max results dropdown?"
2031
  msgstr "Toon de max resultaten dropdown?"
2032
 
2033
+ #: admin/templates/map-settings.php:157
2034
  msgid "Show the search radius dropdown?"
2035
  msgstr "Toon de zoek radius dropdown?"
2036
 
2037
+ #: admin/templates/map-settings.php:161
2038
  msgid "Enable category filters?"
2039
  msgstr "Activeer de categorie filters?"
2040
 
2041
+ #: admin/templates/map-settings.php:166
2042
  msgid "Filter type:"
2043
  msgstr "Filter type:"
2044
 
2045
+ #: admin/templates/map-settings.php:171
2046
  msgid "Distance unit"
2047
  msgstr "Afstands eenheid"
2048
 
2049
+ #: admin/templates/map-settings.php:174
2050
  msgid "km"
2051
  msgstr "km"
2052
 
2053
+ #: admin/templates/map-settings.php:176
2054
  msgid "mi"
2055
  msgstr "mi"
2056
 
2057
+ #: admin/templates/map-settings.php:180
2058
  msgid "Max search results"
2059
  msgstr "Max zoek resultaten"
2060
 
2061
+ #: admin/templates/map-settings.php:180 admin/templates/map-settings.php:184
2062
  msgid "The default value is set between the [ ]."
2063
  msgstr "* De standaard waarde staat tussen de []."
2064
 
2065
+ #: admin/templates/map-settings.php:184
2066
  msgid "Search radius options"
2067
  msgstr "Zoek radius opties"
2068
 
2069
+ #: admin/templates/map-settings.php:198
2070
  msgid "Map"
2071
  msgstr "Kaart"
2072
 
2073
+ #: admin/templates/map-settings.php:205
2074
  msgid "Load locations on page load"
2075
  msgstr "Toon alle locaties op de kaart zodra de pagina geladen is"
2076
 
2077
+ #: admin/templates/map-settings.php:210
2078
  msgid "Number of locations to show"
2079
  msgstr "Aantal getoonde locaties"
2080
 
2081
+ #: admin/templates/map-settings.php:210
2082
  #, php-format
2083
  msgid ""
2084
  "Although the location data is cached after the first load, a lower number "
2091
  "Als het veld leeg blijft of er wordt 0 ingevuld, dan worden alle locaties "
2092
  "geladen."
2093
 
2094
+ #: admin/templates/map-settings.php:215
2095
  #, php-format
2096
  msgid ""
2097
  "%sRequired field.%s %s If auto-locating the user is disabled or fails, the "
2102
  "locatie is uitgeschakeld of mislukt, dan wordt het middelpunt van de "
2103
  "opgegeven locatie als begin punt gebruikt."
2104
 
2105
+ #: admin/templates/map-settings.php:220
2106
  msgid "Auto adjust the zoom level to make sure all markers are visible?"
2107
  msgstr ""
2108
  "Zoom de kaart automatische in om te zorgen dat alle markers zichtbaar zijn?"
2109
 
2110
+ #: admin/templates/map-settings.php:220
2111
  msgid ""
2112
  "This runs after a search is made, and makes sure all the returned locations "
2113
  "are visible in the viewport."
2115
  "Dit wordt uitgevoerd nadat een zoekopdracht is gemaakt, en zorgt ervoor dat "
2116
  "alle geretourneerde locaties zichtbaar zijn in de viewport."
2117
 
2118
+ #: admin/templates/map-settings.php:224
2119
  msgid "Initial zoom level"
2120
  msgstr "Start zoom niveau"
2121
 
2122
+ #: admin/templates/map-settings.php:228
2123
  msgid "Max auto zoom level"
2124
  msgstr "Max zoom niveau"
2125
 
2126
+ #: admin/templates/map-settings.php:228
2127
  #, php-format
2128
  msgid ""
2129
  "This value sets the zoom level for the \"Zoom here\" link in the info "
2135
  "limiteren als de viewport van de kaart verandert, wanneer geprobeerd wordt "
2136
  "om alle markers op het scherm te laten passen."
2137
 
2138
+ #: admin/templates/map-settings.php:232
2139
  msgid "Show the street view controls?"
2140
  msgstr "Toon de street view controls?"
2141
 
2142
+ #: admin/templates/map-settings.php:236
2143
  msgid "Show the map type control?"
2144
  msgstr "Toon de kaart type controls?"
2145
 
2146
+ #: admin/templates/map-settings.php:240
2147
  msgid "Enable scroll wheel zooming?"
2148
  msgstr "Activeer het inzoomen met je scrollwheel?"
2149
 
2150
+ #: admin/templates/map-settings.php:244
2151
  msgid "Zoom control position"
2152
  msgstr "Zoom bediening positie"
2153
 
2154
+ #: admin/templates/map-settings.php:247
2155
  msgid "Left"
2156
  msgstr "Links"
2157
 
2158
+ #: admin/templates/map-settings.php:249
2159
  msgid "Right"
2160
  msgstr "Rechts"
2161
 
2162
+ #: admin/templates/map-settings.php:257
2163
  msgid "Map style"
2164
  msgstr "Kaart stijl"
2165
 
2166
+ #: admin/templates/map-settings.php:257
2167
  msgid ""
2168
  "Custom map styles only work if the map type is set to \"Roadmap\" or "
2169
  "\"Terrain\"."
2171
  "Custom map stijlen werken alleen maar als de kaart soort op \"Wegenkaart\" "
2172
  "of \"Terrein\" is gezet."
2173
 
2174
+ #: admin/templates/map-settings.php:260
2175
  #, php-format
2176
  msgid ""
2177
  "You can use existing map styles from %sSnazzy Maps%s or %sMap Stylr%s and "
2182
  "en in het onderstaande tekstvlak plaatsen. Of je kunt de map stijl genereren "
2183
  "via de %sMap Style Editor%s of de %sStyled Maps Wizard%s."
2184
 
2185
+ #: admin/templates/map-settings.php:261
2186
  #, php-format
2187
  msgid ""
2188
  "If you like to write the style code yourself, then you can find the "
2191
  "Als je zelf de stijl code wil schrijven dan kun je de documentatie %shier%s "
2192
  "vinden."
2193
 
2194
+ #: admin/templates/map-settings.php:263
2195
  msgid "Preview Map Style"
2196
  msgstr "Map stijl voorbeeld"
2197
 
2198
+ #: admin/templates/map-settings.php:267
2199
  msgid "Show credits?"
2200
  msgstr "Toon credits?"
2201
 
2202
+ #: admin/templates/map-settings.php:267
2203
  msgid ""
2204
  "This will place a \"Search provided by WP Store Locator\" backlink below the "
2205
  "map."
2206
  msgstr ""
2207
  "Dit plaatst een \"Ondersteund door WP Store Locator\" link onder de kaart."
2208
 
2209
+ #: admin/templates/map-settings.php:281
2210
  msgid "User Experience"
2211
  msgstr "Gebruikers ervaring"
2212
 
2213
+ #: admin/templates/map-settings.php:284
2214
  msgid "Store Locator height"
2215
  msgstr "Store Locator hoogte"
2216
 
2217
+ #: admin/templates/map-settings.php:288
2218
  msgid "Max width for the info window content"
2219
  msgstr "Max breedte voor de info window inhoud"
2220
 
2221
+ #: admin/templates/map-settings.php:292
2222
  msgid "Search field width"
2223
  msgstr "Zoekveld breedte"
2224
 
2225
+ #: admin/templates/map-settings.php:296
2226
  msgid "Search and radius label width"
2227
  msgstr "Zoek en radius label breedte"
2228
 
2229
+ #: admin/templates/map-settings.php:300
2230
  msgid "Store Locator template"
2231
  msgstr "Store locator template"
2232
 
2233
+ #: admin/templates/map-settings.php:300
2234
  #, php-format
2235
  msgid ""
2236
  "The selected template is used with the [wpsl] shortcode. %s You can add a "
2239
  "De geselecteerde template wordt gebruikt bij de [wpsl] shortcode. %s Je kunt "
2240
  "een custom template gebruiken met behulp van de %swpsl_templates%s filter."
2241
 
2242
+ #: admin/templates/map-settings.php:304
2243
  msgid "Hide the scrollbar?"
2244
  msgstr "Verberg de scrollbar?"
2245
 
2246
+ #: admin/templates/map-settings.php:308
2247
  msgid "Open links in a new window?"
2248
  msgstr "Open links in een nieuw venster?"
2249
 
2250
+ #: admin/templates/map-settings.php:312
2251
  msgid "Show a reset map button?"
2252
  msgstr "Toon een knop om de kaart te resetten?"
2253
 
2254
+ #: admin/templates/map-settings.php:316
2255
  msgid ""
2256
  "When a user clicks on \"Directions\", open a new window, and show the route "
2257
  "on google.com/maps ?"
2259
  "Zodra een gebruiker op \"Route\" klikt, open een nieuwe venster en toon de "
2260
  "route op google.com/maps?"
2261
 
2262
+ #: admin/templates/map-settings.php:320
2263
  msgid "Show a \"More info\" link in the store listings?"
2264
  msgstr "Toon een \"Meer info\" link in de locatie lijst?"
2265
 
2266
+ #: admin/templates/map-settings.php:320
2267
  msgid ""
2268
  "This places a \"More Info\" link below the address and will show the phone, "
2269
  "fax, email, opening hours and description once the link is clicked."
2272
  "klikt dan wordt het telefoon / fax nummer, email, openings tijden en "
2273
  "omschrijving getoond."
2274
 
2275
+ #: admin/templates/map-settings.php:325
2276
  msgid "Where do you want to show the \"More info\" details?"
2277
  msgstr "Waar wil je de \"Meer info\" details tonen?"
2278
 
2279
+ #: admin/templates/map-settings.php:330
2280
  msgid ""
2281
  "Always show the contact details below the address in the search results?"
2282
  msgstr "Toon altijd de contact gegevens onder het adres in de zoek resultaten?"
2283
 
2284
+ #: admin/templates/map-settings.php:334
2285
  msgid "Make the contact details always clickable?"
2286
  msgstr "Maak de contact gevens klikbaar?"
2287
 
2288
+ #: admin/templates/map-settings.php:338
2289
  msgid "Make the store name clickable if a store URL exists?"
2290
  msgstr "Als een winkel url bestaat, maak de winkel naam dan klikbaar?"
2291
 
2292
+ #: admin/templates/map-settings.php:338
2293
  #, php-format
2294
  msgid ""
2295
  "If %spermalinks%s are enabled, the store name will always link to the store "
2298
  "Als de %spermalinks%s zijn ingeschakeld dan zal de winkel naam altijd linken "
2299
  "naar de winkel pagina."
2300
 
2301
+ #: admin/templates/map-settings.php:342
2302
  msgid "Make the phone number clickable on mobile devices?"
2303
  msgstr "Maak het telefoonnummer klikbaar op mobiele apparaten?"
2304
 
2305
+ #: admin/templates/map-settings.php:346
2306
  msgid ""
2307
  "If street view is available for the current location, then show a \"Street "
2308
  "view\" link in the info window?"
2310
  "Als voor de huidge locatie street view beschikbaar is, toon dan een \"Street "
2311
  "view\" link om vanuit de info window?"
2312
 
2313
+ #: admin/templates/map-settings.php:346
2314
  #, php-format
2315
  msgid ""
2316
  "Enabling this option can sometimes result in a small delay in the opening of "
2322
  "er een verzoek naar de Google Maps API word gemaakt om te controleren ofdat "
2323
  "street view wel beschikbaar is voor de huidige locatie."
2324
 
2325
+ #: admin/templates/map-settings.php:350
2326
  msgid "Show a \"Zoom here\" link in the info window?"
2327
  msgstr "Toon een \"zoom hier\" link in de info window?"
2328
 
2329
+ #: admin/templates/map-settings.php:350
2330
  #, php-format
2331
  msgid ""
2332
  "Clicking this link will make the map zoom in to the %s max auto zoom level "
2335
  "Als er op deze link geklikt word dan zoomt de kaart in totdat de %s max auto "
2336
  "zoom level %s bereikt is."
2337
 
2338
+ #: admin/templates/map-settings.php:354
2339
  msgid "On page load move the mouse cursor to the search field?"
2340
  msgstr ""
2341
  "Als de pagina wordt geladen, verplaats de muiscursor dan naar het invulveld?"
2342
 
2343
+ #: admin/templates/map-settings.php:354
2344
  #, php-format
2345
  msgid ""
2346
  "If the store locator is not placed at the top of the page, enabling this "
2351
  "instelling ervoor zorgen dat de pagina naar benenden schuift tijden het "
2352
  "laden. %s %sDeze optie staat uit op mobiele apparaten.%s"
2353
 
2354
+ #: admin/templates/map-settings.php:358
2355
  msgid "Use the default style for the info window?"
2356
  msgstr "Gebruik de standaard style voor de info window?"
2357
 
2358
+ #: admin/templates/map-settings.php:358
2359
  #, php-format
2360
  msgid ""
2361
  "If the default style is disabled the %sInfoBox%s library will be used "
2366
  "gebruikt. %s Dit script maakt het mogelijk om makkelijk het ontwerp te "
2367
  "wijzigen met behulp van de .wpsl-infobox css class."
2368
 
2369
+ #: admin/templates/map-settings.php:362
2370
  msgid "Hide the country in the search results?"
2371
  msgstr "Verberg het land in de zoekresultaten?"
2372
 
2373
+ #: admin/templates/map-settings.php:366
2374
  msgid "Hide the distance in the search results?"
2375
  msgstr "Verberg de afstand in de zoek resultaten?"
2376
 
2377
+ #: admin/templates/map-settings.php:370
2378
  msgid "If a user hovers over the search results the store marker"
2379
  msgstr ""
2380
  "Als een gebruiker over de zoekresultaten beweegt met zijn muis de "
2381
  "bijbehorende marker"
2382
 
2383
+ #: admin/templates/map-settings.php:370
2384
  #, php-format
2385
  msgid ""
2386
  "If marker clusters are enabled this option will not work as expected as long "
2395
  "de marker cluster wordt omgezet naar losse markers. %s De info window wordt "
2396
  "wel geopend, maar het is niet duidelijk bij welke marker het hoort."
2397
 
2398
+ #: admin/templates/map-settings.php:374
2399
  msgid "Address format"
2400
  msgstr "Adres formaat"
2401
 
2402
+ #: admin/templates/map-settings.php:374
2403
  #, php-format
2404
  msgid ""
2405
  "You can add custom address formats with the %swpsl_address_formats%s filter."
2407
  "Je kunt een nieuwe adres formaat toevoegen met de %swpsl_address_formats%s "
2408
  "filter."
2409
 
2410
+ #: admin/templates/map-settings.php:392
2411
  msgid "Enable marker clusters?"
2412
  msgstr "Activeer marker clusters?"
2413
 
2414
+ #: admin/templates/map-settings.php:392
2415
  msgid "Recommended for maps with a large amount of markers."
2416
  msgstr "Aan te raden voor kaarten met grote hoeveelheden markers."
2417
 
2418
+ #: admin/templates/map-settings.php:397
2419
  msgid "Max zoom level"
2420
  msgstr "Max zoom niveau"
2421
 
2422
+ #: admin/templates/map-settings.php:397
2423
  msgid ""
2424
  "If this zoom level is reached or exceeded, then all markers are moved out of "
2425
  "the marker cluster and shown as individual markers."
2427
  "Als dit zoom niveau bereikt is of gepasseerd, dan worden alle markers uit de "
2428
  "marker cluster gehaald en als losse markers getoond."
2429
 
2430
+ #: admin/templates/map-settings.php:401
2431
  msgid "Cluster size"
2432
  msgstr "Cluster grote"
2433
 
2434
+ #: admin/templates/map-settings.php:401
2435
  #, php-format
2436
  msgid ""
2437
  "The grid size of a cluster in pixels. %s A larger number will result in a "
2441
  "voor dat er minder clusters zichtbaar zijn en het algoritme dus ook sneller "
2442
  "klaar is."
2443
 
2444
+ #: admin/templates/map-settings.php:416
2445
  msgid "Store Editor"
2446
  msgstr "Winkel editor"
2447
 
2448
+ #: admin/templates/map-settings.php:419
2449
  msgid "Default country"
2450
  msgstr "Standaard land"
2451
 
2452
+ #: admin/templates/map-settings.php:423
2453
  msgid "Map type for the location preview"
2454
  msgstr "Kaart type voor het lokatie voorbeeld"
2455
 
2456
+ #: admin/templates/map-settings.php:427
2457
  msgid "Hide the opening hours?"
2458
  msgstr "Verberg de openingstijden?"
2459
 
2460
+ #: admin/templates/map-settings.php:433
2461
  msgid "Opening hours input type"
2462
  msgstr "Openingstijden formaat"
2463
 
2464
+ #: admin/templates/map-settings.php:437
2465
  #, php-format
2466
  msgid ""
2467
  "Opening hours created in version 1.x %sare not%s automatically converted to "
2470
  "De openingstijden die zijn aangemaakt in versie 1.x %sworden niet%s "
2471
  "automatische omgezet naar het dropdown formaat."
2472
 
2473
+ #: admin/templates/map-settings.php:440 admin/templates/map-settings.php:449
2474
  msgid "The default opening hours"
2475
  msgstr "De standaard openingstijden"
2476
 
2477
+ #: admin/templates/map-settings.php:446
2478
  msgid "Opening hours format"
2479
  msgstr "Openingstijden formaat"
2480
 
2481
+ #: admin/templates/map-settings.php:453
2482
  msgid ""
2483
  "The default country and opening hours are only used when a new store is "
2484
  "created. So changing the default values will have no effect on existing "
2488
  "gebruikt als een nieuwe locatie wordt aangemaakt. Het wijzigen van deze "
2489
  "waardes heeft dus geen enkele invloed op de bestaande locaties."
2490
 
2491
+ #: admin/templates/map-settings.php:466
2492
  msgid "Permalink"
2493
  msgstr "Permalink"
2494
 
2495
+ #: admin/templates/map-settings.php:469
2496
  msgid "Enable permalink?"
2497
  msgstr "Activeer permalink?"
2498
 
2499
+ #: admin/templates/map-settings.php:474
2500
+ msgid "Remove the front base from the permalink structure?"
2501
+ msgstr "Verwijder de front base uit de permalink structuur."
2502
+
2503
+ #: admin/templates/map-settings.php:474
2504
+ #, php-format
2505
+ msgid ""
2506
+ "The front base is set on the %spermalink settings%s page in the \"Custom "
2507
+ "structure\" field. %s If a front base is set ( for example /blog/ ), then "
2508
+ "enabling this option will remove it from the store locator permalinks."
2509
+ msgstr ""
2510
+ "De front base kan je instellen op de %sPermalink instellingen%s pagina in "
2511
+ "het \"Aangepaste structuur\" veld. %s Als een front base is gebruikt "
2512
+ "( bijvoorbeeld /blog/ ) dan zal met deze optie het uit de store locator "
2513
+ "permalinks verwijderd worden."
2514
+
2515
+ #: admin/templates/map-settings.php:478
2516
  msgid "Store slug"
2517
  msgstr "Winkel slug"
2518
 
2519
+ #: admin/templates/map-settings.php:482
2520
  msgid "Category slug"
2521
  msgstr "Categorie slug"
2522
 
2523
+ #: admin/templates/map-settings.php:485
2524
  #, php-format
2525
  msgid "The permalink slugs %smust be unique%s on your site."
2526
  msgstr "De permalink slug %smoet uniek%s zijn op je site."
2527
 
2528
+ #: admin/templates/map-settings.php:498
2529
  msgid "Labels"
2530
  msgstr "Labels"
2531
 
2532
+ #: admin/templates/map-settings.php:507
2533
  #, php-format
2534
  msgid "%sWarning!%s %sWPML%s, or a plugin using the WPML API is active."
2535
  msgstr ""
2536
  "%sWaarschuwing!%s %sWPML%s, of een plugin die de WPML API gebruikt is "
2537
  "actief."
2538
 
2539
+ #: admin/templates/map-settings.php:508
2540
  msgid ""
2541
  "Please use the \"String Translations\" section in the used multilingual "
2542
  "plugin to change the labels. Changing them here will have no effect as long "
2546
  "labels te wijzigen. Wijzigingen die in dit gedeelte worden aangebracht "
2547
  "hebben geen effect zolang de vertaal plugin actief is."
2548
 
2549
+ #: admin/templates/map-settings.php:512 admin/templates/map-settings.php:513
2550
  #: frontend/templates/default.php:12
2551
+ #: frontend/templates/store-listings-below.php:12 inc/wpsl-functions.php:140
2552
  msgid "Your location"
2553
  msgstr "Uw locatie"
2554
 
2555
+ #: admin/templates/map-settings.php:516 admin/templates/map-settings.php:517
2556
  #: frontend/templates/default.php:21
2557
+ #: frontend/templates/store-listings-below.php:21 inc/wpsl-functions.php:143
2558
  msgid "Search radius"
2559
  msgstr "Zoek radius"
2560
 
2561
+ #: admin/templates/map-settings.php:520 admin/templates/map-settings.php:521
2562
+ #: frontend/class-frontend.php:1837 inc/wpsl-functions.php:144
2563
  msgid "No results found"
2564
  msgstr "Geen resultaten gevonden"
2565
 
2566
+ #: admin/templates/map-settings.php:528
2567
  msgid "Searching (preloader text)"
2568
  msgstr "Aan het zoeken (preloader tekst)"
2569
 
2570
+ #: admin/templates/map-settings.php:529 frontend/class-frontend.php:1836
2571
+ #: inc/wpsl-functions.php:142
2572
  msgid "Searching..."
2573
  msgstr "Zoeken..."
2574
 
2575
+ #: admin/templates/map-settings.php:532 admin/templates/map-settings.php:533
2576
  #: frontend/templates/default.php:30
2577
+ #: frontend/templates/store-listings-below.php:30 inc/wpsl-functions.php:145
2578
  msgid "Results"
2579
  msgstr "Resultaten"
2580
 
2581
+ #: admin/templates/map-settings.php:536 admin/upgrade.php:206
2582
+ #: inc/wpsl-functions.php:159
2583
  msgid "Category filter"
2584
  msgstr "Categorie filter"
2585
 
2586
+ #: admin/templates/map-settings.php:537 frontend/class-frontend.php:1411
2587
  msgid "Category"
2588
  msgstr "Categorie"
2589
 
2590
+ #: admin/templates/map-settings.php:540
2591
  msgid "Category first item"
2592
  msgstr "Eerste categorie item"
2593
 
2594
+ #: admin/templates/map-settings.php:541 admin/upgrade.php:367
2595
+ #: frontend/class-frontend.php:1414 inc/wpsl-functions.php:160
2596
  msgid "Any"
2597
  msgstr "Alle"
2598
 
2599
+ #: admin/templates/map-settings.php:544 admin/templates/map-settings.php:545
2600
+ #: admin/upgrade.php:59 frontend/class-frontend.php:1838
2601
  #: frontend/underscore-functions.php:138 frontend/underscore-functions.php:168
2602
+ #: inc/wpsl-functions.php:146
2603
  msgid "More info"
2604
  msgstr "Meer info"
2605
 
2606
+ #: admin/templates/map-settings.php:548 admin/templates/map-settings.php:549
2607
  #: frontend/class-frontend.php:828 frontend/underscore-functions.php:29
2608
  #: frontend/underscore-functions.php:65 frontend/underscore-functions.php:147
2609
+ #: inc/wpsl-functions.php:154
2610
  msgid "Phone"
2611
  msgstr "Telefoon"
2612
 
2613
+ #: admin/templates/map-settings.php:568 admin/templates/map-settings.php:569
2614
+ #: frontend/class-frontend.php:1843 inc/wpsl-functions.php:139
2615
  msgid "Start location"
2616
  msgstr "Start locatie"
2617
 
2618
+ #: admin/templates/map-settings.php:572
2619
  msgid "Get directions"
2620
  msgstr "Toon routebeschrijving"
2621
 
2622
+ #: admin/templates/map-settings.php:573 frontend/class-frontend.php:861
2623
+ #: frontend/class-frontend.php:1841 inc/wpsl-functions.php:147
2624
  msgid "Directions"
2625
  msgstr "Routebeschrijving"
2626
 
2627
+ #: admin/templates/map-settings.php:576
2628
  msgid "No directions found"
2629
  msgstr "Geen routebeschrijving beschikbaar"
2630
 
2631
+ #: admin/templates/map-settings.php:577 admin/upgrade.php:151
2632
+ #: frontend/class-frontend.php:1842 inc/wpsl-functions.php:148
2633
  msgid "No route could be found between the origin and destination"
2634
  msgstr "Er kon geen route gevonden worden tussen het begin- en eindpunt"
2635
 
2636
+ #: admin/templates/map-settings.php:580 admin/templates/map-settings.php:581
2637
+ #: admin/upgrade.php:77 frontend/class-frontend.php:1844
2638
+ #: inc/wpsl-functions.php:149
2639
  msgid "Back"
2640
  msgstr "Terug"
2641
 
2642
+ #: admin/templates/map-settings.php:584 admin/templates/map-settings.php:585
2643
+ #: admin/upgrade.php:143 frontend/class-frontend.php:1845
2644
+ #: inc/wpsl-functions.php:150
2645
  msgid "Street view"
2646
  msgstr "Street view"
2647
 
2648
+ #: admin/templates/map-settings.php:588 admin/templates/map-settings.php:589
2649
+ #: admin/upgrade.php:147 frontend/class-frontend.php:1846
2650
+ #: inc/wpsl-functions.php:151
2651
  msgid "Zoom here"
2652
  msgstr "Zoom hier"
2653
 
2654
+ #: admin/templates/map-settings.php:592
2655
  msgid "General error"
2656
  msgstr "Foutmelding"
2657
 
2658
+ #: admin/templates/map-settings.php:593 frontend/class-frontend.php:1839
2659
+ #: inc/wpsl-functions.php:152
2660
  msgid "Something went wrong, please try again!"
2661
  msgstr "Er ging iets fout, probeer het nog een keer!"
2662
 
2663
+ #: admin/templates/map-settings.php:596
2664
  msgid "Query limit error"
2665
  msgstr "Query limit foutmelding"
2666
 
2667
+ #: admin/templates/map-settings.php:596
2668
  #, php-format
2669
  msgid ""
2670
  "You can raise the %susage limit%s by obtaining an API %skey%s, and fill in "
2673
  "Je kan de %sgebruiks limiet%s verhogen door een API %ssleutel%s aan te "
2674
  "vragen en die in het \"API sleutel\" veld bovenaan de pagina in te vullen."
2675
 
2676
+ #: admin/templates/map-settings.php:597 frontend/class-frontend.php:1840
2677
+ #: inc/wpsl-functions.php:153
2678
  msgid "API usage limit reached"
2679
  msgstr "API gebruikslimiet bereikt"
2680
 
2681
+ #: admin/templates/map-settings.php:610
2682
  msgid "Tools"
2683
  msgstr "Tools"
2684
 
2685
+ #: admin/templates/map-settings.php:613
2686
  msgid "Enable store locator debug?"
2687
  msgstr "Activeer store locator debug?"
2688
 
2689
+ #: admin/templates/map-settings.php:613
2690
  #, php-format
2691
  msgid ""
2692
  "This disables the WPSL transient cache. %sThe transient cache is only used "
2696
  "alleen gebruikt als de %sToon alle locaties op de kaart zodra de pagina "
2697
  "geladen is%s optie is geactiveerd."
2698
 
2699
+ #: admin/templates/map-settings.php:617
2700
  msgid "Enable compatibility mode?"
2701
  msgstr "Activeer de compatibiliteitsmodus?"
2702
 
2703
+ #: admin/templates/map-settings.php:617
2704
  #, php-format
2705
  msgid ""
2706
  "If the %sbrowser console%s shows the error below, then enabling this option "
2714
  "%s Deze foutmelding kan er in sommige situations voor zorgen dat de store "
2715
  "locator kaart niet goed functioneerd."
2716
 
2717
+ #: admin/templates/map-settings.php:621
2718
  msgid "WPSL transients"
2719
  msgstr "WPSL transients"
2720
 
2721
+ #: admin/templates/map-settings.php:622
2722
  msgid "Clear store locator transient cache"
2723
  msgstr "Verwijder het store locator transient cache."
2724
 
2730
  msgid "Reset"
2731
  msgstr "Herstel"
2732
 
2733
+ #: admin/upgrade.php:174 inc/wpsl-functions.php:133
2734
  msgid "stores"
2735
  msgstr "winkels"
2736
 
2737
+ #: admin/upgrade.php:178 inc/wpsl-functions.php:134
2738
  msgid "store-category"
2739
  msgstr "winkel-categorie"
2740
 
2741
+ #: admin/upgrade.php:443
2742
  #, php-format
2743
  msgid ""
2744
  "Because you updated WP Store Locator from version 1.x, the %s current store "
2747
  "Doordat je WP Store Locator update van versie 1.x, de %s huidige winkel "
2748
  "locaties moeten worden %somgezet%s naar custom post types."
2749
 
2750
+ #: admin/upgrade.php:464
2751
  #, php-format
2752
  msgid ""
2753
  "The script converting the locations timed out. %s You can click the \"Start "
2765
  "heeft al geprobeerd om de maximum execution time uit te zetten, maar als je "
2766
  "dit leest dan is dat mislukt."
2767
 
2768
+ #: admin/upgrade.php:485
2769
  msgid "Store locations to convert:"
2770
  msgstr "Locaties die omgezet worden:"
2771
 
2772
+ #: admin/upgrade.php:487
2773
  msgid "Start Converting"
2774
  msgstr "Begin met omzetten"
2775
 
2776
+ #: admin/upgrade.php:609
2777
  #, php-format
2778
  msgid ""
2779
  "All the store locations are now converted to custom post types. %s You can "
2829
  msgid "Search provided by %sWP Store Locator%s"
2830
  msgstr "Ondersteund door %sWP Store Locator%s"
2831
 
2832
+ #: inc/class-post-types.php:77
2833
  msgid "Store Locator"
2834
  msgstr "Store Locator"
2835
 
2836
+ #: inc/class-post-types.php:78
2837
  msgid "All Stores"
2838
  msgstr "Alle winkels"
2839
 
2840
+ #: inc/class-post-types.php:79
2841
  msgid "Store"
2842
  msgstr "winkel"
2843
 
2844
+ #: inc/class-post-types.php:80 inc/class-post-types.php:83
2845
  msgid "New Store"
2846
  msgstr "Nieuwe winkel"
2847
 
2848
+ #: inc/class-post-types.php:81
2849
  msgid "Add New Store"
2850
  msgstr "Voeg winkel toe"
2851
 
2852
+ #: inc/class-post-types.php:82
2853
  msgid "Edit Store"
2854
  msgstr "Wijzig winkel"
2855
 
2856
+ #: inc/class-post-types.php:84
2857
  msgid "View Stores"
2858
  msgstr "Bekijk winkel"
2859
 
2860
+ #: inc/class-post-types.php:85
2861
  msgid "Search Stores"
2862
  msgstr "Zoek winkels"
2863
 
2864
+ #: inc/class-post-types.php:86
2865
  msgid "No Stores found"
2866
  msgstr "Geen winkels gevonden"
2867
 
2868
+ #: inc/class-post-types.php:87
2869
  msgid "No Stores found in trash"
2870
  msgstr "Geen winkels gevonden in de prullenbak"
2871
 
2872
+ #: inc/class-post-types.php:130 inc/class-post-types.php:140
2873
  msgid "Store Categories"
2874
  msgstr "Winkel categorieën"
2875
 
2876
+ #: inc/class-post-types.php:131
2877
  msgid "Store Category"
2878
  msgstr "Winkel categorie"
2879
 
2880
+ #: inc/class-post-types.php:132
2881
  msgid "Search Store Categories"
2882
  msgstr "Zoek winkel categorieën"
2883
 
2884
+ #: inc/class-post-types.php:133
2885
  msgid "All Store Categories"
2886
  msgstr "Alle winkel categorieën"
2887
 
2888
+ #: inc/class-post-types.php:134
2889
  msgid "Parent Store Category"
2890
  msgstr "Hoofd winkel categorie"
2891
 
2892
+ #: inc/class-post-types.php:135
2893
  msgid "Parent Store Category:"
2894
  msgstr "Hoofd winkel categorie:"
2895
 
2896
+ #: inc/class-post-types.php:136
2897
  msgid "Edit Store Category"
2898
  msgstr "Wijzig winkel categorie"
2899
 
2900
+ #: inc/class-post-types.php:137
2901
  msgid "Update Store Category"
2902
  msgstr "Winkel categorie bijwerken"
2903
 
2904
+ #: inc/class-post-types.php:138
2905
  msgid "Add New Store Category"
2906
  msgstr "Voeg winkel categorie toe"
2907
 
2908
+ #: inc/class-post-types.php:139
2909
  msgid "New Store Category Name"
2910
  msgstr "Naam winkel categorie"
2911
 
2912
+ #: inc/class-post-types.php:171
2913
  msgid "Enter store title here"
2914
  msgstr "Voer winkel naam in"
2915
 
2916
+ #: inc/class-post-types.php:189
2917
  msgid "Zip"
2918
  msgstr "Postcode"
2919
 
2929
  "parameters."
2930
  msgstr "Roep de %sget_template_details%s functie aan met de juiste parameters."
2931
 
2932
+ #: inc/wpsl-functions.php:229
2933
  msgid "Show the store list below the map"
2934
  msgstr "Toon the locatie lijst onder de kaart"
2935
 
2936
+ #: inc/wpsl-functions.php:246
2937
  msgid "Monday"
2938
  msgstr "Maandag"
2939
 
2940
+ #: inc/wpsl-functions.php:247
2941
  msgid "Tuesday"
2942
  msgstr "Dinsdag"
2943
 
2944
+ #: inc/wpsl-functions.php:248
2945
  msgid "Wednesday"
2946
  msgstr "Woensdag"
2947
 
2948
+ #: inc/wpsl-functions.php:249
2949
  msgid "Thursday"
2950
  msgstr "Donderdag"
2951
 
2952
+ #: inc/wpsl-functions.php:250
2953
  msgid "Friday"
2954
  msgstr "Vrijdag"
2955
 
2956
+ #: inc/wpsl-functions.php:251
2957
  msgid "Saturday"
2958
  msgstr "Zaterdag"
2959
 
2960
+ #: inc/wpsl-functions.php:252
2961
  msgid "Sunday"
2962
  msgstr "Zondag"
2963
 
2964
+ #: inc/wpsl-functions.php:282
2965
  #, php-format
2966
  msgid "Mon %sTue %sWed %sThu %sFri %sSat Closed %sSun Closed"
2967
  msgstr "ma %sdi %swoe %sdo %svrij %szat gesloten %szo gesloten"
2968
 
2969
+ #: inc/wpsl-functions.php:298
2970
  msgid "Satellite"
2971
  msgstr "Satelliet"
2972
 
2973
+ #: inc/wpsl-functions.php:299
2974
  msgid "Hybrid"
2975
  msgstr "Hybrid"
2976
 
2977
+ #: inc/wpsl-functions.php:300
2978
  msgid "Terrain"
2979
  msgstr "Terrein"
2980
 
2981
+ #: inc/wpsl-functions.php:315
2982
  msgid "(city) (state) (zip code)"
2983
  msgstr "(stad) (provincie) (postcode)"
2984
 
2985
+ #: inc/wpsl-functions.php:316
2986
  msgid "(city), (state) (zip code)"
2987
  msgstr "(stad), (provincie), (postcode)"
2988
 
2989
+ #: inc/wpsl-functions.php:317
2990
  msgid "(city) (zip code)"
2991
  msgstr "(stad) (postcode)"
2992
 
2993
+ #: inc/wpsl-functions.php:318
2994
  msgid "(city), (zip code)"
2995
  msgstr "(stad), (postcode)"
2996
 
2997
+ #: inc/wpsl-functions.php:319
2998
  msgid "(zip code) (city) (state)"
2999
  msgstr "(postcode) (stad) (provincie)"
3000
 
3001
+ #: inc/wpsl-functions.php:320
3002
  msgid "(zip code) (city)"
3003
  msgstr "(postcode) (stad)"
3004
 
3005
+ #~ msgid ""
3006
+ #~ "For this option to be available you first need to set a map region and "
3007
+ #~ "restrict the results to the selected region. %s You can do this in the "
3008
+ #~ "%sGoogle Maps API section%s."
3009
+ #~ msgstr ""
3010
+ #~ "Voordat deze optie gebruikt kan worden moet er eerst een kaart regio "
3011
+ #~ "gekozen worden, en de 'Limiteer de geocode resultaten tot de "
3012
+ #~ "geselecteerde map regio?' optie actief zijn. %s Dit kan in het %sGoogle "
3013
+ #~ "Maps API%s gedeelte."
3014
+
3015
+ #~ msgid ""
3016
+ #~ "The front base is set on the %spermalink settings%s page in the \"Custom "
3017
+ #~ "structure\" field. %s If a front base is set ( for example /blog/ ) , "
3018
+ #~ "then enabling this option will remove it from the store locator "
3019
+ #~ "permalinks."
3020
+ #~ msgstr ""
3021
+ #~ "De front base kan je instellen op de %sPermalink instellingen%s pagina in "
3022
+ #~ "het \"Aangepaste structuur\" veld. %s Als een front base is gebruikt "
3023
+ #~ "( bijvoorbeeld /blog/ ) dan zal met deze optie het uit de store locator "
3024
+ #~ "permalinks verwijderd worden."
3025
+
3026
+ #~ msgid ""
3027
+ #~ "The front base is set on the %spermalink settings%s page in the \"Custom "
3028
+ #~ "structure\" field. %s Enabling this option will remove it ( for example /"
3029
+ #~ "blog/ ) from the store locator permalinks, but keep it for all others."
3030
+ #~ msgstr ""
3031
+ #~ "Je kan de front base instellen op de %sPermalink instellingen%s pagina in "
3032
+ #~ "het \"Aangepaste structuur\" veld. %s Het activeren van deze optie laat "
3033
+ #~ "de front base ( bijvoorbeeld /blog/ ) weg uit de store locator permalinks."
3034
+
3035
+ #~ msgid ""
3036
+ #~ "The front base is set on the %spermalink settings%s page in the \"Custom "
3037
+ #~ "structure\" field ( for example /blog/ ). %s Enabling this option will "
3038
+ #~ "remove it from the store locator permalinks, but keep it for all others."
3039
+ #~ msgstr ""
3040
+ #~ "Je kan de font base instellen op de %spermalink instellingen%s pagina in "
3041
+ #~ "het \"Aangepaste structuur\" veld ( bijvoorbeeld %s"
3042
+
3043
  #~ msgid "%sError message: %s"
3044
  #~ msgstr "%sFout melding: %s"
3045
 
languages/wpsl.pot CHANGED
@@ -1,9 +1,9 @@
1
  #, fuzzy
2
  msgid ""
3
  msgstr ""
4
- "Project-Id-Version: WP Store Locator v2.2.18\n"
5
  "Report-Msgid-Bugs-To: \n"
6
- "POT-Creation-Date: 2018-12-01 22:29+0700\n"
7
  "PO-Revision-Date: 2015-09-01 13:49+0100\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
@@ -57,7 +57,7 @@ msgstr ""
57
  msgid "Geocode was not successful for the following reason"
58
  msgstr ""
59
 
60
- #: admin/class-admin.php:297 admin/upgrade.php:458
61
  msgid "Security check failed, reload the page and try again."
62
  msgstr ""
63
 
@@ -231,7 +231,7 @@ msgstr ""
231
  msgid "Location"
232
  msgstr ""
233
 
234
- #: admin/class-metaboxes.php:59 inc/class-post-types.php:160
235
  msgid "Address"
236
  msgstr ""
237
 
@@ -239,11 +239,11 @@ msgstr ""
239
  msgid "Address 2"
240
  msgstr ""
241
 
242
- #: admin/class-metaboxes.php:66 inc/class-post-types.php:161
243
  msgid "City"
244
  msgstr ""
245
 
246
- #: admin/class-metaboxes.php:70 inc/class-post-types.php:162
247
  msgid "State"
248
  msgstr ""
249
 
@@ -268,9 +268,9 @@ msgstr ""
268
  msgid "Opening Hours"
269
  msgstr ""
270
 
271
- #: admin/class-metaboxes.php:91 admin/templates/map-settings.php:548
272
- #: admin/templates/map-settings.php:549 frontend/underscore-functions.php:160
273
- #: inc/wpsl-functions.php:156
274
  msgid "Hours"
275
  msgstr ""
276
 
@@ -282,24 +282,24 @@ msgstr ""
282
  msgid "Tel"
283
  msgstr ""
284
 
285
- #: admin/class-metaboxes.php:100 admin/templates/map-settings.php:536
286
- #: admin/templates/map-settings.php:537 frontend/class-frontend.php:832
287
  #: frontend/underscore-functions.php:32 frontend/underscore-functions.php:68
288
- #: frontend/underscore-functions.php:150 inc/wpsl-functions.php:153
289
  msgid "Fax"
290
  msgstr ""
291
 
292
- #: admin/class-metaboxes.php:103 admin/templates/map-settings.php:540
293
- #: admin/templates/map-settings.php:541 admin/upgrade.php:198
294
  #: frontend/class-frontend.php:836 frontend/underscore-functions.php:35
295
  #: frontend/underscore-functions.php:71 frontend/underscore-functions.php:153
296
- #: inc/wpsl-functions.php:154
297
  msgid "Email"
298
  msgstr ""
299
 
300
- #: admin/class-metaboxes.php:106 admin/templates/map-settings.php:544
301
- #: admin/templates/map-settings.php:545 admin/upgrade.php:202
302
- #: frontend/class-frontend.php:841 inc/wpsl-functions.php:155
303
  msgid "Url"
304
  msgstr ""
305
 
@@ -392,22 +392,22 @@ msgstr ""
392
  msgid "WP Store Locator Transients Cleared"
393
  msgstr ""
394
 
395
- #: admin/class-settings.php:368
396
  #, php-format
397
  msgid "There's a problem with the provided %sserver key%s. %s"
398
  msgstr ""
399
 
400
- #: admin/class-settings.php:482
401
  msgid ""
402
  "The max results field cannot be empty, the default value has been restored."
403
  msgstr ""
404
 
405
- #: admin/class-settings.php:485
406
  msgid ""
407
  "The search radius field cannot be empty, the default value has been restored."
408
  msgstr ""
409
 
410
- #: admin/class-settings.php:488
411
  #, php-format
412
  msgid ""
413
  "Please provide the name of a city or country that can be used as a starting "
@@ -415,1296 +415,1296 @@ msgid ""
415
  "user fails, or the option itself is disabled."
416
  msgstr ""
417
 
418
- #: admin/class-settings.php:509
419
  msgid "Select your language"
420
  msgstr ""
421
 
422
- #: admin/class-settings.php:510
423
  msgid "English"
424
  msgstr ""
425
 
426
- #: admin/class-settings.php:511
427
  msgid "Arabic"
428
  msgstr ""
429
 
430
- #: admin/class-settings.php:512
431
  msgid "Basque"
432
  msgstr ""
433
 
434
- #: admin/class-settings.php:513
435
  msgid "Bulgarian"
436
  msgstr ""
437
 
438
- #: admin/class-settings.php:514
439
  msgid "Bengali"
440
  msgstr ""
441
 
442
- #: admin/class-settings.php:515
443
  msgid "Catalan"
444
  msgstr ""
445
 
446
- #: admin/class-settings.php:516
447
  msgid "Czech"
448
  msgstr ""
449
 
450
- #: admin/class-settings.php:517
451
  msgid "Danish"
452
  msgstr ""
453
 
454
- #: admin/class-settings.php:518
455
  msgid "German"
456
  msgstr ""
457
 
458
- #: admin/class-settings.php:519
459
  msgid "Greek"
460
  msgstr ""
461
 
462
- #: admin/class-settings.php:520
463
  msgid "English (Australian)"
464
  msgstr ""
465
 
466
- #: admin/class-settings.php:521
467
  msgid "English (Great Britain)"
468
  msgstr ""
469
 
470
- #: admin/class-settings.php:522
471
  msgid "Spanish"
472
  msgstr ""
473
 
474
- #: admin/class-settings.php:523
475
  msgid "Farsi"
476
  msgstr ""
477
 
478
- #: admin/class-settings.php:524
479
  msgid "Finnish"
480
  msgstr ""
481
 
482
- #: admin/class-settings.php:525
483
  msgid "Filipino"
484
  msgstr ""
485
 
486
- #: admin/class-settings.php:526
487
  msgid "French"
488
  msgstr ""
489
 
490
- #: admin/class-settings.php:527
491
  msgid "Galician"
492
  msgstr ""
493
 
494
- #: admin/class-settings.php:528
495
  msgid "Gujarati"
496
  msgstr ""
497
 
498
- #: admin/class-settings.php:529
499
  msgid "Hindi"
500
  msgstr ""
501
 
502
- #: admin/class-settings.php:530
503
  msgid "Croatian"
504
  msgstr ""
505
 
506
- #: admin/class-settings.php:531
507
  msgid "Hungarian"
508
  msgstr ""
509
 
510
- #: admin/class-settings.php:532
511
  msgid "Indonesian"
512
  msgstr ""
513
 
514
- #: admin/class-settings.php:533
515
  msgid "Italian"
516
  msgstr ""
517
 
518
- #: admin/class-settings.php:534
519
  msgid "Hebrew"
520
  msgstr ""
521
 
522
- #: admin/class-settings.php:535
523
  msgid "Japanese"
524
  msgstr ""
525
 
526
- #: admin/class-settings.php:536
527
  msgid "Kannada"
528
  msgstr ""
529
 
530
- #: admin/class-settings.php:537
531
  msgid "Korean"
532
  msgstr ""
533
 
534
- #: admin/class-settings.php:538
535
  msgid "Lithuanian"
536
  msgstr ""
537
 
538
- #: admin/class-settings.php:539
539
  msgid "Latvian"
540
  msgstr ""
541
 
542
- #: admin/class-settings.php:540
543
  msgid "Malayalam"
544
  msgstr ""
545
 
546
- #: admin/class-settings.php:541
547
  msgid "Marathi"
548
  msgstr ""
549
 
550
- #: admin/class-settings.php:542
551
  msgid "Dutch"
552
  msgstr ""
553
 
554
- #: admin/class-settings.php:543
555
  msgid "Norwegian"
556
  msgstr ""
557
 
558
- #: admin/class-settings.php:544
559
  msgid "Norwegian Nynorsk"
560
  msgstr ""
561
 
562
- #: admin/class-settings.php:545
563
  msgid "Polish"
564
  msgstr ""
565
 
566
- #: admin/class-settings.php:546
567
  msgid "Portuguese"
568
  msgstr ""
569
 
570
- #: admin/class-settings.php:547
571
  msgid "Portuguese (Brazil)"
572
  msgstr ""
573
 
574
- #: admin/class-settings.php:548
575
  msgid "Portuguese (Portugal)"
576
  msgstr ""
577
 
578
- #: admin/class-settings.php:549
579
  msgid "Romanian"
580
  msgstr ""
581
 
582
- #: admin/class-settings.php:550
583
  msgid "Russian"
584
  msgstr ""
585
 
586
- #: admin/class-settings.php:551
587
  msgid "Slovak"
588
  msgstr ""
589
 
590
- #: admin/class-settings.php:552
591
  msgid "Slovenian"
592
  msgstr ""
593
 
594
- #: admin/class-settings.php:553
595
  msgid "Serbian"
596
  msgstr ""
597
 
598
- #: admin/class-settings.php:554
599
  msgid "Swedish"
600
  msgstr ""
601
 
602
- #: admin/class-settings.php:555
603
  msgid "Tagalog"
604
  msgstr ""
605
 
606
- #: admin/class-settings.php:556
607
  msgid "Tamil"
608
  msgstr ""
609
 
610
- #: admin/class-settings.php:557
611
  msgid "Telugu"
612
  msgstr ""
613
 
614
- #: admin/class-settings.php:558
615
  msgid "Thai"
616
  msgstr ""
617
 
618
- #: admin/class-settings.php:559
619
  msgid "Turkish"
620
  msgstr ""
621
 
622
- #: admin/class-settings.php:560
623
  msgid "Ukrainian"
624
  msgstr ""
625
 
626
- #: admin/class-settings.php:561
627
  msgid "Vietnamese"
628
  msgstr ""
629
 
630
- #: admin/class-settings.php:562
631
  msgid "Chinese (Simplified)"
632
  msgstr ""
633
 
634
- #: admin/class-settings.php:563
635
  msgid "Chinese (Traditional)"
636
  msgstr ""
637
 
638
- #: admin/class-settings.php:568
639
  msgid "Select your region"
640
  msgstr ""
641
 
642
- #: admin/class-settings.php:569
643
  msgid "Afghanistan"
644
  msgstr ""
645
 
646
- #: admin/class-settings.php:570
647
  msgid "Albania"
648
  msgstr ""
649
 
650
- #: admin/class-settings.php:571
651
  msgid "Algeria"
652
  msgstr ""
653
 
654
- #: admin/class-settings.php:572
655
  msgid "American Samoa"
656
  msgstr ""
657
 
658
- #: admin/class-settings.php:573
659
  msgid "Andorra"
660
  msgstr ""
661
 
662
- #: admin/class-settings.php:574
663
  msgid "Angola"
664
  msgstr ""
665
 
666
- #: admin/class-settings.php:575
667
  msgid "Anguilla"
668
  msgstr ""
669
 
670
- #: admin/class-settings.php:576
671
  msgid "Antarctica"
672
  msgstr ""
673
 
674
- #: admin/class-settings.php:577
675
  msgid "Antigua and Barbuda"
676
  msgstr ""
677
 
678
- #: admin/class-settings.php:578
679
  msgid "Argentina"
680
  msgstr ""
681
 
682
- #: admin/class-settings.php:579
683
  msgid "Armenia"
684
  msgstr ""
685
 
686
- #: admin/class-settings.php:580
687
  msgid "Aruba"
688
  msgstr ""
689
 
690
- #: admin/class-settings.php:581
691
  msgid "Ascension Island"
692
  msgstr ""
693
 
694
- #: admin/class-settings.php:582
695
  msgid "Australia"
696
  msgstr ""
697
 
698
- #: admin/class-settings.php:583
699
  msgid "Austria"
700
  msgstr ""
701
 
702
- #: admin/class-settings.php:584
703
  msgid "Azerbaijan"
704
  msgstr ""
705
 
706
- #: admin/class-settings.php:585
707
  msgid "Bahamas"
708
  msgstr ""
709
 
710
- #: admin/class-settings.php:586
711
  msgid "Bahrain"
712
  msgstr ""
713
 
714
- #: admin/class-settings.php:587
715
  msgid "Bangladesh"
716
  msgstr ""
717
 
718
- #: admin/class-settings.php:588
719
  msgid "Barbados"
720
  msgstr ""
721
 
722
- #: admin/class-settings.php:589
723
  msgid "Belarus"
724
  msgstr ""
725
 
726
- #: admin/class-settings.php:590
727
  msgid "Belgium"
728
  msgstr ""
729
 
730
- #: admin/class-settings.php:591
731
  msgid "Belize"
732
  msgstr ""
733
 
734
- #: admin/class-settings.php:592
735
  msgid "Benin"
736
  msgstr ""
737
 
738
- #: admin/class-settings.php:593
739
  msgid "Bermuda"
740
  msgstr ""
741
 
742
- #: admin/class-settings.php:594
743
  msgid "Bhutan"
744
  msgstr ""
745
 
746
- #: admin/class-settings.php:595
747
  msgid "Bolivia"
748
  msgstr ""
749
 
750
- #: admin/class-settings.php:596
751
  msgid "Bosnia and Herzegovina"
752
  msgstr ""
753
 
754
- #: admin/class-settings.php:597
755
  msgid "Botswana"
756
  msgstr ""
757
 
758
- #: admin/class-settings.php:598
759
  msgid "Bouvet Island"
760
  msgstr ""
761
 
762
- #: admin/class-settings.php:599
763
  msgid "Brazil"
764
  msgstr ""
765
 
766
- #: admin/class-settings.php:600
767
  msgid "British Indian Ocean Territory"
768
  msgstr ""
769
 
770
- #: admin/class-settings.php:601
771
  msgid "British Virgin Islands"
772
  msgstr ""
773
 
774
- #: admin/class-settings.php:602
775
  msgid "Brunei"
776
  msgstr ""
777
 
778
- #: admin/class-settings.php:603
779
  msgid "Bulgaria"
780
  msgstr ""
781
 
782
- #: admin/class-settings.php:604
783
  msgid "Burkina Faso"
784
  msgstr ""
785
 
786
- #: admin/class-settings.php:605
787
  msgid "Burundi"
788
  msgstr ""
789
 
790
- #: admin/class-settings.php:606
791
  msgid "Cambodia"
792
  msgstr ""
793
 
794
- #: admin/class-settings.php:607
795
  msgid "Cameroon"
796
  msgstr ""
797
 
798
- #: admin/class-settings.php:608
799
  msgid "Canada"
800
  msgstr ""
801
 
802
- #: admin/class-settings.php:609
803
  msgid "Canary Islands"
804
  msgstr ""
805
 
806
- #: admin/class-settings.php:610
807
  msgid "Cape Verde"
808
  msgstr ""
809
 
810
- #: admin/class-settings.php:611
811
  msgid "Caribbean Netherlands"
812
  msgstr ""
813
 
814
- #: admin/class-settings.php:612
815
  msgid "Cayman Islands"
816
  msgstr ""
817
 
818
- #: admin/class-settings.php:613
819
  msgid "Central African Republic"
820
  msgstr ""
821
 
822
- #: admin/class-settings.php:614
823
  msgid "Ceuta and Melilla"
824
  msgstr ""
825
 
826
- #: admin/class-settings.php:615
827
  msgid "Chad"
828
  msgstr ""
829
 
830
- #: admin/class-settings.php:616
831
  msgid "Chile"
832
  msgstr ""
833
 
834
- #: admin/class-settings.php:617
835
  msgid "China"
836
  msgstr ""
837
 
838
- #: admin/class-settings.php:618
839
  msgid "Christmas Island"
840
  msgstr ""
841
 
842
- #: admin/class-settings.php:619
843
  msgid "Clipperton Island"
844
  msgstr ""
845
 
846
- #: admin/class-settings.php:620
847
  msgid "Cocos (Keeling) Islands"
848
  msgstr ""
849
 
850
- #: admin/class-settings.php:621
851
  msgid "Colombia"
852
  msgstr ""
853
 
854
- #: admin/class-settings.php:622
855
  msgid "Comoros"
856
  msgstr ""
857
 
858
- #: admin/class-settings.php:623
859
  msgid "Congo (DRC)"
860
  msgstr ""
861
 
862
- #: admin/class-settings.php:624
863
  msgid "Congo (Republic)"
864
  msgstr ""
865
 
866
- #: admin/class-settings.php:625
867
  msgid "Cook Islands"
868
  msgstr ""
869
 
870
- #: admin/class-settings.php:626
871
  msgid "Costa Rica"
872
  msgstr ""
873
 
874
- #: admin/class-settings.php:627
875
  msgid "Croatia"
876
  msgstr ""
877
 
878
- #: admin/class-settings.php:628
879
  msgid "Cuba"
880
  msgstr ""
881
 
882
- #: admin/class-settings.php:629
883
  msgid "Curaçao"
884
  msgstr ""
885
 
886
- #: admin/class-settings.php:630
887
  msgid "Cyprus"
888
  msgstr ""
889
 
890
- #: admin/class-settings.php:631
891
  msgid "Czech Republic"
892
  msgstr ""
893
 
894
- #: admin/class-settings.php:632
895
  msgid "Côte d'Ivoire"
896
  msgstr ""
897
 
898
- #: admin/class-settings.php:633
899
  msgid "Denmark"
900
  msgstr ""
901
 
902
- #: admin/class-settings.php:634
903
  msgid "Djibouti"
904
  msgstr ""
905
 
906
- #: admin/class-settings.php:635
907
  msgid "Democratic Republic of the Congo"
908
  msgstr ""
909
 
910
- #: admin/class-settings.php:636
911
  msgid "Dominica"
912
  msgstr ""
913
 
914
- #: admin/class-settings.php:637
915
  msgid "Dominican Republic"
916
  msgstr ""
917
 
918
- #: admin/class-settings.php:638
919
  msgid "Ecuador"
920
  msgstr ""
921
 
922
- #: admin/class-settings.php:639
923
  msgid "Egypt"
924
  msgstr ""
925
 
926
- #: admin/class-settings.php:640
927
  msgid "El Salvador"
928
  msgstr ""
929
 
930
- #: admin/class-settings.php:641
931
  msgid "Equatorial Guinea"
932
  msgstr ""
933
 
934
- #: admin/class-settings.php:642
935
  msgid "Eritrea"
936
  msgstr ""
937
 
938
- #: admin/class-settings.php:643
939
  msgid "Estonia"
940
  msgstr ""
941
 
942
- #: admin/class-settings.php:644
943
  msgid "Ethiopia"
944
  msgstr ""
945
 
946
- #: admin/class-settings.php:645
947
  msgid "Falkland Islands(Islas Malvinas)"
948
  msgstr ""
949
 
950
- #: admin/class-settings.php:646
951
  msgid "Faroe Islands"
952
  msgstr ""
953
 
954
- #: admin/class-settings.php:647
955
  msgid "Fiji"
956
  msgstr ""
957
 
958
- #: admin/class-settings.php:648
959
  msgid "Finland"
960
  msgstr ""
961
 
962
- #: admin/class-settings.php:649
963
  msgid "France"
964
  msgstr ""
965
 
966
- #: admin/class-settings.php:650
967
  msgid "French Guiana"
968
  msgstr ""
969
 
970
- #: admin/class-settings.php:651
971
  msgid "French Polynesia"
972
  msgstr ""
973
 
974
- #: admin/class-settings.php:652
975
  msgid "French Southern Territories"
976
  msgstr ""
977
 
978
- #: admin/class-settings.php:653
979
  msgid "Gabon"
980
  msgstr ""
981
 
982
- #: admin/class-settings.php:654
983
  msgid "Gambia"
984
  msgstr ""
985
 
986
- #: admin/class-settings.php:655
987
  msgid "Georgia"
988
  msgstr ""
989
 
990
- #: admin/class-settings.php:656
991
  msgid "Germany"
992
  msgstr ""
993
 
994
- #: admin/class-settings.php:657
995
  msgid "Ghana"
996
  msgstr ""
997
 
998
- #: admin/class-settings.php:658
999
  msgid "Gibraltar"
1000
  msgstr ""
1001
 
1002
- #: admin/class-settings.php:659
1003
  msgid "Greece"
1004
  msgstr ""
1005
 
1006
- #: admin/class-settings.php:660
1007
  msgid "Greenland"
1008
  msgstr ""
1009
 
1010
- #: admin/class-settings.php:661
1011
  msgid "Grenada"
1012
  msgstr ""
1013
 
1014
- #: admin/class-settings.php:662 admin/class-settings.php:664
1015
  msgid "Guam"
1016
  msgstr ""
1017
 
1018
- #: admin/class-settings.php:663
1019
  msgid "Guadeloupe"
1020
  msgstr ""
1021
 
1022
- #: admin/class-settings.php:665
1023
  msgid "Guatemala"
1024
  msgstr ""
1025
 
1026
- #: admin/class-settings.php:666
1027
  msgid "Guernsey"
1028
  msgstr ""
1029
 
1030
- #: admin/class-settings.php:667
1031
  msgid "Guinea"
1032
  msgstr ""
1033
 
1034
- #: admin/class-settings.php:668
1035
  msgid "Guinea-Bissau"
1036
  msgstr ""
1037
 
1038
- #: admin/class-settings.php:669
1039
  msgid "Guyana"
1040
  msgstr ""
1041
 
1042
- #: admin/class-settings.php:670
1043
  msgid "Haiti"
1044
  msgstr ""
1045
 
1046
- #: admin/class-settings.php:671
1047
  msgid "Heard and McDonald Islands"
1048
  msgstr ""
1049
 
1050
- #: admin/class-settings.php:672
1051
  msgid "Honduras"
1052
  msgstr ""
1053
 
1054
- #: admin/class-settings.php:673
1055
  msgid "Hong Kong"
1056
  msgstr ""
1057
 
1058
- #: admin/class-settings.php:674
1059
  msgid "Hungary"
1060
  msgstr ""
1061
 
1062
- #: admin/class-settings.php:675
1063
  msgid "Iceland"
1064
  msgstr ""
1065
 
1066
- #: admin/class-settings.php:676
1067
  msgid "India"
1068
  msgstr ""
1069
 
1070
- #: admin/class-settings.php:677
1071
  msgid "Indonesia"
1072
  msgstr ""
1073
 
1074
- #: admin/class-settings.php:678
1075
  msgid "Iran"
1076
  msgstr ""
1077
 
1078
- #: admin/class-settings.php:679
1079
  msgid "Iraq"
1080
  msgstr ""
1081
 
1082
- #: admin/class-settings.php:680
1083
  msgid "Ireland"
1084
  msgstr ""
1085
 
1086
- #: admin/class-settings.php:681
1087
  msgid "Isle of Man"
1088
  msgstr ""
1089
 
1090
- #: admin/class-settings.php:682
1091
  msgid "Israel"
1092
  msgstr ""
1093
 
1094
- #: admin/class-settings.php:683
1095
  msgid "Italy"
1096
  msgstr ""
1097
 
1098
- #: admin/class-settings.php:684
1099
  msgid "Jamaica"
1100
  msgstr ""
1101
 
1102
- #: admin/class-settings.php:685
1103
  msgid "Japan"
1104
  msgstr ""
1105
 
1106
- #: admin/class-settings.php:686
1107
  msgid "Jersey"
1108
  msgstr ""
1109
 
1110
- #: admin/class-settings.php:687
1111
  msgid "Jordan"
1112
  msgstr ""
1113
 
1114
- #: admin/class-settings.php:688
1115
  msgid "Kazakhstan"
1116
  msgstr ""
1117
 
1118
- #: admin/class-settings.php:689
1119
  msgid "Kenya"
1120
  msgstr ""
1121
 
1122
- #: admin/class-settings.php:690
1123
  msgid "Kiribati"
1124
  msgstr ""
1125
 
1126
- #: admin/class-settings.php:691
1127
  msgid "Kosovo"
1128
  msgstr ""
1129
 
1130
- #: admin/class-settings.php:692
1131
  msgid "Kuwait"
1132
  msgstr ""
1133
 
1134
- #: admin/class-settings.php:693
1135
  msgid "Kyrgyzstan"
1136
  msgstr ""
1137
 
1138
- #: admin/class-settings.php:694
1139
  msgid "Laos"
1140
  msgstr ""
1141
 
1142
- #: admin/class-settings.php:695
1143
  msgid "Latvia"
1144
  msgstr ""
1145
 
1146
- #: admin/class-settings.php:696
1147
  msgid "Lebanon"
1148
  msgstr ""
1149
 
1150
- #: admin/class-settings.php:697
1151
  msgid "Lesotho"
1152
  msgstr ""
1153
 
1154
- #: admin/class-settings.php:698
1155
  msgid "Liberia"
1156
  msgstr ""
1157
 
1158
- #: admin/class-settings.php:699
1159
  msgid "Libya"
1160
  msgstr ""
1161
 
1162
- #: admin/class-settings.php:700
1163
  msgid "Liechtenstein"
1164
  msgstr ""
1165
 
1166
- #: admin/class-settings.php:701
1167
  msgid "Lithuania"
1168
  msgstr ""
1169
 
1170
- #: admin/class-settings.php:702
1171
  msgid "Luxembourg"
1172
  msgstr ""
1173
 
1174
- #: admin/class-settings.php:703
1175
  msgid "Macau"
1176
  msgstr ""
1177
 
1178
- #: admin/class-settings.php:704
1179
  msgid "Macedonia (FYROM)"
1180
  msgstr ""
1181
 
1182
- #: admin/class-settings.php:705
1183
  msgid "Madagascar"
1184
  msgstr ""
1185
 
1186
- #: admin/class-settings.php:706
1187
  msgid "Malawi"
1188
  msgstr ""
1189
 
1190
- #: admin/class-settings.php:707
1191
  msgid "Malaysia "
1192
  msgstr ""
1193
 
1194
- #: admin/class-settings.php:708
1195
  msgid "Maldives "
1196
  msgstr ""
1197
 
1198
- #: admin/class-settings.php:709
1199
  msgid "Mali"
1200
  msgstr ""
1201
 
1202
- #: admin/class-settings.php:710
1203
  msgid "Malta"
1204
  msgstr ""
1205
 
1206
- #: admin/class-settings.php:711
1207
  msgid "Marshall Islands"
1208
  msgstr ""
1209
 
1210
- #: admin/class-settings.php:712
1211
  msgid "Martinique"
1212
  msgstr ""
1213
 
1214
- #: admin/class-settings.php:713
1215
  msgid "Mauritania"
1216
  msgstr ""
1217
 
1218
- #: admin/class-settings.php:714
1219
  msgid "Mauritius"
1220
  msgstr ""
1221
 
1222
- #: admin/class-settings.php:715
1223
  msgid "Mayotte"
1224
  msgstr ""
1225
 
1226
- #: admin/class-settings.php:716
1227
  msgid "Mexico"
1228
  msgstr ""
1229
 
1230
- #: admin/class-settings.php:717
1231
  msgid "Micronesia"
1232
  msgstr ""
1233
 
1234
- #: admin/class-settings.php:718
1235
  msgid "Moldova"
1236
  msgstr ""
1237
 
1238
- #: admin/class-settings.php:719
1239
  msgid "Monaco"
1240
  msgstr ""
1241
 
1242
- #: admin/class-settings.php:720
1243
  msgid "Mongolia"
1244
  msgstr ""
1245
 
1246
- #: admin/class-settings.php:721
1247
  msgid "Montenegro"
1248
  msgstr ""
1249
 
1250
- #: admin/class-settings.php:722
1251
  msgid "Montserrat"
1252
  msgstr ""
1253
 
1254
- #: admin/class-settings.php:723
1255
  msgid "Morocco"
1256
  msgstr ""
1257
 
1258
- #: admin/class-settings.php:724
1259
  msgid "Mozambique"
1260
  msgstr ""
1261
 
1262
- #: admin/class-settings.php:725
1263
  msgid "Myanmar (Burma)"
1264
  msgstr ""
1265
 
1266
- #: admin/class-settings.php:726
1267
  msgid "Namibia"
1268
  msgstr ""
1269
 
1270
- #: admin/class-settings.php:727
1271
  msgid "Nauru"
1272
  msgstr ""
1273
 
1274
- #: admin/class-settings.php:728
1275
  msgid "Nepal"
1276
  msgstr ""
1277
 
1278
- #: admin/class-settings.php:729
1279
  msgid "Netherlands"
1280
  msgstr ""
1281
 
1282
- #: admin/class-settings.php:730
1283
  msgid "Netherlands Antilles"
1284
  msgstr ""
1285
 
1286
- #: admin/class-settings.php:731
1287
  msgid "New Caledonia"
1288
  msgstr ""
1289
 
1290
- #: admin/class-settings.php:732
1291
  msgid "New Zealand"
1292
  msgstr ""
1293
 
1294
- #: admin/class-settings.php:733
1295
  msgid "Nicaragua"
1296
  msgstr ""
1297
 
1298
- #: admin/class-settings.php:734
1299
  msgid "Niger"
1300
  msgstr ""
1301
 
1302
- #: admin/class-settings.php:735
1303
  msgid "Nigeria"
1304
  msgstr ""
1305
 
1306
- #: admin/class-settings.php:736
1307
  msgid "Niue"
1308
  msgstr ""
1309
 
1310
- #: admin/class-settings.php:737
1311
  msgid "Norfolk Island"
1312
  msgstr ""
1313
 
1314
- #: admin/class-settings.php:738
1315
  msgid "North Korea"
1316
  msgstr ""
1317
 
1318
- #: admin/class-settings.php:739
1319
  msgid "Northern Mariana Islands"
1320
  msgstr ""
1321
 
1322
- #: admin/class-settings.php:740
1323
  msgid "Norway"
1324
  msgstr ""
1325
 
1326
- #: admin/class-settings.php:741
1327
  msgid "Oman"
1328
  msgstr ""
1329
 
1330
- #: admin/class-settings.php:742
1331
  msgid "Pakistan"
1332
  msgstr ""
1333
 
1334
- #: admin/class-settings.php:743
1335
  msgid "Palau"
1336
  msgstr ""
1337
 
1338
- #: admin/class-settings.php:744
1339
  msgid "Palestine"
1340
  msgstr ""
1341
 
1342
- #: admin/class-settings.php:745
1343
  msgid "Panama"
1344
  msgstr ""
1345
 
1346
- #: admin/class-settings.php:746
1347
  msgid "Papua New Guinea"
1348
  msgstr ""
1349
 
1350
- #: admin/class-settings.php:747
1351
  msgid "Paraguay"
1352
  msgstr ""
1353
 
1354
- #: admin/class-settings.php:748
1355
  msgid "Peru"
1356
  msgstr ""
1357
 
1358
- #: admin/class-settings.php:749
1359
  msgid "Philippines"
1360
  msgstr ""
1361
 
1362
- #: admin/class-settings.php:750
1363
  msgid "Pitcairn Islands"
1364
  msgstr ""
1365
 
1366
- #: admin/class-settings.php:751
1367
  msgid "Poland"
1368
  msgstr ""
1369
 
1370
- #: admin/class-settings.php:752
1371
  msgid "Portugal"
1372
  msgstr ""
1373
 
1374
- #: admin/class-settings.php:753
1375
  msgid "Puerto Rico"
1376
  msgstr ""
1377
 
1378
- #: admin/class-settings.php:754
1379
  msgid "Qatar"
1380
  msgstr ""
1381
 
1382
- #: admin/class-settings.php:755
1383
  msgid "Reunion"
1384
  msgstr ""
1385
 
1386
- #: admin/class-settings.php:756
1387
  msgid "Romania"
1388
  msgstr ""
1389
 
1390
- #: admin/class-settings.php:757
1391
  msgid "Russia"
1392
  msgstr ""
1393
 
1394
- #: admin/class-settings.php:758
1395
  msgid "Rwanda"
1396
  msgstr ""
1397
 
1398
- #: admin/class-settings.php:759
1399
  msgid "Saint Helena"
1400
  msgstr ""
1401
 
1402
- #: admin/class-settings.php:760
1403
  msgid "Saint Kitts and Nevis"
1404
  msgstr ""
1405
 
1406
- #: admin/class-settings.php:761
1407
  msgid "Saint Vincent and the Grenadines"
1408
  msgstr ""
1409
 
1410
- #: admin/class-settings.php:762
1411
  msgid "Saint Lucia"
1412
  msgstr ""
1413
 
1414
- #: admin/class-settings.php:763
1415
  msgid "Samoa"
1416
  msgstr ""
1417
 
1418
- #: admin/class-settings.php:764
1419
  msgid "San Marino"
1420
  msgstr ""
1421
 
1422
- #: admin/class-settings.php:765
1423
  msgid "São Tomé and Príncipe"
1424
  msgstr ""
1425
 
1426
- #: admin/class-settings.php:766
1427
  msgid "Saudi Arabia"
1428
  msgstr ""
1429
 
1430
- #: admin/class-settings.php:767
1431
  msgid "Senegal"
1432
  msgstr ""
1433
 
1434
- #: admin/class-settings.php:768
1435
  msgid "Serbia"
1436
  msgstr ""
1437
 
1438
- #: admin/class-settings.php:769
1439
  msgid "Seychelles"
1440
  msgstr ""
1441
 
1442
- #: admin/class-settings.php:770
1443
  msgid "Sierra Leone"
1444
  msgstr ""
1445
 
1446
- #: admin/class-settings.php:771
1447
  msgid "Singapore"
1448
  msgstr ""
1449
 
1450
- #: admin/class-settings.php:772
1451
  msgid "Sint Maarten"
1452
  msgstr ""
1453
 
1454
- #: admin/class-settings.php:773
1455
  msgid "Slovakia"
1456
  msgstr ""
1457
 
1458
- #: admin/class-settings.php:774
1459
  msgid "Slovenia"
1460
  msgstr ""
1461
 
1462
- #: admin/class-settings.php:775
1463
  msgid "Solomon Islands"
1464
  msgstr ""
1465
 
1466
- #: admin/class-settings.php:776
1467
  msgid "Somalia"
1468
  msgstr ""
1469
 
1470
- #: admin/class-settings.php:777
1471
  msgid "South Africa"
1472
  msgstr ""
1473
 
1474
- #: admin/class-settings.php:778
1475
  msgid "South Georgia and South Sandwich Islands"
1476
  msgstr ""
1477
 
1478
- #: admin/class-settings.php:779
1479
  msgid "South Korea"
1480
  msgstr ""
1481
 
1482
- #: admin/class-settings.php:780
1483
  msgid "South Sudan"
1484
  msgstr ""
1485
 
1486
- #: admin/class-settings.php:781
1487
  msgid "Spain"
1488
  msgstr ""
1489
 
1490
- #: admin/class-settings.php:782
1491
  msgid "Sri Lanka"
1492
  msgstr ""
1493
 
1494
- #: admin/class-settings.php:783
1495
  msgid "Sudan"
1496
  msgstr ""
1497
 
1498
- #: admin/class-settings.php:784
1499
  msgid "Swaziland"
1500
  msgstr ""
1501
 
1502
- #: admin/class-settings.php:785
1503
  msgid "Sweden"
1504
  msgstr ""
1505
 
1506
- #: admin/class-settings.php:786
1507
  msgid "Switzerland"
1508
  msgstr ""
1509
 
1510
- #: admin/class-settings.php:787
1511
  msgid "Syria"
1512
  msgstr ""
1513
 
1514
- #: admin/class-settings.php:788
1515
  msgid "São Tomé & Príncipe"
1516
  msgstr ""
1517
 
1518
- #: admin/class-settings.php:789
1519
  msgid "Taiwan"
1520
  msgstr ""
1521
 
1522
- #: admin/class-settings.php:790
1523
  msgid "Tajikistan"
1524
  msgstr ""
1525
 
1526
- #: admin/class-settings.php:791
1527
  msgid "Tanzania"
1528
  msgstr ""
1529
 
1530
- #: admin/class-settings.php:792
1531
  msgid "Thailand"
1532
  msgstr ""
1533
 
1534
- #: admin/class-settings.php:793
1535
  msgid "Timor-Leste"
1536
  msgstr ""
1537
 
1538
- #: admin/class-settings.php:794 admin/class-settings.php:796
1539
  msgid "Tokelau"
1540
  msgstr ""
1541
 
1542
- #: admin/class-settings.php:795
1543
  msgid "Togo"
1544
  msgstr ""
1545
 
1546
- #: admin/class-settings.php:797
1547
  msgid "Tonga"
1548
  msgstr ""
1549
 
1550
- #: admin/class-settings.php:798
1551
  msgid "Trinidad and Tobago"
1552
  msgstr ""
1553
 
1554
- #: admin/class-settings.php:799
1555
  msgid "Tristan da Cunha"
1556
  msgstr ""
1557
 
1558
- #: admin/class-settings.php:800
1559
  msgid "Tunisia"
1560
  msgstr ""
1561
 
1562
- #: admin/class-settings.php:801
1563
  msgid "Turkey"
1564
  msgstr ""
1565
 
1566
- #: admin/class-settings.php:802
1567
  msgid "Turkmenistan"
1568
  msgstr ""
1569
 
1570
- #: admin/class-settings.php:803
1571
  msgid "Turks and Caicos Islands"
1572
  msgstr ""
1573
 
1574
- #: admin/class-settings.php:804
1575
  msgid "Tuvalu"
1576
  msgstr ""
1577
 
1578
- #: admin/class-settings.php:805
1579
  msgid "Uganda"
1580
  msgstr ""
1581
 
1582
- #: admin/class-settings.php:806
1583
  msgid "Ukraine"
1584
  msgstr ""
1585
 
1586
- #: admin/class-settings.php:807
1587
  msgid "United Arab Emirates"
1588
  msgstr ""
1589
 
1590
- #: admin/class-settings.php:808
1591
  msgid "United Kingdom"
1592
  msgstr ""
1593
 
1594
- #: admin/class-settings.php:809
1595
  msgid "United States"
1596
  msgstr ""
1597
 
1598
- #: admin/class-settings.php:810
1599
  msgid "Uruguay"
1600
  msgstr ""
1601
 
1602
- #: admin/class-settings.php:811
1603
  msgid "Uzbekistan"
1604
  msgstr ""
1605
 
1606
- #: admin/class-settings.php:812
1607
  msgid "Vanuatu"
1608
  msgstr ""
1609
 
1610
- #: admin/class-settings.php:813
1611
  msgid "Vatican City"
1612
  msgstr ""
1613
 
1614
- #: admin/class-settings.php:814
1615
  msgid "Venezuela"
1616
  msgstr ""
1617
 
1618
- #: admin/class-settings.php:815
1619
  msgid "Vietnam"
1620
  msgstr ""
1621
 
1622
- #: admin/class-settings.php:816
1623
  msgid "Wallis Futuna"
1624
  msgstr ""
1625
 
1626
- #: admin/class-settings.php:817
1627
  msgid "Western Sahara"
1628
  msgstr ""
1629
 
1630
- #: admin/class-settings.php:818
1631
  msgid "Yemen"
1632
  msgstr ""
1633
 
1634
- #: admin/class-settings.php:819
1635
  msgid "Zambia"
1636
  msgstr ""
1637
 
1638
- #: admin/class-settings.php:820
1639
  msgid "Zimbabwe"
1640
  msgstr ""
1641
 
1642
- #: admin/class-settings.php:821
1643
  msgid "Åland Islands"
1644
  msgstr ""
1645
 
1646
- #: admin/class-settings.php:864
1647
  msgid "World view"
1648
  msgstr ""
1649
 
1650
- #: admin/class-settings.php:867 admin/class-settings.php:981
1651
- #: inc/wpsl-functions.php:222
1652
  msgid "Default"
1653
  msgstr ""
1654
 
1655
- #: admin/class-settings.php:870 inc/wpsl-functions.php:295
1656
  msgid "Roadmap"
1657
  msgstr ""
1658
 
1659
- #: admin/class-settings.php:1011
1660
  msgid "Start location marker"
1661
  msgstr ""
1662
 
1663
- #: admin/class-settings.php:1013
1664
  msgid "Store location marker"
1665
  msgstr ""
1666
 
1667
- #: admin/class-settings.php:1093
1668
  msgid "Textarea"
1669
  msgstr ""
1670
 
1671
- #: admin/class-settings.php:1094
1672
  msgid "Dropdowns (recommended)"
1673
  msgstr ""
1674
 
1675
- #: admin/class-settings.php:1102
1676
  msgid "Bounces up and down"
1677
  msgstr ""
1678
 
1679
- #: admin/class-settings.php:1103
1680
  msgid "Will open the info window"
1681
  msgstr ""
1682
 
1683
- #: admin/class-settings.php:1104
1684
  msgid "Does not respond"
1685
  msgstr ""
1686
 
1687
- #: admin/class-settings.php:1112
1688
  msgid "In the store listings"
1689
  msgstr ""
1690
 
1691
- #: admin/class-settings.php:1113
1692
  msgid "In the info window on the map"
1693
  msgstr ""
1694
 
1695
- #: admin/class-settings.php:1145 admin/class-shortcode-generator.php:263
1696
  msgid "Dropdown"
1697
  msgstr ""
1698
 
1699
- #: admin/class-settings.php:1146 admin/class-shortcode-generator.php:264
1700
  msgid "Checkboxes"
1701
  msgstr ""
1702
 
1703
- #: admin/class-settings.php:1178
1704
  msgid "12 Hours"
1705
  msgstr ""
1706
 
1707
- #: admin/class-settings.php:1179
1708
  msgid "24 Hours"
1709
  msgstr ""
1710
 
@@ -1729,7 +1729,7 @@ msgstr ""
1729
  msgid "General Options"
1730
  msgstr ""
1731
 
1732
- #: admin/class-shortcode-generator.php:234 admin/templates/map-settings.php:376
1733
  msgid "Markers"
1734
  msgstr ""
1735
 
@@ -1737,7 +1737,7 @@ msgstr ""
1737
  msgid "Select the used template"
1738
  msgstr ""
1739
 
1740
- #: admin/class-shortcode-generator.php:244 admin/templates/map-settings.php:203
1741
  msgid "Start point"
1742
  msgstr ""
1743
 
@@ -1747,11 +1747,11 @@ msgid ""
1747
  "If nothing it set, then the start point from the %ssettings%s page is used."
1748
  msgstr ""
1749
 
1750
- #: admin/class-shortcode-generator.php:249 admin/templates/map-settings.php:189
1751
  msgid "Attempt to auto-locate the user"
1752
  msgstr ""
1753
 
1754
- #: admin/class-shortcode-generator.php:249 admin/templates/map-settings.php:189
1755
  #, php-format
1756
  msgid ""
1757
  "Most modern browsers %srequire%s a HTTPS connection before the Geolocation "
@@ -1786,7 +1786,7 @@ msgstr ""
1786
  msgid "Set selected checkboxes"
1787
  msgstr ""
1788
 
1789
- #: admin/class-shortcode-generator.php:341 admin/templates/map-settings.php:241
1790
  msgid "Map type"
1791
  msgstr ""
1792
 
@@ -1835,10 +1835,10 @@ msgid "Deactivate License"
1835
  msgstr ""
1836
 
1837
  #: admin/templates/map-settings.php:85 admin/templates/map-settings.php:124
1838
- #: admin/templates/map-settings.php:176 admin/templates/map-settings.php:259
1839
- #: admin/templates/map-settings.php:366 admin/templates/map-settings.php:394
1840
- #: admin/templates/map-settings.php:444 admin/templates/map-settings.php:472
1841
- #: admin/templates/map-settings.php:584 admin/templates/map-settings.php:609
1842
  msgid "Save Changes"
1843
  msgstr ""
1844
 
@@ -1903,9 +1903,9 @@ msgid ""
1903
  "restrictions with %sthis%s filter."
1904
  msgstr ""
1905
 
1906
- #: admin/templates/map-settings.php:134 admin/templates/map-settings.php:508
1907
- #: admin/templates/map-settings.php:509 frontend/templates/default.php:44
1908
- #: frontend/templates/store-listings-below.php:44 inc/wpsl-functions.php:139
1909
  msgid "Search"
1910
  msgstr ""
1911
 
@@ -1913,59 +1913,79 @@ msgstr ""
1913
  msgid "Enable autocomplete?"
1914
  msgstr ""
1915
 
1916
- #: admin/templates/map-settings.php:141
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1917
  msgid "Show the max results dropdown?"
1918
  msgstr ""
1919
 
1920
- #: admin/templates/map-settings.php:145
1921
  msgid "Show the search radius dropdown?"
1922
  msgstr ""
1923
 
1924
- #: admin/templates/map-settings.php:149
1925
  msgid "Enable category filters?"
1926
  msgstr ""
1927
 
1928
- #: admin/templates/map-settings.php:154
1929
  msgid "Filter type:"
1930
  msgstr ""
1931
 
1932
- #: admin/templates/map-settings.php:159
1933
  msgid "Distance unit"
1934
  msgstr ""
1935
 
1936
- #: admin/templates/map-settings.php:162
1937
  msgid "km"
1938
  msgstr ""
1939
 
1940
- #: admin/templates/map-settings.php:164
1941
  msgid "mi"
1942
  msgstr ""
1943
 
1944
- #: admin/templates/map-settings.php:168
1945
  msgid "Max search results"
1946
  msgstr ""
1947
 
1948
- #: admin/templates/map-settings.php:168 admin/templates/map-settings.php:172
1949
  msgid "The default value is set between the [ ]."
1950
  msgstr ""
1951
 
1952
- #: admin/templates/map-settings.php:172
1953
  msgid "Search radius options"
1954
  msgstr ""
1955
 
1956
- #: admin/templates/map-settings.php:186
1957
  msgid "Map"
1958
  msgstr ""
1959
 
1960
- #: admin/templates/map-settings.php:193
1961
  msgid "Load locations on page load"
1962
  msgstr ""
1963
 
1964
- #: admin/templates/map-settings.php:198
1965
  msgid "Number of locations to show"
1966
  msgstr ""
1967
 
1968
- #: admin/templates/map-settings.php:198
1969
  #, php-format
1970
  msgid ""
1971
  "Although the location data is cached after the first load, a lower number "
@@ -1973,7 +1993,7 @@ msgid ""
1973
  "or set to 0, then all locations are loaded."
1974
  msgstr ""
1975
 
1976
- #: admin/templates/map-settings.php:203
1977
  #, php-format
1978
  msgid ""
1979
  "%sRequired field.%s %s If auto-locating the user is disabled or fails, the "
@@ -1981,25 +2001,25 @@ msgid ""
1981
  "point for the user."
1982
  msgstr ""
1983
 
1984
- #: admin/templates/map-settings.php:208
1985
  msgid "Auto adjust the zoom level to make sure all markers are visible?"
1986
  msgstr ""
1987
 
1988
- #: admin/templates/map-settings.php:208
1989
  msgid ""
1990
  "This runs after a search is made, and makes sure all the returned locations "
1991
  "are visible in the viewport."
1992
  msgstr ""
1993
 
1994
- #: admin/templates/map-settings.php:212
1995
  msgid "Initial zoom level"
1996
  msgstr ""
1997
 
1998
- #: admin/templates/map-settings.php:216
1999
  msgid "Max auto zoom level"
2000
  msgstr ""
2001
 
2002
- #: admin/templates/map-settings.php:216
2003
  #, php-format
2004
  msgid ""
2005
  "This value sets the zoom level for the \"Zoom here\" link in the info "
@@ -2007,41 +2027,41 @@ msgid ""
2007
  "is changed to make all the markers fit on the screen."
2008
  msgstr ""
2009
 
2010
- #: admin/templates/map-settings.php:220
2011
  msgid "Show the street view controls?"
2012
  msgstr ""
2013
 
2014
- #: admin/templates/map-settings.php:224
2015
  msgid "Show the map type control?"
2016
  msgstr ""
2017
 
2018
- #: admin/templates/map-settings.php:228
2019
  msgid "Enable scroll wheel zooming?"
2020
  msgstr ""
2021
 
2022
- #: admin/templates/map-settings.php:232
2023
  msgid "Zoom control position"
2024
  msgstr ""
2025
 
2026
- #: admin/templates/map-settings.php:235
2027
  msgid "Left"
2028
  msgstr ""
2029
 
2030
- #: admin/templates/map-settings.php:237
2031
  msgid "Right"
2032
  msgstr ""
2033
 
2034
- #: admin/templates/map-settings.php:245
2035
  msgid "Map style"
2036
  msgstr ""
2037
 
2038
- #: admin/templates/map-settings.php:245
2039
  msgid ""
2040
  "Custom map styles only work if the map type is set to \"Roadmap\" or "
2041
  "\"Terrain\"."
2042
  msgstr ""
2043
 
2044
- #: admin/templates/map-settings.php:248
2045
  #, php-format
2046
  msgid ""
2047
  "You can use existing map styles from %sSnazzy Maps%s or %sMap Stylr%s and "
@@ -2049,121 +2069,121 @@ msgid ""
2049
  "through the %sMap Style Editor%s or %sStyled Maps Wizard%s."
2050
  msgstr ""
2051
 
2052
- #: admin/templates/map-settings.php:249
2053
  #, php-format
2054
  msgid ""
2055
  "If you like to write the style code yourself, then you can find the "
2056
  "documentation from Google %shere%s."
2057
  msgstr ""
2058
 
2059
- #: admin/templates/map-settings.php:251
2060
  msgid "Preview Map Style"
2061
  msgstr ""
2062
 
2063
- #: admin/templates/map-settings.php:255
2064
  msgid "Show credits?"
2065
  msgstr ""
2066
 
2067
- #: admin/templates/map-settings.php:255
2068
  msgid ""
2069
  "This will place a \"Search provided by WP Store Locator\" backlink below the "
2070
  "map."
2071
  msgstr ""
2072
 
2073
- #: admin/templates/map-settings.php:269
2074
  msgid "User Experience"
2075
  msgstr ""
2076
 
2077
- #: admin/templates/map-settings.php:272
2078
  msgid "Store Locator height"
2079
  msgstr ""
2080
 
2081
- #: admin/templates/map-settings.php:276
2082
  msgid "Max width for the info window content"
2083
  msgstr ""
2084
 
2085
- #: admin/templates/map-settings.php:280
2086
  msgid "Search field width"
2087
  msgstr ""
2088
 
2089
- #: admin/templates/map-settings.php:284
2090
  msgid "Search and radius label width"
2091
  msgstr ""
2092
 
2093
- #: admin/templates/map-settings.php:288
2094
  msgid "Store Locator template"
2095
  msgstr ""
2096
 
2097
- #: admin/templates/map-settings.php:288
2098
  #, php-format
2099
  msgid ""
2100
  "The selected template is used with the [wpsl] shortcode. %s You can add a "
2101
  "custom template with the %swpsl_templates%s filter."
2102
  msgstr ""
2103
 
2104
- #: admin/templates/map-settings.php:292
2105
  msgid "Hide the scrollbar?"
2106
  msgstr ""
2107
 
2108
- #: admin/templates/map-settings.php:296
2109
  msgid "Open links in a new window?"
2110
  msgstr ""
2111
 
2112
- #: admin/templates/map-settings.php:300
2113
  msgid "Show a reset map button?"
2114
  msgstr ""
2115
 
2116
- #: admin/templates/map-settings.php:304
2117
  msgid ""
2118
  "When a user clicks on \"Directions\", open a new window, and show the route "
2119
  "on google.com/maps ?"
2120
  msgstr ""
2121
 
2122
- #: admin/templates/map-settings.php:308
2123
  msgid "Show a \"More info\" link in the store listings?"
2124
  msgstr ""
2125
 
2126
- #: admin/templates/map-settings.php:308
2127
  msgid ""
2128
  "This places a \"More Info\" link below the address and will show the phone, "
2129
  "fax, email, opening hours and description once the link is clicked."
2130
  msgstr ""
2131
 
2132
- #: admin/templates/map-settings.php:313
2133
  msgid "Where do you want to show the \"More info\" details?"
2134
  msgstr ""
2135
 
2136
- #: admin/templates/map-settings.php:318
2137
  msgid ""
2138
  "Always show the contact details below the address in the search results?"
2139
  msgstr ""
2140
 
2141
- #: admin/templates/map-settings.php:322
2142
  msgid "Make the contact details always clickable?"
2143
  msgstr ""
2144
 
2145
- #: admin/templates/map-settings.php:326
2146
  msgid "Make the store name clickable if a store URL exists?"
2147
  msgstr ""
2148
 
2149
- #: admin/templates/map-settings.php:326
2150
  #, php-format
2151
  msgid ""
2152
  "If %spermalinks%s are enabled, the store name will always link to the store "
2153
  "page."
2154
  msgstr ""
2155
 
2156
- #: admin/templates/map-settings.php:330
2157
  msgid "Make the phone number clickable on mobile devices?"
2158
  msgstr ""
2159
 
2160
- #: admin/templates/map-settings.php:334
2161
  msgid ""
2162
  "If street view is available for the current location, then show a \"Street "
2163
  "view\" link in the info window?"
2164
  msgstr ""
2165
 
2166
- #: admin/templates/map-settings.php:334
2167
  #, php-format
2168
  msgid ""
2169
  "Enabling this option can sometimes result in a small delay in the opening of "
@@ -2171,22 +2191,22 @@ msgid ""
2171
  "Maps to check if street view is available for the current location."
2172
  msgstr ""
2173
 
2174
- #: admin/templates/map-settings.php:338
2175
  msgid "Show a \"Zoom here\" link in the info window?"
2176
  msgstr ""
2177
 
2178
- #: admin/templates/map-settings.php:338
2179
  #, php-format
2180
  msgid ""
2181
  "Clicking this link will make the map zoom in to the %s max auto zoom level "
2182
  "%s."
2183
  msgstr ""
2184
 
2185
- #: admin/templates/map-settings.php:342
2186
  msgid "On page load move the mouse cursor to the search field?"
2187
  msgstr ""
2188
 
2189
- #: admin/templates/map-settings.php:342
2190
  #, php-format
2191
  msgid ""
2192
  "If the store locator is not placed at the top of the page, enabling this "
@@ -2194,11 +2214,11 @@ msgid ""
2194
  "on mobile devices.%s"
2195
  msgstr ""
2196
 
2197
- #: admin/templates/map-settings.php:346
2198
  msgid "Use the default style for the info window?"
2199
  msgstr ""
2200
 
2201
- #: admin/templates/map-settings.php:346
2202
  #, php-format
2203
  msgid ""
2204
  "If the default style is disabled the %sInfoBox%s library will be used "
@@ -2206,19 +2226,19 @@ msgid ""
2206
  "window through the .wpsl-infobox css class."
2207
  msgstr ""
2208
 
2209
- #: admin/templates/map-settings.php:350
2210
  msgid "Hide the country in the search results?"
2211
  msgstr ""
2212
 
2213
- #: admin/templates/map-settings.php:354
2214
  msgid "Hide the distance in the search results?"
2215
  msgstr ""
2216
 
2217
- #: admin/templates/map-settings.php:358
2218
  msgid "If a user hovers over the search results the store marker"
2219
  msgstr ""
2220
 
2221
- #: admin/templates/map-settings.php:358
2222
  #, php-format
2223
  msgid ""
2224
  "If marker clusters are enabled this option will not work as expected as long "
@@ -2228,274 +2248,286 @@ msgid ""
2228
  "it won't be clear to which marker it belongs to. "
2229
  msgstr ""
2230
 
2231
- #: admin/templates/map-settings.php:362
2232
  msgid "Address format"
2233
  msgstr ""
2234
 
2235
- #: admin/templates/map-settings.php:362
2236
  #, php-format
2237
  msgid ""
2238
  "You can add custom address formats with the %swpsl_address_formats%s filter."
2239
  msgstr ""
2240
 
2241
- #: admin/templates/map-settings.php:380
2242
  msgid "Enable marker clusters?"
2243
  msgstr ""
2244
 
2245
- #: admin/templates/map-settings.php:380
2246
  msgid "Recommended for maps with a large amount of markers."
2247
  msgstr ""
2248
 
2249
- #: admin/templates/map-settings.php:385
2250
  msgid "Max zoom level"
2251
  msgstr ""
2252
 
2253
- #: admin/templates/map-settings.php:385
2254
  msgid ""
2255
  "If this zoom level is reached or exceeded, then all markers are moved out of "
2256
  "the marker cluster and shown as individual markers."
2257
  msgstr ""
2258
 
2259
- #: admin/templates/map-settings.php:389
2260
  msgid "Cluster size"
2261
  msgstr ""
2262
 
2263
- #: admin/templates/map-settings.php:389
2264
  #, php-format
2265
  msgid ""
2266
  "The grid size of a cluster in pixels. %s A larger number will result in a "
2267
  "lower amount of clusters and also make the algorithm run faster."
2268
  msgstr ""
2269
 
2270
- #: admin/templates/map-settings.php:404
2271
  msgid "Store Editor"
2272
  msgstr ""
2273
 
2274
- #: admin/templates/map-settings.php:407
2275
  msgid "Default country"
2276
  msgstr ""
2277
 
2278
- #: admin/templates/map-settings.php:411
2279
  msgid "Map type for the location preview"
2280
  msgstr ""
2281
 
2282
- #: admin/templates/map-settings.php:415
2283
  msgid "Hide the opening hours?"
2284
  msgstr ""
2285
 
2286
- #: admin/templates/map-settings.php:421
2287
  msgid "Opening hours input type"
2288
  msgstr ""
2289
 
2290
- #: admin/templates/map-settings.php:425
2291
  #, php-format
2292
  msgid ""
2293
  "Opening hours created in version 1.x %sare not%s automatically converted to "
2294
  "the new dropdown format."
2295
  msgstr ""
2296
 
2297
- #: admin/templates/map-settings.php:428 admin/templates/map-settings.php:437
2298
  msgid "The default opening hours"
2299
  msgstr ""
2300
 
2301
- #: admin/templates/map-settings.php:434
2302
  msgid "Opening hours format"
2303
  msgstr ""
2304
 
2305
- #: admin/templates/map-settings.php:441
2306
  msgid ""
2307
  "The default country and opening hours are only used when a new store is "
2308
  "created. So changing the default values will have no effect on existing "
2309
  "store locations."
2310
  msgstr ""
2311
 
2312
- #: admin/templates/map-settings.php:454
2313
  msgid "Permalink"
2314
  msgstr ""
2315
 
2316
- #: admin/templates/map-settings.php:457
2317
  msgid "Enable permalink?"
2318
  msgstr ""
2319
 
2320
- #: admin/templates/map-settings.php:462
 
 
 
 
 
 
 
 
 
 
 
 
2321
  msgid "Store slug"
2322
  msgstr ""
2323
 
2324
- #: admin/templates/map-settings.php:466
2325
  msgid "Category slug"
2326
  msgstr ""
2327
 
2328
- #: admin/templates/map-settings.php:469
2329
  #, php-format
2330
  msgid "The permalink slugs %smust be unique%s on your site."
2331
  msgstr ""
2332
 
2333
- #: admin/templates/map-settings.php:482
2334
  msgid "Labels"
2335
  msgstr ""
2336
 
2337
- #: admin/templates/map-settings.php:491
2338
  #, php-format
2339
  msgid "%sWarning!%s %sWPML%s, or a plugin using the WPML API is active."
2340
  msgstr ""
2341
 
2342
- #: admin/templates/map-settings.php:492
2343
  msgid ""
2344
  "Please use the \"String Translations\" section in the used multilingual "
2345
  "plugin to change the labels. Changing them here will have no effect as long "
2346
  "as the multilingual plugin remains active."
2347
  msgstr ""
2348
 
2349
- #: admin/templates/map-settings.php:496 admin/templates/map-settings.php:497
2350
  #: frontend/templates/default.php:12
2351
- #: frontend/templates/store-listings-below.php:12 inc/wpsl-functions.php:138
2352
  msgid "Your location"
2353
  msgstr ""
2354
 
2355
- #: admin/templates/map-settings.php:500 admin/templates/map-settings.php:501
2356
  #: frontend/templates/default.php:21
2357
- #: frontend/templates/store-listings-below.php:21 inc/wpsl-functions.php:141
2358
  msgid "Search radius"
2359
  msgstr ""
2360
 
2361
- #: admin/templates/map-settings.php:504 admin/templates/map-settings.php:505
2362
- #: frontend/class-frontend.php:1818 inc/wpsl-functions.php:142
2363
  msgid "No results found"
2364
  msgstr ""
2365
 
2366
- #: admin/templates/map-settings.php:512
2367
  msgid "Searching (preloader text)"
2368
  msgstr ""
2369
 
2370
- #: admin/templates/map-settings.php:513 frontend/class-frontend.php:1817
2371
- #: inc/wpsl-functions.php:140
2372
  msgid "Searching..."
2373
  msgstr ""
2374
 
2375
- #: admin/templates/map-settings.php:516 admin/templates/map-settings.php:517
2376
  #: frontend/templates/default.php:30
2377
- #: frontend/templates/store-listings-below.php:30 inc/wpsl-functions.php:143
2378
  msgid "Results"
2379
  msgstr ""
2380
 
2381
- #: admin/templates/map-settings.php:520 admin/upgrade.php:206
2382
- #: inc/wpsl-functions.php:157
2383
  msgid "Category filter"
2384
  msgstr ""
2385
 
2386
- #: admin/templates/map-settings.php:521 frontend/class-frontend.php:1411
2387
  msgid "Category"
2388
  msgstr ""
2389
 
2390
- #: admin/templates/map-settings.php:524
2391
  msgid "Category first item"
2392
  msgstr ""
2393
 
2394
- #: admin/templates/map-settings.php:525 admin/upgrade.php:367
2395
- #: frontend/class-frontend.php:1414 inc/wpsl-functions.php:158
2396
  msgid "Any"
2397
  msgstr ""
2398
 
2399
- #: admin/templates/map-settings.php:528 admin/templates/map-settings.php:529
2400
- #: admin/upgrade.php:59 frontend/class-frontend.php:1819
2401
  #: frontend/underscore-functions.php:138 frontend/underscore-functions.php:168
2402
- #: inc/wpsl-functions.php:144
2403
  msgid "More info"
2404
  msgstr ""
2405
 
2406
- #: admin/templates/map-settings.php:532 admin/templates/map-settings.php:533
2407
  #: frontend/class-frontend.php:828 frontend/underscore-functions.php:29
2408
  #: frontend/underscore-functions.php:65 frontend/underscore-functions.php:147
2409
- #: inc/wpsl-functions.php:152
2410
  msgid "Phone"
2411
  msgstr ""
2412
 
2413
- #: admin/templates/map-settings.php:552 admin/templates/map-settings.php:553
2414
- #: frontend/class-frontend.php:1824 inc/wpsl-functions.php:137
2415
  msgid "Start location"
2416
  msgstr ""
2417
 
2418
- #: admin/templates/map-settings.php:556
2419
  msgid "Get directions"
2420
  msgstr ""
2421
 
2422
- #: admin/templates/map-settings.php:557 frontend/class-frontend.php:861
2423
- #: frontend/class-frontend.php:1822 inc/wpsl-functions.php:145
2424
  msgid "Directions"
2425
  msgstr ""
2426
 
2427
- #: admin/templates/map-settings.php:560
2428
  msgid "No directions found"
2429
  msgstr ""
2430
 
2431
- #: admin/templates/map-settings.php:561 admin/upgrade.php:151
2432
- #: frontend/class-frontend.php:1823 inc/wpsl-functions.php:146
2433
  msgid "No route could be found between the origin and destination"
2434
  msgstr ""
2435
 
2436
- #: admin/templates/map-settings.php:564 admin/templates/map-settings.php:565
2437
- #: admin/upgrade.php:77 frontend/class-frontend.php:1825
2438
- #: inc/wpsl-functions.php:147
2439
  msgid "Back"
2440
  msgstr ""
2441
 
2442
- #: admin/templates/map-settings.php:568 admin/templates/map-settings.php:569
2443
- #: admin/upgrade.php:143 frontend/class-frontend.php:1826
2444
- #: inc/wpsl-functions.php:148
2445
  msgid "Street view"
2446
  msgstr ""
2447
 
2448
- #: admin/templates/map-settings.php:572 admin/templates/map-settings.php:573
2449
- #: admin/upgrade.php:147 frontend/class-frontend.php:1827
2450
- #: inc/wpsl-functions.php:149
2451
  msgid "Zoom here"
2452
  msgstr ""
2453
 
2454
- #: admin/templates/map-settings.php:576
2455
  msgid "General error"
2456
  msgstr ""
2457
 
2458
- #: admin/templates/map-settings.php:577 frontend/class-frontend.php:1820
2459
- #: inc/wpsl-functions.php:150
2460
  msgid "Something went wrong, please try again!"
2461
  msgstr ""
2462
 
2463
- #: admin/templates/map-settings.php:580
2464
  msgid "Query limit error"
2465
  msgstr ""
2466
 
2467
- #: admin/templates/map-settings.php:580
2468
  #, php-format
2469
  msgid ""
2470
  "You can raise the %susage limit%s by obtaining an API %skey%s, and fill in "
2471
  "the \"API key\" field at the top of this page."
2472
  msgstr ""
2473
 
2474
- #: admin/templates/map-settings.php:581 frontend/class-frontend.php:1821
2475
- #: inc/wpsl-functions.php:151
2476
  msgid "API usage limit reached"
2477
  msgstr ""
2478
 
2479
- #: admin/templates/map-settings.php:594
2480
  msgid "Tools"
2481
  msgstr ""
2482
 
2483
- #: admin/templates/map-settings.php:597
2484
  msgid "Enable store locator debug?"
2485
  msgstr ""
2486
 
2487
- #: admin/templates/map-settings.php:597
2488
  #, php-format
2489
  msgid ""
2490
  "This disables the WPSL transient cache. %sThe transient cache is only used "
2491
  "if the %sLoad locations on page load%s option is enabled."
2492
  msgstr ""
2493
 
2494
- #: admin/templates/map-settings.php:601
2495
  msgid "Enable compatibility mode?"
2496
  msgstr ""
2497
 
2498
- #: admin/templates/map-settings.php:601
2499
  #, php-format
2500
  msgid ""
2501
  "If the %sbrowser console%s shows the error below, then enabling this option "
@@ -2504,11 +2536,11 @@ msgid ""
2504
  "situations break the store locator map."
2505
  msgstr ""
2506
 
2507
- #: admin/templates/map-settings.php:605
2508
  msgid "WPSL transients"
2509
  msgstr ""
2510
 
2511
- #: admin/templates/map-settings.php:606
2512
  msgid "Clear store locator transient cache"
2513
  msgstr ""
2514
 
@@ -2520,22 +2552,22 @@ msgstr ""
2520
  msgid "Reset"
2521
  msgstr ""
2522
 
2523
- #: admin/upgrade.php:174 inc/wpsl-functions.php:131
2524
  msgid "stores"
2525
  msgstr ""
2526
 
2527
- #: admin/upgrade.php:178 inc/wpsl-functions.php:132
2528
  msgid "store-category"
2529
  msgstr ""
2530
 
2531
- #: admin/upgrade.php:436
2532
  #, php-format
2533
  msgid ""
2534
  "Because you updated WP Store Locator from version 1.x, the %s current store "
2535
  "locations need to be %sconverted%s to custom post types."
2536
  msgstr ""
2537
 
2538
- #: admin/upgrade.php:457
2539
  #, php-format
2540
  msgid ""
2541
  "The script converting the locations timed out. %s You can click the \"Start "
@@ -2546,15 +2578,15 @@ msgid ""
2546
  "but if you are reading this then that failed."
2547
  msgstr ""
2548
 
2549
- #: admin/upgrade.php:478
2550
  msgid "Store locations to convert:"
2551
  msgstr ""
2552
 
2553
- #: admin/upgrade.php:480
2554
  msgid "Start Converting"
2555
  msgstr ""
2556
 
2557
- #: admin/upgrade.php:602
2558
  #, php-format
2559
  msgid ""
2560
  "All the store locations are now converted to custom post types. %s You can "
@@ -2601,91 +2633,91 @@ msgstr ""
2601
  msgid "Search provided by %sWP Store Locator%s"
2602
  msgstr ""
2603
 
2604
- #: inc/class-post-types.php:52
2605
  msgid "Store Locator"
2606
  msgstr ""
2607
 
2608
- #: inc/class-post-types.php:53
2609
  msgid "All Stores"
2610
  msgstr ""
2611
 
2612
- #: inc/class-post-types.php:54
2613
  msgid "Store"
2614
  msgstr ""
2615
 
2616
- #: inc/class-post-types.php:55 inc/class-post-types.php:58
2617
  msgid "New Store"
2618
  msgstr ""
2619
 
2620
- #: inc/class-post-types.php:56
2621
  msgid "Add New Store"
2622
  msgstr ""
2623
 
2624
- #: inc/class-post-types.php:57
2625
  msgid "Edit Store"
2626
  msgstr ""
2627
 
2628
- #: inc/class-post-types.php:59
2629
  msgid "View Stores"
2630
  msgstr ""
2631
 
2632
- #: inc/class-post-types.php:60
2633
  msgid "Search Stores"
2634
  msgstr ""
2635
 
2636
- #: inc/class-post-types.php:61
2637
  msgid "No Stores found"
2638
  msgstr ""
2639
 
2640
- #: inc/class-post-types.php:62
2641
  msgid "No Stores found in trash"
2642
  msgstr ""
2643
 
2644
- #: inc/class-post-types.php:105 inc/class-post-types.php:115
2645
  msgid "Store Categories"
2646
  msgstr ""
2647
 
2648
- #: inc/class-post-types.php:106
2649
  msgid "Store Category"
2650
  msgstr ""
2651
 
2652
- #: inc/class-post-types.php:107
2653
  msgid "Search Store Categories"
2654
  msgstr ""
2655
 
2656
- #: inc/class-post-types.php:108
2657
  msgid "All Store Categories"
2658
  msgstr ""
2659
 
2660
- #: inc/class-post-types.php:109
2661
  msgid "Parent Store Category"
2662
  msgstr ""
2663
 
2664
- #: inc/class-post-types.php:110
2665
  msgid "Parent Store Category:"
2666
  msgstr ""
2667
 
2668
- #: inc/class-post-types.php:111
2669
  msgid "Edit Store Category"
2670
  msgstr ""
2671
 
2672
- #: inc/class-post-types.php:112
2673
  msgid "Update Store Category"
2674
  msgstr ""
2675
 
2676
- #: inc/class-post-types.php:113
2677
  msgid "Add New Store Category"
2678
  msgstr ""
2679
 
2680
- #: inc/class-post-types.php:114
2681
  msgid "New Store Category Name"
2682
  msgstr ""
2683
 
2684
- #: inc/class-post-types.php:145
2685
  msgid "Enter store title here"
2686
  msgstr ""
2687
 
2688
- #: inc/class-post-types.php:163
2689
  msgid "Zip"
2690
  msgstr ""
2691
 
@@ -2701,75 +2733,75 @@ msgid ""
2701
  "parameters."
2702
  msgstr ""
2703
 
2704
- #: inc/wpsl-functions.php:227
2705
  msgid "Show the store list below the map"
2706
  msgstr ""
2707
 
2708
- #: inc/wpsl-functions.php:244
2709
  msgid "Monday"
2710
  msgstr ""
2711
 
2712
- #: inc/wpsl-functions.php:245
2713
  msgid "Tuesday"
2714
  msgstr ""
2715
 
2716
- #: inc/wpsl-functions.php:246
2717
  msgid "Wednesday"
2718
  msgstr ""
2719
 
2720
- #: inc/wpsl-functions.php:247
2721
  msgid "Thursday"
2722
  msgstr ""
2723
 
2724
- #: inc/wpsl-functions.php:248
2725
  msgid "Friday"
2726
  msgstr ""
2727
 
2728
- #: inc/wpsl-functions.php:249
2729
  msgid "Saturday"
2730
  msgstr ""
2731
 
2732
- #: inc/wpsl-functions.php:250
2733
  msgid "Sunday"
2734
  msgstr ""
2735
 
2736
- #: inc/wpsl-functions.php:280
2737
  #, php-format
2738
  msgid "Mon %sTue %sWed %sThu %sFri %sSat Closed %sSun Closed"
2739
  msgstr ""
2740
 
2741
- #: inc/wpsl-functions.php:296
2742
  msgid "Satellite"
2743
  msgstr ""
2744
 
2745
- #: inc/wpsl-functions.php:297
2746
  msgid "Hybrid"
2747
  msgstr ""
2748
 
2749
- #: inc/wpsl-functions.php:298
2750
  msgid "Terrain"
2751
  msgstr ""
2752
 
2753
- #: inc/wpsl-functions.php:313
2754
  msgid "(city) (state) (zip code)"
2755
  msgstr ""
2756
 
2757
- #: inc/wpsl-functions.php:314
2758
  msgid "(city), (state) (zip code)"
2759
  msgstr ""
2760
 
2761
- #: inc/wpsl-functions.php:315
2762
  msgid "(city) (zip code)"
2763
  msgstr ""
2764
 
2765
- #: inc/wpsl-functions.php:316
2766
  msgid "(city), (zip code)"
2767
  msgstr ""
2768
 
2769
- #: inc/wpsl-functions.php:317
2770
  msgid "(zip code) (city) (state)"
2771
  msgstr ""
2772
 
2773
- #: inc/wpsl-functions.php:318
2774
  msgid "(zip code) (city)"
2775
  msgstr ""
1
  #, fuzzy
2
  msgid ""
3
  msgstr ""
4
+ "Project-Id-Version: WP Store Locator v2.2.20\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2018-12-26 14:02+0700\n"
7
  "PO-Revision-Date: 2015-09-01 13:49+0100\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
57
  msgid "Geocode was not successful for the following reason"
58
  msgstr ""
59
 
60
+ #: admin/class-admin.php:297 admin/upgrade.php:465
61
  msgid "Security check failed, reload the page and try again."
62
  msgstr ""
63
 
231
  msgid "Location"
232
  msgstr ""
233
 
234
+ #: admin/class-metaboxes.php:59 inc/class-post-types.php:186
235
  msgid "Address"
236
  msgstr ""
237
 
239
  msgid "Address 2"
240
  msgstr ""
241
 
242
+ #: admin/class-metaboxes.php:66 inc/class-post-types.php:187
243
  msgid "City"
244
  msgstr ""
245
 
246
+ #: admin/class-metaboxes.php:70 inc/class-post-types.php:188
247
  msgid "State"
248
  msgstr ""
249
 
268
  msgid "Opening Hours"
269
  msgstr ""
270
 
271
+ #: admin/class-metaboxes.php:91 admin/templates/map-settings.php:564
272
+ #: admin/templates/map-settings.php:565 frontend/underscore-functions.php:160
273
+ #: inc/wpsl-functions.php:158
274
  msgid "Hours"
275
  msgstr ""
276
 
282
  msgid "Tel"
283
  msgstr ""
284
 
285
+ #: admin/class-metaboxes.php:100 admin/templates/map-settings.php:552
286
+ #: admin/templates/map-settings.php:553 frontend/class-frontend.php:832
287
  #: frontend/underscore-functions.php:32 frontend/underscore-functions.php:68
288
+ #: frontend/underscore-functions.php:150 inc/wpsl-functions.php:155
289
  msgid "Fax"
290
  msgstr ""
291
 
292
+ #: admin/class-metaboxes.php:103 admin/templates/map-settings.php:556
293
+ #: admin/templates/map-settings.php:557 admin/upgrade.php:198
294
  #: frontend/class-frontend.php:836 frontend/underscore-functions.php:35
295
  #: frontend/underscore-functions.php:71 frontend/underscore-functions.php:153
296
+ #: inc/wpsl-functions.php:156
297
  msgid "Email"
298
  msgstr ""
299
 
300
+ #: admin/class-metaboxes.php:106 admin/templates/map-settings.php:560
301
+ #: admin/templates/map-settings.php:561 admin/upgrade.php:202
302
+ #: frontend/class-frontend.php:841 inc/wpsl-functions.php:157
303
  msgid "Url"
304
  msgstr ""
305
 
392
  msgid "WP Store Locator Transients Cleared"
393
  msgstr ""
394
 
395
+ #: admin/class-settings.php:371
396
  #, php-format
397
  msgid "There's a problem with the provided %sserver key%s. %s"
398
  msgstr ""
399
 
400
+ #: admin/class-settings.php:492
401
  msgid ""
402
  "The max results field cannot be empty, the default value has been restored."
403
  msgstr ""
404
 
405
+ #: admin/class-settings.php:495
406
  msgid ""
407
  "The search radius field cannot be empty, the default value has been restored."
408
  msgstr ""
409
 
410
+ #: admin/class-settings.php:498
411
  #, php-format
412
  msgid ""
413
  "Please provide the name of a city or country that can be used as a starting "
415
  "user fails, or the option itself is disabled."
416
  msgstr ""
417
 
418
+ #: admin/class-settings.php:519
419
  msgid "Select your language"
420
  msgstr ""
421
 
422
+ #: admin/class-settings.php:520
423
  msgid "English"
424
  msgstr ""
425
 
426
+ #: admin/class-settings.php:521
427
  msgid "Arabic"
428
  msgstr ""
429
 
430
+ #: admin/class-settings.php:522
431
  msgid "Basque"
432
  msgstr ""
433
 
434
+ #: admin/class-settings.php:523
435
  msgid "Bulgarian"
436
  msgstr ""
437
 
438
+ #: admin/class-settings.php:524
439
  msgid "Bengali"
440
  msgstr ""
441
 
442
+ #: admin/class-settings.php:525
443
  msgid "Catalan"
444
  msgstr ""
445
 
446
+ #: admin/class-settings.php:526
447
  msgid "Czech"
448
  msgstr ""
449
 
450
+ #: admin/class-settings.php:527
451
  msgid "Danish"
452
  msgstr ""
453
 
454
+ #: admin/class-settings.php:528
455
  msgid "German"
456
  msgstr ""
457
 
458
+ #: admin/class-settings.php:529
459
  msgid "Greek"
460
  msgstr ""
461
 
462
+ #: admin/class-settings.php:530
463
  msgid "English (Australian)"
464
  msgstr ""
465
 
466
+ #: admin/class-settings.php:531
467
  msgid "English (Great Britain)"
468
  msgstr ""
469
 
470
+ #: admin/class-settings.php:532
471
  msgid "Spanish"
472
  msgstr ""
473
 
474
+ #: admin/class-settings.php:533
475
  msgid "Farsi"
476
  msgstr ""
477
 
478
+ #: admin/class-settings.php:534
479
  msgid "Finnish"
480
  msgstr ""
481
 
482
+ #: admin/class-settings.php:535
483
  msgid "Filipino"
484
  msgstr ""
485
 
486
+ #: admin/class-settings.php:536
487
  msgid "French"
488
  msgstr ""
489
 
490
+ #: admin/class-settings.php:537
491
  msgid "Galician"
492
  msgstr ""
493
 
494
+ #: admin/class-settings.php:538
495
  msgid "Gujarati"
496
  msgstr ""
497
 
498
+ #: admin/class-settings.php:539
499
  msgid "Hindi"
500
  msgstr ""
501
 
502
+ #: admin/class-settings.php:540
503
  msgid "Croatian"
504
  msgstr ""
505
 
506
+ #: admin/class-settings.php:541
507
  msgid "Hungarian"
508
  msgstr ""
509
 
510
+ #: admin/class-settings.php:542
511
  msgid "Indonesian"
512
  msgstr ""
513
 
514
+ #: admin/class-settings.php:543
515
  msgid "Italian"
516
  msgstr ""
517
 
518
+ #: admin/class-settings.php:544
519
  msgid "Hebrew"
520
  msgstr ""
521
 
522
+ #: admin/class-settings.php:545
523
  msgid "Japanese"
524
  msgstr ""
525
 
526
+ #: admin/class-settings.php:546
527
  msgid "Kannada"
528
  msgstr ""
529
 
530
+ #: admin/class-settings.php:547
531
  msgid "Korean"
532
  msgstr ""
533
 
534
+ #: admin/class-settings.php:548
535
  msgid "Lithuanian"
536
  msgstr ""
537
 
538
+ #: admin/class-settings.php:549
539
  msgid "Latvian"
540
  msgstr ""
541
 
542
+ #: admin/class-settings.php:550
543
  msgid "Malayalam"
544
  msgstr ""
545
 
546
+ #: admin/class-settings.php:551
547
  msgid "Marathi"
548
  msgstr ""
549
 
550
+ #: admin/class-settings.php:552
551
  msgid "Dutch"
552
  msgstr ""
553
 
554
+ #: admin/class-settings.php:553
555
  msgid "Norwegian"
556
  msgstr ""
557
 
558
+ #: admin/class-settings.php:554
559
  msgid "Norwegian Nynorsk"
560
  msgstr ""
561
 
562
+ #: admin/class-settings.php:555
563
  msgid "Polish"
564
  msgstr ""
565
 
566
+ #: admin/class-settings.php:556
567
  msgid "Portuguese"
568
  msgstr ""
569
 
570
+ #: admin/class-settings.php:557
571
  msgid "Portuguese (Brazil)"
572
  msgstr ""
573
 
574
+ #: admin/class-settings.php:558
575
  msgid "Portuguese (Portugal)"
576
  msgstr ""
577
 
578
+ #: admin/class-settings.php:559
579
  msgid "Romanian"
580
  msgstr ""
581
 
582
+ #: admin/class-settings.php:560
583
  msgid "Russian"
584
  msgstr ""
585
 
586
+ #: admin/class-settings.php:561
587
  msgid "Slovak"
588
  msgstr ""
589
 
590
+ #: admin/class-settings.php:562
591
  msgid "Slovenian"
592
  msgstr ""
593
 
594
+ #: admin/class-settings.php:563
595
  msgid "Serbian"
596
  msgstr ""
597
 
598
+ #: admin/class-settings.php:564
599
  msgid "Swedish"
600
  msgstr ""
601
 
602
+ #: admin/class-settings.php:565
603
  msgid "Tagalog"
604
  msgstr ""
605
 
606
+ #: admin/class-settings.php:566
607
  msgid "Tamil"
608
  msgstr ""
609
 
610
+ #: admin/class-settings.php:567
611
  msgid "Telugu"
612
  msgstr ""
613
 
614
+ #: admin/class-settings.php:568
615
  msgid "Thai"
616
  msgstr ""
617
 
618
+ #: admin/class-settings.php:569
619
  msgid "Turkish"
620
  msgstr ""
621
 
622
+ #: admin/class-settings.php:570
623
  msgid "Ukrainian"
624
  msgstr ""
625
 
626
+ #: admin/class-settings.php:571
627
  msgid "Vietnamese"
628
  msgstr ""
629
 
630
+ #: admin/class-settings.php:572
631
  msgid "Chinese (Simplified)"
632
  msgstr ""
633
 
634
+ #: admin/class-settings.php:573
635
  msgid "Chinese (Traditional)"
636
  msgstr ""
637
 
638
+ #: admin/class-settings.php:578
639
  msgid "Select your region"
640
  msgstr ""
641
 
642
+ #: admin/class-settings.php:579
643
  msgid "Afghanistan"
644
  msgstr ""
645
 
646
+ #: admin/class-settings.php:580
647
  msgid "Albania"
648
  msgstr ""
649
 
650
+ #: admin/class-settings.php:581
651
  msgid "Algeria"
652
  msgstr ""
653
 
654
+ #: admin/class-settings.php:582
655
  msgid "American Samoa"
656
  msgstr ""
657
 
658
+ #: admin/class-settings.php:583
659
  msgid "Andorra"
660
  msgstr ""
661
 
662
+ #: admin/class-settings.php:584
663
  msgid "Angola"
664
  msgstr ""
665
 
666
+ #: admin/class-settings.php:585
667
  msgid "Anguilla"
668
  msgstr ""
669
 
670
+ #: admin/class-settings.php:586
671
  msgid "Antarctica"
672
  msgstr ""
673
 
674
+ #: admin/class-settings.php:587
675
  msgid "Antigua and Barbuda"
676
  msgstr ""
677
 
678
+ #: admin/class-settings.php:588
679
  msgid "Argentina"
680
  msgstr ""
681
 
682
+ #: admin/class-settings.php:589
683
  msgid "Armenia"
684
  msgstr ""
685
 
686
+ #: admin/class-settings.php:590
687
  msgid "Aruba"
688
  msgstr ""
689
 
690
+ #: admin/class-settings.php:591
691
  msgid "Ascension Island"
692
  msgstr ""
693
 
694
+ #: admin/class-settings.php:592
695
  msgid "Australia"
696
  msgstr ""
697
 
698
+ #: admin/class-settings.php:593
699
  msgid "Austria"
700
  msgstr ""
701
 
702
+ #: admin/class-settings.php:594
703
  msgid "Azerbaijan"
704
  msgstr ""
705
 
706
+ #: admin/class-settings.php:595
707
  msgid "Bahamas"
708
  msgstr ""
709
 
710
+ #: admin/class-settings.php:596
711
  msgid "Bahrain"
712
  msgstr ""
713
 
714
+ #: admin/class-settings.php:597
715
  msgid "Bangladesh"
716
  msgstr ""
717
 
718
+ #: admin/class-settings.php:598
719
  msgid "Barbados"
720
  msgstr ""
721
 
722
+ #: admin/class-settings.php:599
723
  msgid "Belarus"
724
  msgstr ""
725
 
726
+ #: admin/class-settings.php:600
727
  msgid "Belgium"
728
  msgstr ""
729
 
730
+ #: admin/class-settings.php:601
731
  msgid "Belize"
732
  msgstr ""
733
 
734
+ #: admin/class-settings.php:602
735
  msgid "Benin"
736
  msgstr ""
737
 
738
+ #: admin/class-settings.php:603
739
  msgid "Bermuda"
740
  msgstr ""
741
 
742
+ #: admin/class-settings.php:604
743
  msgid "Bhutan"
744
  msgstr ""
745
 
746
+ #: admin/class-settings.php:605
747
  msgid "Bolivia"
748
  msgstr ""
749
 
750
+ #: admin/class-settings.php:606
751
  msgid "Bosnia and Herzegovina"
752
  msgstr ""
753
 
754
+ #: admin/class-settings.php:607
755
  msgid "Botswana"
756
  msgstr ""
757
 
758
+ #: admin/class-settings.php:608
759
  msgid "Bouvet Island"
760
  msgstr ""
761
 
762
+ #: admin/class-settings.php:609
763
  msgid "Brazil"
764
  msgstr ""
765
 
766
+ #: admin/class-settings.php:610
767
  msgid "British Indian Ocean Territory"
768
  msgstr ""
769
 
770
+ #: admin/class-settings.php:611
771
  msgid "British Virgin Islands"
772
  msgstr ""
773
 
774
+ #: admin/class-settings.php:612
775
  msgid "Brunei"
776
  msgstr ""
777
 
778
+ #: admin/class-settings.php:613
779
  msgid "Bulgaria"
780
  msgstr ""
781
 
782
+ #: admin/class-settings.php:614
783
  msgid "Burkina Faso"
784
  msgstr ""
785
 
786
+ #: admin/class-settings.php:615
787
  msgid "Burundi"
788
  msgstr ""
789
 
790
+ #: admin/class-settings.php:616
791
  msgid "Cambodia"
792
  msgstr ""
793
 
794
+ #: admin/class-settings.php:617
795
  msgid "Cameroon"
796
  msgstr ""
797
 
798
+ #: admin/class-settings.php:618
799
  msgid "Canada"
800
  msgstr ""
801
 
802
+ #: admin/class-settings.php:619
803
  msgid "Canary Islands"
804
  msgstr ""
805
 
806
+ #: admin/class-settings.php:620
807
  msgid "Cape Verde"
808
  msgstr ""
809
 
810
+ #: admin/class-settings.php:621
811
  msgid "Caribbean Netherlands"
812
  msgstr ""
813
 
814
+ #: admin/class-settings.php:622
815
  msgid "Cayman Islands"
816
  msgstr ""
817
 
818
+ #: admin/class-settings.php:623
819
  msgid "Central African Republic"
820
  msgstr ""
821
 
822
+ #: admin/class-settings.php:624
823
  msgid "Ceuta and Melilla"
824
  msgstr ""
825
 
826
+ #: admin/class-settings.php:625
827
  msgid "Chad"
828
  msgstr ""
829
 
830
+ #: admin/class-settings.php:626
831
  msgid "Chile"
832
  msgstr ""
833
 
834
+ #: admin/class-settings.php:627
835
  msgid "China"
836
  msgstr ""
837
 
838
+ #: admin/class-settings.php:628
839
  msgid "Christmas Island"
840
  msgstr ""
841
 
842
+ #: admin/class-settings.php:629
843
  msgid "Clipperton Island"
844
  msgstr ""
845
 
846
+ #: admin/class-settings.php:630
847
  msgid "Cocos (Keeling) Islands"
848
  msgstr ""
849
 
850
+ #: admin/class-settings.php:631
851
  msgid "Colombia"
852
  msgstr ""
853
 
854
+ #: admin/class-settings.php:632
855
  msgid "Comoros"
856
  msgstr ""
857
 
858
+ #: admin/class-settings.php:633
859
  msgid "Congo (DRC)"
860
  msgstr ""
861
 
862
+ #: admin/class-settings.php:634
863
  msgid "Congo (Republic)"
864
  msgstr ""
865
 
866
+ #: admin/class-settings.php:635
867
  msgid "Cook Islands"
868
  msgstr ""
869
 
870
+ #: admin/class-settings.php:636
871
  msgid "Costa Rica"
872
  msgstr ""
873
 
874
+ #: admin/class-settings.php:637
875
  msgid "Croatia"
876
  msgstr ""
877
 
878
+ #: admin/class-settings.php:638
879
  msgid "Cuba"
880
  msgstr ""
881
 
882
+ #: admin/class-settings.php:639
883
  msgid "Curaçao"
884
  msgstr ""
885
 
886
+ #: admin/class-settings.php:640
887
  msgid "Cyprus"
888
  msgstr ""
889
 
890
+ #: admin/class-settings.php:641
891
  msgid "Czech Republic"
892
  msgstr ""
893
 
894
+ #: admin/class-settings.php:642
895
  msgid "Côte d'Ivoire"
896
  msgstr ""
897
 
898
+ #: admin/class-settings.php:643
899
  msgid "Denmark"
900
  msgstr ""
901
 
902
+ #: admin/class-settings.php:644
903
  msgid "Djibouti"
904
  msgstr ""
905
 
906
+ #: admin/class-settings.php:645
907
  msgid "Democratic Republic of the Congo"
908
  msgstr ""
909
 
910
+ #: admin/class-settings.php:646
911
  msgid "Dominica"
912
  msgstr ""
913
 
914
+ #: admin/class-settings.php:647
915
  msgid "Dominican Republic"
916
  msgstr ""
917
 
918
+ #: admin/class-settings.php:648
919
  msgid "Ecuador"
920
  msgstr ""
921
 
922
+ #: admin/class-settings.php:649
923
  msgid "Egypt"
924
  msgstr ""
925
 
926
+ #: admin/class-settings.php:650
927
  msgid "El Salvador"
928
  msgstr ""
929
 
930
+ #: admin/class-settings.php:651
931
  msgid "Equatorial Guinea"
932
  msgstr ""
933
 
934
+ #: admin/class-settings.php:652
935
  msgid "Eritrea"
936
  msgstr ""
937
 
938
+ #: admin/class-settings.php:653
939
  msgid "Estonia"
940
  msgstr ""
941
 
942
+ #: admin/class-settings.php:654
943
  msgid "Ethiopia"
944
  msgstr ""
945
 
946
+ #: admin/class-settings.php:655
947
  msgid "Falkland Islands(Islas Malvinas)"
948
  msgstr ""
949
 
950
+ #: admin/class-settings.php:656
951
  msgid "Faroe Islands"
952
  msgstr ""
953
 
954
+ #: admin/class-settings.php:657
955
  msgid "Fiji"
956
  msgstr ""
957
 
958
+ #: admin/class-settings.php:658
959
  msgid "Finland"
960
  msgstr ""
961
 
962
+ #: admin/class-settings.php:659
963
  msgid "France"
964
  msgstr ""
965
 
966
+ #: admin/class-settings.php:660
967
  msgid "French Guiana"
968
  msgstr ""
969
 
970
+ #: admin/class-settings.php:661
971
  msgid "French Polynesia"
972
  msgstr ""
973
 
974
+ #: admin/class-settings.php:662
975
  msgid "French Southern Territories"
976
  msgstr ""
977
 
978
+ #: admin/class-settings.php:663
979
  msgid "Gabon"
980
  msgstr ""
981
 
982
+ #: admin/class-settings.php:664
983
  msgid "Gambia"
984
  msgstr ""
985
 
986
+ #: admin/class-settings.php:665
987
  msgid "Georgia"
988
  msgstr ""
989
 
990
+ #: admin/class-settings.php:666
991
  msgid "Germany"
992
  msgstr ""
993
 
994
+ #: admin/class-settings.php:667
995
  msgid "Ghana"
996
  msgstr ""
997
 
998
+ #: admin/class-settings.php:668
999
  msgid "Gibraltar"
1000
  msgstr ""
1001
 
1002
+ #: admin/class-settings.php:669
1003
  msgid "Greece"
1004
  msgstr ""
1005
 
1006
+ #: admin/class-settings.php:670
1007
  msgid "Greenland"
1008
  msgstr ""
1009
 
1010
+ #: admin/class-settings.php:671
1011
  msgid "Grenada"
1012
  msgstr ""
1013
 
1014
+ #: admin/class-settings.php:672 admin/class-settings.php:674
1015
  msgid "Guam"
1016
  msgstr ""
1017
 
1018
+ #: admin/class-settings.php:673
1019
  msgid "Guadeloupe"
1020
  msgstr ""
1021
 
1022
+ #: admin/class-settings.php:675
1023
  msgid "Guatemala"
1024
  msgstr ""
1025
 
1026
+ #: admin/class-settings.php:676
1027
  msgid "Guernsey"
1028
  msgstr ""
1029
 
1030
+ #: admin/class-settings.php:677
1031
  msgid "Guinea"
1032
  msgstr ""
1033
 
1034
+ #: admin/class-settings.php:678
1035
  msgid "Guinea-Bissau"
1036
  msgstr ""
1037
 
1038
+ #: admin/class-settings.php:679
1039
  msgid "Guyana"
1040
  msgstr ""
1041
 
1042
+ #: admin/class-settings.php:680
1043
  msgid "Haiti"
1044
  msgstr ""
1045
 
1046
+ #: admin/class-settings.php:681
1047
  msgid "Heard and McDonald Islands"
1048
  msgstr ""
1049
 
1050
+ #: admin/class-settings.php:682
1051
  msgid "Honduras"
1052
  msgstr ""
1053
 
1054
+ #: admin/class-settings.php:683
1055
  msgid "Hong Kong"
1056
  msgstr ""
1057
 
1058
+ #: admin/class-settings.php:684
1059
  msgid "Hungary"
1060
  msgstr ""
1061
 
1062
+ #: admin/class-settings.php:685
1063
  msgid "Iceland"
1064
  msgstr ""
1065
 
1066
+ #: admin/class-settings.php:686
1067
  msgid "India"
1068
  msgstr ""
1069
 
1070
+ #: admin/class-settings.php:687
1071
  msgid "Indonesia"
1072
  msgstr ""
1073
 
1074
+ #: admin/class-settings.php:688
1075
  msgid "Iran"
1076
  msgstr ""
1077
 
1078
+ #: admin/class-settings.php:689
1079
  msgid "Iraq"
1080
  msgstr ""
1081
 
1082
+ #: admin/class-settings.php:690
1083
  msgid "Ireland"
1084
  msgstr ""
1085
 
1086
+ #: admin/class-settings.php:691
1087
  msgid "Isle of Man"
1088
  msgstr ""
1089
 
1090
+ #: admin/class-settings.php:692
1091
  msgid "Israel"
1092
  msgstr ""
1093
 
1094
+ #: admin/class-settings.php:693
1095
  msgid "Italy"
1096
  msgstr ""
1097
 
1098
+ #: admin/class-settings.php:694
1099
  msgid "Jamaica"
1100
  msgstr ""
1101
 
1102
+ #: admin/class-settings.php:695
1103
  msgid "Japan"
1104
  msgstr ""
1105
 
1106
+ #: admin/class-settings.php:696
1107
  msgid "Jersey"
1108
  msgstr ""
1109
 
1110
+ #: admin/class-settings.php:697
1111
  msgid "Jordan"
1112
  msgstr ""
1113
 
1114
+ #: admin/class-settings.php:698
1115
  msgid "Kazakhstan"
1116
  msgstr ""
1117
 
1118
+ #: admin/class-settings.php:699
1119
  msgid "Kenya"
1120
  msgstr ""
1121
 
1122
+ #: admin/class-settings.php:700
1123
  msgid "Kiribati"
1124
  msgstr ""
1125
 
1126
+ #: admin/class-settings.php:701
1127
  msgid "Kosovo"
1128
  msgstr ""
1129
 
1130
+ #: admin/class-settings.php:702
1131
  msgid "Kuwait"
1132
  msgstr ""
1133
 
1134
+ #: admin/class-settings.php:703
1135
  msgid "Kyrgyzstan"
1136
  msgstr ""
1137
 
1138
+ #: admin/class-settings.php:704
1139
  msgid "Laos"
1140
  msgstr ""
1141
 
1142
+ #: admin/class-settings.php:705
1143
  msgid "Latvia"
1144
  msgstr ""
1145
 
1146
+ #: admin/class-settings.php:706
1147
  msgid "Lebanon"
1148
  msgstr ""
1149
 
1150
+ #: admin/class-settings.php:707
1151
  msgid "Lesotho"
1152
  msgstr ""
1153
 
1154
+ #: admin/class-settings.php:708
1155
  msgid "Liberia"
1156
  msgstr ""
1157
 
1158
+ #: admin/class-settings.php:709
1159
  msgid "Libya"
1160
  msgstr ""
1161
 
1162
+ #: admin/class-settings.php:710
1163
  msgid "Liechtenstein"
1164
  msgstr ""
1165
 
1166
+ #: admin/class-settings.php:711
1167
  msgid "Lithuania"
1168
  msgstr ""
1169
 
1170
+ #: admin/class-settings.php:712
1171
  msgid "Luxembourg"
1172
  msgstr ""
1173
 
1174
+ #: admin/class-settings.php:713
1175
  msgid "Macau"
1176
  msgstr ""
1177
 
1178
+ #: admin/class-settings.php:714
1179
  msgid "Macedonia (FYROM)"
1180
  msgstr ""
1181
 
1182
+ #: admin/class-settings.php:715
1183
  msgid "Madagascar"
1184
  msgstr ""
1185
 
1186
+ #: admin/class-settings.php:716
1187
  msgid "Malawi"
1188
  msgstr ""
1189
 
1190
+ #: admin/class-settings.php:717
1191
  msgid "Malaysia "
1192
  msgstr ""
1193
 
1194
+ #: admin/class-settings.php:718
1195
  msgid "Maldives "
1196
  msgstr ""
1197
 
1198
+ #: admin/class-settings.php:719
1199
  msgid "Mali"
1200
  msgstr ""
1201
 
1202
+ #: admin/class-settings.php:720
1203
  msgid "Malta"
1204
  msgstr ""
1205
 
1206
+ #: admin/class-settings.php:721
1207
  msgid "Marshall Islands"
1208
  msgstr ""
1209
 
1210
+ #: admin/class-settings.php:722
1211
  msgid "Martinique"
1212
  msgstr ""
1213
 
1214
+ #: admin/class-settings.php:723
1215
  msgid "Mauritania"
1216
  msgstr ""
1217
 
1218
+ #: admin/class-settings.php:724
1219
  msgid "Mauritius"
1220
  msgstr ""
1221
 
1222
+ #: admin/class-settings.php:725
1223
  msgid "Mayotte"
1224
  msgstr ""
1225
 
1226
+ #: admin/class-settings.php:726
1227
  msgid "Mexico"
1228
  msgstr ""
1229
 
1230
+ #: admin/class-settings.php:727
1231
  msgid "Micronesia"
1232
  msgstr ""
1233
 
1234
+ #: admin/class-settings.php:728
1235
  msgid "Moldova"
1236
  msgstr ""
1237
 
1238
+ #: admin/class-settings.php:729
1239
  msgid "Monaco"
1240
  msgstr ""
1241
 
1242
+ #: admin/class-settings.php:730
1243
  msgid "Mongolia"
1244
  msgstr ""
1245
 
1246
+ #: admin/class-settings.php:731
1247
  msgid "Montenegro"
1248
  msgstr ""
1249
 
1250
+ #: admin/class-settings.php:732
1251
  msgid "Montserrat"
1252
  msgstr ""
1253
 
1254
+ #: admin/class-settings.php:733
1255
  msgid "Morocco"
1256
  msgstr ""
1257
 
1258
+ #: admin/class-settings.php:734
1259
  msgid "Mozambique"
1260
  msgstr ""
1261
 
1262
+ #: admin/class-settings.php:735
1263
  msgid "Myanmar (Burma)"
1264
  msgstr ""
1265
 
1266
+ #: admin/class-settings.php:736
1267
  msgid "Namibia"
1268
  msgstr ""
1269
 
1270
+ #: admin/class-settings.php:737
1271
  msgid "Nauru"
1272
  msgstr ""
1273
 
1274
+ #: admin/class-settings.php:738
1275
  msgid "Nepal"
1276
  msgstr ""
1277
 
1278
+ #: admin/class-settings.php:739
1279
  msgid "Netherlands"
1280
  msgstr ""
1281
 
1282
+ #: admin/class-settings.php:740
1283
  msgid "Netherlands Antilles"
1284
  msgstr ""
1285
 
1286
+ #: admin/class-settings.php:741
1287
  msgid "New Caledonia"
1288
  msgstr ""
1289
 
1290
+ #: admin/class-settings.php:742
1291
  msgid "New Zealand"
1292
  msgstr ""
1293
 
1294
+ #: admin/class-settings.php:743
1295
  msgid "Nicaragua"
1296
  msgstr ""
1297
 
1298
+ #: admin/class-settings.php:744
1299
  msgid "Niger"
1300
  msgstr ""
1301
 
1302
+ #: admin/class-settings.php:745
1303
  msgid "Nigeria"
1304
  msgstr ""
1305
 
1306
+ #: admin/class-settings.php:746
1307
  msgid "Niue"
1308
  msgstr ""
1309
 
1310
+ #: admin/class-settings.php:747
1311
  msgid "Norfolk Island"
1312
  msgstr ""
1313
 
1314
+ #: admin/class-settings.php:748
1315
  msgid "North Korea"
1316
  msgstr ""
1317
 
1318
+ #: admin/class-settings.php:749
1319
  msgid "Northern Mariana Islands"
1320
  msgstr ""
1321
 
1322
+ #: admin/class-settings.php:750
1323
  msgid "Norway"
1324
  msgstr ""
1325
 
1326
+ #: admin/class-settings.php:751
1327
  msgid "Oman"
1328
  msgstr ""
1329
 
1330
+ #: admin/class-settings.php:752
1331
  msgid "Pakistan"
1332
  msgstr ""
1333
 
1334
+ #: admin/class-settings.php:753
1335
  msgid "Palau"
1336
  msgstr ""
1337
 
1338
+ #: admin/class-settings.php:754
1339
  msgid "Palestine"
1340
  msgstr ""
1341
 
1342
+ #: admin/class-settings.php:755
1343
  msgid "Panama"
1344
  msgstr ""
1345
 
1346
+ #: admin/class-settings.php:756
1347
  msgid "Papua New Guinea"
1348
  msgstr ""
1349
 
1350
+ #: admin/class-settings.php:757
1351
  msgid "Paraguay"
1352
  msgstr ""
1353
 
1354
+ #: admin/class-settings.php:758
1355
  msgid "Peru"
1356
  msgstr ""
1357
 
1358
+ #: admin/class-settings.php:759
1359
  msgid "Philippines"
1360
  msgstr ""
1361
 
1362
+ #: admin/class-settings.php:760
1363
  msgid "Pitcairn Islands"
1364
  msgstr ""
1365
 
1366
+ #: admin/class-settings.php:761
1367
  msgid "Poland"
1368
  msgstr ""
1369
 
1370
+ #: admin/class-settings.php:762
1371
  msgid "Portugal"
1372
  msgstr ""
1373
 
1374
+ #: admin/class-settings.php:763
1375
  msgid "Puerto Rico"
1376
  msgstr ""
1377
 
1378
+ #: admin/class-settings.php:764
1379
  msgid "Qatar"
1380
  msgstr ""
1381
 
1382
+ #: admin/class-settings.php:765
1383
  msgid "Reunion"
1384
  msgstr ""
1385
 
1386
+ #: admin/class-settings.php:766
1387
  msgid "Romania"
1388
  msgstr ""
1389
 
1390
+ #: admin/class-settings.php:767
1391
  msgid "Russia"
1392
  msgstr ""
1393
 
1394
+ #: admin/class-settings.php:768
1395
  msgid "Rwanda"
1396
  msgstr ""
1397
 
1398
+ #: admin/class-settings.php:769
1399
  msgid "Saint Helena"
1400
  msgstr ""
1401
 
1402
+ #: admin/class-settings.php:770
1403
  msgid "Saint Kitts and Nevis"
1404
  msgstr ""
1405
 
1406
+ #: admin/class-settings.php:771
1407
  msgid "Saint Vincent and the Grenadines"
1408
  msgstr ""
1409
 
1410
+ #: admin/class-settings.php:772
1411
  msgid "Saint Lucia"
1412
  msgstr ""
1413
 
1414
+ #: admin/class-settings.php:773
1415
  msgid "Samoa"
1416
  msgstr ""
1417
 
1418
+ #: admin/class-settings.php:774
1419
  msgid "San Marino"
1420
  msgstr ""
1421
 
1422
+ #: admin/class-settings.php:775
1423
  msgid "São Tomé and Príncipe"
1424
  msgstr ""
1425
 
1426
+ #: admin/class-settings.php:776
1427
  msgid "Saudi Arabia"
1428
  msgstr ""
1429
 
1430
+ #: admin/class-settings.php:777
1431
  msgid "Senegal"
1432
  msgstr ""
1433
 
1434
+ #: admin/class-settings.php:778
1435
  msgid "Serbia"
1436
  msgstr ""
1437
 
1438
+ #: admin/class-settings.php:779
1439
  msgid "Seychelles"
1440
  msgstr ""
1441
 
1442
+ #: admin/class-settings.php:780
1443
  msgid "Sierra Leone"
1444
  msgstr ""
1445
 
1446
+ #: admin/class-settings.php:781
1447
  msgid "Singapore"
1448
  msgstr ""
1449
 
1450
+ #: admin/class-settings.php:782
1451
  msgid "Sint Maarten"
1452
  msgstr ""
1453
 
1454
+ #: admin/class-settings.php:783
1455
  msgid "Slovakia"
1456
  msgstr ""
1457
 
1458
+ #: admin/class-settings.php:784
1459
  msgid "Slovenia"
1460
  msgstr ""
1461
 
1462
+ #: admin/class-settings.php:785
1463
  msgid "Solomon Islands"
1464
  msgstr ""
1465
 
1466
+ #: admin/class-settings.php:786
1467
  msgid "Somalia"
1468
  msgstr ""
1469
 
1470
+ #: admin/class-settings.php:787
1471
  msgid "South Africa"
1472
  msgstr ""
1473
 
1474
+ #: admin/class-settings.php:788
1475
  msgid "South Georgia and South Sandwich Islands"
1476
  msgstr ""
1477
 
1478
+ #: admin/class-settings.php:789
1479
  msgid "South Korea"
1480
  msgstr ""
1481
 
1482
+ #: admin/class-settings.php:790
1483
  msgid "South Sudan"
1484
  msgstr ""
1485
 
1486
+ #: admin/class-settings.php:791
1487
  msgid "Spain"
1488
  msgstr ""
1489
 
1490
+ #: admin/class-settings.php:792
1491
  msgid "Sri Lanka"
1492
  msgstr ""
1493
 
1494
+ #: admin/class-settings.php:793
1495
  msgid "Sudan"
1496
  msgstr ""
1497
 
1498
+ #: admin/class-settings.php:794
1499
  msgid "Swaziland"
1500
  msgstr ""
1501
 
1502
+ #: admin/class-settings.php:795
1503
  msgid "Sweden"
1504
  msgstr ""
1505
 
1506
+ #: admin/class-settings.php:796
1507
  msgid "Switzerland"
1508
  msgstr ""
1509
 
1510
+ #: admin/class-settings.php:797
1511
  msgid "Syria"
1512
  msgstr ""
1513
 
1514
+ #: admin/class-settings.php:798
1515
  msgid "São Tomé & Príncipe"
1516
  msgstr ""
1517
 
1518
+ #: admin/class-settings.php:799
1519
  msgid "Taiwan"
1520
  msgstr ""
1521
 
1522
+ #: admin/class-settings.php:800
1523
  msgid "Tajikistan"
1524
  msgstr ""
1525
 
1526
+ #: admin/class-settings.php:801
1527
  msgid "Tanzania"
1528
  msgstr ""
1529
 
1530
+ #: admin/class-settings.php:802
1531
  msgid "Thailand"
1532
  msgstr ""
1533
 
1534
+ #: admin/class-settings.php:803
1535
  msgid "Timor-Leste"
1536
  msgstr ""
1537
 
1538
+ #: admin/class-settings.php:804 admin/class-settings.php:806
1539
  msgid "Tokelau"
1540
  msgstr ""
1541
 
1542
+ #: admin/class-settings.php:805
1543
  msgid "Togo"
1544
  msgstr ""
1545
 
1546
+ #: admin/class-settings.php:807
1547
  msgid "Tonga"
1548
  msgstr ""
1549
 
1550
+ #: admin/class-settings.php:808
1551
  msgid "Trinidad and Tobago"
1552
  msgstr ""
1553
 
1554
+ #: admin/class-settings.php:809
1555
  msgid "Tristan da Cunha"
1556
  msgstr ""
1557
 
1558
+ #: admin/class-settings.php:810
1559
  msgid "Tunisia"
1560
  msgstr ""
1561
 
1562
+ #: admin/class-settings.php:811
1563
  msgid "Turkey"
1564
  msgstr ""
1565
 
1566
+ #: admin/class-settings.php:812
1567
  msgid "Turkmenistan"
1568
  msgstr ""
1569
 
1570
+ #: admin/class-settings.php:813
1571
  msgid "Turks and Caicos Islands"
1572
  msgstr ""
1573
 
1574
+ #: admin/class-settings.php:814
1575
  msgid "Tuvalu"
1576
  msgstr ""
1577
 
1578
+ #: admin/class-settings.php:815
1579
  msgid "Uganda"
1580
  msgstr ""
1581
 
1582
+ #: admin/class-settings.php:816
1583
  msgid "Ukraine"
1584
  msgstr ""
1585
 
1586
+ #: admin/class-settings.php:817
1587
  msgid "United Arab Emirates"
1588
  msgstr ""
1589
 
1590
+ #: admin/class-settings.php:818
1591
  msgid "United Kingdom"
1592
  msgstr ""
1593
 
1594
+ #: admin/class-settings.php:819
1595
  msgid "United States"
1596
  msgstr ""
1597
 
1598
+ #: admin/class-settings.php:820
1599
  msgid "Uruguay"
1600
  msgstr ""
1601
 
1602
+ #: admin/class-settings.php:821
1603
  msgid "Uzbekistan"
1604
  msgstr ""
1605
 
1606
+ #: admin/class-settings.php:822
1607
  msgid "Vanuatu"
1608
  msgstr ""
1609
 
1610
+ #: admin/class-settings.php:823
1611
  msgid "Vatican City"
1612
  msgstr ""
1613
 
1614
+ #: admin/class-settings.php:824
1615
  msgid "Venezuela"
1616
  msgstr ""
1617
 
1618
+ #: admin/class-settings.php:825
1619
  msgid "Vietnam"
1620
  msgstr ""
1621
 
1622
+ #: admin/class-settings.php:826
1623
  msgid "Wallis Futuna"
1624
  msgstr ""
1625
 
1626
+ #: admin/class-settings.php:827
1627
  msgid "Western Sahara"
1628
  msgstr ""
1629
 
1630
+ #: admin/class-settings.php:828
1631
  msgid "Yemen"
1632
  msgstr ""
1633
 
1634
+ #: admin/class-settings.php:829
1635
  msgid "Zambia"
1636
  msgstr ""
1637
 
1638
+ #: admin/class-settings.php:830
1639
  msgid "Zimbabwe"
1640
  msgstr ""
1641
 
1642
+ #: admin/class-settings.php:831
1643
  msgid "Åland Islands"
1644
  msgstr ""
1645
 
1646
+ #: admin/class-settings.php:874
1647
  msgid "World view"
1648
  msgstr ""
1649
 
1650
+ #: admin/class-settings.php:877 admin/class-settings.php:991
1651
+ #: inc/wpsl-functions.php:224
1652
  msgid "Default"
1653
  msgstr ""
1654
 
1655
+ #: admin/class-settings.php:880 inc/wpsl-functions.php:297
1656
  msgid "Roadmap"
1657
  msgstr ""
1658
 
1659
+ #: admin/class-settings.php:1021
1660
  msgid "Start location marker"
1661
  msgstr ""
1662
 
1663
+ #: admin/class-settings.php:1023
1664
  msgid "Store location marker"
1665
  msgstr ""
1666
 
1667
+ #: admin/class-settings.php:1103
1668
  msgid "Textarea"
1669
  msgstr ""
1670
 
1671
+ #: admin/class-settings.php:1104
1672
  msgid "Dropdowns (recommended)"
1673
  msgstr ""
1674
 
1675
+ #: admin/class-settings.php:1112
1676
  msgid "Bounces up and down"
1677
  msgstr ""
1678
 
1679
+ #: admin/class-settings.php:1113
1680
  msgid "Will open the info window"
1681
  msgstr ""
1682
 
1683
+ #: admin/class-settings.php:1114
1684
  msgid "Does not respond"
1685
  msgstr ""
1686
 
1687
+ #: admin/class-settings.php:1122
1688
  msgid "In the store listings"
1689
  msgstr ""
1690
 
1691
+ #: admin/class-settings.php:1123
1692
  msgid "In the info window on the map"
1693
  msgstr ""
1694
 
1695
+ #: admin/class-settings.php:1155 admin/class-shortcode-generator.php:263
1696
  msgid "Dropdown"
1697
  msgstr ""
1698
 
1699
+ #: admin/class-settings.php:1156 admin/class-shortcode-generator.php:264
1700
  msgid "Checkboxes"
1701
  msgstr ""
1702
 
1703
+ #: admin/class-settings.php:1188
1704
  msgid "12 Hours"
1705
  msgstr ""
1706
 
1707
+ #: admin/class-settings.php:1189
1708
  msgid "24 Hours"
1709
  msgstr ""
1710
 
1729
  msgid "General Options"
1730
  msgstr ""
1731
 
1732
+ #: admin/class-shortcode-generator.php:234 admin/templates/map-settings.php:388
1733
  msgid "Markers"
1734
  msgstr ""
1735
 
1737
  msgid "Select the used template"
1738
  msgstr ""
1739
 
1740
+ #: admin/class-shortcode-generator.php:244 admin/templates/map-settings.php:215
1741
  msgid "Start point"
1742
  msgstr ""
1743
 
1747
  "If nothing it set, then the start point from the %ssettings%s page is used."
1748
  msgstr ""
1749
 
1750
+ #: admin/class-shortcode-generator.php:249 admin/templates/map-settings.php:201
1751
  msgid "Attempt to auto-locate the user"
1752
  msgstr ""
1753
 
1754
+ #: admin/class-shortcode-generator.php:249 admin/templates/map-settings.php:201
1755
  #, php-format
1756
  msgid ""
1757
  "Most modern browsers %srequire%s a HTTPS connection before the Geolocation "
1786
  msgid "Set selected checkboxes"
1787
  msgstr ""
1788
 
1789
+ #: admin/class-shortcode-generator.php:341 admin/templates/map-settings.php:253
1790
  msgid "Map type"
1791
  msgstr ""
1792
 
1835
  msgstr ""
1836
 
1837
  #: admin/templates/map-settings.php:85 admin/templates/map-settings.php:124
1838
+ #: admin/templates/map-settings.php:188 admin/templates/map-settings.php:271
1839
+ #: admin/templates/map-settings.php:378 admin/templates/map-settings.php:406
1840
+ #: admin/templates/map-settings.php:456 admin/templates/map-settings.php:488
1841
+ #: admin/templates/map-settings.php:600 admin/templates/map-settings.php:625
1842
  msgid "Save Changes"
1843
  msgstr ""
1844
 
1903
  "restrictions with %sthis%s filter."
1904
  msgstr ""
1905
 
1906
+ #: admin/templates/map-settings.php:134 admin/templates/map-settings.php:524
1907
+ #: admin/templates/map-settings.php:525 frontend/templates/default.php:44
1908
+ #: frontend/templates/store-listings-below.php:44 inc/wpsl-functions.php:141
1909
  msgid "Search"
1910
  msgstr ""
1911
 
1913
  msgid "Enable autocomplete?"
1914
  msgstr ""
1915
 
1916
+ #: admin/templates/map-settings.php:142
1917
+ msgid "Force zipcode only search"
1918
+ msgstr ""
1919
+
1920
+ #: admin/templates/map-settings.php:144
1921
+ #, php-format
1922
+ msgid ""
1923
+ "For this option to work correctly you need to set a map region and restrict "
1924
+ "the results to the selected region. %s You can do this in the %sGoogle Maps "
1925
+ "API section%s."
1926
+ msgstr ""
1927
+
1928
+ #: admin/templates/map-settings.php:148
1929
+ #, php-format
1930
+ msgid ""
1931
+ "Zipcode only search does unfortunately not work well in combination with the "
1932
+ "autocomplete option. %s It's recommended to not have both options active at "
1933
+ "the same time."
1934
+ msgstr ""
1935
+
1936
+ #: admin/templates/map-settings.php:153
1937
  msgid "Show the max results dropdown?"
1938
  msgstr ""
1939
 
1940
+ #: admin/templates/map-settings.php:157
1941
  msgid "Show the search radius dropdown?"
1942
  msgstr ""
1943
 
1944
+ #: admin/templates/map-settings.php:161
1945
  msgid "Enable category filters?"
1946
  msgstr ""
1947
 
1948
+ #: admin/templates/map-settings.php:166
1949
  msgid "Filter type:"
1950
  msgstr ""
1951
 
1952
+ #: admin/templates/map-settings.php:171
1953
  msgid "Distance unit"
1954
  msgstr ""
1955
 
1956
+ #: admin/templates/map-settings.php:174
1957
  msgid "km"
1958
  msgstr ""
1959
 
1960
+ #: admin/templates/map-settings.php:176
1961
  msgid "mi"
1962
  msgstr ""
1963
 
1964
+ #: admin/templates/map-settings.php:180
1965
  msgid "Max search results"
1966
  msgstr ""
1967
 
1968
+ #: admin/templates/map-settings.php:180 admin/templates/map-settings.php:184
1969
  msgid "The default value is set between the [ ]."
1970
  msgstr ""
1971
 
1972
+ #: admin/templates/map-settings.php:184
1973
  msgid "Search radius options"
1974
  msgstr ""
1975
 
1976
+ #: admin/templates/map-settings.php:198
1977
  msgid "Map"
1978
  msgstr ""
1979
 
1980
+ #: admin/templates/map-settings.php:205
1981
  msgid "Load locations on page load"
1982
  msgstr ""
1983
 
1984
+ #: admin/templates/map-settings.php:210
1985
  msgid "Number of locations to show"
1986
  msgstr ""
1987
 
1988
+ #: admin/templates/map-settings.php:210
1989
  #, php-format
1990
  msgid ""
1991
  "Although the location data is cached after the first load, a lower number "
1993
  "or set to 0, then all locations are loaded."
1994
  msgstr ""
1995
 
1996
+ #: admin/templates/map-settings.php:215
1997
  #, php-format
1998
  msgid ""
1999
  "%sRequired field.%s %s If auto-locating the user is disabled or fails, the "
2001
  "point for the user."
2002
  msgstr ""
2003
 
2004
+ #: admin/templates/map-settings.php:220
2005
  msgid "Auto adjust the zoom level to make sure all markers are visible?"
2006
  msgstr ""
2007
 
2008
+ #: admin/templates/map-settings.php:220
2009
  msgid ""
2010
  "This runs after a search is made, and makes sure all the returned locations "
2011
  "are visible in the viewport."
2012
  msgstr ""
2013
 
2014
+ #: admin/templates/map-settings.php:224
2015
  msgid "Initial zoom level"
2016
  msgstr ""
2017
 
2018
+ #: admin/templates/map-settings.php:228
2019
  msgid "Max auto zoom level"
2020
  msgstr ""
2021
 
2022
+ #: admin/templates/map-settings.php:228
2023
  #, php-format
2024
  msgid ""
2025
  "This value sets the zoom level for the \"Zoom here\" link in the info "
2027
  "is changed to make all the markers fit on the screen."
2028
  msgstr ""
2029
 
2030
+ #: admin/templates/map-settings.php:232
2031
  msgid "Show the street view controls?"
2032
  msgstr ""
2033
 
2034
+ #: admin/templates/map-settings.php:236
2035
  msgid "Show the map type control?"
2036
  msgstr ""
2037
 
2038
+ #: admin/templates/map-settings.php:240
2039
  msgid "Enable scroll wheel zooming?"
2040
  msgstr ""
2041
 
2042
+ #: admin/templates/map-settings.php:244
2043
  msgid "Zoom control position"
2044
  msgstr ""
2045
 
2046
+ #: admin/templates/map-settings.php:247
2047
  msgid "Left"
2048
  msgstr ""
2049
 
2050
+ #: admin/templates/map-settings.php:249
2051
  msgid "Right"
2052
  msgstr ""
2053
 
2054
+ #: admin/templates/map-settings.php:257
2055
  msgid "Map style"
2056
  msgstr ""
2057
 
2058
+ #: admin/templates/map-settings.php:257
2059
  msgid ""
2060
  "Custom map styles only work if the map type is set to \"Roadmap\" or "
2061
  "\"Terrain\"."
2062
  msgstr ""
2063
 
2064
+ #: admin/templates/map-settings.php:260
2065
  #, php-format
2066
  msgid ""
2067
  "You can use existing map styles from %sSnazzy Maps%s or %sMap Stylr%s and "
2069
  "through the %sMap Style Editor%s or %sStyled Maps Wizard%s."
2070
  msgstr ""
2071
 
2072
+ #: admin/templates/map-settings.php:261
2073
  #, php-format
2074
  msgid ""
2075
  "If you like to write the style code yourself, then you can find the "
2076
  "documentation from Google %shere%s."
2077
  msgstr ""
2078
 
2079
+ #: admin/templates/map-settings.php:263
2080
  msgid "Preview Map Style"
2081
  msgstr ""
2082
 
2083
+ #: admin/templates/map-settings.php:267
2084
  msgid "Show credits?"
2085
  msgstr ""
2086
 
2087
+ #: admin/templates/map-settings.php:267
2088
  msgid ""
2089
  "This will place a \"Search provided by WP Store Locator\" backlink below the "
2090
  "map."
2091
  msgstr ""
2092
 
2093
+ #: admin/templates/map-settings.php:281
2094
  msgid "User Experience"
2095
  msgstr ""
2096
 
2097
+ #: admin/templates/map-settings.php:284
2098
  msgid "Store Locator height"
2099
  msgstr ""
2100
 
2101
+ #: admin/templates/map-settings.php:288
2102
  msgid "Max width for the info window content"
2103
  msgstr ""
2104
 
2105
+ #: admin/templates/map-settings.php:292
2106
  msgid "Search field width"
2107
  msgstr ""
2108
 
2109
+ #: admin/templates/map-settings.php:296
2110
  msgid "Search and radius label width"
2111
  msgstr ""
2112
 
2113
+ #: admin/templates/map-settings.php:300
2114
  msgid "Store Locator template"
2115
  msgstr ""
2116
 
2117
+ #: admin/templates/map-settings.php:300
2118
  #, php-format
2119
  msgid ""
2120
  "The selected template is used with the [wpsl] shortcode. %s You can add a "
2121
  "custom template with the %swpsl_templates%s filter."
2122
  msgstr ""
2123
 
2124
+ #: admin/templates/map-settings.php:304
2125
  msgid "Hide the scrollbar?"
2126
  msgstr ""
2127
 
2128
+ #: admin/templates/map-settings.php:308
2129
  msgid "Open links in a new window?"
2130
  msgstr ""
2131
 
2132
+ #: admin/templates/map-settings.php:312
2133
  msgid "Show a reset map button?"
2134
  msgstr ""
2135
 
2136
+ #: admin/templates/map-settings.php:316
2137
  msgid ""
2138
  "When a user clicks on \"Directions\", open a new window, and show the route "
2139
  "on google.com/maps ?"
2140
  msgstr ""
2141
 
2142
+ #: admin/templates/map-settings.php:320
2143
  msgid "Show a \"More info\" link in the store listings?"
2144
  msgstr ""
2145
 
2146
+ #: admin/templates/map-settings.php:320
2147
  msgid ""
2148
  "This places a \"More Info\" link below the address and will show the phone, "
2149
  "fax, email, opening hours and description once the link is clicked."
2150
  msgstr ""
2151
 
2152
+ #: admin/templates/map-settings.php:325
2153
  msgid "Where do you want to show the \"More info\" details?"
2154
  msgstr ""
2155
 
2156
+ #: admin/templates/map-settings.php:330
2157
  msgid ""
2158
  "Always show the contact details below the address in the search results?"
2159
  msgstr ""
2160
 
2161
+ #: admin/templates/map-settings.php:334
2162
  msgid "Make the contact details always clickable?"
2163
  msgstr ""
2164
 
2165
+ #: admin/templates/map-settings.php:338
2166
  msgid "Make the store name clickable if a store URL exists?"
2167
  msgstr ""
2168
 
2169
+ #: admin/templates/map-settings.php:338
2170
  #, php-format
2171
  msgid ""
2172
  "If %spermalinks%s are enabled, the store name will always link to the store "
2173
  "page."
2174
  msgstr ""
2175
 
2176
+ #: admin/templates/map-settings.php:342
2177
  msgid "Make the phone number clickable on mobile devices?"
2178
  msgstr ""
2179
 
2180
+ #: admin/templates/map-settings.php:346
2181
  msgid ""
2182
  "If street view is available for the current location, then show a \"Street "
2183
  "view\" link in the info window?"
2184
  msgstr ""
2185
 
2186
+ #: admin/templates/map-settings.php:346
2187
  #, php-format
2188
  msgid ""
2189
  "Enabling this option can sometimes result in a small delay in the opening of "
2191
  "Maps to check if street view is available for the current location."
2192
  msgstr ""
2193
 
2194
+ #: admin/templates/map-settings.php:350
2195
  msgid "Show a \"Zoom here\" link in the info window?"
2196
  msgstr ""
2197
 
2198
+ #: admin/templates/map-settings.php:350
2199
  #, php-format
2200
  msgid ""
2201
  "Clicking this link will make the map zoom in to the %s max auto zoom level "
2202
  "%s."
2203
  msgstr ""
2204
 
2205
+ #: admin/templates/map-settings.php:354
2206
  msgid "On page load move the mouse cursor to the search field?"
2207
  msgstr ""
2208
 
2209
+ #: admin/templates/map-settings.php:354
2210
  #, php-format
2211
  msgid ""
2212
  "If the store locator is not placed at the top of the page, enabling this "
2214
  "on mobile devices.%s"
2215
  msgstr ""
2216
 
2217
+ #: admin/templates/map-settings.php:358
2218
  msgid "Use the default style for the info window?"
2219
  msgstr ""
2220
 
2221
+ #: admin/templates/map-settings.php:358
2222
  #, php-format
2223
  msgid ""
2224
  "If the default style is disabled the %sInfoBox%s library will be used "
2226
  "window through the .wpsl-infobox css class."
2227
  msgstr ""
2228
 
2229
+ #: admin/templates/map-settings.php:362
2230
  msgid "Hide the country in the search results?"
2231
  msgstr ""
2232
 
2233
+ #: admin/templates/map-settings.php:366
2234
  msgid "Hide the distance in the search results?"
2235
  msgstr ""
2236
 
2237
+ #: admin/templates/map-settings.php:370
2238
  msgid "If a user hovers over the search results the store marker"
2239
  msgstr ""
2240
 
2241
+ #: admin/templates/map-settings.php:370
2242
  #, php-format
2243
  msgid ""
2244
  "If marker clusters are enabled this option will not work as expected as long "
2248
  "it won't be clear to which marker it belongs to. "
2249
  msgstr ""
2250
 
2251
+ #: admin/templates/map-settings.php:374
2252
  msgid "Address format"
2253
  msgstr ""
2254
 
2255
+ #: admin/templates/map-settings.php:374
2256
  #, php-format
2257
  msgid ""
2258
  "You can add custom address formats with the %swpsl_address_formats%s filter."
2259
  msgstr ""
2260
 
2261
+ #: admin/templates/map-settings.php:392
2262
  msgid "Enable marker clusters?"
2263
  msgstr ""
2264
 
2265
+ #: admin/templates/map-settings.php:392
2266
  msgid "Recommended for maps with a large amount of markers."
2267
  msgstr ""
2268
 
2269
+ #: admin/templates/map-settings.php:397
2270
  msgid "Max zoom level"
2271
  msgstr ""
2272
 
2273
+ #: admin/templates/map-settings.php:397
2274
  msgid ""
2275
  "If this zoom level is reached or exceeded, then all markers are moved out of "
2276
  "the marker cluster and shown as individual markers."
2277
  msgstr ""
2278
 
2279
+ #: admin/templates/map-settings.php:401
2280
  msgid "Cluster size"
2281
  msgstr ""
2282
 
2283
+ #: admin/templates/map-settings.php:401
2284
  #, php-format
2285
  msgid ""
2286
  "The grid size of a cluster in pixels. %s A larger number will result in a "
2287
  "lower amount of clusters and also make the algorithm run faster."
2288
  msgstr ""
2289
 
2290
+ #: admin/templates/map-settings.php:416
2291
  msgid "Store Editor"
2292
  msgstr ""
2293
 
2294
+ #: admin/templates/map-settings.php:419
2295
  msgid "Default country"
2296
  msgstr ""
2297
 
2298
+ #: admin/templates/map-settings.php:423
2299
  msgid "Map type for the location preview"
2300
  msgstr ""
2301
 
2302
+ #: admin/templates/map-settings.php:427
2303
  msgid "Hide the opening hours?"
2304
  msgstr ""
2305
 
2306
+ #: admin/templates/map-settings.php:433
2307
  msgid "Opening hours input type"
2308
  msgstr ""
2309
 
2310
+ #: admin/templates/map-settings.php:437
2311
  #, php-format
2312
  msgid ""
2313
  "Opening hours created in version 1.x %sare not%s automatically converted to "
2314
  "the new dropdown format."
2315
  msgstr ""
2316
 
2317
+ #: admin/templates/map-settings.php:440 admin/templates/map-settings.php:449
2318
  msgid "The default opening hours"
2319
  msgstr ""
2320
 
2321
+ #: admin/templates/map-settings.php:446
2322
  msgid "Opening hours format"
2323
  msgstr ""
2324
 
2325
+ #: admin/templates/map-settings.php:453
2326
  msgid ""
2327
  "The default country and opening hours are only used when a new store is "
2328
  "created. So changing the default values will have no effect on existing "
2329
  "store locations."
2330
  msgstr ""
2331
 
2332
+ #: admin/templates/map-settings.php:466
2333
  msgid "Permalink"
2334
  msgstr ""
2335
 
2336
+ #: admin/templates/map-settings.php:469
2337
  msgid "Enable permalink?"
2338
  msgstr ""
2339
 
2340
+ #: admin/templates/map-settings.php:474
2341
+ msgid "Remove the front base from the permalink structure?"
2342
+ msgstr ""
2343
+
2344
+ #: admin/templates/map-settings.php:474
2345
+ #, php-format
2346
+ msgid ""
2347
+ "The front base is set on the %spermalink settings%s page in the \"Custom "
2348
+ "structure\" field. %s If a front base is set ( for example /blog/ ), then "
2349
+ "enabling this option will remove it from the store locator permalinks."
2350
+ msgstr ""
2351
+
2352
+ #: admin/templates/map-settings.php:478
2353
  msgid "Store slug"
2354
  msgstr ""
2355
 
2356
+ #: admin/templates/map-settings.php:482
2357
  msgid "Category slug"
2358
  msgstr ""
2359
 
2360
+ #: admin/templates/map-settings.php:485
2361
  #, php-format
2362
  msgid "The permalink slugs %smust be unique%s on your site."
2363
  msgstr ""
2364
 
2365
+ #: admin/templates/map-settings.php:498
2366
  msgid "Labels"
2367
  msgstr ""
2368
 
2369
+ #: admin/templates/map-settings.php:507
2370
  #, php-format
2371
  msgid "%sWarning!%s %sWPML%s, or a plugin using the WPML API is active."
2372
  msgstr ""
2373
 
2374
+ #: admin/templates/map-settings.php:508
2375
  msgid ""
2376
  "Please use the \"String Translations\" section in the used multilingual "
2377
  "plugin to change the labels. Changing them here will have no effect as long "
2378
  "as the multilingual plugin remains active."
2379
  msgstr ""
2380
 
2381
+ #: admin/templates/map-settings.php:512 admin/templates/map-settings.php:513
2382
  #: frontend/templates/default.php:12
2383
+ #: frontend/templates/store-listings-below.php:12 inc/wpsl-functions.php:140
2384
  msgid "Your location"
2385
  msgstr ""
2386
 
2387
+ #: admin/templates/map-settings.php:516 admin/templates/map-settings.php:517
2388
  #: frontend/templates/default.php:21
2389
+ #: frontend/templates/store-listings-below.php:21 inc/wpsl-functions.php:143
2390
  msgid "Search radius"
2391
  msgstr ""
2392
 
2393
+ #: admin/templates/map-settings.php:520 admin/templates/map-settings.php:521
2394
+ #: frontend/class-frontend.php:1837 inc/wpsl-functions.php:144
2395
  msgid "No results found"
2396
  msgstr ""
2397
 
2398
+ #: admin/templates/map-settings.php:528
2399
  msgid "Searching (preloader text)"
2400
  msgstr ""
2401
 
2402
+ #: admin/templates/map-settings.php:529 frontend/class-frontend.php:1836
2403
+ #: inc/wpsl-functions.php:142
2404
  msgid "Searching..."
2405
  msgstr ""
2406
 
2407
+ #: admin/templates/map-settings.php:532 admin/templates/map-settings.php:533
2408
  #: frontend/templates/default.php:30
2409
+ #: frontend/templates/store-listings-below.php:30 inc/wpsl-functions.php:145
2410
  msgid "Results"
2411
  msgstr ""
2412
 
2413
+ #: admin/templates/map-settings.php:536 admin/upgrade.php:206
2414
+ #: inc/wpsl-functions.php:159
2415
  msgid "Category filter"
2416
  msgstr ""
2417
 
2418
+ #: admin/templates/map-settings.php:537 frontend/class-frontend.php:1411
2419
  msgid "Category"
2420
  msgstr ""
2421
 
2422
+ #: admin/templates/map-settings.php:540
2423
  msgid "Category first item"
2424
  msgstr ""
2425
 
2426
+ #: admin/templates/map-settings.php:541 admin/upgrade.php:367
2427
+ #: frontend/class-frontend.php:1414 inc/wpsl-functions.php:160
2428
  msgid "Any"
2429
  msgstr ""
2430
 
2431
+ #: admin/templates/map-settings.php:544 admin/templates/map-settings.php:545
2432
+ #: admin/upgrade.php:59 frontend/class-frontend.php:1838
2433
  #: frontend/underscore-functions.php:138 frontend/underscore-functions.php:168
2434
+ #: inc/wpsl-functions.php:146
2435
  msgid "More info"
2436
  msgstr ""
2437
 
2438
+ #: admin/templates/map-settings.php:548 admin/templates/map-settings.php:549
2439
  #: frontend/class-frontend.php:828 frontend/underscore-functions.php:29
2440
  #: frontend/underscore-functions.php:65 frontend/underscore-functions.php:147
2441
+ #: inc/wpsl-functions.php:154
2442
  msgid "Phone"
2443
  msgstr ""
2444
 
2445
+ #: admin/templates/map-settings.php:568 admin/templates/map-settings.php:569
2446
+ #: frontend/class-frontend.php:1843 inc/wpsl-functions.php:139
2447
  msgid "Start location"
2448
  msgstr ""
2449
 
2450
+ #: admin/templates/map-settings.php:572
2451
  msgid "Get directions"
2452
  msgstr ""
2453
 
2454
+ #: admin/templates/map-settings.php:573 frontend/class-frontend.php:861
2455
+ #: frontend/class-frontend.php:1841 inc/wpsl-functions.php:147
2456
  msgid "Directions"
2457
  msgstr ""
2458
 
2459
+ #: admin/templates/map-settings.php:576
2460
  msgid "No directions found"
2461
  msgstr ""
2462
 
2463
+ #: admin/templates/map-settings.php:577 admin/upgrade.php:151
2464
+ #: frontend/class-frontend.php:1842 inc/wpsl-functions.php:148
2465
  msgid "No route could be found between the origin and destination"
2466
  msgstr ""
2467
 
2468
+ #: admin/templates/map-settings.php:580 admin/templates/map-settings.php:581
2469
+ #: admin/upgrade.php:77 frontend/class-frontend.php:1844
2470
+ #: inc/wpsl-functions.php:149
2471
  msgid "Back"
2472
  msgstr ""
2473
 
2474
+ #: admin/templates/map-settings.php:584 admin/templates/map-settings.php:585
2475
+ #: admin/upgrade.php:143 frontend/class-frontend.php:1845
2476
+ #: inc/wpsl-functions.php:150
2477
  msgid "Street view"
2478
  msgstr ""
2479
 
2480
+ #: admin/templates/map-settings.php:588 admin/templates/map-settings.php:589
2481
+ #: admin/upgrade.php:147 frontend/class-frontend.php:1846
2482
+ #: inc/wpsl-functions.php:151
2483
  msgid "Zoom here"
2484
  msgstr ""
2485
 
2486
+ #: admin/templates/map-settings.php:592
2487
  msgid "General error"
2488
  msgstr ""
2489
 
2490
+ #: admin/templates/map-settings.php:593 frontend/class-frontend.php:1839
2491
+ #: inc/wpsl-functions.php:152
2492
  msgid "Something went wrong, please try again!"
2493
  msgstr ""
2494
 
2495
+ #: admin/templates/map-settings.php:596
2496
  msgid "Query limit error"
2497
  msgstr ""
2498
 
2499
+ #: admin/templates/map-settings.php:596
2500
  #, php-format
2501
  msgid ""
2502
  "You can raise the %susage limit%s by obtaining an API %skey%s, and fill in "
2503
  "the \"API key\" field at the top of this page."
2504
  msgstr ""
2505
 
2506
+ #: admin/templates/map-settings.php:597 frontend/class-frontend.php:1840
2507
+ #: inc/wpsl-functions.php:153
2508
  msgid "API usage limit reached"
2509
  msgstr ""
2510
 
2511
+ #: admin/templates/map-settings.php:610
2512
  msgid "Tools"
2513
  msgstr ""
2514
 
2515
+ #: admin/templates/map-settings.php:613
2516
  msgid "Enable store locator debug?"
2517
  msgstr ""
2518
 
2519
+ #: admin/templates/map-settings.php:613
2520
  #, php-format
2521
  msgid ""
2522
  "This disables the WPSL transient cache. %sThe transient cache is only used "
2523
  "if the %sLoad locations on page load%s option is enabled."
2524
  msgstr ""
2525
 
2526
+ #: admin/templates/map-settings.php:617
2527
  msgid "Enable compatibility mode?"
2528
  msgstr ""
2529
 
2530
+ #: admin/templates/map-settings.php:617
2531
  #, php-format
2532
  msgid ""
2533
  "If the %sbrowser console%s shows the error below, then enabling this option "
2536
  "situations break the store locator map."
2537
  msgstr ""
2538
 
2539
+ #: admin/templates/map-settings.php:621
2540
  msgid "WPSL transients"
2541
  msgstr ""
2542
 
2543
+ #: admin/templates/map-settings.php:622
2544
  msgid "Clear store locator transient cache"
2545
  msgstr ""
2546
 
2552
  msgid "Reset"
2553
  msgstr ""
2554
 
2555
+ #: admin/upgrade.php:174 inc/wpsl-functions.php:133
2556
  msgid "stores"
2557
  msgstr ""
2558
 
2559
+ #: admin/upgrade.php:178 inc/wpsl-functions.php:134
2560
  msgid "store-category"
2561
  msgstr ""
2562
 
2563
+ #: admin/upgrade.php:443
2564
  #, php-format
2565
  msgid ""
2566
  "Because you updated WP Store Locator from version 1.x, the %s current store "
2567
  "locations need to be %sconverted%s to custom post types."
2568
  msgstr ""
2569
 
2570
+ #: admin/upgrade.php:464
2571
  #, php-format
2572
  msgid ""
2573
  "The script converting the locations timed out. %s You can click the \"Start "
2578
  "but if you are reading this then that failed."
2579
  msgstr ""
2580
 
2581
+ #: admin/upgrade.php:485
2582
  msgid "Store locations to convert:"
2583
  msgstr ""
2584
 
2585
+ #: admin/upgrade.php:487
2586
  msgid "Start Converting"
2587
  msgstr ""
2588
 
2589
+ #: admin/upgrade.php:609
2590
  #, php-format
2591
  msgid ""
2592
  "All the store locations are now converted to custom post types. %s You can "
2633
  msgid "Search provided by %sWP Store Locator%s"
2634
  msgstr ""
2635
 
2636
+ #: inc/class-post-types.php:77
2637
  msgid "Store Locator"
2638
  msgstr ""
2639
 
2640
+ #: inc/class-post-types.php:78
2641
  msgid "All Stores"
2642
  msgstr ""
2643
 
2644
+ #: inc/class-post-types.php:79
2645
  msgid "Store"
2646
  msgstr ""
2647
 
2648
+ #: inc/class-post-types.php:80 inc/class-post-types.php:83
2649
  msgid "New Store"
2650
  msgstr ""
2651
 
2652
+ #: inc/class-post-types.php:81
2653
  msgid "Add New Store"
2654
  msgstr ""
2655
 
2656
+ #: inc/class-post-types.php:82
2657
  msgid "Edit Store"
2658
  msgstr ""
2659
 
2660
+ #: inc/class-post-types.php:84
2661
  msgid "View Stores"
2662
  msgstr ""
2663
 
2664
+ #: inc/class-post-types.php:85
2665
  msgid "Search Stores"
2666
  msgstr ""
2667
 
2668
+ #: inc/class-post-types.php:86
2669
  msgid "No Stores found"
2670
  msgstr ""
2671
 
2672
+ #: inc/class-post-types.php:87
2673
  msgid "No Stores found in trash"
2674
  msgstr ""
2675
 
2676
+ #: inc/class-post-types.php:130 inc/class-post-types.php:140
2677
  msgid "Store Categories"
2678
  msgstr ""
2679
 
2680
+ #: inc/class-post-types.php:131
2681
  msgid "Store Category"
2682
  msgstr ""
2683
 
2684
+ #: inc/class-post-types.php:132
2685
  msgid "Search Store Categories"
2686
  msgstr ""
2687
 
2688
+ #: inc/class-post-types.php:133
2689
  msgid "All Store Categories"
2690
  msgstr ""
2691
 
2692
+ #: inc/class-post-types.php:134
2693
  msgid "Parent Store Category"
2694
  msgstr ""
2695
 
2696
+ #: inc/class-post-types.php:135
2697
  msgid "Parent Store Category:"
2698
  msgstr ""
2699
 
2700
+ #: inc/class-post-types.php:136
2701
  msgid "Edit Store Category"
2702
  msgstr ""
2703
 
2704
+ #: inc/class-post-types.php:137
2705
  msgid "Update Store Category"
2706
  msgstr ""
2707
 
2708
+ #: inc/class-post-types.php:138
2709
  msgid "Add New Store Category"
2710
  msgstr ""
2711
 
2712
+ #: inc/class-post-types.php:139
2713
  msgid "New Store Category Name"
2714
  msgstr ""
2715
 
2716
+ #: inc/class-post-types.php:171
2717
  msgid "Enter store title here"
2718
  msgstr ""
2719
 
2720
+ #: inc/class-post-types.php:189
2721
  msgid "Zip"
2722
  msgstr ""
2723
 
2733
  "parameters."
2734
  msgstr ""
2735
 
2736
+ #: inc/wpsl-functions.php:229
2737
  msgid "Show the store list below the map"
2738
  msgstr ""
2739
 
2740
+ #: inc/wpsl-functions.php:246
2741
  msgid "Monday"
2742
  msgstr ""
2743
 
2744
+ #: inc/wpsl-functions.php:247
2745
  msgid "Tuesday"
2746
  msgstr ""
2747
 
2748
+ #: inc/wpsl-functions.php:248
2749
  msgid "Wednesday"
2750
  msgstr ""
2751
 
2752
+ #: inc/wpsl-functions.php:249
2753
  msgid "Thursday"
2754
  msgstr ""
2755
 
2756
+ #: inc/wpsl-functions.php:250
2757
  msgid "Friday"
2758
  msgstr ""
2759
 
2760
+ #: inc/wpsl-functions.php:251
2761
  msgid "Saturday"
2762
  msgstr ""
2763
 
2764
+ #: inc/wpsl-functions.php:252
2765
  msgid "Sunday"
2766
  msgstr ""
2767
 
2768
+ #: inc/wpsl-functions.php:282
2769
  #, php-format
2770
  msgid "Mon %sTue %sWed %sThu %sFri %sSat Closed %sSun Closed"
2771
  msgstr ""
2772
 
2773
+ #: inc/wpsl-functions.php:298
2774
  msgid "Satellite"
2775
  msgstr ""
2776
 
2777
+ #: inc/wpsl-functions.php:299
2778
  msgid "Hybrid"
2779
  msgstr ""
2780
 
2781
+ #: inc/wpsl-functions.php:300
2782
  msgid "Terrain"
2783
  msgstr ""
2784
 
2785
+ #: inc/wpsl-functions.php:315
2786
  msgid "(city) (state) (zip code)"
2787
  msgstr ""
2788
 
2789
+ #: inc/wpsl-functions.php:316
2790
  msgid "(city), (state) (zip code)"
2791
  msgstr ""
2792
 
2793
+ #: inc/wpsl-functions.php:317
2794
  msgid "(city) (zip code)"
2795
  msgstr ""
2796
 
2797
+ #: inc/wpsl-functions.php:318
2798
  msgid "(city), (zip code)"
2799
  msgstr ""
2800
 
2801
+ #: inc/wpsl-functions.php:319
2802
  msgid "(zip code) (city) (state)"
2803
  msgstr ""
2804
 
2805
+ #: inc/wpsl-functions.php:320
2806
  msgid "(zip code) (city)"
2807
  msgstr ""
readme.txt CHANGED
@@ -1,493 +1,501 @@
1
- === WP Store Locator ===
2
- Plugin URI: https://wpstorelocator.co
3
- Contributors: tijmensmit
4
- Donate link: https://www.paypal.me/tijmensmit
5
- Tags: google maps, store locator, business locations, geocoding, stores, geo, zipcode locator, dealer locater, geocode, gmaps, google map, google map plugin, location finder, map tools, shop locator, wp google map
6
- Requires at least: 3.7
7
- Tested up to: 5.0.0
8
- Stable tag: 2.2.19
9
- License: GPLv3
10
- License URI: http://www.gnu.org/licenses/gpl.html
11
-
12
- An easy to use location management system that enables users to search for nearby physical stores.
13
-
14
- == Description ==
15
-
16
- WP Store Locator is a powerful and easy to use location management system.
17
- You can customize the appearance of the map, and provide custom labels for entry fields.
18
- Users can filter the results by radius, and see driving directions to the nearby stores in
19
- the language that is set in the admin panel.
20
-
21
- = Features include: =
22
-
23
- * Manage an unlimited numbers of stores.
24
- * Provide extra details for stores like the phone, fax, email, url, description and opening hours. There are filters available that allow you add [custom](http://wpstorelocator.co/document/add-custom-meta-data-to-store-locations/) meta data.
25
- * Support for custom [map styles](http://www.mapstylr.com/).
26
- * Choose from nine retina ready marker icons.
27
- * Show the driving distances in either km or miles.
28
- * Shortcodes that enable you to add individual opening hours, addresses or just a map with a single marker to any page.
29
- * Compatible with multilingual plugins like [WPML](https://wpml.org/plugin/wp-store-locator/) and qTranslate X.
30
- * You can drag the marker in the editor to the exact location on the map.
31
- * Show the search results either underneath the map, or next to it.
32
- * Show Google Maps in different languages, this also influences the language for the driving directions.
33
- * Show the driving directions to the stores.
34
- * Customize the max results and search radius values that users can select.
35
- * Users can filter the returned results by radius, max results or category.
36
- * Supports [marker clusters](https://developers.google.com/maps/articles/toomanymarkers?hl=en#markerclusterer).
37
- * Customize map settings like the terrain type, location of the map controls and the default zoom level.
38
- * Use the Geolocation API to find the current location of the user and show nearby stores.
39
- * Developer friendly code. It uses custom post types and includes almost 30 different [filters](https://wpstorelocator.co/documentation/filters/) that help you change the look and feel of the store locator.
40
-
41
- > <strong>Documentation</strong><br>
42
- > Please take a look at the store locator [documentation](https://wpstorelocator.co/documentation/) before making a support request.
43
-
44
- * [Getting Started](https://wpstorelocator.co/documentation/getting-started/)
45
- * [Troubleshooting](https://wpstorelocator.co/documentation/troubleshooting/)
46
- * [Customisations](https://wpstorelocator.co/documentation/customisations/)
47
- * [Filters](https://wpstorelocator.co/documentation/filters/)
48
-
49
- = Premium Add-ons =
50
-
51
- **CSV Manager**
52
-
53
- The [CSV Manager](https://wpstorelocator.co/add-ons/csv-manager/) allows you to bulk import, export and update your locations using a CSV file.
54
-
55
- **Search Widget**
56
-
57
- The [Search Widget](https://wpstorelocator.co/add-ons/search-widget/) enables users to search from any of the widgetized areas in your theme for nearby store locations, and show the results on the store locator page.
58
-
59
- **Statistics**
60
-
61
- The [Statistics](https://wpstorelocator.co/add-ons/statistics/) add-on enables you to keep track of the locations users are searching for and see where there is demand for a new store.
62
-
63
- **Store Directory - Coming Soon**
64
-
65
- Generate a directory based on the store locations.
66
-
67
- == Installation ==
68
-
69
- 1. Upload the `wp-store-locator` folder to the `/wp-content/plugins/` directory
70
- 1. Activate the plugin through the 'Plugins' menu in WordPress
71
- 1. Create a [Google API Key](https://wpstorelocator.co/document/create-google-api-keys/) and set them on the [settings](https://wpstorelocator.co/document/configure-wp-store-locator/#google-maps-api) page.
72
- 1. Set the start point on the [settings](https://wpstorelocator.co/document/configure-wp-store-locator/#map).
73
- 1. Add your stores under 'Store Locator' -> Add Store
74
- 1. Add the map to a page with this shortcode: [wpsl]
75
-
76
- == Frequently Asked Questions ==
77
-
78
- = How do I add the store locator to a page? =
79
-
80
- Add this [shortcode](https://wpstorelocator.co/document/shortcodes/) [wpsl] to the page where you want to display the store locator.
81
-
82
- = Oops! Something went wrong =
83
-
84
- You can fix this by setting the [browser](https://wpstorelocator.co/document/configure-wp-store-locator/#google-maps-api) key on the settings page.
85
-
86
- = There are weird characters in the search results, how do I remove them? =
87
-
88
- This is most likely caused by a plugin like W3 Total Cache that tried to minify the HTML output on the store locator page. You can fix this by excluding the store locator from being minified on the settings page of the caching plugin you're using. In W3 Total Cache this is done by going to Minify -> Advanced -> Never minify the following pages, and fill in the page you don't want to have minified. So if your store locator is used on mydomain.com/store-locator, then fill in 'store-locator'.
89
-
90
- = Can I use different markers for category or individual store locations? =
91
-
92
- How to use custom markers is described [here](https://wpstorelocator.co/document/use-custom-markers/), you can also only use [different markers](https://wpstorelocator.co/document/use-custom-markers/) for a few locations, or just for the [categories](https://wpstorelocator.co/document/set-unique-category-markers/).
93
-
94
- = The map doesn't display properly. It's either broken in half or doesn't load at all. =
95
-
96
- Make sure you have defined a start point for the map under settings -> Map Settings.
97
-
98
- = The map doesn't work anymore after installing the latest update =
99
-
100
- If you use a caching plugin, or a service like Cloudflare, then make sure to flush the cache.
101
-
102
- = I can't dismiss the pop up asking me to join the mailing list, how do I fix this? =
103
-
104
- There is probably a JS error in the WP Admin area that prevents the pop up from being dismissed. Try for a second to switch back to a default WP theme, disable all other plugins, and then try to dismiss the newsletter pop up again.
105
-
106
- = Why does it show the location I searched for in the wrong country? =
107
-
108
- Some location names exist in more then one country, and Google will guess which one you mean. This can be fixed by setting the correct 'Map Region' on the settings page -> API Settings.
109
-
110
- = The store locator doesn't load, it only shows the number 1? =
111
-
112
- This is most likely caused by your theme using ajax navigation ( the loading of content without reloading the page ), or a conflict with another plugin. Try to disable the ajax navigation in the theme settings, or deactivate the plugin that enables it to see if that solves the problem.
113
-
114
- If you don't use ajax navigation, but do see the number 1 it's probably a conflict with another plugin. Try to disable the plugins one by one to see if one of them is causing a conflict.
115
-
116
- If you find a plugin or theme that causes a conflict, please report it on the [support page](http://wordpress.org/support/plugin/wp-store-locator).
117
-
118
- > You can find the full documentation [here](https://wpstorelocator.co/documentation/).
119
-
120
- == Screenshots ==
121
-
122
- 1. Front-end of the plugin
123
- 2. The driving directions from the user location to the selected store
124
- 3. The 'Store Details' section
125
- 4. The plugin settings
126
-
127
- == Changelog ==
128
-
129
- = 2.2.19, December 6, 2018 =
130
- * Fixed: Not being able to assign locations to a category when [Gutenberg](https://wordpress.org/gutenberg/) is used.
131
-
132
- = 2.2.18, December 2, 2018 =
133
- * New: Added role="presentation" to the hours table.
134
- * New: Added a [wpsl_strip_content_shortcode](https://wpstorelocator.co/document/wpsl_strip_content_shortcode/) filter to optionally prevent strip_shortcodes from running on the post content data shown in the search results.
135
- * New: Included the 'show_in_rest' param when the wpsl_stores post type is registered for WP 5.x to enable the [Gutenberg editor](https://wordpress.org/gutenberg/). You can read how to disable this [here](https://wpstorelocator.co/document/wpsl_post_type_args/#disable-rest).
136
- * Note: Setting '[show_in_rest](https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-rest-api-support-for-custom-content-types/)' to true will make the store locator data partially available through the [REST API](https://developer.wordpress.org/rest-api/). If you don't want this, then you can use a plugin like [this](https://wordpress.org/plugins/disable-json-api/) to disable access to it for anonymous users. Full REST API support will come in the 3.0 update.
137
- * Fixed: Added CSS rules that target the Twenty Nineteen theme from WP 5.x to fix a few alignment issues.
138
- * Fixed: Prevented duplicate content from showing up on single stores pages when the Twenty Nineteen theme is used.
139
- * Fixed: Disable the scrollWheel option in the JS code if the Google Maps gestureHandling is set to cooperative, otherwise the cooperative value is ignored.
140
- * Fixed: Make the [wpsl_hours] shortcode respect the setting to hide the hours from the settings page. Via [@agbruce](https://wordpress.org/support/users/agbruce/).
141
- * Changed: Removed the unused 'no-results' class from being targeted in the JS code.
142
- * Changed: Reversed the order of the API key fields on the settings page to make it match with how it's described in the documentation.
143
- * Changed: Disable the 'On page load move the mouse cursor to the search field?' option by default on new installations.
144
- * Changed: Improved the code that filters the city / state / country data from the returned API data for the statistics add-on.
145
-
146
- = 2.2.17, September 16, 2018 =
147
- * Changed: Truncated the used coordinates to 5 decimals in the JS script to workaround this [reverse geocoding bug](https://issuetracker.google.com/issues/115484101#comment3). This bug resulted in a 'No results found' error ( based on the used WPSL settings ) if you searched for major cities like Los Angeles.
148
-
149
- = 2.2.16, August 14, 2018 =
150
- * Changed: Set the Google Maps API version to 3.33 to prevent [weekly API updates](https://developers.google.com/maps/documentation/javascript/versions) from suddenly breaking the map. You can overwrite the version number with the wpsl_gmap_api_version filter.
151
-
152
- = 2.2.15, May 24, 2018 =
153
- * Added: Included a 'Export Location Data' button in the admin editor to make it easier to handle possible GDPR data access requests. If you want to, then you can hide it with [this](https://wpstorelocator.co/document/wpsl_enable_export_option/) filter.
154
-
155
- = 2.2.14, March 27, 2018 =
156
- * Added: Included a wpsl_setting_dropdowns filter that enables the creation of additional dropdowns on the settings page.
157
- * Added: A wpsl_get_location_fields() function that returns an array of the used meta fields.
158
- * Changed: Made it easier for add-ons to access the WPSL_Frontend class.
159
- * Fixed: Made sure the search results are visible when a RTL language is used.
160
- * Fixed: Removed a CSS rule that prevented the markers and the links in the info window from responding to mouse clicks in IE 11.
161
-
162
- = 2.2.13, February 28, 2018 =
163
- * Added: Included support for 'directions' and 'clickable_contact_details' to the [wpsl_address](https://wpstorelocator.co/document/shortcodes/#store-address) shortcode.
164
- * Added: An option to the User Experience section on the settings page to make the contact details ( phone / email ) always clickable.
165
- * Added: A 'wpsl_skip_cpt_template' filter that you can use to prevent the code in the 'cpt_template' function from running.
166
- * Changed: When the statistics add-on is active, then the complete response from the Geocode API is included in the AJAX data.
167
- * Changed: Added a check in the makeAjaxRequest function to prevent it from processing data from AJAX request made by add-ons.
168
- * Changed: Included a CSS rule to hide duplicate dropdowns generated by the [Select2](https://select2.org/) library used by some themes.
169
- * Changed: Replaced the usage of findFormattedAddress with the reverseGeocode function in the wpsl-gmap.js.
170
- * Changed: Fixed a typo in the geoLocationTim(e)out var.
171
- * Changed: Updated the wpsl.pot file.
172
- * Fixed: A ICL_LANGUAGE_CODE notice when Polylang is active.
173
- * Fixed: On some installations a call to undefined function pll__() showed up when Polylang was used.
174
-
175
- = 2.2.12, February 16, 2018 =
176
- * Fixed: The zoom level automatically going down to streetlevel with the wpsl_map shortcode, and ignoring the set zoom level in the shortcode options.
177
- * Fixed: The zipcode not always being correctly filtered out of the geocode API response when the user location is automatically detected.
178
- * Changed: Removed unused customCheckboxValue variable.
179
-
180
- = 2.2.11, January 14, 2018 =
181
- * Added: A WPSL_Templates class that handles the different templates in the store locator and in the upcoming directory and nearby locations add-ons.
182
- * Added: A 'wpsl_settings_tab' filter that makes it possible to add custom tabs on the settings page.
183
- * Added: A 'wpsl_settings_section' action so you can add custom fields to the settings page.
184
- * Changed: The find_nearby_locations(), check_store_filter() and the check_allowed_filter_value() now accepts an $args param.
185
- * Changed: Increased the timeout for the geolocation request.
186
-
187
- = 2.2.10, December 12, 2017 =
188
- * Added: The [wpsl_map_tab_anchor](https://wpstorelocator.co/document/wpsl_map_tab_anchor) filter now also accepts an array, so you can show multiple maps ( with the wpsl_map shortcode ) next to eachother in different tabs.
189
- * Added: A store locator media button in the editor that enables you to generate the shortcode attributes for the wpsl shortcode.
190
- * Added: A check on the settings page that validates the provided Google Maps API keys in the background when they are saved.
191
- * Added: Support to the [wpsl](https://wpstorelocator.co/document/shortcodes/) shortcode for 'auto_locate', 'category_selection', 'category_filter_type', 'checkbox_columns', 'map_type', 'start_marker' and 'store_marker'.
192
- * Added: A requiredFields value to the js_settings function that allows you to customize/remove the required fields check when the 'Preview Location' button is used in the admin area.
193
- * Added: A wpsl_save_post action.
194
- * Added: Placed a 'wpsl-no-results' class on the outer div when no results are returned.
195
- * Changed: Removed unused $i counter from the settings class.
196
- * Changed: Improved the handling of errors returned by the Geocode API and clarified the meaning of them.
197
- * Changed: Firefox now also [requires](https://www.mozilla.org/en-US/firefox/55.0/releasenotes/) SSL to access the Geolocation API, so updated the notice text on the settings page.
198
- * Changed: Included the latest version of the EDD_SL_Plugin_Updater class ( 1.6.14 ).
199
- * Changed: Replaced $wpsl_settings['category_filter'] with $this->use_category_filter() in the templates to make it compatible with the new category shortcode attributes. So if you're using a custom template, then make the same change.
200
- * Changed: Renamed the 'no-results' class to 'wpsl-no-results-msg' to prevent conflicts with CSS rules from other themes / plugins.
201
- * Changed: Included a missing ) in the country name list on the settings page.
202
- * Changed: Updated the .pot file, and the Dutch and Spanish ( via [Jaime Smeke](http://untaljai.me/) ) translations.
203
- * Changed: Set the display mode for the wpsl-directions class to table instead of block to prevent some themes from showing a wide underline.
204
- * Changed: Moved get_ajax_url to the wpsl-functions.php and named it wpsl_get_ajax_url().
205
- * Fixed: Include the used [travel mode](https://wpstorelocator.co/document/wpsl_direction_travel_mode/) in the generated URL that shows the user the directions on Google Maps itself.
206
- * Fixed: A notice triggered by Polylang for ICL_SITEPRESS_VERSION.
207
-
208
- = 2.2.9, July 9, 2017 =
209
- * Added: The possibility to load [custom images](https://wpstorelocator.co/document/change-marker-cluster-images/) for the marker clusters.
210
- * Added: An option to the map section to disable the zoom level from being automatically adjusted after a search is complete. If it's disabled then it will focus on the start point, and use the zoom level from the 'Initial zoom level' field.
211
- * Added: A check that prevents the search radius / max results value used in the SQL query from being bigger then the max value set on the settings page.
212
- * Fixed: The get_default_filter_value func not returning the default value for the search radius field ( see next item ).
213
- * Changed: Had to rename the param for the search radius in the AJAX call from radius to search_radius to make it match with the settings page value.
214
- * Note: If you're using custom code that relies on the returned paramater being radius, then rename it to search_radius.
215
- * Changed: Updated the .pot file.
216
-
217
- = 2.2.8, April 30, 2017 =
218
- * Added: Support for [Polylang](https://wordpress.org/plugins/polylang/).
219
- * Added: A [wpsl_direction_travel_mode](https://wpstorelocator.co/document/wpsl_direction_travel_mode/) filter that enabled you to change the used [travel mode](https://developers.google.com/maps/documentation/javascript/directions#TravelModes) for the directions.
220
- * Added: A [wpsl_distance_unit](https://wpstorelocator.co/document/wpsl_distance_unit/) filter.
221
- * Added: A [wpsl_disable_welcome_pointer](https://wpstorelocator.co/document/wpsl_disable_welcome_pointer/) filter that enables you disable the newsletter signup on a multisite network.
222
- * Added: Support for custom alternateMarkerUrl and categoryMarkerUrl data in the JS file, this allows you to set a custom marker for [individual locations](https://wpstorelocator.co/document/use-different-marker-for-each-location/) and for [categories](https://wpstorelocator.co/document/set-unique-category-markers/).
223
- * Changed: Deprecated the [wpsl_draggable_map](https://wpstorelocator.co/document/wpsl_draggable_map/) filter and [replaced](https://wpstorelocator.co/document/wpsl_gesture_handling/) it with support for Google Maps [gestureHandling](https://developers.google.com/maps/documentation/javascript/interaction).
224
- * Changed: Made sure the supported map regions on the settings page match with the list of supported regions from [Google](https://developers.google.com/maps/coverage).
225
- * Changed: Included the latest version of the EDD_SL_Plugin_Updater class ( 1.6.12 ).
226
- * Fixed: A fatal call to undefined function error when the plugin is activated through WP-CLI.
227
- * Fixed: The controls in street view mode not having a background color, so the back button wasn't visible.
228
- * Fixed: Prevented two consecutive underscores from showing up in the generated transient names if no autoload limit is set.
229
-
230
- = 2.2.7, December 31, 2016 =
231
- * Changed: Included the latest version of the EDD_SL_Plugin_Updater class ( 1.6.8 ).
232
- * Changed: Reverted a change in the CSS file that ended up breaking the map for some users.
233
-
234
- = 2.2.6, December 24, 2016 =
235
- * Fixed: The opening hours not working correctly for Saturday / Sunday in the admin area. The 12:00 AM field was missing.
236
- * Fixed: A PHP notice showing up when an invalid value was set for the radius / max results dropdown.
237
- * Fixed: The zoom attribute now works correctly for the wpsl_map shortcode.
238
- * Changed: Included the latest version of the EDD_SL_Plugin_Updater class ( 1.6.7 ).
239
- * Changed: Removed unused locationCount var from wpsl-gmap.js.
240
- * Changed: Added a CSS rule that makes it harder for themes to scaled images on the map.
241
-
242
- = 2.2.5, December 11, 2016 =
243
- * Fixed: Made it work with the latest WPML version.
244
- * Fixed: Remove the WPSL caps and Store Locator Manager role on uninstall. The code was always there to do so, but was never called.
245
- * Fixed: A PHP notice that showed up when the settings page was saved with an empty start location field.
246
- * Changed: Adjusted the structure of the post type labels so you can correctly translate them in singular / plural forms based on the used language. Via [deshack](https://wordpress.org/support/users/deshack/).
247
- * Changed: Added a tooltip to the 'Attempt to auto-locate the user' field explaining that HTTPS is now [required](https://wpstorelocator.co/document/html-5-geolocation-not-working-chrome-safari/) in Chrome and Safari.
248
- * Changed: The coordinates from the start location are now used to center the map in the map section on the settings page instead of it always defaulting to Holland.
249
- * Changed: Renamed the existing option that prevents two Google Maps libraries from loading at the same time to "Enable compatibility mode" on the settings page ( Tools section ).
250
- * Changed: Updated the wpsl.pot file.
251
- * Changed: No longer use the deprecated icl_object_id() function when the WPML version is newer then 3.2.
252
-
253
- = 2.2.4, Augustus 6, 2016 =
254
- * New: Added an option to the tools section to prevent other scripts from including the Google Maps API a second time on the store locator page. This sometimes breaks the map.
255
- * Fixed: Assigned the correct country code to Martinique on the settings page.
256
- * Fixed: The code that calls [wp_editor](https://codex.wordpress.org/Function_Reference/wp_editor) now includes a random ID after 'wpsleditor' to make sure you can use it multiple times on the same page.
257
- * Fixed: The inline [qTranslate X](https://wordpress.org/plugins/qtranslate-x/) syntax ( [:en]English Text[:de]Deutsch[:] ) now works for the label fields.
258
- * Fixed: Added a workaround for [this](https://bugzilla.mozilla.org/show_bug.cgi?id=1283563) bug with the Geolocation API in Firefox.
259
- * Changed: Automatically adjust the language Google Maps uses when WMPL or qTranslate X is active.
260
- * Changed: Improved the handling of error codes returned by the Google Geocode API.
261
- * Changed: Removed the '_' prefix from the returned language code in check_multilingual_code().
262
- * Changed: Updated the wpsl.pot file.
263
-
264
- = 2.2.3, June 27, 2016 =
265
- * Fixed: Included the browser key in requests made to the Google Maps JavaScript API in the admin area. This is now [required](http://googlegeodevelopers.blogspot.nl/2016/06/building-for-scale-updates-to-google.html).
266
- * Changed: Include the language code in the AJAX request if WPML is active.
267
- * New: Spanish translations (es_ES). Via [Jaime Smeke](http://untaljai.me/).
268
- * New: Added support for the upcoming statistics add-on.
269
-
270
- = 2.2.2, May 18, 2016 =
271
- * Fixed: Corrected the [path](https://github.com/googlemaps/js-marker-clusterer/pull/61) for the cluster marker images.
272
-
273
- = 2.2.1, March 24, 2016 =
274
- * Fixed: A JS bug that sometimes resulted in duplicate results showing up in the search results.
275
-
276
- = 2.2, March 20, 2016 =
277
- * New: The option to show the categories with checkboxes instead of a dropdown.
278
- * Note: If you're showing the categories with checkboxes, then you can change the amount of used columns by setting the "checkbox_columns" ( between 1 and 4 ) on the [wpsl] shortcode.
279
- * New: A [wpsl_no_results](https://wpstorelocator.co/document/wpsl_no_results) filter that allows you to create a custom HTML block that replaces the 'No results found' text.
280
- * New: The option to enable [autocomplete](https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete) for location searches.
281
- * Note: Read [this](https://wpstorelocator.co/version-2-2-released/#autocomplete) if you're using a custom template and want to use the autocomplete option.
282
- * New: A [wpsl_enable_styled_dropdowns](https://wpstorelocator.co/document/wpsl_enable_styled_dropdowns/) filter that allows you to disable the current JS styling for all the dropdowns.
283
- * New: You can now change the "Any" text used in the category dropdown in the labels section on the settings page.
284
- * New: The option to hide the country name in the search results / marker pop-up.
285
- * New: The option to show the contact details below the address.
286
- * New: A [wpsl_hide_closed_hours](https://wpstorelocator.co/document/wpsl_hide_closed_hours/) filter that enables you to hide the days that the location is closed from the opening hours list.
287
- * New: Values from [custom dropdowns](https://wpstorelocator.co/version-2-2-released/#custom-dropdown) that have a "wpsl-custom-dropdown" class set are automatically included in the AJAX data.
288
- * New: Added a Add-Ons page to the "Store Locator" menu.
289
- * New: A [wpsl_map_tab_anchor_return](https://wpstorelocator.co/document/wpsl_map_tab_anchor_return/) filter that allows you to choose between return true or false if the tab anchor is clicked.
290
- * New: Added the "aria-required" attribute to the search field.
291
- * Changed: The category dropdown is now created with [wp_dropdown_categories](https://codex.wordpress.org/Function_Reference/wp_dropdown_categories) and correctly indents sub categories.
292
- * Changed: If a search returns no results, then the map will now focus on the searched location instead of only showing the "No results found" msg.
293
- * Changed: Instead of a single "API key" [field](https://wpstorelocator.co/document/configure-wp-store-locator/#google-maps-api) there are now separate [server](https://developers.google.com/maps/documentation/geocoding/get-api-key#get-an-api-key) and [browser](https://developers.google.com/maps/documentation/javascript/get-api-key#get-an-api-key) key fields. If an API key existed, then it's assumed to be a server key.
294
- * Changed: A scrollbar is shown inside the styled dropdown filters if they are heigher then 300px. You can change the maximum height with the [wpsl_max_dropdown_height](https://wpstorelocator.co/document/wpsl_max_dropdown_height/) filter.
295
- * Changed: Removed the text wrap on the category filter items. If a category name is too long, then it will now go over two lines instead of being cut off.
296
- * Changed: Updated the wpml-config.xml and wpsl.pot.
297
- * Changed: If the autocomplete for the start location on the settings page fails ( JS error ), then the set start location is geocoded in the background when the settings are saved.
298
- * Changed: A single JS function now handles all the conditional options on the settings page instead of several smaller ones.
299
- * Changed: The "zoom_name" and "zoom_latlng" setting is renamed to "start_name" and "start_latlng".
300
- * Changed: Renamed the "category_dropdown" setting to "category_filter" to better reflect the value that it holds ( either checkbox or dropdown ). So if you're using a custom template, then make sure to change "category_dropdown" to "category_filter" in your code.
301
- * Fixed: If you click on one of the styled dropdowns when it's already open, then it will now close.
302
-
303
- = 2.1.2, March 4, 2016 =
304
- * Fixed: Invalid HTML in the category dropdown.
305
- * Fixed: Clicking on the marker on a single store / [wpsl_map] page triggered a JS error if the location permalinks are enabled.
306
- * Fixed: The wpsl_map_tab_anchor filter not working with the [wpsl_map] shortcode.
307
- * Fixed: Compatibility [issue](https://make.wordpress.org/core/2016/02/17/backbone-and-underscore-updated-to-latest-versions/) with Underscore 1.8.3.
308
-
309
- = 2.1.1, January 13, 2016 =
310
- * New: Restrict the search results to one or more categories by using the "category" attribute on the [wpsl] [shortcode](https://wpstorelocator.co/document/shortcodes/#store-locator).
311
- * New: A "start_location" attribute for the [wpsl] [shortcode](https://wpstorelocator.co/document/shortcodes/#store-locator).
312
- * New: Included a link to the add-ons page in the plugin meta row.
313
- * New: Support for the "wp_editor" type with the [wpsl_meta_box_fields](https://wpstorelocator.co/document/wpsl_meta_box_fields/) filter, this will render the default WP Editor. Via [Richard](http://ampersandstudio.uk/).
314
- * Changed: Moved the documentation link from the plugin actions row to the plugin meta row.
315
- * Changed: If you use the "category" attribute on the [wpsl_map] shortcode, then the store names in the marker info window will automatically link to the store page or custom url.
316
-
317
- = 2.1.0, December 23, 2015 =
318
- * New: You can now use the "category" attribute ( use the category slugs as values ) on the [wpsl_map] shortcode to show locations that belong to one or more categories.
319
- * New: Support to load the marker images from a [different folder](https://wpstorelocator.co/document/use-custom-markers/).
320
- * New: A [wpsl_marker_props](https://wpstorelocator.co/document/wpsl_marker_props) filter that enables you to change the default "anchor", "scaledSize" and "origin" for the [marker image](https://developers.google.com/maps/documentation/javascript/3.exp/reference#Icon).
321
- * New: A [wpsl_geocode_components](https://wpstorelocator.co/document/wpsl_geocode_components) filter that enables you to restrict the returned geocode results by administrativeArea, country, locality, postalCode and route.
322
- * New: A [wpsl_draggable](https://wpstorelocator.co/document/wpsl_draggable_map) filter that enables you to enable/disable the dragging of the map.
323
- * New: Support for the upcoming add-ons.
324
- * Note: Read [this](https://wpstorelocator.co/version-2-1-released/#widget-support) if you're using a custom template!
325
- * Changed: If you need to geocode the full address ( new store ), and a value for 'state' is provided it's now included in the geocode request.
326
- * Changed: If the Geocode API returns a REQUEST_DENIED status, then the returned error message is shown explaining why it failed.
327
- * Fixed: In rare cases the SQL query returned duplicate locations with the same post id. To prevent this from happening the results are now by default grouped by post id.
328
-
329
- = 2.0.4, November 23, 2015 =
330
- * Fixed: HTML entity encoding issue in the marker tooltip, via [momo-fr](https://wordpress.org/support/profile/momo-fr) and [js-enigma](https://wordpress.org/support/profile/js-enigma).
331
- * Fixed: Missing tooltip text for the start marker, and the info window for the start marker breaking when the Geolocation API successfully determined the users location.
332
- * Fixed: Multiple shortcode attributes ignoring the "false" value, via [dynamitepets](https://wordpress.org/support/profile/dynamitepets) and [drfoxg](https://profiles.wordpress.org/drfoxg/).
333
- * Changed: If a WPML compatible plugin is detected, a notice is shown above the label section explaining that the "String Translations" section in the used multilingual plugin should be used to change the labels.
334
- * Changed: Removed the "sensor" parameter from the Google Maps JavaScript API. It triggered a 'SensorNotRequired' [warning](https://developers.google.com/maps/documentation/javascript/error-messages).
335
- * Changed: Updated translation files.
336
-
337
- = 2.0.3, October 27, 2015 =
338
- * Fixed: The default search radius is no longer ignored if the Geolocation API is used. Via [xeyefex](https://wordpress.org/support/profile/xeyefex).
339
- * Changed: Replaced get_page ( deprecated ) with get_post.
340
- * Changed: Adjusted the position, and size of the reset map / current location icon to make them match with the new [control styles](http://googlegeodevelopers.blogspot.com/2015/09/new-controls-style-for-google-maps.html) introduced in v3.22 of the Google Maps API.
341
- * Changed: Made it harder for themes to overwrite the icon font that is used to show the reset map / current location icon.
342
- * Changed: Removed support for the map's pan control and zoom control style from the settings page and [wpsl_map] shortcode attributes. They are both [deprecated](https://developers.google.com/maps/articles/v322-controls-diff) in v3.22 of the Google Maps API.
343
-
344
- = 2.0.2, September 19, 2015 =
345
- * Fixed: Not all users always seeing the notice to convert the 1.x locations to custom post types.
346
- * Fixed: Prevented empty search results from ending up in the autoload transient.
347
- * Fixed: The autoload transient not being cleared after changing the start location on the settings page.
348
- * Changed: Added extra CSS to make it harder for themes to turn the map completely grey, and set the default opening hours alignment to left.
349
- * Changed: If you use the store locator in a tab, then it no longer requires the tab anchor to be 'wpsl-map-tab'. You can use whatever you want with the 'wpsl_map_tab_anchor' filter.
350
-
351
- = 2.0.1, September 10, 2015 =
352
- * Fixed: Prevented other plugins that use [underscore](http://underscorejs.org/) or [backbone](http://backbonejs.org/) from breaking the JavaScript templates, via [fatman49](https://profiles.wordpress.org/fatman49/) and [zurf](https://profiles.wordpress.org/zurf/).
353
- * Fixed: Street view not showing the correct location after using it more then once, via [marijke_25](https://profiles.wordpress.org/marijke_25/).
354
-
355
- = 2.0, September 7, 2015 =
356
- * New: Moved away from a custom db table, the store locations are now registered as custom post types.
357
- * Note: The upgrade procedure will ask you to convert the current store locations to custom post types. This takes around 1 minute for every 1000 store locations.
358
- * New: The option to enable/disable permalinks for the stores, and set a custom slug from the settings page.
359
- * New: Three new [shortcodes](http://wpstorelocator.co/document/shortcodes/): [wpsl_map], [wpsl_hours] and [wpsl_address].
360
- * New: A template attribute for the [wpsl](http://wpstorelocator.co/document/shortcodes/#store-locator) shortcode, via [Damien Carbery](http://www.damiencarbery.com).
361
- * New: Supports [WPML](https://wpml.org/) and [qTranslate X](https://wordpress.org/plugins/qtranslate-x/).
362
- * New: A textarea on the settings page where you can paste JSON code to create a [custom map style](https://developers.google.com/maps/documentation/javascript/styling).
363
- * New: The option to hide the search radius dropdown on the frontend.
364
- * New: A [wpsl_geolocation_timeout](http://wpstorelocator.co/document/wpsl_geolocation_timeout/) filter.
365
- * New: The option to choose between different address formats, and a [filter](http://wpstorelocator.co/document/wpsl_address_formats/) to add custom ones.
366
- * New: The option to use the [InfoBox](http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/reference.html) library to style the info window.
367
- * New: The option to choose between two different effects when a user hovers over the result list.
368
- * New: Set the opening hours through dropdowns instead of a textarea.
369
- * New: Filters that make it possible to add custom store data, and change the HTML structure of the info window and store listing template.
370
- * New: The option to define a max location load if the auto loading of locations is enabled.
371
- * New: The option to enable/disable scroll wheel zooming and the map type control on the map.
372
- * New: Added 'Email' and 'Url' to the labels on the settings page.
373
- * New: Added a general settings and documentation link to the plugin action links.
374
- * New: The option to set a max auto zoom level to prevent the auto zoom from zooming to far.
375
- * New: The option to set a different map type for the location preview.
376
- * New: A check to see if the [SCRIPT_DEBUG](https://codex.wordpress.org/Debugging_in_WordPress#SCRIPT_DEBUG) constant is set, if this is the case the full scripts are loaded, otherwise the minified scripts are used.
377
- * New: A [wpsl_thumb_size](http://wpstorelocator.co/document/wpsl_thumb_size/) filter that enables you to set the thumb size on the frontend without editing CSS files.
378
- * New: The option to hide the distance in the store listing.
379
- * New: Added JS code that prevents a grey map when the store locator is placed in a tab. This does require the use of a #wpsl-map-tab anchor.
380
- * New: Portuguese translation via [Rúben Martins](http://www.rubenmartins.pt/).
381
- * Changed: Better error handling for the Geolocation API.
382
- * Changed: Regardless of the selected template, the store map is always placed before the store list on smaller screens.
383
- * Changed: The wp-content/languages folder is checked for translations before using the translations in the plugin folder.
384
- * Changed: The 'reset map' button now uses an icon font, and is placed in right bottom corner together with a new 'current location' icon.
385
- * Changed: The cluster marker image will use HTTPS when available.
386
- * Changed: Increased the default Geolocation timeout from 3000 to 5000 ms.
387
- * Changed: The geocode requests to the Google Maps API will always use HTTPS.
388
- * Changed: Instead of curl or file_get_contents the Google Maps API request will now use [wp_remote_get](https://codex.wordpress.org/Function_Reference/wp_remote_get).
389
- * Changed: Replaced the 'wpsl_capability' filter with a 'Store Locator Manager' [role](http://wpstorelocator.co/document/roles/).
390
- * Changed: Added an extra check in JS to prevent the search radius or max results value being set to NaN.
391
- * Changed: The [wpsl_templates](http://wpstorelocator.co/document/wpsl_templates/) filter now expects an id field to be present in the array.
392
- * Changed: Renamed the 'wpsl_gmap_api_attributes' filter to [wpsl_gmap_api_params](http://wpstorelocator.co/document/wpsl_gmap_api_params/).
393
- * Changed: Added the 'enableHighAccuracy' parameter to the Geolocation request to make it more accurate on mobile devices.
394
- * Fixed: An issue that prevented the settings page from saving the changes on servers that used the mod_security module.
395
- * Fixed: The pan control option not working on the frontend if it was enabled on the settings page.
396
- * Fixed: Prevented an empty comma from appearing in the direction URL if the zip code didn't exist.
397
- * Fixed: Modified the CSS to prevent themes hiding the map images.
398
- * Fixed: Dragging the store location marker in the store editor would sometimes return the incorrect coordinates.
399
- * Fixed: The 'Back' button appeared multiple times after the user clicked on the 'Directions' link from different info windows.
400
- * Fixed: The dropdown fields not being restored to the default values after the 'reset map' button was clicked.
401
- * Note: Requires at least WP 3.7 instead of WP 3.5.
402
-
403
- = 1.2.25 =
404
- * Fixed: The store search breaking after the reset button was clicked, via [Drew75](https://wordpress.org/support/profile/drew75)
405
- * Fixed: Two PHP notices.
406
-
407
- = 1.2.24 =
408
- * Fixed: Clicking the marker would no longer open the info window after a Google Maps API update. This only happened if street view was enabled.
409
- * Fixed: A fatal error on some installations caused by the usage of mysql_real_escape_string, it is replaced with esc_sql.
410
- * Fixed: A problem where some themes would just show "1" instead of the shortcode output.
411
- * Fixed: The "dismiss" link not working in the notice that reminds users to define a start point.
412
- * Fixed: A missing html tag that broken the store listing in IE7/8.
413
- * Changed: Replaced the non-GPL compatible dropdown script.
414
-
415
- = 1.2.23 =
416
- * Fixed the geocoding request for the map preview on the add/edit page not including the zipcode when it's present, which can misplace the marker
417
-
418
- = 1.2.22 =
419
- * Fixed compatibility issues with the Google Maps field in the Advanced Custom Fields plugin
420
- * Fixed the store urls in the store listings sometimes breaking
421
- * Removed the requirement for a zipcode on the add/edit store page
422
- * Improved the documentation in the js files
423
-
424
- = 1.2.21 =
425
- * Fixed an js error breaking the store locator
426
-
427
- = 1.2.20 =
428
- * Fixed the directions url sometimes showing an incomplete address due to an encoding issue
429
- * Fixed the 'items' count on the store overview page showing the incorrect number after deleting a store
430
- * Fixed the autocomplete for the 'start point' field sometimes not working on the settings page
431
- * Fixed php notices breaking the store search when wp_debug is set to true
432
- * Fixed the bulk actions when set to 'Bulk Actions' showing the full store list without paging
433
- * Fixed small css alignment issues in the admin area
434
- * Fixed the js script still trying to load store data when autoload was disabled
435
- * Fixed the clickable area around the marker being to big
436
- * Improved: After a user clicks on 'directions' and then clicks 'back', the map view is returned to the original location
437
- * Removed: the 'Preview location on the map' button no longer updates the zip code value it receives from the Google Maps API
438
- * Changed the way the dropdown filters are handled on mobile devices. They are now styled and behave according to the default UI of the device
439
- * Added support for WP Multisite
440
- * Added 'Screen Options' for the 'Current Stores' page, so you can define the amount of stores that are visible on a single page
441
- * Added the option to make phone numbers clickable on mobile devices by adding a link around them with 'tel:'
442
- * Added the option to make store names automatically clickable if the store url exists
443
- * Added the option to show a 'zoom here' and 'street view' (when available) into the infowindow
444
- * Added a second address field to the store fields
445
- * Added the option to enable marker clusters
446
- * Added the option to set a default country for the "Add Store" page
447
- * Added Dutch (nl_NL) translations
448
- * Added a .pot file to the languages folder for translators
449
- * Added error handling for the driving directions
450
- * Added several filters for developers:
451
- 'wpsl_templates' for loading a custom template from another directory
452
- 'wpsl_menu_position' for adjusting the position of the store locator menu in the admin panel
453
- 'wpsl_capability' to manually set the required user capability for adding/editing stores
454
- 'wpsl_gmap_api_attributes' to modify the Google maps parameters ( change the map language dynamically )
455
-
456
- = 1.2.13 =
457
- * Fixed the store search not returning any results when the limit results dropdown is hidden
458
-
459
- = 1.2.12 =
460
- * Added an option to choose where the 'More info' details is shown, either in the store listings or on the map
461
- * Added the 'back' and 'reset' text to the label fields on the settings page
462
- * Added the option to remove the scrollbar when the store listings are shown below the map
463
- * Improved the position of the reset button when the map controls are right aligned
464
- * Fixed the 'More info' translation not working
465
- * Fixed the start position marker disappearing when dragged
466
-
467
- = 1.2.11 =
468
- * Fixed the distance format always using km when you click the 'directions' text in the marker
469
- * Fixed an issue where a CSS rule in some themes would place a background image on the active item in the dropdown list
470
- * Added an option to disable the mouse cursor on pageload focusing on the location input field
471
- * Added an option to add a 'More info' link to the store listings, which when clicked will open the info window in the marker on the map
472
-
473
- = 1.2.1 =
474
- * Added an option to show the store listings below the map instead of next to it
475
- * Added an option to open the directions in a new window on maps.google.com itself
476
- * Fixed a 'too much recursion' js error that showed up when no start location was defined
477
- * Fixed the auto loading of stores not being ordered by distance
478
- * Fixed a problem with the input fields not always aligning in Chrome
479
- * Improved the handling of thumbnails. If the thumbnail format is disabled in the theme, it will look for the medium or full format instead
480
- * Several other small code improvements
481
-
482
- = 1.1 =
483
- * Added the option to open a link in a new window
484
- * Added the option to show a reset button that will reset the map back to how it was on page load
485
- * Added the option to load all stores on page load
486
- * Fixed a problem with the shortcode output
487
-
488
- = 1.0.1 =
489
- * Fixed the styling for the store locator dropdowns being applied site wide
490
- * Fixed a problem with slashes in store titles
491
-
492
- = 1.0 =
 
 
 
 
 
 
 
 
493
  * Initial release
1
+ === WP Store Locator ===
2
+ Plugin URI: https://wpstorelocator.co
3
+ Contributors: tijmensmit
4
+ Donate link: https://www.paypal.me/tijmensmit
5
+ Tags: google maps, store locator, business locations, geocoding, stores, geo, zipcode locator, dealer locater, geocode, gmaps, google map, google map plugin, location finder, map tools, shop locator, wp google map
6
+ Requires at least: 3.7
7
+ Tested up to: 5.0.0
8
+ Stable tag: 2.2.20
9
+ License: GPLv3
10
+ License URI: http://www.gnu.org/licenses/gpl.html
11
+
12
+ An easy to use location management system that enables users to search for nearby physical stores.
13
+
14
+ == Description ==
15
+
16
+ WP Store Locator is a powerful and easy to use location management system.
17
+ You can customize the appearance of the map, and provide custom labels for entry fields.
18
+ Users can filter the results by radius, and see driving directions to the nearby stores in
19
+ the language that is set in the admin panel.
20
+
21
+ = Features include: =
22
+
23
+ * Manage an unlimited numbers of stores.
24
+ * Provide extra details for stores like the phone, fax, email, url, description and opening hours. There are filters available that allow you add [custom](http://wpstorelocator.co/document/add-custom-meta-data-to-store-locations/) meta data.
25
+ * Support for custom [map styles](http://www.mapstylr.com/).
26
+ * Choose from nine retina ready marker icons.
27
+ * Show the driving distances in either km or miles.
28
+ * Shortcodes that enable you to add individual opening hours, addresses or just a map with a single marker to any page.
29
+ * Compatible with multilingual plugins like [WPML](https://wpml.org/plugin/wp-store-locator/) and qTranslate X.
30
+ * You can drag the marker in the editor to the exact location on the map.
31
+ * Show the search results either underneath the map, or next to it.
32
+ * Show Google Maps in different languages, this also influences the language for the driving directions.
33
+ * Show the driving directions to the stores.
34
+ * Customize the max results and search radius values that users can select.
35
+ * Users can filter the returned results by radius, max results or category.
36
+ * Supports [marker clusters](https://developers.google.com/maps/articles/toomanymarkers?hl=en#markerclusterer).
37
+ * Customize map settings like the terrain type, location of the map controls and the default zoom level.
38
+ * Use the Geolocation API to find the current location of the user and show nearby stores.
39
+ * Developer friendly code. It uses custom post types and includes almost 30 different [filters](https://wpstorelocator.co/documentation/filters/) that help you change the look and feel of the store locator.
40
+
41
+ > <strong>Documentation</strong><br>
42
+ > Please take a look at the store locator [documentation](https://wpstorelocator.co/documentation/) before making a support request.
43
+
44
+ * [Getting Started](https://wpstorelocator.co/documentation/getting-started/)
45
+ * [Troubleshooting](https://wpstorelocator.co/documentation/troubleshooting/)
46
+ * [Customisations](https://wpstorelocator.co/documentation/customisations/)
47
+ * [Filters](https://wpstorelocator.co/documentation/filters/)
48
+
49
+ = Premium Add-ons =
50
+
51
+ **CSV Manager**
52
+
53
+ The [CSV Manager](https://wpstorelocator.co/add-ons/csv-manager/) allows you to bulk import, export and update your locations using a CSV file.
54
+
55
+ **Search Widget**
56
+
57
+ The [Search Widget](https://wpstorelocator.co/add-ons/search-widget/) enables users to search from any of the widgetized areas in your theme for nearby store locations, and show the results on the store locator page.
58
+
59
+ **Statistics**
60
+
61
+ The [Statistics](https://wpstorelocator.co/add-ons/statistics/) add-on enables you to keep track of the locations users are searching for and see where there is demand for a new store.
62
+
63
+ **Store Directory - Coming Soon**
64
+
65
+ Generate a directory based on the store locations.
66
+
67
+ == Installation ==
68
+
69
+ 1. Upload the `wp-store-locator` folder to the `/wp-content/plugins/` directory
70
+ 1. Activate the plugin through the 'Plugins' menu in WordPress
71
+ 1. Create a [Google API Key](https://wpstorelocator.co/document/create-google-api-keys/) and set them on the [settings](https://wpstorelocator.co/document/configure-wp-store-locator/#google-maps-api) page.
72
+ 1. Set the start point on the [settings](https://wpstorelocator.co/document/configure-wp-store-locator/#map).
73
+ 1. Add your stores under 'Store Locator' -> Add Store
74
+ 1. Add the map to a page with this shortcode: [wpsl]
75
+
76
+ == Frequently Asked Questions ==
77
+
78
+ = How do I add the store locator to a page? =
79
+
80
+ Add this [shortcode](https://wpstorelocator.co/document/shortcodes/) [wpsl] to the page where you want to display the store locator.
81
+
82
+ = Oops! Something went wrong =
83
+
84
+ You can fix this by setting the [browser](https://wpstorelocator.co/document/configure-wp-store-locator/#google-maps-api) key on the settings page.
85
+
86
+ = There are weird characters in the search results, how do I remove them? =
87
+
88
+ This is most likely caused by a plugin like W3 Total Cache that tried to minify the HTML output on the store locator page. You can fix this by excluding the store locator from being minified on the settings page of the caching plugin you're using. In W3 Total Cache this is done by going to Minify -> Advanced -> Never minify the following pages, and fill in the page you don't want to have minified. So if your store locator is used on mydomain.com/store-locator, then fill in 'store-locator'.
89
+
90
+ = Can I use different markers for category or individual store locations? =
91
+
92
+ How to use custom markers is described [here](https://wpstorelocator.co/document/use-custom-markers/), you can also only use [different markers](https://wpstorelocator.co/document/use-custom-markers/) for a few locations, or just for the [categories](https://wpstorelocator.co/document/set-unique-category-markers/).
93
+
94
+ = The map doesn't display properly. It's either broken in half or doesn't load at all. =
95
+
96
+ Make sure you have defined a start point for the map under settings -> Map Settings.
97
+
98
+ = The map doesn't work anymore after installing the latest update =
99
+
100
+ If you use a caching plugin, or a service like Cloudflare, then make sure to flush the cache.
101
+
102
+ = I can't dismiss the pop up asking me to join the mailing list, how do I fix this? =
103
+
104
+ There is probably a JS error in the WP Admin area that prevents the pop up from being dismissed. Try for a second to switch back to a default WP theme, disable all other plugins, and then try to dismiss the newsletter pop up again.
105
+
106
+ = Why does it show the location I searched for in the wrong country? =
107
+
108
+ Some location names exist in more then one country, and Google will guess which one you mean. This can be fixed by setting the correct 'Map Region' on the settings page -> API Settings.
109
+
110
+ = The store locator doesn't load, it only shows the number 1? =
111
+
112
+ This is most likely caused by your theme using ajax navigation ( the loading of content without reloading the page ), or a conflict with another plugin. Try to disable the ajax navigation in the theme settings, or deactivate the plugin that enables it to see if that solves the problem.
113
+
114
+ If you don't use ajax navigation, but do see the number 1 it's probably a conflict with another plugin. Try to disable the plugins one by one to see if one of them is causing a conflict.
115
+
116
+ If you find a plugin or theme that causes a conflict, please report it on the [support page](http://wordpress.org/support/plugin/wp-store-locator).
117
+
118
+ > You can find the full documentation [here](https://wpstorelocator.co/documentation/).
119
+
120
+ == Screenshots ==
121
+
122
+ 1. Front-end of the plugin
123
+ 2. The driving directions from the user location to the selected store
124
+ 3. The 'Store Details' section
125
+ 4. The plugin settings
126
+
127
+ == Changelog ==
128
+
129
+ = 2.2.20, December 26, 2018 =
130
+ * New: Added an option to the permalinks section to optionally remove the front base ( for example /blog/ ) from the store locator permalinks.
131
+ * New: Added an option to the search section to force the Google Geocode API to assume the search input is a zip code. So searching for town / city names won't work if this option is enabled.
132
+ * New: Included a [wpsl_autocomplete_options](https://wpstorelocator.co/document/wpsl_autocomplete_options/) filter to customize the included data in requests made to the places API ( used with autocomplete ).
133
+ * Changed: Limited the requested data for the places API ( used with autocomplete ) to only 'geometry.location', which should reduce the cost on high traffic websites.
134
+ * Removed: Unused CSS rules from the admin CSS.
135
+ * Fixed: Using keyboard input to select a location after the first search with the autocomplete option enabled now returns the correct location.
136
+
137
+ = 2.2.19, December 6, 2018 =
138
+ * Fixed: Not being able to assign locations to a category when [Gutenberg](https://wordpress.org/gutenberg/) is used.
139
+
140
+ = 2.2.18, December 2, 2018 =
141
+ * New: Added role="presentation" to the hours table.
142
+ * New: Added a [wpsl_strip_content_shortcode](https://wpstorelocator.co/document/wpsl_strip_content_shortcode/) filter to optionally prevent strip_shortcodes from running on the post content data shown in the search results.
143
+ * New: Included the 'show_in_rest' param when the wpsl_stores post type is registered for WP 5.x to enable the [Gutenberg editor](https://wordpress.org/gutenberg/). You can read how to disable this [here](https://wpstorelocator.co/document/wpsl_post_type_args/#disable-rest).
144
+ * Note: Setting '[show_in_rest](https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-rest-api-support-for-custom-content-types/)' to true will make the store locator data partially available through the [REST API](https://developer.wordpress.org/rest-api/). If you don't want this, then you can use a plugin like [this](https://wordpress.org/plugins/disable-json-api/) to disable access to it for anonymous users. Full REST API support will come in the 3.0 update.
145
+ * Fixed: Added CSS rules that target the Twenty Nineteen theme from WP 5.x to fix a few alignment issues.
146
+ * Fixed: Prevented duplicate content from showing up on single stores pages when the Twenty Nineteen theme is used.
147
+ * Fixed: Disable the scrollWheel option in the JS code if the Google Maps gestureHandling is set to cooperative, otherwise the cooperative value is ignored.
148
+ * Fixed: Make the [wpsl_hours] shortcode respect the setting to hide the hours from the settings page. Via [@agbruce](https://wordpress.org/support/users/agbruce/).
149
+ * Changed: Removed the unused 'no-results' class from being targeted in the JS code.
150
+ * Changed: Reversed the order of the API key fields on the settings page to make it match with how it's described in the documentation.
151
+ * Changed: Disable the 'On page load move the mouse cursor to the search field?' option by default on new installations.
152
+ * Changed: Improved the code that filters the city / state / country data from the returned API data for the statistics add-on.
153
+
154
+ = 2.2.17, September 16, 2018 =
155
+ * Changed: Truncated the used coordinates to 5 decimals in the JS script to workaround this [reverse geocoding bug](https://issuetracker.google.com/issues/115484101#comment3). This bug resulted in a 'No results found' error ( based on the used WPSL settings ) if you searched for major cities like Los Angeles.
156
+
157
+ = 2.2.16, August 14, 2018 =
158
+ * Changed: Set the Google Maps API version to 3.33 to prevent [weekly API updates](https://developers.google.com/maps/documentation/javascript/versions) from suddenly breaking the map. You can overwrite the version number with the wpsl_gmap_api_version filter.
159
+
160
+ = 2.2.15, May 24, 2018 =
161
+ * Added: Included a 'Export Location Data' button in the admin editor to make it easier to handle possible GDPR data access requests. If you want to, then you can hide it with [this](https://wpstorelocator.co/document/wpsl_enable_export_option/) filter.
162
+
163
+ = 2.2.14, March 27, 2018 =
164
+ * Added: Included a wpsl_setting_dropdowns filter that enables the creation of additional dropdowns on the settings page.
165
+ * Added: A wpsl_get_location_fields() function that returns an array of the used meta fields.
166
+ * Changed: Made it easier for add-ons to access the WPSL_Frontend class.
167
+ * Fixed: Made sure the search results are visible when a RTL language is used.
168
+ * Fixed: Removed a CSS rule that prevented the markers and the links in the info window from responding to mouse clicks in IE 11.
169
+
170
+ = 2.2.13, February 28, 2018 =
171
+ * Added: Included support for 'directions' and 'clickable_contact_details' to the [wpsl_address](https://wpstorelocator.co/document/shortcodes/#store-address) shortcode.
172
+ * Added: An option to the User Experience section on the settings page to make the contact details ( phone / email ) always clickable.
173
+ * Added: A 'wpsl_skip_cpt_template' filter that you can use to prevent the code in the 'cpt_template' function from running.
174
+ * Changed: When the statistics add-on is active, then the complete response from the Geocode API is included in the AJAX data.
175
+ * Changed: Added a check in the makeAjaxRequest function to prevent it from processing data from AJAX request made by add-ons.
176
+ * Changed: Included a CSS rule to hide duplicate dropdowns generated by the [Select2](https://select2.org/) library used by some themes.
177
+ * Changed: Replaced the usage of findFormattedAddress with the reverseGeocode function in the wpsl-gmap.js.
178
+ * Changed: Fixed a typo in the geoLocationTim(e)out var.
179
+ * Changed: Updated the wpsl.pot file.
180
+ * Fixed: A ICL_LANGUAGE_CODE notice when Polylang is active.
181
+ * Fixed: On some installations a call to undefined function pll__() showed up when Polylang was used.
182
+
183
+ = 2.2.12, February 16, 2018 =
184
+ * Fixed: The zoom level automatically going down to streetlevel with the wpsl_map shortcode, and ignoring the set zoom level in the shortcode options.
185
+ * Fixed: The zipcode not always being correctly filtered out of the geocode API response when the user location is automatically detected.
186
+ * Changed: Removed unused customCheckboxValue variable.
187
+
188
+ = 2.2.11, January 14, 2018 =
189
+ * Added: A WPSL_Templates class that handles the different templates in the store locator and in the upcoming directory and nearby locations add-ons.
190
+ * Added: A 'wpsl_settings_tab' filter that makes it possible to add custom tabs on the settings page.
191
+ * Added: A 'wpsl_settings_section' action so you can add custom fields to the settings page.
192
+ * Changed: The find_nearby_locations(), check_store_filter() and the check_allowed_filter_value() now accepts an $args param.
193
+ * Changed: Increased the timeout for the geolocation request.
194
+
195
+ = 2.2.10, December 12, 2017 =
196
+ * Added: The [wpsl_map_tab_anchor](https://wpstorelocator.co/document/wpsl_map_tab_anchor) filter now also accepts an array, so you can show multiple maps ( with the wpsl_map shortcode ) next to eachother in different tabs.
197
+ * Added: A store locator media button in the editor that enables you to generate the shortcode attributes for the wpsl shortcode.
198
+ * Added: A check on the settings page that validates the provided Google Maps API keys in the background when they are saved.
199
+ * Added: Support to the [wpsl](https://wpstorelocator.co/document/shortcodes/) shortcode for 'auto_locate', 'category_selection', 'category_filter_type', 'checkbox_columns', 'map_type', 'start_marker' and 'store_marker'.
200
+ * Added: A requiredFields value to the js_settings function that allows you to customize/remove the required fields check when the 'Preview Location' button is used in the admin area.
201
+ * Added: A wpsl_save_post action.
202
+ * Added: Placed a 'wpsl-no-results' class on the outer div when no results are returned.
203
+ * Changed: Removed unused $i counter from the settings class.
204
+ * Changed: Improved the handling of errors returned by the Geocode API and clarified the meaning of them.
205
+ * Changed: Firefox now also [requires](https://www.mozilla.org/en-US/firefox/55.0/releasenotes/) SSL to access the Geolocation API, so updated the notice text on the settings page.
206
+ * Changed: Included the latest version of the EDD_SL_Plugin_Updater class ( 1.6.14 ).
207
+ * Changed: Replaced $wpsl_settings['category_filter'] with $this->use_category_filter() in the templates to make it compatible with the new category shortcode attributes. So if you're using a custom template, then make the same change.
208
+ * Changed: Renamed the 'no-results' class to 'wpsl-no-results-msg' to prevent conflicts with CSS rules from other themes / plugins.
209
+ * Changed: Included a missing ) in the country name list on the settings page.
210
+ * Changed: Updated the .pot file, and the Dutch and Spanish ( via [Jaime Smeke](http://untaljai.me/) ) translations.
211
+ * Changed: Set the display mode for the wpsl-directions class to table instead of block to prevent some themes from showing a wide underline.
212
+ * Changed: Moved get_ajax_url to the wpsl-functions.php and named it wpsl_get_ajax_url().
213
+ * Fixed: Include the used [travel mode](https://wpstorelocator.co/document/wpsl_direction_travel_mode/) in the generated URL that shows the user the directions on Google Maps itself.
214
+ * Fixed: A notice triggered by Polylang for ICL_SITEPRESS_VERSION.
215
+
216
+ = 2.2.9, July 9, 2017 =
217
+ * Added: The possibility to load [custom images](https://wpstorelocator.co/document/change-marker-cluster-images/) for the marker clusters.
218
+ * Added: An option to the map section to disable the zoom level from being automatically adjusted after a search is complete. If it's disabled then it will focus on the start point, and use the zoom level from the 'Initial zoom level' field.
219
+ * Added: A check that prevents the search radius / max results value used in the SQL query from being bigger then the max value set on the settings page.
220
+ * Fixed: The get_default_filter_value func not returning the default value for the search radius field ( see next item ).
221
+ * Changed: Had to rename the param for the search radius in the AJAX call from radius to search_radius to make it match with the settings page value.
222
+ * Note: If you're using custom code that relies on the returned paramater being radius, then rename it to search_radius.
223
+ * Changed: Updated the .pot file.
224
+
225
+ = 2.2.8, April 30, 2017 =
226
+ * Added: Support for [Polylang](https://wordpress.org/plugins/polylang/).
227
+ * Added: A [wpsl_direction_travel_mode](https://wpstorelocator.co/document/wpsl_direction_travel_mode/) filter that enabled you to change the used [travel mode](https://developers.google.com/maps/documentation/javascript/directions#TravelModes) for the directions.
228
+ * Added: A [wpsl_distance_unit](https://wpstorelocator.co/document/wpsl_distance_unit/) filter.
229
+ * Added: A [wpsl_disable_welcome_pointer](https://wpstorelocator.co/document/wpsl_disable_welcome_pointer/) filter that enables you disable the newsletter signup on a multisite network.
230
+ * Added: Support for custom alternateMarkerUrl and categoryMarkerUrl data in the JS file, this allows you to set a custom marker for [individual locations](https://wpstorelocator.co/document/use-different-marker-for-each-location/) and for [categories](https://wpstorelocator.co/document/set-unique-category-markers/).
231
+ * Changed: Deprecated the [wpsl_draggable_map](https://wpstorelocator.co/document/wpsl_draggable_map/) filter and [replaced](https://wpstorelocator.co/document/wpsl_gesture_handling/) it with support for Google Maps [gestureHandling](https://developers.google.com/maps/documentation/javascript/interaction).
232
+ * Changed: Made sure the supported map regions on the settings page match with the list of supported regions from [Google](https://developers.google.com/maps/coverage).
233
+ * Changed: Included the latest version of the EDD_SL_Plugin_Updater class ( 1.6.12 ).
234
+ * Fixed: A fatal call to undefined function error when the plugin is activated through WP-CLI.
235
+ * Fixed: The controls in street view mode not having a background color, so the back button wasn't visible.
236
+ * Fixed: Prevented two consecutive underscores from showing up in the generated transient names if no autoload limit is set.
237
+
238
+ = 2.2.7, December 31, 2016 =
239
+ * Changed: Included the latest version of the EDD_SL_Plugin_Updater class ( 1.6.8 ).
240
+ * Changed: Reverted a change in the CSS file that ended up breaking the map for some users.
241
+
242
+ = 2.2.6, December 24, 2016 =
243
+ * Fixed: The opening hours not working correctly for Saturday / Sunday in the admin area. The 12:00 AM field was missing.
244
+ * Fixed: A PHP notice showing up when an invalid value was set for the radius / max results dropdown.
245
+ * Fixed: The zoom attribute now works correctly for the wpsl_map shortcode.
246
+ * Changed: Included the latest version of the EDD_SL_Plugin_Updater class ( 1.6.7 ).
247
+ * Changed: Removed unused locationCount var from wpsl-gmap.js.
248
+ * Changed: Added a CSS rule that makes it harder for themes to scaled images on the map.
249
+
250
+ = 2.2.5, December 11, 2016 =
251
+ * Fixed: Made it work with the latest WPML version.
252
+ * Fixed: Remove the WPSL caps and Store Locator Manager role on uninstall. The code was always there to do so, but was never called.
253
+ * Fixed: A PHP notice that showed up when the settings page was saved with an empty start location field.
254
+ * Changed: Adjusted the structure of the post type labels so you can correctly translate them in singular / plural forms based on the used language. Via [deshack](https://wordpress.org/support/users/deshack/).
255
+ * Changed: Added a tooltip to the 'Attempt to auto-locate the user' field explaining that HTTPS is now [required](https://wpstorelocator.co/document/html-5-geolocation-not-working-chrome-safari/) in Chrome and Safari.
256
+ * Changed: The coordinates from the start location are now used to center the map in the map section on the settings page instead of it always defaulting to Holland.
257
+ * Changed: Renamed the existing option that prevents two Google Maps libraries from loading at the same time to "Enable compatibility mode" on the settings page ( Tools section ).
258
+ * Changed: Updated the wpsl.pot file.
259
+ * Changed: No longer use the deprecated icl_object_id() function when the WPML version is newer then 3.2.
260
+
261
+ = 2.2.4, Augustus 6, 2016 =
262
+ * New: Added an option to the tools section to prevent other scripts from including the Google Maps API a second time on the store locator page. This sometimes breaks the map.
263
+ * Fixed: Assigned the correct country code to Martinique on the settings page.
264
+ * Fixed: The code that calls [wp_editor](https://codex.wordpress.org/Function_Reference/wp_editor) now includes a random ID after 'wpsleditor' to make sure you can use it multiple times on the same page.
265
+ * Fixed: The inline [qTranslate X](https://wordpress.org/plugins/qtranslate-x/) syntax ( [:en]English Text[:de]Deutsch[:] ) now works for the label fields.
266
+ * Fixed: Added a workaround for [this](https://bugzilla.mozilla.org/show_bug.cgi?id=1283563) bug with the Geolocation API in Firefox.
267
+ * Changed: Automatically adjust the language Google Maps uses when WMPL or qTranslate X is active.
268
+ * Changed: Improved the handling of error codes returned by the Google Geocode API.
269
+ * Changed: Removed the '_' prefix from the returned language code in check_multilingual_code().
270
+ * Changed: Updated the wpsl.pot file.
271
+
272
+ = 2.2.3, June 27, 2016 =
273
+ * Fixed: Included the browser key in requests made to the Google Maps JavaScript API in the admin area. This is now [required](http://googlegeodevelopers.blogspot.nl/2016/06/building-for-scale-updates-to-google.html).
274
+ * Changed: Include the language code in the AJAX request if WPML is active.
275
+ * New: Spanish translations (es_ES). Via [Jaime Smeke](http://untaljai.me/).
276
+ * New: Added support for the upcoming statistics add-on.
277
+
278
+ = 2.2.2, May 18, 2016 =
279
+ * Fixed: Corrected the [path](https://github.com/googlemaps/js-marker-clusterer/pull/61) for the cluster marker images.
280
+
281
+ = 2.2.1, March 24, 2016 =
282
+ * Fixed: A JS bug that sometimes resulted in duplicate results showing up in the search results.
283
+
284
+ = 2.2, March 20, 2016 =
285
+ * New: The option to show the categories with checkboxes instead of a dropdown.
286
+ * Note: If you're showing the categories with checkboxes, then you can change the amount of used columns by setting the "checkbox_columns" ( between 1 and 4 ) on the [wpsl] shortcode.
287
+ * New: A [wpsl_no_results](https://wpstorelocator.co/document/wpsl_no_results) filter that allows you to create a custom HTML block that replaces the 'No results found' text.
288
+ * New: The option to enable [autocomplete](https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete) for location searches.
289
+ * Note: Read [this](https://wpstorelocator.co/version-2-2-released/#autocomplete) if you're using a custom template and want to use the autocomplete option.
290
+ * New: A [wpsl_enable_styled_dropdowns](https://wpstorelocator.co/document/wpsl_enable_styled_dropdowns/) filter that allows you to disable the current JS styling for all the dropdowns.
291
+ * New: You can now change the "Any" text used in the category dropdown in the labels section on the settings page.
292
+ * New: The option to hide the country name in the search results / marker pop-up.
293
+ * New: The option to show the contact details below the address.
294
+ * New: A [wpsl_hide_closed_hours](https://wpstorelocator.co/document/wpsl_hide_closed_hours/) filter that enables you to hide the days that the location is closed from the opening hours list.
295
+ * New: Values from [custom dropdowns](https://wpstorelocator.co/version-2-2-released/#custom-dropdown) that have a "wpsl-custom-dropdown" class set are automatically included in the AJAX data.
296
+ * New: Added a Add-Ons page to the "Store Locator" menu.
297
+ * New: A [wpsl_map_tab_anchor_return](https://wpstorelocator.co/document/wpsl_map_tab_anchor_return/) filter that allows you to choose between return true or false if the tab anchor is clicked.
298
+ * New: Added the "aria-required" attribute to the search field.
299
+ * Changed: The category dropdown is now created with [wp_dropdown_categories](https://codex.wordpress.org/Function_Reference/wp_dropdown_categories) and correctly indents sub categories.
300
+ * Changed: If a search returns no results, then the map will now focus on the searched location instead of only showing the "No results found" msg.
301
+ * Changed: Instead of a single "API key" [field](https://wpstorelocator.co/document/configure-wp-store-locator/#google-maps-api) there are now separate [server](https://developers.google.com/maps/documentation/geocoding/get-api-key#get-an-api-key) and [browser](https://developers.google.com/maps/documentation/javascript/get-api-key#get-an-api-key) key fields. If an API key existed, then it's assumed to be a server key.
302
+ * Changed: A scrollbar is shown inside the styled dropdown filters if they are heigher then 300px. You can change the maximum height with the [wpsl_max_dropdown_height](https://wpstorelocator.co/document/wpsl_max_dropdown_height/) filter.
303
+ * Changed: Removed the text wrap on the category filter items. If a category name is too long, then it will now go over two lines instead of being cut off.
304
+ * Changed: Updated the wpml-config.xml and wpsl.pot.
305
+ * Changed: If the autocomplete for the start location on the settings page fails ( JS error ), then the set start location is geocoded in the background when the settings are saved.
306
+ * Changed: A single JS function now handles all the conditional options on the settings page instead of several smaller ones.
307
+ * Changed: The "zoom_name" and "zoom_latlng" setting is renamed to "start_name" and "start_latlng".
308
+ * Changed: Renamed the "category_dropdown" setting to "category_filter" to better reflect the value that it holds ( either checkbox or dropdown ). So if you're using a custom template, then make sure to change "category_dropdown" to "category_filter" in your code.
309
+ * Fixed: If you click on one of the styled dropdowns when it's already open, then it will now close.
310
+
311
+ = 2.1.2, March 4, 2016 =
312
+ * Fixed: Invalid HTML in the category dropdown.
313
+ * Fixed: Clicking on the marker on a single store / [wpsl_map] page triggered a JS error if the location permalinks are enabled.
314
+ * Fixed: The wpsl_map_tab_anchor filter not working with the [wpsl_map] shortcode.
315
+ * Fixed: Compatibility [issue](https://make.wordpress.org/core/2016/02/17/backbone-and-underscore-updated-to-latest-versions/) with Underscore 1.8.3.
316
+
317
+ = 2.1.1, January 13, 2016 =
318
+ * New: Restrict the search results to one or more categories by using the "category" attribute on the [wpsl] [shortcode](https://wpstorelocator.co/document/shortcodes/#store-locator).
319
+ * New: A "start_location" attribute for the [wpsl] [shortcode](https://wpstorelocator.co/document/shortcodes/#store-locator).
320
+ * New: Included a link to the add-ons page in the plugin meta row.
321
+ * New: Support for the "wp_editor" type with the [wpsl_meta_box_fields](https://wpstorelocator.co/document/wpsl_meta_box_fields/) filter, this will render the default WP Editor. Via [Richard](http://ampersandstudio.uk/).
322
+ * Changed: Moved the documentation link from the plugin actions row to the plugin meta row.
323
+ * Changed: If you use the "category" attribute on the [wpsl_map] shortcode, then the store names in the marker info window will automatically link to the store page or custom url.
324
+
325
+ = 2.1.0, December 23, 2015 =
326
+ * New: You can now use the "category" attribute ( use the category slugs as values ) on the [wpsl_map] shortcode to show locations that belong to one or more categories.
327
+ * New: Support to load the marker images from a [different folder](https://wpstorelocator.co/document/use-custom-markers/).
328
+ * New: A [wpsl_marker_props](https://wpstorelocator.co/document/wpsl_marker_props) filter that enables you to change the default "anchor", "scaledSize" and "origin" for the [marker image](https://developers.google.com/maps/documentation/javascript/3.exp/reference#Icon).
329
+ * New: A [wpsl_geocode_components](https://wpstorelocator.co/document/wpsl_geocode_components) filter that enables you to restrict the returned geocode results by administrativeArea, country, locality, postalCode and route.
330
+ * New: A [wpsl_draggable](https://wpstorelocator.co/document/wpsl_draggable_map) filter that enables you to enable/disable the dragging of the map.
331
+ * New: Support for the upcoming add-ons.
332
+ * Note: Read [this](https://wpstorelocator.co/version-2-1-released/#widget-support) if you're using a custom template!
333
+ * Changed: If you need to geocode the full address ( new store ), and a value for 'state' is provided it's now included in the geocode request.
334
+ * Changed: If the Geocode API returns a REQUEST_DENIED status, then the returned error message is shown explaining why it failed.
335
+ * Fixed: In rare cases the SQL query returned duplicate locations with the same post id. To prevent this from happening the results are now by default grouped by post id.
336
+
337
+ = 2.0.4, November 23, 2015 =
338
+ * Fixed: HTML entity encoding issue in the marker tooltip, via [momo-fr](https://wordpress.org/support/profile/momo-fr) and [js-enigma](https://wordpress.org/support/profile/js-enigma).
339
+ * Fixed: Missing tooltip text for the start marker, and the info window for the start marker breaking when the Geolocation API successfully determined the users location.
340
+ * Fixed: Multiple shortcode attributes ignoring the "false" value, via [dynamitepets](https://wordpress.org/support/profile/dynamitepets) and [drfoxg](https://profiles.wordpress.org/drfoxg/).
341
+ * Changed: If a WPML compatible plugin is detected, a notice is shown above the label section explaining that the "String Translations" section in the used multilingual plugin should be used to change the labels.
342
+ * Changed: Removed the "sensor" parameter from the Google Maps JavaScript API. It triggered a 'SensorNotRequired' [warning](https://developers.google.com/maps/documentation/javascript/error-messages).
343
+ * Changed: Updated translation files.
344
+
345
+ = 2.0.3, October 27, 2015 =
346
+ * Fixed: The default search radius is no longer ignored if the Geolocation API is used. Via [xeyefex](https://wordpress.org/support/profile/xeyefex).
347
+ * Changed: Replaced get_page ( deprecated ) with get_post.
348
+ * Changed: Adjusted the position, and size of the reset map / current location icon to make them match with the new [control styles](http://googlegeodevelopers.blogspot.com/2015/09/new-controls-style-for-google-maps.html) introduced in v3.22 of the Google Maps API.
349
+ * Changed: Made it harder for themes to overwrite the icon font that is used to show the reset map / current location icon.
350
+ * Changed: Removed support for the map's pan control and zoom control style from the settings page and [wpsl_map] shortcode attributes. They are both [deprecated](https://developers.google.com/maps/articles/v322-controls-diff) in v3.22 of the Google Maps API.
351
+
352
+ = 2.0.2, September 19, 2015 =
353
+ * Fixed: Not all users always seeing the notice to convert the 1.x locations to custom post types.
354
+ * Fixed: Prevented empty search results from ending up in the autoload transient.
355
+ * Fixed: The autoload transient not being cleared after changing the start location on the settings page.
356
+ * Changed: Added extra CSS to make it harder for themes to turn the map completely grey, and set the default opening hours alignment to left.
357
+ * Changed: If you use the store locator in a tab, then it no longer requires the tab anchor to be 'wpsl-map-tab'. You can use whatever you want with the 'wpsl_map_tab_anchor' filter.
358
+
359
+ = 2.0.1, September 10, 2015 =
360
+ * Fixed: Prevented other plugins that use [underscore](http://underscorejs.org/) or [backbone](http://backbonejs.org/) from breaking the JavaScript templates, via [fatman49](https://profiles.wordpress.org/fatman49/) and [zurf](https://profiles.wordpress.org/zurf/).
361
+ * Fixed: Street view not showing the correct location after using it more then once, via [marijke_25](https://profiles.wordpress.org/marijke_25/).
362
+
363
+ = 2.0, September 7, 2015 =
364
+ * New: Moved away from a custom db table, the store locations are now registered as custom post types.
365
+ * Note: The upgrade procedure will ask you to convert the current store locations to custom post types. This takes around 1 minute for every 1000 store locations.
366
+ * New: The option to enable/disable permalinks for the stores, and set a custom slug from the settings page.
367
+ * New: Three new [shortcodes](http://wpstorelocator.co/document/shortcodes/): [wpsl_map], [wpsl_hours] and [wpsl_address].
368
+ * New: A template attribute for the [wpsl](http://wpstorelocator.co/document/shortcodes/#store-locator) shortcode, via [Damien Carbery](http://www.damiencarbery.com).
369
+ * New: Supports [WPML](https://wpml.org/) and [qTranslate X](https://wordpress.org/plugins/qtranslate-x/).
370
+ * New: A textarea on the settings page where you can paste JSON code to create a [custom map style](https://developers.google.com/maps/documentation/javascript/styling).
371
+ * New: The option to hide the search radius dropdown on the frontend.
372
+ * New: A [wpsl_geolocation_timeout](http://wpstorelocator.co/document/wpsl_geolocation_timeout/) filter.
373
+ * New: The option to choose between different address formats, and a [filter](http://wpstorelocator.co/document/wpsl_address_formats/) to add custom ones.
374
+ * New: The option to use the [InfoBox](http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/reference.html) library to style the info window.
375
+ * New: The option to choose between two different effects when a user hovers over the result list.
376
+ * New: Set the opening hours through dropdowns instead of a textarea.
377
+ * New: Filters that make it possible to add custom store data, and change the HTML structure of the info window and store listing template.
378
+ * New: The option to define a max location load if the auto loading of locations is enabled.
379
+ * New: The option to enable/disable scroll wheel zooming and the map type control on the map.
380
+ * New: Added 'Email' and 'Url' to the labels on the settings page.
381
+ * New: Added a general settings and documentation link to the plugin action links.
382
+ * New: The option to set a max auto zoom level to prevent the auto zoom from zooming to far.
383
+ * New: The option to set a different map type for the location preview.
384
+ * New: A check to see if the [SCRIPT_DEBUG](https://codex.wordpress.org/Debugging_in_WordPress#SCRIPT_DEBUG) constant is set, if this is the case the full scripts are loaded, otherwise the minified scripts are used.
385
+ * New: A [wpsl_thumb_size](http://wpstorelocator.co/document/wpsl_thumb_size/) filter that enables you to set the thumb size on the frontend without editing CSS files.
386
+ * New: The option to hide the distance in the store listing.
387
+ * New: Added JS code that prevents a grey map when the store locator is placed in a tab. This does require the use of a #wpsl-map-tab anchor.
388
+ * New: Portuguese translation via [Rúben Martins](http://www.rubenmartins.pt/).
389
+ * Changed: Better error handling for the Geolocation API.
390
+ * Changed: Regardless of the selected template, the store map is always placed before the store list on smaller screens.
391
+ * Changed: The wp-content/languages folder is checked for translations before using the translations in the plugin folder.
392
+ * Changed: The 'reset map' button now uses an icon font, and is placed in right bottom corner together with a new 'current location' icon.
393
+ * Changed: The cluster marker image will use HTTPS when available.
394
+ * Changed: Increased the default Geolocation timeout from 3000 to 5000 ms.
395
+ * Changed: The geocode requests to the Google Maps API will always use HTTPS.
396
+ * Changed: Instead of curl or file_get_contents the Google Maps API request will now use [wp_remote_get](https://codex.wordpress.org/Function_Reference/wp_remote_get).
397
+ * Changed: Replaced the 'wpsl_capability' filter with a 'Store Locator Manager' [role](http://wpstorelocator.co/document/roles/).
398
+ * Changed: Added an extra check in JS to prevent the search radius or max results value being set to NaN.
399
+ * Changed: The [wpsl_templates](http://wpstorelocator.co/document/wpsl_templates/) filter now expects an id field to be present in the array.
400
+ * Changed: Renamed the 'wpsl_gmap_api_attributes' filter to [wpsl_gmap_api_params](http://wpstorelocator.co/document/wpsl_gmap_api_params/).
401
+ * Changed: Added the 'enableHighAccuracy' parameter to the Geolocation request to make it more accurate on mobile devices.
402
+ * Fixed: An issue that prevented the settings page from saving the changes on servers that used the mod_security module.
403
+ * Fixed: The pan control option not working on the frontend if it was enabled on the settings page.
404
+ * Fixed: Prevented an empty comma from appearing in the direction URL if the zip code didn't exist.
405
+ * Fixed: Modified the CSS to prevent themes hiding the map images.
406
+ * Fixed: Dragging the store location marker in the store editor would sometimes return the incorrect coordinates.
407
+ * Fixed: The 'Back' button appeared multiple times after the user clicked on the 'Directions' link from different info windows.
408
+ * Fixed: The dropdown fields not being restored to the default values after the 'reset map' button was clicked.
409
+ * Note: Requires at least WP 3.7 instead of WP 3.5.
410
+
411
+ = 1.2.25 =
412
+ * Fixed: The store search breaking after the reset button was clicked, via [Drew75](https://wordpress.org/support/profile/drew75)
413
+ * Fixed: Two PHP notices.
414
+
415
+ = 1.2.24 =
416
+ * Fixed: Clicking the marker would no longer open the info window after a Google Maps API update. This only happened if street view was enabled.
417
+ * Fixed: A fatal error on some installations caused by the usage of mysql_real_escape_string, it is replaced with esc_sql.
418
+ * Fixed: A problem where some themes would just show "1" instead of the shortcode output.
419
+ * Fixed: The "dismiss" link not working in the notice that reminds users to define a start point.
420
+ * Fixed: A missing html tag that broken the store listing in IE7/8.
421
+ * Changed: Replaced the non-GPL compatible dropdown script.
422
+
423
+ = 1.2.23 =
424
+ * Fixed the geocoding request for the map preview on the add/edit page not including the zipcode when it's present, which can misplace the marker
425
+
426
+ = 1.2.22 =
427
+ * Fixed compatibility issues with the Google Maps field in the Advanced Custom Fields plugin
428
+ * Fixed the store urls in the store listings sometimes breaking
429
+ * Removed the requirement for a zipcode on the add/edit store page
430
+ * Improved the documentation in the js files
431
+
432
+ = 1.2.21 =
433
+ * Fixed an js error breaking the store locator
434
+
435
+ = 1.2.20 =
436
+ * Fixed the directions url sometimes showing an incomplete address due to an encoding issue
437
+ * Fixed the 'items' count on the store overview page showing the incorrect number after deleting a store
438
+ * Fixed the autocomplete for the 'start point' field sometimes not working on the settings page
439
+ * Fixed php notices breaking the store search when wp_debug is set to true
440
+ * Fixed the bulk actions when set to 'Bulk Actions' showing the full store list without paging
441
+ * Fixed small css alignment issues in the admin area
442
+ * Fixed the js script still trying to load store data when autoload was disabled
443
+ * Fixed the clickable area around the marker being to big
444
+ * Improved: After a user clicks on 'directions' and then clicks 'back', the map view is returned to the original location
445
+ * Removed: the 'Preview location on the map' button no longer updates the zip code value it receives from the Google Maps API
446
+ * Changed the way the dropdown filters are handled on mobile devices. They are now styled and behave according to the default UI of the device
447
+ * Added support for WP Multisite
448
+ * Added 'Screen Options' for the 'Current Stores' page, so you can define the amount of stores that are visible on a single page
449
+ * Added the option to make phone numbers clickable on mobile devices by adding a link around them with 'tel:'
450
+ * Added the option to make store names automatically clickable if the store url exists
451
+ * Added the option to show a 'zoom here' and 'street view' (when available) into the infowindow
452
+ * Added a second address field to the store fields
453
+ * Added the option to enable marker clusters
454
+ * Added the option to set a default country for the "Add Store" page
455
+ * Added Dutch (nl_NL) translations
456
+ * Added a .pot file to the languages folder for translators
457
+ * Added error handling for the driving directions
458
+ * Added several filters for developers:
459
+ 'wpsl_templates' for loading a custom template from another directory
460
+ 'wpsl_menu_position' for adjusting the position of the store locator menu in the admin panel
461
+ 'wpsl_capability' to manually set the required user capability for adding/editing stores
462
+ 'wpsl_gmap_api_attributes' to modify the Google maps parameters ( change the map language dynamically )
463
+
464
+ = 1.2.13 =
465
+ * Fixed the store search not returning any results when the limit results dropdown is hidden
466
+
467
+ = 1.2.12 =
468
+ * Added an option to choose where the 'More info' details is shown, either in the store listings or on the map
469
+ * Added the 'back' and 'reset' text to the label fields on the settings page
470
+ * Added the option to remove the scrollbar when the store listings are shown below the map
471
+ * Improved the position of the reset button when the map controls are right aligned
472
+ * Fixed the 'More info' translation not working
473
+ * Fixed the start position marker disappearing when dragged
474
+
475
+ = 1.2.11 =
476
+ * Fixed the distance format always using km when you click the 'directions' text in the marker
477
+ * Fixed an issue where a CSS rule in some themes would place a background image on the active item in the dropdown list
478
+ * Added an option to disable the mouse cursor on pageload focusing on the location input field
479
+ * Added an option to add a 'More info' link to the store listings, which when clicked will open the info window in the marker on the map
480
+
481
+ = 1.2.1 =
482
+ * Added an option to show the store listings below the map instead of next to it
483
+ * Added an option to open the directions in a new window on maps.google.com itself
484
+ * Fixed a 'too much recursion' js error that showed up when no start location was defined
485
+ * Fixed the auto loading of stores not being ordered by distance
486
+ * Fixed a problem with the input fields not always aligning in Chrome
487
+ * Improved the handling of thumbnails. If the thumbnail format is disabled in the theme, it will look for the medium or full format instead
488
+ * Several other small code improvements
489
+
490
+ = 1.1 =
491
+ * Added the option to open a link in a new window
492
+ * Added the option to show a reset button that will reset the map back to how it was on page load
493
+ * Added the option to load all stores on page load
494
+ * Fixed a problem with the shortcode output
495
+
496
+ = 1.0.1 =
497
+ * Fixed the styling for the store locator dropdowns being applied site wide
498
+ * Fixed a problem with slashes in store titles
499
+
500
+ = 1.0 =
501
  * Initial release
wp-store-locator.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: WP Store Locator
4
  Description: An easy to use location management system that enables users to search for nearby physical stores
5
  Author: Tijmen Smit
6
  Author URI: https://wpstorelocator.co/
7
- Version: 2.2.19
8
  Text Domain: wpsl
9
  Domain Path: /languages/
10
  License: GPL v3
@@ -61,7 +61,7 @@ if ( !class_exists( 'WP_Store_locator' ) ) {
61
  public function define_constants() {
62
 
63
  if ( !defined( 'WPSL_VERSION_NUM' ) )
64
- define( 'WPSL_VERSION_NUM', '2.2.19' );
65
 
66
  if ( !defined( 'WPSL_URL' ) )
67
  define( 'WPSL_URL', plugin_dir_url( __FILE__ ) );
4
  Description: An easy to use location management system that enables users to search for nearby physical stores
5
  Author: Tijmen Smit
6
  Author URI: https://wpstorelocator.co/
7
+ Version: 2.2.20
8
  Text Domain: wpsl
9
  Domain Path: /languages/
10
  License: GPL v3
61
  public function define_constants() {
62
 
63
  if ( !defined( 'WPSL_VERSION_NUM' ) )
64
+ define( 'WPSL_VERSION_NUM', '2.2.20' );
65
 
66
  if ( !defined( 'WPSL_URL' ) )
67
  define( 'WPSL_URL', plugin_dir_url( __FILE__ ) );