WP Store Locator - Version 2.1.0

Version Description

Download this release

Release Info

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

Code changes from version 2.0.4 to 2.1.0

admin/EDD_SL_Plugin_Updater.php ADDED
@@ -0,0 +1,339 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // uncomment this line for testing
4
+ //set_site_transient( 'update_plugins', null );
5
+
6
+ // Exit if accessed directly
7
+ if ( ! defined( 'ABSPATH' ) ) exit;
8
+
9
+ /**
10
+ * Allows plugins to use their own update API.
11
+ *
12
+ * @author Pippin Williamson
13
+ * @version 1.6.2
14
+ */
15
+ class EDD_SL_Plugin_Updater {
16
+ private $api_url = '';
17
+ private $api_data = array();
18
+ private $name = '';
19
+ private $slug = '';
20
+ private $version = '';
21
+
22
+ /**
23
+ * Class constructor.
24
+ *
25
+ * @uses plugin_basename()
26
+ * @uses hook()
27
+ *
28
+ * @param string $_api_url The URL pointing to the custom API endpoint.
29
+ * @param string $_plugin_file Path to the plugin file.
30
+ * @param array $_api_data Optional data to send with API calls.
31
+ */
32
+ function __construct( $_api_url, $_plugin_file, $_api_data = null ) {
33
+ $this->api_url = trailingslashit( $_api_url );
34
+ $this->api_data = $_api_data;
35
+ $this->name = plugin_basename( $_plugin_file );
36
+ $this->slug = basename( $_plugin_file, '.php' );
37
+ $this->version = $_api_data['version'];
38
+
39
+ // Set up hooks.
40
+ $this->init();
41
+ add_action( 'admin_init', array( $this, 'show_changelog' ) );
42
+
43
+ }
44
+
45
+ /**
46
+ * Set up WordPress filters to hook into WP's update process.
47
+ *
48
+ * @uses add_filter()
49
+ *
50
+ * @return void
51
+ */
52
+ public function init() {
53
+ add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
54
+ add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
55
+
56
+ remove_action( 'after_plugin_row_' . $this->name, 'wp_plugin_update_row', 10, 2 );
57
+ add_action( 'after_plugin_row_' . $this->name, array( $this, 'show_update_notification' ), 10, 2 );
58
+ }
59
+
60
+ /**
61
+ * Check for Updates at the defined API endpoint and modify the update array.
62
+ *
63
+ * This function dives into the update API just when WordPress creates its update array,
64
+ * then adds a custom API call and injects the custom plugin data retrieved from the API.
65
+ * It is reassembled from parts of the native WordPress plugin update code.
66
+ * See wp-includes/update.php line 121 for the original wp_update_plugins() function.
67
+ *
68
+ * @uses api_request()
69
+ *
70
+ * @param array $_transient_data Update array build by WordPress.
71
+ * @return array Modified update array with custom plugin data.
72
+ */
73
+ function check_update( $_transient_data ) {
74
+
75
+ global $pagenow;
76
+
77
+ if( ! is_object( $_transient_data ) ) {
78
+ $_transient_data = new stdClass;
79
+ }
80
+
81
+ if( 'plugins.php' == $pagenow && is_multisite() ) {
82
+ return $_transient_data;
83
+ }
84
+
85
+ if ( empty( $_transient_data->response ) || empty( $_transient_data->response[ $this->name ] ) ) {
86
+
87
+ $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug ) );
88
+
89
+ if ( false !== $version_info && is_object( $version_info ) && isset( $version_info->new_version ) ) {
90
+
91
+ if( version_compare( $this->version, $version_info->new_version, '<' ) ) {
92
+
93
+ $_transient_data->response[ $this->name ] = $version_info;
94
+
95
+ }
96
+
97
+ $_transient_data->last_checked = time();
98
+ $_transient_data->checked[ $this->name ] = $this->version;
99
+
100
+ }
101
+
102
+ }
103
+
104
+ return $_transient_data;
105
+ }
106
+
107
+ /**
108
+ * show update nofication row -- needed for multisite subsites, because WP won't tell you otherwise!
109
+ *
110
+ * @param string $file
111
+ * @param array $plugin
112
+ */
113
+ public function show_update_notification( $file, $plugin ) {
114
+
115
+ if( ! current_user_can( 'update_plugins' ) ) {
116
+ return;
117
+ }
118
+
119
+ if( ! is_multisite() ) {
120
+ return;
121
+ }
122
+
123
+ if ( $this->name != $file ) {
124
+ return;
125
+ }
126
+
127
+ // Remove our filter on the site transient
128
+ remove_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ), 10 );
129
+
130
+ $update_cache = get_site_transient( 'update_plugins' );
131
+
132
+ $update_cache = is_object( $update_cache ) ? $update_cache : new stdClass();
133
+
134
+ if ( empty( $update_cache->response ) || empty( $update_cache->response[ $this->name ] ) ) {
135
+
136
+ $cache_key = md5( 'edd_plugin_' .sanitize_key( $this->name ) . '_version_info' );
137
+ $version_info = get_transient( $cache_key );
138
+
139
+ if( false === $version_info ) {
140
+
141
+ $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug ) );
142
+
143
+ set_transient( $cache_key, $version_info, 3600 );
144
+ }
145
+
146
+
147
+ if( ! is_object( $version_info ) ) {
148
+ return;
149
+ }
150
+
151
+ if( version_compare( $this->version, $version_info->new_version, '<' ) ) {
152
+
153
+ $update_cache->response[ $this->name ] = $version_info;
154
+
155
+ }
156
+
157
+ $update_cache->last_checked = time();
158
+ $update_cache->checked[ $this->name ] = $this->version;
159
+
160
+ set_site_transient( 'update_plugins', $update_cache );
161
+
162
+ } else {
163
+
164
+ $version_info = $update_cache->response[ $this->name ];
165
+
166
+ }
167
+
168
+ // Restore our filter
169
+ add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
170
+
171
+ if ( ! empty( $update_cache->response[ $this->name ] ) && version_compare( $this->version, $version_info->new_version, '<' ) ) {
172
+
173
+ // build a plugin list row, with update notification
174
+ $wp_list_table = _get_list_table( 'WP_Plugins_List_Table' );
175
+ echo '<tr class="plugin-update-tr"><td colspan="' . $wp_list_table->get_column_count() . '" class="plugin-update colspanchange"><div class="update-message">';
176
+
177
+ $changelog_link = self_admin_url( 'index.php?edd_sl_action=view_plugin_changelog&plugin=' . $this->name . '&slug=' . $this->slug . '&TB_iframe=true&width=772&height=911' );
178
+
179
+ if ( empty( $version_info->download_link ) ) {
180
+ printf(
181
+ __( 'There is a new version of %1$s available. <a target="_blank" class="thickbox" href="%2$s">View version %3$s details</a>.', 'edd' ),
182
+ esc_html( $version_info->name ),
183
+ esc_url( $changelog_link ),
184
+ esc_html( $version_info->new_version )
185
+ );
186
+ } else {
187
+ printf(
188
+ __( 'There is a new version of %1$s available. <a target="_blank" class="thickbox" href="%2$s">View version %3$s details</a> or <a href="%4$s">update now</a>.', 'edd' ),
189
+ esc_html( $version_info->name ),
190
+ esc_url( $changelog_link ),
191
+ esc_html( $version_info->new_version ),
192
+ esc_url( wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' ) . $this->name, 'upgrade-plugin_' . $this->name ) )
193
+ );
194
+ }
195
+
196
+ echo '</div></td></tr>';
197
+ }
198
+ }
199
+
200
+
201
+ /**
202
+ * Updates information on the "View version x.x details" page with custom data.
203
+ *
204
+ * @uses api_request()
205
+ *
206
+ * @param mixed $_data
207
+ * @param string $_action
208
+ * @param object $_args
209
+ * @return object $_data
210
+ */
211
+ function plugins_api_filter( $_data, $_action = '', $_args = null ) {
212
+
213
+
214
+ if ( $_action != 'plugin_information' ) {
215
+
216
+ return $_data;
217
+
218
+ }
219
+
220
+ if ( ! isset( $_args->slug ) || ( $_args->slug != $this->slug ) ) {
221
+
222
+ return $_data;
223
+
224
+ }
225
+
226
+ $to_send = array(
227
+ 'slug' => $this->slug,
228
+ 'is_ssl' => is_ssl(),
229
+ 'fields' => array(
230
+ 'banners' => false, // These will be supported soon hopefully
231
+ 'reviews' => false
232
+ )
233
+ );
234
+
235
+ $api_response = $this->api_request( 'plugin_information', $to_send );
236
+
237
+ if ( false !== $api_response ) {
238
+ $_data = $api_response;
239
+ }
240
+
241
+ return $_data;
242
+ }
243
+
244
+
245
+ /**
246
+ * Disable SSL verification in order to prevent download update failures
247
+ *
248
+ * @param array $args
249
+ * @param string $url
250
+ * @return object $array
251
+ */
252
+ function http_request_args( $args, $url ) {
253
+ // If it is an https request and we are performing a package download, disable ssl verification
254
+ if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) {
255
+ $args['sslverify'] = false;
256
+ }
257
+ return $args;
258
+ }
259
+
260
+ /**
261
+ * Calls the API and, if successfull, returns the object delivered by the API.
262
+ *
263
+ * @uses get_bloginfo()
264
+ * @uses wp_remote_post()
265
+ * @uses is_wp_error()
266
+ *
267
+ * @param string $_action The requested action.
268
+ * @param array $_data Parameters for the API action.
269
+ * @return false|object
270
+ */
271
+ private function api_request( $_action, $_data ) {
272
+
273
+ global $wp_version;
274
+
275
+ $data = array_merge( $this->api_data, $_data );
276
+
277
+ if ( $data['slug'] != $this->slug ) {
278
+ return;
279
+ }
280
+
281
+ if( $this->api_url == home_url() ) {
282
+ return false; // Don't allow a plugin to ping itself
283
+ }
284
+
285
+ $api_params = array(
286
+ 'edd_action' => 'get_version',
287
+ 'license' => ! empty( $data['license'] ) ? $data['license'] : '',
288
+ 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false,
289
+ 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false,
290
+ 'slug' => $data['slug'],
291
+ 'author' => $data['author'],
292
+ 'url' => home_url()
293
+ );
294
+
295
+ $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
296
+
297
+ if ( ! is_wp_error( $request ) ) {
298
+ $request = json_decode( wp_remote_retrieve_body( $request ) );
299
+ }
300
+
301
+ if ( $request && isset( $request->sections ) ) {
302
+ $request->sections = maybe_unserialize( $request->sections );
303
+ } else {
304
+ $request = false;
305
+ }
306
+
307
+ return $request;
308
+ }
309
+
310
+ public function show_changelog() {
311
+
312
+
313
+ if( empty( $_REQUEST['edd_sl_action'] ) || 'view_plugin_changelog' != $_REQUEST['edd_sl_action'] ) {
314
+ return;
315
+ }
316
+
317
+ if( empty( $_REQUEST['plugin'] ) ) {
318
+ return;
319
+ }
320
+
321
+ if( empty( $_REQUEST['slug'] ) ) {
322
+ return;
323
+ }
324
+
325
+ if( ! current_user_can( 'update_plugins' ) ) {
326
+ wp_die( __( 'You do not have permission to install plugin updates', 'edd' ), __( 'Error', 'edd' ), array( 'response' => 403 ) );
327
+ }
328
+
329
+ $response = $this->api_request( 'plugin_latest_version', array( 'slug' => $_REQUEST['slug'] ) );
330
+
331
+ if( $response && isset( $response->sections['changelog'] ) ) {
332
+ echo '<div style="background:#fff;padding:10px;">' . $response->sections['changelog'] . '</div>';
333
+ }
334
+
335
+
336
+ exit;
337
+ }
338
+
339
+ }
admin/class-admin.php CHANGED
@@ -40,14 +40,14 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
40
  * @var WPSL_Settings
41
  */
42
  public $settings_page;
43
-
44
  /**
45
  * Class constructor
46
  */
47
- function __construct() {
48
-
49
  $this->includes();
50
-
51
  add_action( 'init', array( $this, 'init' ) );
52
  add_action( 'admin_menu', array( $this, 'create_admin_menu' ) );
53
  add_action( 'admin_init', array( $this, 'admin_init' ) );
@@ -55,11 +55,11 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
55
  add_action( 'wp_trash_post', array( $this, 'maybe_delete_autoload_transient' ) );
56
  add_action( 'untrash_post', array( $this, 'maybe_delete_autoload_transient' ) );
57
  add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts' ) );
58
-
59
  add_filter( 'plugin_action_links_' . WPSL_BASENAME, array( $this, 'add_action_links' ), 10, 2 );
60
  add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ), 1 );
61
  }
62
-
63
  /**
64
  * Include all the required files.
65
  *
@@ -68,6 +68,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
68
  */
69
  public function includes() {
70
  require_once( WPSL_PLUGIN_DIR . 'admin/class-notices.php' );
 
71
  require_once( WPSL_PLUGIN_DIR . 'admin/class-metaboxes.php' );
72
  require_once( WPSL_PLUGIN_DIR . 'admin/class-geocode.php' );
73
  require_once( WPSL_PLUGIN_DIR . 'admin/class-settings.php' );
@@ -104,8 +105,8 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
104
  add_action( 'admin_footer', array( $this, 'show_location_warning' ) );
105
  }
106
  }
107
- }
108
-
109
  /**
110
  * Display an error message when no start location is defined.
111
  *
@@ -141,23 +142,39 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
141
  }
142
 
143
  /**
144
- * Add the menu pages.
145
  *
146
  * @since 1.0.0
147
  * @return void
148
  */
149
- public function create_admin_menu() {
150
- add_submenu_page( 'edit.php?post_type=wpsl_stores', __( 'Settings', 'wpsl' ), __( 'Settings', 'wpsl' ), 'manage_wpsl_settings', 'wpsl_settings', array( $this, 'show_settings' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
  }
152
-
153
  /**
154
- * Show the settings page.
155
  *
156
- * @since 1.0.0
157
  * @return void
158
  */
159
- public function show_settings() {
160
- require 'templates/map-settings.php';
161
  }
162
 
163
  /**
@@ -403,7 +420,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
403
  public function add_action_links( $links, $file ) {
404
 
405
  if ( strpos( $file, 'wp-store-locator.php' ) !== false ) {
406
- $documentation = '<a href="http://wpstorelocator.co/documentation" target="_blank">'. __( 'Documentation', 'wpsl' ).'</a>';
407
  array_unshift( $links, $documentation );
408
 
409
  $settings_link = '<a href="' . admin_url( 'edit.php?post_type=wpsl_stores&page=wpsl_settings' ) . '">' . __( 'General Settings', 'wpsl' ) . '</a>';
40
  * @var WPSL_Settings
41
  */
42
  public $settings_page;
43
+
44
  /**
45
  * Class constructor
46
  */
47
+ function __construct() {
48
+
49
  $this->includes();
50
+
51
  add_action( 'init', array( $this, 'init' ) );
52
  add_action( 'admin_menu', array( $this, 'create_admin_menu' ) );
53
  add_action( 'admin_init', array( $this, 'admin_init' ) );
55
  add_action( 'wp_trash_post', array( $this, 'maybe_delete_autoload_transient' ) );
56
  add_action( 'untrash_post', array( $this, 'maybe_delete_autoload_transient' ) );
57
  add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts' ) );
58
+
59
  add_filter( 'plugin_action_links_' . WPSL_BASENAME, array( $this, 'add_action_links' ), 10, 2 );
60
  add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ), 1 );
61
  }
62
+
63
  /**
64
  * Include all the required files.
65
  *
68
  */
69
  public function includes() {
70
  require_once( WPSL_PLUGIN_DIR . 'admin/class-notices.php' );
71
+ require_once( WPSL_PLUGIN_DIR . 'admin/class-license-manager.php' );
72
  require_once( WPSL_PLUGIN_DIR . 'admin/class-metaboxes.php' );
73
  require_once( WPSL_PLUGIN_DIR . 'admin/class-geocode.php' );
74
  require_once( WPSL_PLUGIN_DIR . 'admin/class-settings.php' );
105
  add_action( 'admin_footer', array( $this, 'show_location_warning' ) );
106
  }
107
  }
108
+ }
109
+
110
  /**
111
  * Display an error message when no start location is defined.
112
  *
142
  }
143
 
144
  /**
145
+ * Add the admin menu pages.
146
  *
147
  * @since 1.0.0
148
  * @return void
149
  */
150
+ public function create_admin_menu() {
151
+
152
+ $sub_menus = apply_filters( 'wpsl_sub_menu_items', array(
153
+ array(
154
+ 'page_title' => __( 'Settings', 'wpsl' ),
155
+ 'menu_title' => __( 'Settings', 'wpsl' ),
156
+ 'caps' => 'manage_wpsl_settings',
157
+ 'menu_slug' => 'wpsl_settings',
158
+ 'function' => array( $this, 'load_template' )
159
+ )
160
+ )
161
+ );
162
+
163
+ if ( count( $sub_menus ) ) {
164
+ foreach ( $sub_menus as $sub_menu ) {
165
+ add_submenu_page( 'edit.php?post_type=wpsl_stores', $sub_menu['page_title'], $sub_menu['menu_title'], $sub_menu['caps'], $sub_menu['menu_slug'], $sub_menu['function'] );
166
+ }
167
+ }
168
  }
169
+
170
  /**
171
+ * Load the correct page template.
172
  *
173
+ * @since 2.1.0
174
  * @return void
175
  */
176
+ public function load_template() {
177
+ require 'templates/map-settings.php';
178
  }
179
 
180
  /**
420
  public function add_action_links( $links, $file ) {
421
 
422
  if ( strpos( $file, 'wp-store-locator.php' ) !== false ) {
423
+ $documentation = '<a href="https://wpstorelocator.co/documentation" target="_blank">'. __( 'Documentation', 'wpsl' ).'</a>';
424
  array_unshift( $links, $documentation );
425
 
426
  $settings_link = '<a href="' . admin_url( 'edit.php?post_type=wpsl_stores&page=wpsl_settings' ) . '">' . __( 'General Settings', 'wpsl' ) . '</a>';
admin/class-geocode.php CHANGED
@@ -58,12 +58,12 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
58
  */
59
  public function geocode_location( $post_id, $store_data ) {
60
 
61
- $geocode_response = $this->get_latlng( $post_id, $store_data );
62
 
63
  if ( isset( $geocode_response['status'] ) ) {
64
  switch ( $geocode_response['status'] ) {
65
  case 'OK':
66
- $location_data = array (
67
  'country_iso' => $this->filter_country_name( $geocode_response ),
68
  'latlng' => $this->format_latlng( $geocode_response['results'][0]['geometry']['location'] )
69
  );
@@ -71,14 +71,19 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
71
  return $location_data;
72
  case 'ZERO_RESULTS':
73
  $msg = __( 'The Google Geocoding API returned no results for the supplied address. Please change the address and try again.', 'wpsl' );
74
- break;
75
  case 'OVER_QUERY_LIMIT':
76
  $msg = sprintf( __( 'You have reached the daily allowed geocoding limit, you can read more %shere%s.', 'wpsl' ), '<a target="_blank" href="https://developers.google.com/maps/documentation/geocoding/#Limits">', '</a>' );
77
- break;
 
 
 
78
  default:
79
  $msg = __( 'The Google Geocoding API failed to return valid data, please try again later.', 'wpsl' );
80
- break;
81
  }
 
 
82
  }
83
 
84
  // Handle the geocode code errors messages.
@@ -87,30 +92,71 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
87
  }
88
  }
89
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  /**
91
  * Make the API call to Google to geocode the address.
92
  *
93
  * @since 1.0.0
94
- * @param integer $post_id store post ID
95
- * @param array $store_data The store data
96
- * @return void|array $geo_data The geocoded response
97
  */
98
- public function get_latlng( $post_id, $store_data ) {
99
 
100
- $address = $store_data['address'].','.$store_data['city'].','.$store_data['zip'].','.$store_data['country'];
101
- $url = 'https://maps.googleapis.com/maps/api/geocode/json?address=' . urlencode( $address ) . '&sensor=false' . wpsl_get_gmap_api_params();
102
  $response = wp_remote_get( $url );
103
-
104
- if ( is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) != 200 || empty( $response['body'] ) ) {
105
- $msg = __( 'The Google Geocoding API failed to return valid data, please try again later.', 'wpsl' );
106
- $this->geocode_failed( $msg, $post_id );
107
  } else {
108
- $geo_data = json_decode( $response['body'], true );
109
-
110
- return $geo_data;
111
  }
 
 
112
  }
113
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  /**
115
  * If there is a problem with the geocoding then we save the notice and change the post status to pending.
116
  *
@@ -126,7 +172,7 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
126
  $wpsl_admin->notices->save( 'error', $msg );
127
  $wpsl_admin->metaboxes->set_post_pending( $post_id );
128
  }
129
-
130
  /**
131
  * Save the store location data.
132
  *
@@ -201,7 +247,7 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
201
  if ( !is_numeric( $lat ) || ( $lat > 90 ) || ( $lat < -90 ) ) {
202
  return false;
203
  }
204
-
205
  if ( !is_numeric( $lng ) || ( $lng > 180 ) || ( $lng < -180 ) ) {
206
  return false;
207
  }
58
  */
59
  public function geocode_location( $post_id, $store_data ) {
60
 
61
+ $geocode_response = $this->get_latlng( $store_data );
62
 
63
  if ( isset( $geocode_response['status'] ) ) {
64
  switch ( $geocode_response['status'] ) {
65
  case 'OK':
66
+ $location_data = array(
67
  'country_iso' => $this->filter_country_name( $geocode_response ),
68
  'latlng' => $this->format_latlng( $geocode_response['results'][0]['geometry']['location'] )
69
  );
71
  return $location_data;
72
  case 'ZERO_RESULTS':
73
  $msg = __( 'The Google Geocoding API returned no results for the supplied address. Please change the address and try again.', 'wpsl' );
74
+ break;
75
  case 'OVER_QUERY_LIMIT':
76
  $msg = sprintf( __( 'You have reached the daily allowed geocoding limit, you can read more %shere%s.', 'wpsl' ), '<a target="_blank" href="https://developers.google.com/maps/documentation/geocoding/#Limits">', '</a>' );
77
+ break;
78
+ case 'REQUEST_DENIED':
79
+ $msg = sprintf( __( 'The Google Geocoding API returned REQUEST_DENIED. %s', 'wpsl' ), $this->check_geocode_error_msg( $geocode_response ) );
80
+ break;
81
  default:
82
  $msg = __( 'The Google Geocoding API failed to return valid data, please try again later.', 'wpsl' );
83
+ break;
84
  }
85
+ } else {
86
+ $msg = $geocode_response;
87
  }
88
 
89
  // Handle the geocode code errors messages.
92
  }
93
  }
94
 
95
+ /**
96
+ * Check if the response from the Geocode API contains an error message.
97
+ *
98
+ * @since 2.1.0
99
+ * @param array $geocode_response The response from the Geocode API.
100
+ * @return string $error_msg The error message, or empty if none exists.
101
+ */
102
+ public function check_geocode_error_msg( $geocode_response, $inc_breaks = true ) {
103
+
104
+ $breaks = ( $inc_breaks ) ? '<br><br>' : '';
105
+
106
+ if ( isset( $geocode_response['error_message'] ) && $geocode_response['error_message'] ) {
107
+ $error_msg = sprintf( __( '%sError message: %s', 'wpsl' ), $breaks, $geocode_response['error_message'] );
108
+ } else {
109
+ $error_msg = '';
110
+ }
111
+
112
+ return $error_msg;
113
+ }
114
+
115
  /**
116
  * Make the API call to Google to geocode the address.
117
  *
118
  * @since 1.0.0
119
+ * @param array $store_data The store data
120
+ * @return array|string $geo_response The response from the Google Geocode API, or the wp_remote_get error message.
 
121
  */
122
+ public function get_latlng( $store_data ) {
123
 
124
+ $address = $this->create_geocode_address( $store_data );
125
+ $url = 'https://maps.googleapis.com/maps/api/geocode/json?address=' . urlencode( $address ) . wpsl_get_gmap_api_params( true );
126
  $response = wp_remote_get( $url );
127
+
128
+ if ( is_wp_error( $response ) ) {
129
+ $geo_response = sprintf( __( 'Something went wrong connecting to the Google Geocode API: %s %s Please try again later.', 'wpsl' ), $response->get_error_message(), '<br><br>' );
 
130
  } else {
131
+ $geo_response = json_decode( $response['body'], true );
 
 
132
  }
133
+
134
+ return $geo_response;
135
  }
136
 
137
+ /**
138
+ * Create the address we need to Geocode.
139
+ *
140
+ * @since 2.1.0
141
+ * @param array $store_data The provided store data
142
+ * @return string $geocode_address The address we are sending to the Geocode API separated by ,
143
+ */
144
+ public function create_geocode_address( $store_data ) {
145
+
146
+ $address = array();
147
+ $address_parts = array( 'address', 'city', 'state', 'zip', 'country' );
148
+
149
+ foreach ( $address_parts as $address_part ) {
150
+ if ( isset( $store_data[$address_part] ) && $store_data[$address_part] ) {
151
+ $address[] = trim( $store_data[$address_part] );
152
+ }
153
+ }
154
+
155
+ $geocode_address = implode( ',', $address );
156
+
157
+ return $geocode_address;
158
+ }
159
+
160
  /**
161
  * If there is a problem with the geocoding then we save the notice and change the post status to pending.
162
  *
172
  $wpsl_admin->notices->save( 'error', $msg );
173
  $wpsl_admin->metaboxes->set_post_pending( $post_id );
174
  }
175
+
176
  /**
177
  * Save the store location data.
178
  *
247
  if ( !is_numeric( $lat ) || ( $lat > 90 ) || ( $lat < -90 ) ) {
248
  return false;
249
  }
250
+
251
  if ( !is_numeric( $lng ) || ( $lng > 180 ) || ( $lng < -180 ) ) {
252
  return false;
253
  }
admin/class-license-manager.php ADDED
@@ -0,0 +1,294 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Handle the add-on license and updates.
4
+ *
5
+ * @author Tijmen Smit
6
+ * @since 2.1.0
7
+ */
8
+
9
+ if ( !defined( 'ABSPATH' ) ) exit;
10
+
11
+ class WPSL_License_Manager {
12
+
13
+ public $item_name;
14
+ public $item_shortname;
15
+ public $version;
16
+ public $author;
17
+ public $file;
18
+ public $api_url = 'https://wpstorelocator.co/';
19
+
20
+ /**
21
+ * Class constructor
22
+ *
23
+ * @param string $item_name
24
+ * @param string $version
25
+ * @param string $author
26
+ * @param string $file
27
+ */
28
+ function __construct( $item_name, $version, $author, $file ) {
29
+
30
+ $this->item_name = $item_name;
31
+ $this->item_shortname = 'wpsl_' . preg_replace( '/[^a-zA-Z0-9_\s]/', '', str_replace( ' ', '_', strtolower( $this->item_name ) ) );
32
+ $this->version = $version;
33
+ $this->author = $author;
34
+ $this->file = $file;
35
+
36
+ $this->includes();
37
+
38
+ add_action( 'admin_init', array( $this, 'auto_updater' ), 0 );
39
+ add_action( 'admin_init', array( $this, 'license_actions' ) );
40
+ add_filter( 'wpsl_license_settings', array( $this, 'add_license_field' ), 1 );
41
+ }
42
+
43
+ /**
44
+ * Include the updater class
45
+ *
46
+ * @since 2.1.0
47
+ * @access private
48
+ * @return void
49
+ */
50
+ private function includes() {
51
+ if ( !class_exists( 'EDD_SL_Plugin_Updater' ) ) {
52
+ require_once 'EDD_SL_Plugin_Updater.php';
53
+ }
54
+ }
55
+
56
+ /**
57
+ * Handle the add-on updates.
58
+ *
59
+ * @since 2.1.0
60
+ * @return void
61
+ */
62
+ public function auto_updater() {
63
+
64
+ if ( $this->get_license_option( 'status' ) !== 'valid' ) {
65
+ return;
66
+ }
67
+
68
+ $args = array(
69
+ 'version' => $this->version,
70
+ 'license' => $this->get_license_option( 'key' ),
71
+ 'author' => $this->author,
72
+ 'item_name' => $this->item_name
73
+ );
74
+
75
+ // Setup the updater.
76
+ $edd_updater = new EDD_SL_Plugin_Updater(
77
+ $this->api_url,
78
+ $this->file,
79
+ $args
80
+ );
81
+ }
82
+
83
+ /**
84
+ * Check which license actions to take.
85
+ *
86
+ * @since 2.1.0
87
+ * @return void
88
+ */
89
+ public function license_actions() {
90
+
91
+ if ( !isset( $_POST['wpsl_licenses'] ) ) {
92
+ return;
93
+ }
94
+
95
+ if ( !isset( $_POST['wpsl_licenses'][ $this->item_shortname ] ) || empty( $_POST['wpsl_licenses'][ $this->item_shortname ] ) ) {
96
+ return;
97
+ }
98
+
99
+ if ( !check_admin_referer( $this->item_shortname . '_license-nonce', $this->item_shortname . '_license-nonce' ) ) {
100
+ return;
101
+ }
102
+
103
+ if ( !current_user_can( 'manage_wpsl_settings' ) ) {
104
+ return;
105
+ }
106
+
107
+ if ( isset( $_POST[ $this->item_shortname . '_license_key_deactivate' ] ) ) {
108
+ $this->deactivate_license();
109
+ } else {
110
+ $this->activate_license();
111
+ }
112
+ }
113
+
114
+ /**
115
+ * Try to activate the license key.
116
+ *
117
+ * @since 2.1.0
118
+ * @return void
119
+ */
120
+ public function activate_license() {
121
+
122
+ // Stop if the current license is already active.
123
+ if ( $this->get_license_option( 'status' ) == 'valid' ) {
124
+ return;
125
+ }
126
+
127
+ $license = sanitize_text_field( $_POST['wpsl_licenses'][ $this->item_shortname ] );
128
+
129
+ // data to send in our API request.
130
+ $api_params = array(
131
+ 'edd_action' => 'activate_license',
132
+ 'license' => $license,
133
+ 'item_name' => urlencode( $this->item_name ),
134
+ 'url' => home_url()
135
+ );
136
+
137
+ // Get the license data from the API.
138
+ $license_data = $this->call_license_api( $api_params );
139
+
140
+ if ( $license_data ) {
141
+ update_option(
142
+ $this->item_shortname . '_license_data',
143
+ array(
144
+ 'key' => $license,
145
+ 'expiration' => $license_data->expires,
146
+ 'status' => $license_data->license
147
+ )
148
+ );
149
+
150
+ if ( $license_data->success ) {
151
+ $this->set_license_notice( $this->item_name . ' license activated.', 'updated' );
152
+ } else if ( !empty( $license_data->error ) ) {
153
+ $this->handle_activation_errors( $license_data->error );
154
+ }
155
+ }
156
+ }
157
+
158
+ /**
159
+ * Deactivate the license key.
160
+ *
161
+ * @since 2.1.0
162
+ * @return void
163
+ */
164
+ public function deactivate_license() {
165
+
166
+ // Data to send to the API
167
+ $api_params = array(
168
+ 'edd_action' => 'deactivate_license',
169
+ 'license' => $this->get_license_option( 'key' ),
170
+ 'item_name' => urlencode( $this->item_name ),
171
+ 'url' => home_url()
172
+ );
173
+
174
+ // Get the license data from the API.
175
+ $license_data = $this->call_license_api( $api_params );
176
+
177
+ if ( $license_data ) {
178
+ if ( $license_data->license == 'deactivated' ) {
179
+ delete_option( $this->item_shortname . '_license_data' );
180
+
181
+ $this->set_license_notice( $this->item_name . ' license deactivated.', 'updated' );
182
+ } else {
183
+ $message = sprintf (__( 'The %s license failed to deactivate, please try again later or contact support!', 'wpsl' ), $this->item_name );
184
+ $this->set_license_notice( $message, 'error' );
185
+ }
186
+ }
187
+ }
188
+
189
+ /**
190
+ * Access the license API.
191
+ *
192
+ * @since 2.1.0
193
+ * @params array $api_params The used API parameters
194
+ * @return void|array $license_data The returned license data on success
195
+ */
196
+ public function call_license_api( $api_params ) {
197
+
198
+ $response = wp_remote_post(
199
+ $this->api_url,
200
+ array(
201
+ 'timeout' => 15,
202
+ 'sslverify' => false,
203
+ 'body' => $api_params
204
+ )
205
+ );
206
+
207
+ // Make sure the response came back okay.
208
+ if ( is_wp_error( $response ) ) {
209
+ $message = $response->get_error_message() . '. ' . __( 'Please try again later!', 'wpsl' );
210
+ $this->set_license_notice( $message, 'error' );
211
+ } else {
212
+ $license_data = json_decode( wp_remote_retrieve_body( $response ) );
213
+
214
+ return $license_data;
215
+ }
216
+ }
217
+
218
+ /**
219
+ * Get a single license option.
220
+ *
221
+ * @since 2.1.0
222
+ * @param string $option Name of the license option.
223
+ * @return void|string The value for the license option.
224
+ */
225
+ public function get_license_option( $option ) {
226
+
227
+ $license_data = get_option( $this->item_shortname . '_license_data' );
228
+
229
+ if ( isset( $license_data[ $option ] ) ) {
230
+ return $license_data[ $option ];
231
+ }
232
+ }
233
+
234
+ /**
235
+ * Set a notice holding license information.
236
+ *
237
+ * @since 2.1.0
238
+ * @param string $message The license message to display.
239
+ * @param string $type Either updated or error.
240
+ * @return void
241
+ */
242
+ public function set_license_notice( $message, $type ) {
243
+ add_settings_error( $this->item_shortname . '-license', 'license-notice', $message, $type );
244
+ }
245
+
246
+ /**
247
+ * Check the different license activation errors.
248
+ *
249
+ * @since 2.1.0
250
+ * @param string $activation_errors The activation errors returned by the license API.
251
+ * @return void
252
+ */
253
+ public function handle_activation_errors( $activation_errors ) {
254
+
255
+ switch ( $activation_errors ) {
256
+ case 'item_name_mismatch':
257
+ $error_msg = sprintf( __( 'The %s license key does not belong to this add-on.', 'wpsl' ), $this->item_name );
258
+ break;
259
+ case 'no_activations_left':
260
+ $error_msg = sprintf( __( 'The %s license key does not have any activations left.', 'wpsl' ), $this->item_name );
261
+ break;
262
+ case 'expired':
263
+ $error_msg = sprintf( __( 'The %s license key is expired. Please renew it.', 'wpsl' ), $this->item_name );
264
+ break;
265
+ default:
266
+ $error_msg = sprintf( __( 'There was a problem activating the license key for the %s, please try again or contact support. Error code: %s', 'wpsl' ), $this->item_name, $activation_errors );
267
+ break;
268
+ }
269
+
270
+ $this->set_license_notice( $error_msg, 'error' );
271
+ }
272
+
273
+ /**
274
+ * Add license fields to the settings.
275
+ *
276
+ * @since 2.1.0
277
+ * @param array $settings The existing settings.
278
+ * @return array
279
+ */
280
+ public function add_license_field( $settings ) {
281
+
282
+ $license_setting = array(
283
+ array(
284
+ 'name' => $this->item_name,
285
+ 'short_name' => $this->item_shortname,
286
+ 'status' => $this->get_license_option( 'status' ),
287
+ 'key' => $this->get_license_option( 'key' ),
288
+ 'expiration' => $this->get_license_option( 'expiration' )
289
+ )
290
+ );
291
+
292
+ return array_merge( $settings, $license_setting );
293
+ }
294
+ }
admin/class-notices.php CHANGED
@@ -32,7 +32,7 @@ if ( !class_exists( 'WPSL_Notices' ) ) {
32
  }
33
 
34
  /**
35
- * Show the notice.
36
  *
37
  * @since 2.0.0
38
  * @return void
@@ -40,7 +40,6 @@ if ( !class_exists( 'WPSL_Notices' ) ) {
40
  public function show() {
41
 
42
  if ( !empty( $this->notices ) ) {
43
- $class = ( 'update' == $this->notices['type'] ) ? 'updated' : 'error';
44
  $allowed_html = array(
45
  'a' => array(
46
  'href' => array(),
@@ -50,40 +49,90 @@ if ( !class_exists( 'WPSL_Notices' ) ) {
50
  'title' => array(),
51
  'target' => array()
52
  ),
 
53
  'br' => array(),
54
  'em' => array(),
55
- 'strong' => array(
56
- 'class' => array()
57
  ),
58
- 'span' => array(
59
- 'class' => array()
 
 
 
 
 
 
60
  )
61
  );
62
-
63
- echo '<div class="' . esc_attr( $class ) . '"><p>' . wp_kses( $this->notices['message'], $allowed_html ) . '</p></div>';
 
 
 
 
 
 
64
 
65
  // Empty the notices.
66
  $this->notices = array();
67
- update_option( 'wpsl_notices', $this->notices );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  }
 
 
69
  }
70
 
71
  /**
72
  * Save the notice.
73
  *
74
  * @since 2.0.0
75
- * @param string $type The type of notice, either 'update' or 'error'
76
- * @param string $message The user message
 
77
  * @return void
78
  */
79
- public function save( $type, $message ) {
80
-
81
- $this->notices = array(
82
- 'type' => $type,
 
 
83
  'message' => $message
84
  );
85
-
86
- update_option( 'wpsl_notices', $this->notices );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  }
88
  }
89
  }
32
  }
33
 
34
  /**
35
+ * Show one or more notices.
36
  *
37
  * @since 2.0.0
38
  * @return void
40
  public function show() {
41
 
42
  if ( !empty( $this->notices ) ) {
 
43
  $allowed_html = array(
44
  'a' => array(
45
  'href' => array(),
49
  'title' => array(),
50
  'target' => array()
51
  ),
52
+ 'p' => array(),
53
  'br' => array(),
54
  'em' => array(),
55
+ 'strong' => array(
56
+ 'class' => array()
57
  ),
58
+ 'span' => array(
59
+ 'class' => array()
60
+ ),
61
+ 'ul' => array(
62
+ 'class' => array()
63
+ ),
64
+ 'li' => array(
65
+ 'class' => array()
66
  )
67
  );
68
+
69
+ if ( wpsl_is_multi_array( $this->notices ) ) {
70
+ foreach ( $this->notices as $k => $notice ) {
71
+ $this->create_notice_content( $notice, $allowed_html );
72
+ }
73
+ } else {
74
+ $this->create_notice_content( $this->notices, $allowed_html );
75
+ }
76
 
77
  // Empty the notices.
78
  $this->notices = array();
79
+ update_option( 'wpsl_notices', $this->notices );
80
+ }
81
+ }
82
+
83
+ /**
84
+ * Create the content shown in the notice.
85
+ *
86
+ * @since 2.1.0
87
+ * @param array $notice
88
+ * @param array $allowed_html
89
+ */
90
+ public function create_notice_content( $notice, $allowed_html ) {
91
+
92
+ $class = ( 'update' == $notice['type'] ) ? 'updated' : 'error';
93
+
94
+ if ( isset( $notice['multiline'] ) && $notice['multiline'] ) {
95
+ $notice_msg = wp_kses( $notice['message'], $allowed_html );
96
+ } else {
97
+ $notice_msg = '<p>' . wp_kses( $notice['message'], $allowed_html ) . '</p>';
98
  }
99
+
100
+ echo '<div class="' . esc_attr( $class ) . '">' . $notice_msg . '</div>';
101
  }
102
 
103
  /**
104
  * Save the notice.
105
  *
106
  * @since 2.0.0
107
+ * @param string $type The type of notice, either 'update' or 'error'
108
+ * @param string $message The user message
109
+ * @param bool $multiline True if the message contains multiple lines ( used with notices created in add-ons ).
110
  * @return void
111
  */
112
+ public function save( $type, $message, $multiline = false ) {
113
+
114
+ $current_notices = get_option( 'wpsl_notices' );
115
+
116
+ $new_notice = array(
117
+ 'type' => $type,
118
  'message' => $message
119
  );
120
+
121
+ if ( $multiline ) {
122
+ $new_notice['multiline'] = true;
123
+ }
124
+
125
+ if ( $current_notices ) {
126
+ if ( !wpsl_is_multi_array( $current_notices ) ) {
127
+ $current_notices = array( $current_notices );
128
+ }
129
+
130
+ array_push( $current_notices, $new_notice );
131
+
132
+ update_option( 'wpsl_notices', $current_notices );
133
+ } else {
134
+ update_option( 'wpsl_notices', $new_notice );
135
+ }
136
  }
137
  }
138
  }
admin/class-settings.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  /**
3
- * Handle the plugin settings
4
  *
5
  * @author Tijmen Smit
6
  * @since 2.0.0
@@ -67,20 +67,20 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
67
  * @return array $output The setting values
68
  */
69
  public function sanitize_settings() {
70
-
71
- global $wpsl_settings, $wpsl_admin;
72
 
73
- $ux_absints = array(
74
- 'height',
75
- 'infowindow_width',
76
- 'search_width',
 
 
77
  'label_width'
78
  );
79
 
80
- $marker_effects = array(
81
- 'bounce',
82
- 'info_window',
83
- 'ignore'
84
  );
85
 
86
  $ux_checkboxes = array(
@@ -98,9 +98,10 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
98
  'hide_distance'
99
  );
100
 
101
- $output['api_key'] = sanitize_text_field( $_POST['wpsl_api']['key'] );
102
- $output['api_language'] = wp_filter_nohtml_kses( $_POST['wpsl_api']['language'] );
103
- $output['api_region'] = wp_filter_nohtml_kses( $_POST['wpsl_api']['region'] );
 
104
 
105
  // Do we need to show the dropdown filters?
106
  $output['results_dropdown'] = isset( $_POST['wpsl_search']['results_dropdown'] ) ? 1 : 0;
@@ -161,7 +162,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
161
  $output['streetview'] = isset( $_POST['wpsl_map']['streetview'] ) ? 1 : 0;
162
  $output['type_control'] = isset( $_POST['wpsl_map']['type_control'] ) ? 1 : 0;
163
  $output['scrollwheel'] = isset( $_POST['wpsl_map']['scrollwheel'] ) ? 1 : 0;
164
- $output['control_position'] = ( $_POST['wpsl_map']['control_position'] == 'left' ) ? 'left' : 'right';
165
 
166
  $output['map_style'] = json_encode( strip_tags( trim( $_POST['wpsl_map']['map_style'] ) ) );
167
 
@@ -736,11 +737,12 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
736
  * @return string $marker_list A list of all the available markers
737
  */
738
  public function create_marker_html( $marker_img, $location ) {
739
-
740
  global $wpsl_settings;
741
-
 
742
  $marker_list = '';
743
-
744
  if ( $wpsl_settings[$location.'_marker'] == $marker_img ) {
745
  $checked = 'checked="checked"';
746
  $css_class = 'class="wpsl-active-marker"';
@@ -748,12 +750,12 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
748
  $checked = '';
749
  $css_class = '';
750
  }
751
-
752
  $marker_list .= '<li ' . $css_class . '>';
753
- $marker_list .= '<img src="' . WPSL_URL . 'img/markers/' . $marker_img . '" />';
754
  $marker_list .= '<input ' . $checked . ' type="radio" name="wpsl_map[' . $location . '_marker]" value="' . $marker_img . '" />';
755
  $marker_list .= '</li>';
756
-
757
  return $marker_list;
758
  }
759
 
@@ -839,7 +841,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
839
  * @return string $marker_list The complete list of available and selected markers
840
  */
841
  public function show_marker_options() {
842
-
843
  $marker_list = '';
844
  $marker_images = $this->get_available_markers();
845
  $marker_locations = array(
@@ -864,20 +866,21 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
864
  $marker_list .= '</ul>';
865
  }
866
  }
867
-
868
  return $marker_list;
869
  }
870
-
871
  /**
872
- * Load the markers that can be used on the map.
873
  *
874
  * @since 1.0.0
875
- * @return array $marker_images A list of all the available markers
876
  */
877
  public function get_available_markers() {
878
 
879
- $dir = WPSL_PLUGIN_DIR . 'img/markers/';
880
-
 
881
  if ( is_dir( $dir ) ) {
882
  if ( $dh = opendir( $dir ) ) {
883
  while ( false !== ( $file = readdir( $dh ) ) ) {
1
  <?php
2
  /**
3
+ * Handle the plugin settings.
4
  *
5
  * @author Tijmen Smit
6
  * @since 2.0.0
67
  * @return array $output The setting values
68
  */
69
  public function sanitize_settings() {
 
 
70
 
71
+ global $wpsl_settings, $wpsl_admin;
72
+
73
+ $ux_absints = array(
74
+ 'height',
75
+ 'infowindow_width',
76
+ 'search_width',
77
  'label_width'
78
  );
79
 
80
+ $marker_effects = array(
81
+ 'bounce',
82
+ 'info_window',
83
+ 'ignore'
84
  );
85
 
86
  $ux_checkboxes = array(
98
  'hide_distance'
99
  );
100
 
101
+ $output['api_key'] = sanitize_text_field( $_POST['wpsl_api']['key'] );
102
+ $output['api_language'] = wp_filter_nohtml_kses( $_POST['wpsl_api']['language'] );
103
+ $output['api_region'] = wp_filter_nohtml_kses( $_POST['wpsl_api']['region'] );
104
+ $output['api_geocode_component'] = isset( $_POST['wpsl_api']['geocode_component'] ) ? 1 : 0;
105
 
106
  // Do we need to show the dropdown filters?
107
  $output['results_dropdown'] = isset( $_POST['wpsl_search']['results_dropdown'] ) ? 1 : 0;
162
  $output['streetview'] = isset( $_POST['wpsl_map']['streetview'] ) ? 1 : 0;
163
  $output['type_control'] = isset( $_POST['wpsl_map']['type_control'] ) ? 1 : 0;
164
  $output['scrollwheel'] = isset( $_POST['wpsl_map']['scrollwheel'] ) ? 1 : 0;
165
+ $output['control_position'] = ( $_POST['wpsl_map']['control_position'] == 'left' ) ? 'left' : 'right';
166
 
167
  $output['map_style'] = json_encode( strip_tags( trim( $_POST['wpsl_map']['map_style'] ) ) );
168
 
737
  * @return string $marker_list A list of all the available markers
738
  */
739
  public function create_marker_html( $marker_img, $location ) {
740
+
741
  global $wpsl_settings;
742
+
743
+ $marker_path = ( defined( 'WPSL_MARKER_URI' ) ) ? WPSL_MARKER_URI : WPSL_URL . 'img/markers/';
744
  $marker_list = '';
745
+
746
  if ( $wpsl_settings[$location.'_marker'] == $marker_img ) {
747
  $checked = 'checked="checked"';
748
  $css_class = 'class="wpsl-active-marker"';
750
  $checked = '';
751
  $css_class = '';
752
  }
753
+
754
  $marker_list .= '<li ' . $css_class . '>';
755
+ $marker_list .= '<img src="' . $marker_path . $marker_img . '" />';
756
  $marker_list .= '<input ' . $checked . ' type="radio" name="wpsl_map[' . $location . '_marker]" value="' . $marker_img . '" />';
757
  $marker_list .= '</li>';
758
+
759
  return $marker_list;
760
  }
761
 
841
  * @return string $marker_list The complete list of available and selected markers
842
  */
843
  public function show_marker_options() {
844
+
845
  $marker_list = '';
846
  $marker_images = $this->get_available_markers();
847
  $marker_locations = array(
866
  $marker_list .= '</ul>';
867
  }
868
  }
869
+
870
  return $marker_list;
871
  }
872
+
873
  /**
874
+ * Load the markers that are used on the map.
875
  *
876
  * @since 1.0.0
877
+ * @return array $marker_images A list of all the available markers.
878
  */
879
  public function get_available_markers() {
880
 
881
+ $marker_images = array();
882
+ $dir = apply_filters( 'wpsl_admin_marker_dir', WPSL_PLUGIN_DIR . 'img/markers/' );
883
+
884
  if ( is_dir( $dir ) ) {
885
  if ( $dh = opendir( $dir ) ) {
886
  while ( false !== ( $file = readdir( $dh ) ) ) {
admin/css/style.css CHANGED
@@ -210,6 +210,7 @@
210
  }
211
 
212
  /* Settings page */
 
213
  #wpsl-settings-form .postbox-container {
214
  width: 535px;
215
  clear: both;
210
  }
211
 
212
  /* Settings page */
213
+ #wpsl-license-form .postbox-container,
214
  #wpsl-settings-form .postbox-container {
215
  width: 535px;
216
  clear: both;
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;line-height:1em}@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-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-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-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;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}#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{float:left;width:95px;margin-top:3px}.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;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}
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;line-height:1em}@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-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-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;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}#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{float:left;width:95px;margin-top:3px}.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;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}
admin/js/wpsl-admin.js CHANGED
@@ -8,7 +8,7 @@ if ( $( "#wpsl-gmap-wrap" ).length ) {
8
  /**
9
  * Initialize the map with the correct settings.
10
  *
11
- * @since 1.0
12
  * @returns {void}
13
  */
14
  function initializeGmap() {
@@ -39,7 +39,7 @@ function initializeGmap() {
39
  * If there is an latlng value we add a marker to the map.
40
  * This can only happen on the edit store page.
41
  *
42
- * @since 1.0
43
  * @returns {void}
44
  */
45
  function checkEditStoreMarker() {
@@ -56,7 +56,7 @@ function checkEditStoreMarker() {
56
  }
57
  }
58
 
59
- /* If we have a city/country input field enable the autocomplete */
60
  if ( $( "#wpsl-zoom-name" ).length ) {
61
  activateAutoComplete();
62
  }
@@ -64,7 +64,7 @@ if ( $( "#wpsl-zoom-name" ).length ) {
64
  /**
65
  * Activate the autocomplete function for the city/country field.
66
  *
67
- * @since 1.0
68
  * @returns {void}
69
  */
70
  function activateAutoComplete() {
@@ -84,7 +84,7 @@ function activateAutoComplete() {
84
  /**
85
  * Add a new marker to the map based on the provided location (latlng).
86
  *
87
- * @since 1.0
88
  * @param {object} location The latlng value
89
  * @returns {void}
90
  */
@@ -97,13 +97,13 @@ function addMarker( location ) {
97
 
98
  markersArray.push( marker );
99
 
100
- /* If the marker is dragged on the map, make sure the latlng values are updated. */
101
  google.maps.event.addListener( marker, "dragend", function() {
102
  setLatlng( marker.getPosition(), "store" );
103
  });
104
  }
105
 
106
- /* Lookup the provided location with the Google Maps API */
107
  $( "#wpsl-lookup-location" ).on( "click", function( e ) {
108
  e.preventDefault();
109
  codeAddress();
@@ -112,7 +112,7 @@ $( "#wpsl-lookup-location" ).on( "click", function( e ) {
112
  /**
113
  * Update the hidden input field with the current latlng values.
114
  *
115
- * @since 1.0
116
  * @param {object} latLng The latLng values
117
  * @param {string} target The location where we need to set the latLng
118
  * @returns {void}
@@ -133,97 +133,111 @@ function setLatlng( latLng, target ) {
133
  /**
134
  * Geocode the user input.
135
  *
136
- * @since 1.0
137
  * @returns {void}
138
  */
139
  function codeAddress() {
140
- var filteredResponse, fullAddress,
141
- address = $( "#wpsl-address" ).val(),
142
- city = $( "#wpsl-city" ).val(),
143
- zip = $( "#wpsl-zip" ).val(),
144
- country = $( "#wpsl-country" ).val();
145
-
146
- if ( zip ) {
147
- fullAddress = address + ',' + city + ',' + zip + ',' + country;
148
- } else {
149
- fullAddress = address + ',' + city + ',' + country;
150
- }
151
-
152
- $( "#wpsl-missing-geodata" ).remove();
153
 
154
- /* Check we have all the requird data before attempting to geocode the address */
155
- if ( !validatePreviewFields( address, city, country ) ) {
156
- geocoder.geocode( { 'address': fullAddress }, function( response, status ) {
157
- if ( status === google.maps.GeocoderStatus.OK ) {
158
-
159
- /* If we have a previous marker on the map remove it */
160
- if ( typeof( markersArray[0] ) !== "undefined" ) {
161
- if ( markersArray[0].draggable ) {
162
- markersArray[0].setMap( null );
163
- markersArray.splice(0, 1);
164
- }
 
165
  }
166
-
167
- /* Center and zoom to the searched location */
168
- map.setCenter( response[0].geometry.location );
169
- map.setZoom( 16 );
170
- addMarker( response[0].geometry.location );
171
- setLatlng( response[0].geometry.location, "store" );
172
-
173
- filteredResponse = filterApiResponse( response );
174
- $( "#wpsl-country" ).val( filteredResponse.country.long_name );
175
- $( "#wpsl-country_iso" ).val( filteredResponse.country.short_name );
176
- } else {
177
- alert( wpslL10n.geocodeFail + ": " + status );
178
  }
179
- });
180
 
181
- return false;
182
- } else {
183
- activateStoreTab( "first" );
184
-
185
- alert( wpslL10n.missingGeoData );
186
-
187
- return true;
188
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
189
  }
190
 
191
  /**
192
- * Check that all required fields for the preview to work are there.
193
  *
194
- * @since 1.0
195
- * @param {string} address The store address
196
- * @param {string} city The store city
197
- * @param {string} country The store country
198
- * @returns {boolean} error Whether a field validated or not
199
  */
200
- function validatePreviewFields( address, city, country ) {
201
- var error = false;
 
 
202
 
203
  $( ".wpsl-store-meta input" ).removeClass( "wpsl-error" );
204
-
205
- if ( !address ) {
206
- $( "#wpsl-address" ).addClass( "wpsl-error" );
207
- error = true;
208
- }
209
 
210
- if ( !city ) {
211
- $( "#wpsl-city" ).addClass( "wpsl-error" );
212
- error = true;
 
 
 
 
 
 
 
213
  }
214
-
215
- if ( !country ) {
216
- $( "#wpsl-country" ).addClass( "wpsl-error" );
217
- error = true;
218
- }
219
-
220
  return error;
221
  }
222
 
223
  /**
224
- * Filter out the country name from the API response.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
225
  *
226
- * @since 1.0
227
  * @param {object} response The response of the geocode API
228
  * @returns {object} collectedData The short and long country name
229
  */
@@ -233,13 +247,13 @@ function filterApiResponse( response ) {
233
  collectedData = {},
234
  addressLength = response[0].address_components.length;
235
 
236
- /* Loop over the API response */
237
  for ( i = 0; i < addressLength; i++ ){
238
  responseType = response[0].address_components[i].types;
239
 
240
- /* filter out the country name */
241
  if ( /^country,political$/.test( responseType ) ) {
242
- country = {
243
  long_name: response[0].address_components[i].long_name,
244
  short_name: response[0].address_components[i].short_name
245
  };
@@ -256,7 +270,7 @@ function filterApiResponse( response ) {
256
  /**
257
  * Round the coordinate to 6 digits after the comma.
258
  *
259
- * @since 1.0
260
  * @param {string} coordinate The coordinate
261
  * @returns {number} roundedCoord The rounded coordinate
262
  */
@@ -265,13 +279,13 @@ function roundCoordinate( coordinate ) {
265
 
266
  roundedCoord = Math.round( coordinate * Math.pow( 10, decimals ) ) / Math.pow( 10, decimals );
267
 
268
- return roundedCoord;
269
  }
270
 
271
  /**
272
  * Strip the '(' and ')' from the captured coordinates and split them.
273
  *
274
- * @since 1.0
275
  * @param {string} coordinates The coordinates
276
  * @returns {object} latLng The latlng coordinates
277
  */
@@ -298,11 +312,11 @@ $( ".wpsl-marker-list li" ).click( function() {
298
  $( this ).addClass( "wpsl-active-marker" );
299
  });
300
 
301
- /* Handle a click on the dismiss button. So that the warning msg that no starting point is set is disabled */
302
  $( ".wpsl-dismiss" ).click( function() {
303
- var $link = $( this ),
304
- data = {
305
- action: "disable_location_warning",
306
  _ajax_nonce: $link.attr( "data-nonce" )
307
  };
308
 
@@ -313,7 +327,7 @@ $( ".wpsl-dismiss" ).click( function() {
313
  return false;
314
  });
315
 
316
- /* Detect changes to the 'More info' and 'Load Locations' option on the settings page */
317
  $( "#wpsl-more-info" ).on( "change", function() {
318
  $( "#wpsl-more-info-options" ).toggle();
319
  });
@@ -326,7 +340,8 @@ $( "#wpsl-editor-hide-hours" ).on( "change", function() {
326
  $( ".wpsl-hours" ).toggle();
327
  });
328
 
329
- /* Detect changes to the store template dropdown. If the template is selected to
 
330
  * show the store list under the map then we show the option to hide the scrollbar.
331
  */
332
  $( "#wpsl-store-template" ).on( "change", function() {
@@ -339,46 +354,56 @@ $( "#wpsl-store-template" ).on( "change", function() {
339
  }
340
  });
341
 
342
- /* Make sure the correct hour input format is visible */
 
 
 
 
 
 
 
 
 
 
343
  $( "#wpsl-editor-hour-input" ).on( "change", function() {
344
  $( ".wpsl-" + $( this ).val() + "-hours" ).show().siblings( "div" ).hide();
345
  $( ".wpsl-hour-notice" ).toggle();
346
  });
347
 
348
- /* If the marker cluster checkbox changes, show/hide the options */
349
  $( "#wpsl-marker-clusters" ).on( "change", function() {
350
  $( ".wpsl-cluster-options" ).toggle();
351
  });
352
 
353
- /* If the permalink checkbox changes, show/hide the options */
354
  $( "#wpsl-permalinks-active" ).on( "change", function() {
355
  $( ".wpsl-permalink-option" ).toggle();
356
  });
357
 
358
- /* Set the correct tab to active and show the correct content block */
359
- $( "#wpsl-meta-nav li" ).on( "click", function( e ) {
360
  var activeClass = $( this ).attr( "class" );
361
  activeClass = activeClass.split( "-tab" );
362
 
363
  e.stopPropagation();
364
 
365
- /* Set the correct tab and metabox to active */
366
  $( this ).addClass( "wpsl-active" ).siblings().removeClass( "wpsl-active" );
367
  $( ".wpsl-store-meta ." + activeClass[0] + "" ).show().addClass( "wpsl-active" ).siblings( "div" ).hide().removeClass( "wpsl-active" );
368
  });
369
 
370
- /* Make sure the required store fields contain data */
371
  if ( $( "#wpsl-store-details" ).length ) {
372
  $( "#publish" ).click( function() {
373
  var firstErrorElem, currentTabClass, elemClass,
374
  errorMsg = '<div id="message" class="error"><p>' + wpslL10n.requiredFields + '</p></div>',
375
  missingData = false;
376
 
377
- /* Remove error messages and css classes from previous submissions */
378
  $( "#wpbody-content .wrap #message" ).remove();
379
  $( ".wpsl-required" ).removeClass( "wpsl-error" );
380
 
381
- /* Loop over the required fields and check for a value */
382
  $( ".wpsl-required" ).each( function() {
383
  if ( $( this ).val() == "" ) {
384
  $( this ).addClass( "wpsl-error" );
@@ -391,8 +416,8 @@ if ( $( "#wpsl-store-details" ).length ) {
391
  }
392
  });
393
 
394
- /* If one of the required fields are empty, then show the error msg and make sure the correct tab is visible. */
395
- if ( missingData ) {
396
  $( "#wpbody-content .wrap > h2" ).after( errorMsg );
397
 
398
  if ( typeof firstErrorElem.val !== "undefined" ) {
@@ -408,14 +433,15 @@ if ( $( "#wpsl-store-details" ).length ) {
408
  currentTabClass = $.trim( currentTabClass.replace( /wpsl-tab|wpsl-active/g, "" ) );
409
  }
410
 
411
- /* If we don't have a class of the tab that should be set to visible, we just show the first one */
412
  if ( !currentTabClass ) {
413
  activateStoreTab( 'first' );
414
  } else {
415
  activateStoreTab( currentTabClass );
416
  }
417
 
418
- /* If not all required fields contains data, and the user has
 
419
  * clicked the submit button. Then an extra css class is added to the
420
  * button that will disabled it. This only happens in WP 3.8 or earlier.
421
  *
@@ -435,7 +461,7 @@ if ( $( "#wpsl-store-details" ).length ) {
435
  /**
436
  * Set the correct tab to visible, and hide all other metaboxes
437
  *
438
- * @since 2.0
439
  * @param {string} $target The name of the tab to show
440
  * @returns {void}
441
  */
@@ -458,7 +484,7 @@ function activateStoreTab( $target ) {
458
  * We need this to determine which tab we need to set active,
459
  * which will be the tab were the first error occured.
460
  *
461
- * @since 2.0
462
  * @param {object} elem The element the error occured on
463
  * @returns {object} firstErrorElem The id/class set on the first elem that an error occured on and the attr value
464
  */
@@ -467,15 +493,15 @@ function getFirstErrorElemAttr( elem ) {
467
 
468
  firstErrorElem = { "type": "id", "val" : elem.attr( "id" ) };
469
 
470
- /* If no ID value exists, then check if we can get the class name */
471
  if ( typeof firstErrorElem.val === "undefined" ) {
472
  firstErrorElem = { "type": "class", "val" : elem.attr( "class" ) };
473
- }
474
 
475
  return firstErrorElem;
476
  }
477
 
478
- /* If we have a store hours dropdown, init the event handler */
479
  if ( $( "#wpsl-store-hours" ).length ) {
480
  initHourEvents();
481
  }
@@ -484,17 +510,17 @@ if ( $( "#wpsl-store-hours" ).length ) {
484
  * Assign an event handler to the button that enables
485
  * users to remove an opening hour period.
486
  *
487
- * @since 2.0
488
  * @returns {void}
489
  */
490
  function initHourEvents() {
491
  $( "#wpsl-store-hours .wpsl-icon-cancel-circled" ).off();
492
  $( "#wpsl-store-hours .wpsl-icon-cancel-circled" ).on( "click", function() {
493
- removePeriod( $( this ) );
494
  });
495
  }
496
 
497
- /* Add new openings period to the openings hours table */
498
  $( ".wpsl-add-period" ).on( "click", function( e ) {
499
  var newPeriod,
500
  hours = {},
@@ -518,12 +544,12 @@ $( ".wpsl-add-period" ).on( "click", function( e ) {
518
  initHourEvents();
519
 
520
  if ( $( "#wpsl-editor-hour-format" ).val() == 24 ) {
521
- hours = {
522
  "open": "09:00",
523
  "close": "17:00"
524
  };
525
  } else {
526
- hours = {
527
  "open": "9:00 AM",
528
  "close": "5:00 PM"
529
  };
@@ -538,7 +564,7 @@ $( ".wpsl-add-period" ).on( "click", function( e ) {
538
  /**
539
  * Remove an openings period
540
  *
541
- * @since 2.0
542
  * @param {object} elem The clicked element
543
  * @return {void}
544
  */
@@ -547,15 +573,15 @@ function removePeriod( elem ) {
547
  $tr = elem.parents( "tr" ),
548
  day = $tr.find( ".wpsl-opening-hours" ).attr( "data-day" );
549
 
550
- /* If there was 1 opening hour left then we add the 'Closed' text */
551
  if ( periodsLeft == 1 ) {
552
  $tr.find( ".wpsl-opening-hours" ).html( "<p class='wpsl-store-closed'>" + wpslL10n.closedDate + "<input type='hidden' name='wpsl[hours][" + day + "_open]' value='' /></p>" );
553
  }
554
 
555
- /* Remove the selected openings period */
556
  elem.parent().closest( ".wpsl-current-period" ).remove();
557
 
558
- /* If the first element has the multiple class, then we need to remove it */
559
  if ( $tr.find( ".wpsl-opening-hours div:first-child" ).hasClass( "wpsl-multiple-periods" ) ) {
560
  $tr.find( ".wpsl-opening-hours div:first-child" ).removeClass( "wpsl-multiple-periods" );
561
  }
@@ -564,7 +590,7 @@ function removePeriod( elem ) {
564
  /**
565
  * Count the current opening periods in a day block
566
  *
567
- * @since 2.0
568
  * @param {object} elem The clicked element
569
  * @return {string} currentPeriods The ammount of period divs found
570
  */
@@ -577,7 +603,7 @@ function currentPeriodCount( elem ) {
577
  /**
578
  * Create an option list with the correct opening hour format and interval
579
  *
580
- * @since 2.0
581
  * @param {string} returnList Whether to return the option list or call the setSelectedOpeningHours function
582
  * @return {mixed} optionList The html for the option list of or void
583
  */
@@ -596,7 +622,7 @@ function createHourOptionList( returnList ) {
596
  };
597
 
598
  if ( $( "#wpsl-editor-hour-format" ).length ) {
599
- hrFormat = $( "#wpsl-editor-hour-format" ).val(); //todo andere naam - editor eruit halen
600
  } else {
601
  hrFormat = wpslSettings.hourFormat;
602
  }
@@ -616,10 +642,12 @@ function createHourOptionList( returnList ) {
616
  for ( var i = 0; i < openingHours.length; i++ ) {
617
  hour = openingHours[i];
618
 
619
- /* If the 12hr format is selected, then check if we need to show AM or PM.
620
- If the 24hr format is selected and the hour is a single digit
621
- then we add a 0 to the start so 5:00 becomes 05:00.
622
- */
 
 
623
  if ( hrFormat == 12 ) {
624
  if ( hour >= 12 ) {
625
  pm = true;
@@ -630,13 +658,13 @@ function createHourOptionList( returnList ) {
630
  hour = "0" + hour;
631
  }
632
 
633
- /* Collect the new opening hour format and interval */
634
  for ( var j = 0; j < openingHourInterval.length; j++ ) {
635
  openingTimes.push( hour + ":" + openingHourInterval[j] + " " + pmOrAm );
636
  }
637
  }
638
 
639
- /* Create the <option> list */
640
  for ( var i = 0; i < openingTimes.length; i++ ) {
641
  optionList = optionList + '<option value="' + $.trim( openingTimes[i] ) + '">' + $.trim( openingTimes[i] ) + '</option>';
642
  }
@@ -651,7 +679,7 @@ function createHourOptionList( returnList ) {
651
  /**
652
  * Set the correct selected opening hour in the dropdown
653
  *
654
- * @since 2.0
655
  * @param {string} optionList The html for the option list
656
  * @param {string} hrFormat The html for the option list
657
  * @return {void}
@@ -660,7 +688,10 @@ function setSelectedOpeningHours( optionList, hrFormat ) {
660
  var splitHour, hourType, periodBlock,
661
  hours = {};
662
 
663
- /* Loop over each open/close block and make sure the selected value is still set as selected after changing the hr format */
 
 
 
664
  $( ".wpsl-current-period" ).each( function() {
665
  periodBlock = $( this ),
666
  hours = {
@@ -668,20 +699,20 @@ function setSelectedOpeningHours( optionList, hrFormat ) {
668
  "close": $( this ).find( ".wpsl-close-hour" ).val()
669
  };
670
 
671
- /* Set the new hour format for both dropdowns */
672
  $( this ).find( "select" ).html( optionList ).promise().done( function() {
673
 
674
- /* Select the correct start/end hours as selected */
675
  for ( var key in hours ) {
676
  if ( hours.hasOwnProperty( key ) ) {
677
 
678
- /* Breakup the hour, so we can check the part before and after the : separately */
679
  splitHour = hours[key].split( ":" );
680
 
681
  if ( hrFormat == 12 ) {
682
  hourType = "";
683
 
684
- /* Change the hours to a 12hr format and add the correct AM or PM */
685
  if ( hours[key].charAt( 0 ) == 0 ) {
686
  hours[key] = hours[key].substr( 1 );
687
  hourType = " AM";
@@ -696,14 +727,14 @@ function setSelectedOpeningHours( optionList, hrFormat ) {
696
  hourType = " PM";
697
  }
698
 
699
- /* Add either AM or PM behind the time. */
700
  if ( ( splitHour[1].indexOf( "PM" ) == -1 ) && ( splitHour[1].indexOf( "AM" ) == -1 ) ) {
701
  hours[key] = hours[key] + hourType;
702
  }
703
 
704
  } else if ( hrFormat == 24 ) {
705
 
706
- /* Change the hours to a 24hr format and remove the AM or PM */
707
  if ( splitHour[1].indexOf( "PM" ) != -1 ) {
708
  if ( splitHour[0] == 12 ) {
709
  hours[key] = "12:" + splitHour[1].replace( " PM", "" );
@@ -721,7 +752,7 @@ function setSelectedOpeningHours( optionList, hrFormat ) {
721
  }
722
  }
723
 
724
- /* Set the correct value as the selected one */
725
  periodBlock.find( ".wpsl-" + key + "-hour option[value='" + $.trim( hours[key] ) + "']" ).attr( "selected", "selected" );
726
  }
727
  }
@@ -730,12 +761,12 @@ function setSelectedOpeningHours( optionList, hrFormat ) {
730
  });
731
  }
732
 
733
- /* Update the opening hours format if one of the dropdown values change */
734
  $( "#wpsl-editor-hour-format, #wpsl-editor-hour-interval" ).on( "change", function() {
735
  createHourOptionList();
736
  });
737
 
738
- /* Show the tooltips */
739
  $( ".wpsl-info" ).on( "mouseover", function() {
740
  $( this ).find( ".wpsl-info-text" ).show();
741
  });
@@ -744,16 +775,17 @@ $( ".wpsl-info" ).on( "mouseout", function() {
744
  $( this ).find( ".wpsl-info-text" ).hide();
745
  });
746
 
747
- /* If the start location is empty, then we color the info icon red instead of black */
748
  if ( $( "#wpsl-latlng" ).length && !$( "#wpsl-latlng" ).val() ) {
749
  $( "#wpsl-latlng" ).siblings( "label" ).find( ".wpsl-info" ).addClass( "wpsl-required-setting" );
750
  }
751
 
752
- /* Try to apply the custom style data to the map.
 
753
  *
754
  * If the style data is invalid json we show an error.
755
  *
756
- * @since 2.0
757
  * @return {void}
758
  */
759
  function tryCustomMapStyle() {
@@ -763,7 +795,8 @@ function tryCustomMapStyle() {
763
  $( ".wpsl-style-preview-error" ).remove();
764
 
765
  if ( mapStyle ) {
766
- /* Make sure the data is valid json */
 
767
  validStyle = tryParseJSON( mapStyle );
768
 
769
  if ( !validStyle ) {
@@ -774,37 +807,42 @@ function tryCustomMapStyle() {
774
  map.setOptions({ styles: validStyle });
775
  }
776
 
777
- /* Handle the map style changes on the settings page */
778
  if ( $( "#wpsl-map-style" ).val() ) {
779
  tryCustomMapStyle();
780
  }
781
 
782
- /* Handle clicks on the map style preview button */
783
  $( "#wpsl-style-preview" ).on( "click", function() {
784
  tryCustomMapStyle();
785
 
786
  return false;
787
  });
788
 
789
- /* Make sure the json is valid.
 
790
  *
791
- * @since 2.0
792
- * @see http://stackoverflow.com/a/20392392/1065294
793
- * @return {object|boolean} The json string or false if it's invalid json.
 
794
  */
795
  function tryParseJSON( jsonString ) {
 
796
  try {
797
- var o = JSON.parse(jsonString);
798
-
799
- // Handle non-exception-throwing cases:
800
- // Neither JSON.parse(false) or JSON.parse(1234) throw errors, hence the type-checking,
801
- // but... JSON.parse(null) returns 'null', and typeof null === "object",
802
- // so we must check for that, too.
803
- if (o && typeof o === "object" && o !== null) {
 
 
804
  return o;
805
  }
806
  }
807
- catch (e) { }
808
 
809
  return false;
810
  }
8
  /**
9
  * Initialize the map with the correct settings.
10
  *
11
+ * @since 1.0.0
12
  * @returns {void}
13
  */
14
  function initializeGmap() {
39
  * If there is an latlng value we add a marker to the map.
40
  * This can only happen on the edit store page.
41
  *
42
+ * @since 1.0.0
43
  * @returns {void}
44
  */
45
  function checkEditStoreMarker() {
56
  }
57
  }
58
 
59
+ // If we have a city/country input field enable the autocomplete.
60
  if ( $( "#wpsl-zoom-name" ).length ) {
61
  activateAutoComplete();
62
  }
64
  /**
65
  * Activate the autocomplete function for the city/country field.
66
  *
67
+ * @since 1.0.0
68
  * @returns {void}
69
  */
70
  function activateAutoComplete() {
84
  /**
85
  * Add a new marker to the map based on the provided location (latlng).
86
  *
87
+ * @since 1.0.0
88
  * @param {object} location The latlng value
89
  * @returns {void}
90
  */
97
 
98
  markersArray.push( marker );
99
 
100
+ // If the marker is dragged on the map, make sure the latlng values are updated.
101
  google.maps.event.addListener( marker, "dragend", function() {
102
  setLatlng( marker.getPosition(), "store" );
103
  });
104
  }
105
 
106
+ // Lookup the provided location with the Google Maps API.
107
  $( "#wpsl-lookup-location" ).on( "click", function( e ) {
108
  e.preventDefault();
109
  codeAddress();
112
  /**
113
  * Update the hidden input field with the current latlng values.
114
  *
115
+ * @since 1.0.0
116
  * @param {object} latLng The latLng values
117
  * @param {string} target The location where we need to set the latLng
118
  * @returns {void}
133
  /**
134
  * Geocode the user input.
135
  *
136
+ * @since 1.0.0
137
  * @returns {void}
138
  */
139
  function codeAddress() {
140
+ var filteredResponse, geocodeAddress;
 
 
 
 
 
 
 
 
 
 
 
 
141
 
142
+ // Check if we have all the required data before attempting to geocode the address.
143
+ if ( !validatePreviewFields() ) {
144
+ geocodeAddress = createGeocodeAddress();
145
+
146
+ geocoder.geocode( { 'address': geocodeAddress }, function( response, status ) {
147
+ if ( status === google.maps.GeocoderStatus.OK ) {
148
+
149
+ // If we have a previous marker on the map remove it.
150
+ if ( typeof( markersArray[0] ) !== "undefined" ) {
151
+ if ( markersArray[0].draggable ) {
152
+ markersArray[0].setMap( null );
153
+ markersArray.splice(0, 1);
154
  }
 
 
 
 
 
 
 
 
 
 
 
 
155
  }
 
156
 
157
+ // Center and zoom to the searched location.
158
+ map.setCenter( response[0].geometry.location );
159
+ map.setZoom( 16 );
160
+ addMarker( response[0].geometry.location );
161
+ setLatlng( response[0].geometry.location, "store" );
162
+
163
+ filteredResponse = filterApiResponse( response );
164
+ $( "#wpsl-country" ).val( filteredResponse.country.long_name );
165
+ $( "#wpsl-country_iso" ).val( filteredResponse.country.short_name );
166
+ } else {
167
+ alert( wpslL10n.geocodeFail + ": " + status );
168
+ }
169
+ });
170
+
171
+ return false;
172
+ } else {
173
+ activateStoreTab( "first" );
174
+
175
+ alert( wpslL10n.missingGeoData );
176
+
177
+ return true;
178
+ }
179
  }
180
 
181
  /**
182
+ * Check that all required fields for the map preview are there.
183
  *
184
+ * @since 1.0.0
185
+ * @returns {boolean} error Whether all the required fields contained data.
 
 
 
186
  */
187
+ function validatePreviewFields() {
188
+ var i, fieldData,
189
+ requiredFields = [ "address", "city", "country" ],
190
+ error = false;
191
 
192
  $( ".wpsl-store-meta input" ).removeClass( "wpsl-error" );
 
 
 
 
 
193
 
194
+ // Check if all the required fields contain data.
195
+ for ( i = 0; i < requiredFields.length; i++ ) {
196
+ fieldData = $.trim( $( "#wpsl-" + requiredFields[i] ).val() );
197
+
198
+ if ( !fieldData ) {
199
+ $( "#wpsl-" + requiredFields[i] ).addClass( "wpsl-error" );
200
+ error = true;
201
+ }
202
+
203
+ fieldData = '';
204
  }
205
+
 
 
 
 
 
206
  return error;
207
  }
208
 
209
  /**
210
+ * Build the address that's send to the Geocode API.
211
+ *
212
+ * @since 2.1.0
213
+ * @returns {string} geocodeAddress The address separated by , that's send to the Geocoder.
214
+ */
215
+ function createGeocodeAddress() {
216
+ var i, part,
217
+ address = [],
218
+ addressParts = [ "address", "city", "state", "zip", "country" ];
219
+
220
+ for ( i = 0; i < addressParts.length; i++ ) {
221
+ part = $.trim( $( "#wpsl-" + addressParts[i] ).val() );
222
+
223
+ /*
224
+ * At this point we already know the address, city and country fields contain data.
225
+ * But no need to include the zip and state if they are empty.
226
+ */
227
+ if ( part ) {
228
+ address.push( part );
229
+ }
230
+
231
+ part = "";
232
+ }
233
+
234
+ return address.join();
235
+ }
236
+
237
+ /**
238
+ * Filter out the country name from the API response.
239
  *
240
+ * @since 1.0.0
241
  * @param {object} response The response of the geocode API
242
  * @returns {object} collectedData The short and long country name
243
  */
247
  collectedData = {},
248
  addressLength = response[0].address_components.length;
249
 
250
+ // Loop over the API response.
251
  for ( i = 0; i < addressLength; i++ ){
252
  responseType = response[0].address_components[i].types;
253
 
254
+ // Filter out the country name.
255
  if ( /^country,political$/.test( responseType ) ) {
256
+ country = {
257
  long_name: response[0].address_components[i].long_name,
258
  short_name: response[0].address_components[i].short_name
259
  };
270
  /**
271
  * Round the coordinate to 6 digits after the comma.
272
  *
273
+ * @since 1.0.0
274
  * @param {string} coordinate The coordinate
275
  * @returns {number} roundedCoord The rounded coordinate
276
  */
279
 
280
  roundedCoord = Math.round( coordinate * Math.pow( 10, decimals ) ) / Math.pow( 10, decimals );
281
 
282
+ return roundedCoord;
283
  }
284
 
285
  /**
286
  * Strip the '(' and ')' from the captured coordinates and split them.
287
  *
288
+ * @since 1.0.0
289
  * @param {string} coordinates The coordinates
290
  * @returns {object} latLng The latlng coordinates
291
  */
312
  $( this ).addClass( "wpsl-active-marker" );
313
  });
314
 
315
+ // Handle a click on the dismiss button. So that the warning msg that no starting point is set is disabled.
316
  $( ".wpsl-dismiss" ).click( function() {
317
+ var $link = $( this ),
318
+ data = {
319
+ action: "disable_location_warning",
320
  _ajax_nonce: $link.attr( "data-nonce" )
321
  };
322
 
327
  return false;
328
  });
329
 
330
+ // Detect changes to the 'More info' and 'Load Locations' option on the settings page.
331
  $( "#wpsl-more-info" ).on( "change", function() {
332
  $( "#wpsl-more-info-options" ).toggle();
333
  });
340
  $( ".wpsl-hours" ).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() {
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
+ // If the marker cluster checkbox changes, show/hide the options.
374
  $( "#wpsl-marker-clusters" ).on( "change", function() {
375
  $( ".wpsl-cluster-options" ).toggle();
376
  });
377
 
378
+ // If the permalink checkbox changes, show/hide the options.
379
  $( "#wpsl-permalinks-active" ).on( "change", function() {
380
  $( ".wpsl-permalink-option" ).toggle();
381
  });
382
 
383
+ // Set the correct tab to active and show the correct content block.
384
+ $( "#wpsl-meta-nav li" ).on( "click", function( e ) {
385
  var activeClass = $( this ).attr( "class" );
386
  activeClass = activeClass.split( "-tab" );
387
 
388
  e.stopPropagation();
389
 
390
+ // Set the correct tab and metabox to active.
391
  $( this ).addClass( "wpsl-active" ).siblings().removeClass( "wpsl-active" );
392
  $( ".wpsl-store-meta ." + activeClass[0] + "" ).show().addClass( "wpsl-active" ).siblings( "div" ).hide().removeClass( "wpsl-active" );
393
  });
394
 
395
+ // Make sure the required store fields contain data.
396
  if ( $( "#wpsl-store-details" ).length ) {
397
  $( "#publish" ).click( function() {
398
  var firstErrorElem, currentTabClass, elemClass,
399
  errorMsg = '<div id="message" class="error"><p>' + wpslL10n.requiredFields + '</p></div>',
400
  missingData = false;
401
 
402
+ // Remove error messages and css classes from previous submissions.
403
  $( "#wpbody-content .wrap #message" ).remove();
404
  $( ".wpsl-required" ).removeClass( "wpsl-error" );
405
 
406
+ // Loop over the required fields and check for a value.
407
  $( ".wpsl-required" ).each( function() {
408
  if ( $( this ).val() == "" ) {
409
  $( this ).addClass( "wpsl-error" );
416
  }
417
  });
418
 
419
+ // If one of the required fields are empty, then show the error msg and make sure the correct tab is visible.
420
+ if ( missingData ) {
421
  $( "#wpbody-content .wrap > h2" ).after( errorMsg );
422
 
423
  if ( typeof firstErrorElem.val !== "undefined" ) {
433
  currentTabClass = $.trim( currentTabClass.replace( /wpsl-tab|wpsl-active/g, "" ) );
434
  }
435
 
436
+ // If we don't have a class of the tab that should be set to visible, we just show the first one.
437
  if ( !currentTabClass ) {
438
  activateStoreTab( 'first' );
439
  } else {
440
  activateStoreTab( currentTabClass );
441
  }
442
 
443
+ /*
444
+ * If not all required fields contains data, and the user has
445
  * clicked the submit button. Then an extra css class is added to the
446
  * button that will disabled it. This only happens in WP 3.8 or earlier.
447
  *
461
  /**
462
  * Set the correct tab to visible, and hide all other metaboxes
463
  *
464
+ * @since 2.0.0
465
  * @param {string} $target The name of the tab to show
466
  * @returns {void}
467
  */
484
  * We need this to determine which tab we need to set active,
485
  * which will be the tab were the first error occured.
486
  *
487
+ * @since 2.0.0
488
  * @param {object} elem The element the error occured on
489
  * @returns {object} firstErrorElem The id/class set on the first elem that an error occured on and the attr value
490
  */
493
 
494
  firstErrorElem = { "type": "id", "val" : elem.attr( "id" ) };
495
 
496
+ // If no ID value exists, then check if we can get the class name.
497
  if ( typeof firstErrorElem.val === "undefined" ) {
498
  firstErrorElem = { "type": "class", "val" : elem.attr( "class" ) };
499
+ }
500
 
501
  return firstErrorElem;
502
  }
503
 
504
+ // If we have a store hours dropdown, init the event handler.
505
  if ( $( "#wpsl-store-hours" ).length ) {
506
  initHourEvents();
507
  }
510
  * Assign an event handler to the button that enables
511
  * users to remove an opening hour period.
512
  *
513
+ * @since 2.0.0
514
  * @returns {void}
515
  */
516
  function initHourEvents() {
517
  $( "#wpsl-store-hours .wpsl-icon-cancel-circled" ).off();
518
  $( "#wpsl-store-hours .wpsl-icon-cancel-circled" ).on( "click", function() {
519
+ removePeriod( $( this ) );
520
  });
521
  }
522
 
523
+ // Add new openings period to the openings hours table.
524
  $( ".wpsl-add-period" ).on( "click", function( e ) {
525
  var newPeriod,
526
  hours = {},
544
  initHourEvents();
545
 
546
  if ( $( "#wpsl-editor-hour-format" ).val() == 24 ) {
547
+ hours = {
548
  "open": "09:00",
549
  "close": "17:00"
550
  };
551
  } else {
552
+ hours = {
553
  "open": "9:00 AM",
554
  "close": "5:00 PM"
555
  };
564
  /**
565
  * Remove an openings period
566
  *
567
+ * @since 2.0.0
568
  * @param {object} elem The clicked element
569
  * @return {void}
570
  */
573
  $tr = elem.parents( "tr" ),
574
  day = $tr.find( ".wpsl-opening-hours" ).attr( "data-day" );
575
 
576
+ // If there was 1 opening hour left then we add the 'Closed' text.
577
  if ( periodsLeft == 1 ) {
578
  $tr.find( ".wpsl-opening-hours" ).html( "<p class='wpsl-store-closed'>" + wpslL10n.closedDate + "<input type='hidden' name='wpsl[hours][" + day + "_open]' value='' /></p>" );
579
  }
580
 
581
+ // Remove the selected openings period.
582
  elem.parent().closest( ".wpsl-current-period" ).remove();
583
 
584
+ // If the first element has the multiple class, then we need to remove it.
585
  if ( $tr.find( ".wpsl-opening-hours div:first-child" ).hasClass( "wpsl-multiple-periods" ) ) {
586
  $tr.find( ".wpsl-opening-hours div:first-child" ).removeClass( "wpsl-multiple-periods" );
587
  }
590
  /**
591
  * Count the current opening periods in a day block
592
  *
593
+ * @since 2.0.0
594
  * @param {object} elem The clicked element
595
  * @return {string} currentPeriods The ammount of period divs found
596
  */
603
  /**
604
  * Create an option list with the correct opening hour format and interval
605
  *
606
+ * @since 2.0.0
607
  * @param {string} returnList Whether to return the option list or call the setSelectedOpeningHours function
608
  * @return {mixed} optionList The html for the option list of or void
609
  */
622
  };
623
 
624
  if ( $( "#wpsl-editor-hour-format" ).length ) {
625
+ hrFormat = $( "#wpsl-editor-hour-format" ).val();
626
  } else {
627
  hrFormat = wpslSettings.hourFormat;
628
  }
642
  for ( var i = 0; i < openingHours.length; i++ ) {
643
  hour = openingHours[i];
644
 
645
+ /*
646
+ * If the 12hr format is selected, then check if we need to show AM or PM.
647
+ *
648
+ * If the 24hr format is selected and the hour is a single digit
649
+ * then we add a 0 to the start so 5:00 becomes 05:00.
650
+ */
651
  if ( hrFormat == 12 ) {
652
  if ( hour >= 12 ) {
653
  pm = true;
658
  hour = "0" + hour;
659
  }
660
 
661
+ // Collect the new opening hour format and interval.
662
  for ( var j = 0; j < openingHourInterval.length; j++ ) {
663
  openingTimes.push( hour + ":" + openingHourInterval[j] + " " + pmOrAm );
664
  }
665
  }
666
 
667
+ // Create the <option> list.
668
  for ( var i = 0; i < openingTimes.length; i++ ) {
669
  optionList = optionList + '<option value="' + $.trim( openingTimes[i] ) + '">' + $.trim( openingTimes[i] ) + '</option>';
670
  }
679
  /**
680
  * Set the correct selected opening hour in the dropdown
681
  *
682
+ * @since 2.0.0
683
  * @param {string} optionList The html for the option list
684
  * @param {string} hrFormat The html for the option list
685
  * @return {void}
688
  var splitHour, hourType, periodBlock,
689
  hours = {};
690
 
691
+ /*
692
+ * Loop over each open/close block and make sure the selected
693
+ * value is still set as selected after changing the hr format.
694
+ */
695
  $( ".wpsl-current-period" ).each( function() {
696
  periodBlock = $( this ),
697
  hours = {
699
  "close": $( this ).find( ".wpsl-close-hour" ).val()
700
  };
701
 
702
+ // Set the new hour format for both dropdowns.
703
  $( this ).find( "select" ).html( optionList ).promise().done( function() {
704
 
705
+ // Select the correct start/end hours as selected.
706
  for ( var key in hours ) {
707
  if ( hours.hasOwnProperty( key ) ) {
708
 
709
+ // Breakup the hour, so we can check the part before and after the : separately.
710
  splitHour = hours[key].split( ":" );
711
 
712
  if ( hrFormat == 12 ) {
713
  hourType = "";
714
 
715
+ // Change the hours to a 12hr format and add the correct AM or PM.
716
  if ( hours[key].charAt( 0 ) == 0 ) {
717
  hours[key] = hours[key].substr( 1 );
718
  hourType = " AM";
727
  hourType = " PM";
728
  }
729
 
730
+ // Add either AM or PM behind the time.
731
  if ( ( splitHour[1].indexOf( "PM" ) == -1 ) && ( splitHour[1].indexOf( "AM" ) == -1 ) ) {
732
  hours[key] = hours[key] + hourType;
733
  }
734
 
735
  } else if ( hrFormat == 24 ) {
736
 
737
+ // Change the hours to a 24hr format and remove the AM or PM.
738
  if ( splitHour[1].indexOf( "PM" ) != -1 ) {
739
  if ( splitHour[0] == 12 ) {
740
  hours[key] = "12:" + splitHour[1].replace( " PM", "" );
752
  }
753
  }
754
 
755
+ // Set the correct value as the selected one.
756
  periodBlock.find( ".wpsl-" + key + "-hour option[value='" + $.trim( hours[key] ) + "']" ).attr( "selected", "selected" );
757
  }
758
  }
761
  });
762
  }
763
 
764
+ // Update the opening hours format if one of the dropdown values change.
765
  $( "#wpsl-editor-hour-format, #wpsl-editor-hour-interval" ).on( "change", function() {
766
  createHourOptionList();
767
  });
768
 
769
+ // Show the tooltips.
770
  $( ".wpsl-info" ).on( "mouseover", function() {
771
  $( this ).find( ".wpsl-info-text" ).show();
772
  });
775
  $( this ).find( ".wpsl-info-text" ).hide();
776
  });
777
 
778
+ // If the start location is empty, then we color the info icon red instead of black.
779
  if ( $( "#wpsl-latlng" ).length && !$( "#wpsl-latlng" ).val() ) {
780
  $( "#wpsl-latlng" ).siblings( "label" ).find( ".wpsl-info" ).addClass( "wpsl-required-setting" );
781
  }
782
 
783
+ /**
784
+ * Try to apply the custom style data to the map.
785
  *
786
  * If the style data is invalid json we show an error.
787
  *
788
+ * @since 2.0.0
789
  * @return {void}
790
  */
791
  function tryCustomMapStyle() {
795
  $( ".wpsl-style-preview-error" ).remove();
796
 
797
  if ( mapStyle ) {
798
+
799
+ // Make sure the data is valid json.
800
  validStyle = tryParseJSON( mapStyle );
801
 
802
  if ( !validStyle ) {
807
  map.setOptions({ styles: validStyle });
808
  }
809
 
810
+ // Handle the map style changes on the settings page.
811
  if ( $( "#wpsl-map-style" ).val() ) {
812
  tryCustomMapStyle();
813
  }
814
 
815
+ // Handle clicks on the map style preview button.
816
  $( "#wpsl-style-preview" ).on( "click", function() {
817
  tryCustomMapStyle();
818
 
819
  return false;
820
  });
821
 
822
+ /**
823
+ * Make sure the JSON is valid.
824
  *
825
+ * @link http://stackoverflow.com/a/20392392/1065294
826
+ * @since 2.0.0
827
+ * @param {string} jsonString The JSON data
828
+ * @return {object|boolean} The JSON string or false if it's invalid json.
829
  */
830
  function tryParseJSON( jsonString ) {
831
+
832
  try {
833
+ var o = JSON.parse( jsonString );
834
+
835
+ /*
836
+ * Handle non-exception-throwing cases:
837
+ * Neither JSON.parse(false) or JSON.parse(1234) throw errors, hence the type-checking,
838
+ * but... JSON.parse(null) returns 'null', and typeof null === "object",
839
+ * so we must check for that, too.
840
+ */
841
+ if ( o && typeof o === "object" && o !== null ) {
842
  return o;
843
  }
844
  }
845
+ catch ( e ) { }
846
 
847
  return false;
848
  }
admin/js/wpsl-admin.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(e){function s(){var e=wpslSettings.defaultLatLng.split(","),s=new google.maps.LatLng(e[0],e[1]),o={};o={zoom:parseInt(wpslSettings.defaultZoom),center:s,mapTypeId:google.maps.MapTypeId[wpslSettings.mapType.toUpperCase()],mapTypeControl:!1,streetViewControl:!1,zoomControlOptions:{position:google.maps.ControlPosition.RIGHT_TOP}},b=new google.maps.Geocoder,C=new google.maps.Map(document.getElementById("wpsl-gmap-wrap"),o),t()}function t(){var s,t=e("#wpsl-lat").val(),o=e("#wpsl-lng").val();t&&o&&(s=new google.maps.LatLng(t,o),C.setCenter(s),C.setZoom(16),l(s))}function o(){var e,s=document.getElementById("wpsl-zoom-name"),t={types:["geocode"]},o=new google.maps.places.Autocomplete(s,t);google.maps.event.addListener(o,"place_changed",function(){e=o.getPlace().geometry.location,n(e,"zoom")})}function l(e){var s=new google.maps.Marker({position:e,map:C,draggable:!0});M.push(s),google.maps.event.addListener(s,"dragend",function(){n(s.getPosition(),"store")})}function n(s,t){var o=c(s),l=p(o[0]),n=p(o[1]);"store"==t?(e("#wpsl-lat").val(l),e("#wpsl-lng").val(n)):"zoom"==t&&e("#wpsl-latlng").val(l+","+n)}function r(){var s,t,o=e("#wpsl-address").val(),r=e("#wpsl-city").val(),p=e("#wpsl-zip").val(),c=e("#wpsl-country").val();return t=p?o+","+r+","+p+","+c:o+","+r+","+c,e("#wpsl-missing-geodata").remove(),a(o,r,c)?(d("first"),alert(wpslL10n.missingGeoData),!0):(b.geocode({address:t},function(t,o){o===google.maps.GeocoderStatus.OK?("undefined"!=typeof M[0]&&M[0].draggable&&(M[0].setMap(null),M.splice(0,1)),C.setCenter(t[0].geometry.location),C.setZoom(16),l(t[0].geometry.location),n(t[0].geometry.location,"store"),s=i(t),e("#wpsl-country").val(s.country.long_name),e("#wpsl-country_iso").val(s.country.short_name)):alert(wpslL10n.geocodeFail+": "+o)}),!1)}function a(s,t,o){var l=!1;return e(".wpsl-store-meta input").removeClass("wpsl-error"),s||(e("#wpsl-address").addClass("wpsl-error"),l=!0),t||(e("#wpsl-city").addClass("wpsl-error"),l=!0),o||(e("#wpsl-country").addClass("wpsl-error"),l=!0),l}function i(e){var s,t,o={},l={},n=e[0].address_components.length;for(s=0;n>s;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 l={country:o}}function p(e){var s,t=6;return s=Math.round(e*Math.pow(10,t))/Math.pow(10,t)}function c(e){var s=[],t=e.toString(),o=t.split(",",2);return s[0]=o[0].replace("(",""),s[1]=o[1].replace(")",""),s}function d(s){s="first"==s?":first-child":"."+s,e("#wpsl-meta-nav li"+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 w(e){var s={};return s={type:"id",val:e.attr("id")},"undefined"==typeof s.val&&(s={type:"class",val:e.attr("class")}),s}function u(){e("#wpsl-store-hours .wpsl-icon-cancel-circled").off(),e("#wpsl-store-hours .wpsl-icon-cancel-circled").on("click",function(){h(e(this))})}function h(e){var s=m(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")}function m(e){var s=e.parents("tr").find(".wpsl-current-period").length;return s}function v(s){var t,o,l,n,r=!1,a="",i="",p=[],c={hours:{hr12:[0,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]},interval:["00","15","30","45"]};n=e("#wpsl-editor-hour-format").length?e("#wpsl-editor-hour-format").val():wpslSettings.hourFormat,e("#wpsl-store-hours td").removeAttr("style"),12==n?(e("#wpsl-store-hours").removeClass().addClass("wpsl-twelve-format"),t=c.hours.hr12):(e("#wpsl-store-hours").removeClass().addClass("wpsl-twentyfour-format"),t=c.hours.hr24),o=c.interval;for(var d=0;d<t.length;d++){l=t[d],12==n?(l>=12&&(r=!0),a=r?"PM":"AM"):24==n&&1==l.toString().length&&(l="0"+l);for(var w=0;w<o.length;w++)p.push(l+":"+o[w]+" "+a)}for(var d=0;d<p.length;d++)i=i+'<option value="'+e.trim(p[d])+'">'+e.trim(p[d])+"</option>";return s?i:void f(i,n)}function f(s,t){var o,l,n,r={};e(".wpsl-current-period").each(function(){n=e(this),r={open:e(this).find(".wpsl-open-hour").val(),close:e(this).find(".wpsl-close-hour").val()},e(this).find("select").html(s).promise().done(function(){for(var s in r)r.hasOwnProperty(s)&&(o=r[s].split(":"),12==t?(l="",0==r[s].charAt(0)?(r[s]=r[s].substr(1),l=" AM"):2==o[0].length&&o[0]>12?(r[s]=o[0]-12+":"+o[1],l=" PM"):o[0]<12?(r[s]=o[0]+":"+o[1],l=" AM"):12==o[0]&&(r[s]=o[0]+":"+o[1],l=" PM"),-1==o[1].indexOf("PM")&&-1==o[1].indexOf("AM")&&(r[s]=r[s]+l)):24==t&&(r[s]=-1!=o[1].indexOf("PM")?12==o[0]?"12:"+o[1].replace(" PM",""):+o[0]+12+":"+o[1].replace(" PM",""):-1!=o[1].indexOf("AM")?1==o[0].toString().length?"0"+o[0]+":"+o[1].replace(" AM",""):o[0]+":"+o[1].replace(" AM",""):o[0]+":"+o[1]),n.find(".wpsl-"+s+"-hour option[value='"+e.trim(r[s])+"']").attr("selected","selected"))})})}function g(){var s="",t=e.trim(e("#wpsl-map-style").val());e(".wpsl-style-preview-error").remove(),t&&(s=y(t),s||e("#wpsl-style-preview").after("<div class='wpsl-style-preview-error'>"+wpslL10n.styleError+"</div>")),C.setOptions({styles:s})}function y(e){try{var s=JSON.parse(e);if(s&&"object"==typeof s&&null!==s)return s}catch(t){}return!1}var C,b,M=[];e("#wpsl-gmap-wrap").length&&s(),e("#wpsl-zoom-name").length&&o(),e("#wpsl-lookup-location").on("click",function(e){e.preventDefault(),r()}),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-dismiss").click(function(){var s=e(this),t={action:"disable_location_warning",_ajax_nonce:s.attr("data-nonce")};return e.post(ajaxurl,t),e(".wpsl-dismiss").parents(".error").remove(),!1}),e("#wpsl-more-info").on("change",function(){e("#wpsl-more-info-options").toggle()}),e("#wpsl-autoload").on("change",function(){e("#wpsl-autoload-options").toggle()}),e("#wpsl-editor-hide-hours").on("change",function(){e(".wpsl-hours").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-editor-hour-input").on("change",function(){e(".wpsl-"+e(this).val()+"-hours").show().siblings("div").hide(),e(".wpsl-hour-notice").toggle()}),e("#wpsl-marker-clusters").on("change",function(){e(".wpsl-cluster-options").toggle()}),e("#wpsl-permalinks-active").on("change",function(){e(".wpsl-permalink-option").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>",n=!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"),"undefined"==typeof s&&(s=w(e(this))),n=!0)}),n?(e("#wpbody-content .wrap > h2").after(l),"undefined"!=typeof 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,""))),d(t?t:"first"),e("#publish").removeClass("button-primary-disabled"),e(".spinner").hide(),!1):!0}),e("#wpsl-store-hours").length&&u(),e(".wpsl-add-period").on("click",function(s){var t,o={},l=!0,n=e(this).parents("tr"),r=m(e(this)),a=r>=1?"wpsl-current-period wpsl-multiple-periods":"wpsl-current-period",i=n.find(".wpsl-opening-hours").attr("data-day"),p=e("#wpsl-settings-form").length?"wpsl_editor[dropdown]":"wpsl[hours]";t='<div class="'+a+'">',t+='<select autocomplete="off" name="'+p+"["+i+'_open][]" class="wpsl-open-hour">'+v(l)+"</select>",t+="<span> - </span>",t+='<select autocomplete="off" name="'+p+"["+i+'_close][]" class="wpsl-close-hour">'+v(l)+"</select>",t+='<div class="wpsl-icon-cancel-circled"></div>',t+="</div>",n.find(".wpsl-store-closed").remove(),e("#wpsl-hours-"+i).append(t).end(),u(),o=24==e("#wpsl-editor-hour-format").val()?{open:"09:00",close:"17:00"}:{open:"9:00 AM",close:"5:00 PM"},n.find(".wpsl-open-hour:last option[value='"+o.open+"']").attr("selected","selected"),n.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(){v()}),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()&&g(),e("#wpsl-style-preview").on("click",function(){return g(),!1})});
1
+ jQuery(document).ready(function(e){function s(){var e=wpslSettings.defaultLatLng.split(","),s=new google.maps.LatLng(e[0],e[1]),o={};o={zoom:parseInt(wpslSettings.defaultZoom),center:s,mapTypeId:google.maps.MapTypeId[wpslSettings.mapType.toUpperCase()],mapTypeControl:!1,streetViewControl:!1,zoomControlOptions:{position:google.maps.ControlPosition.RIGHT_TOP}},M=new google.maps.Geocoder,b=new google.maps.Map(document.getElementById("wpsl-gmap-wrap"),o),t()}function t(){var s,t=e("#wpsl-lat").val(),o=e("#wpsl-lng").val();t&&o&&(s=new google.maps.LatLng(t,o),b.setCenter(s),b.setZoom(16),l(s))}function o(){var e,s=document.getElementById("wpsl-zoom-name"),t={types:["geocode"]},o=new google.maps.places.Autocomplete(s,t);google.maps.event.addListener(o,"place_changed",function(){e=o.getPlace().geometry.location,n(e,"zoom")})}function l(e){var s=new google.maps.Marker({position:e,map:b,draggable:!0});k.push(s),google.maps.event.addListener(s,"dragend",function(){n(s.getPosition(),"store")})}function n(s,t){var o=d(s),l=c(o[0]),n=c(o[1]);"store"==t?(e("#wpsl-lat").val(l),e("#wpsl-lng").val(n)):"zoom"==t&&e("#wpsl-latlng").val(l+","+n)}function r(){var s,t;return a()?(w("first"),alert(wpslL10n.missingGeoData),!0):(t=i(),M.geocode({address:t},function(t,o){o===google.maps.GeocoderStatus.OK?("undefined"!=typeof k[0]&&k[0].draggable&&(k[0].setMap(null),k.splice(0,1)),b.setCenter(t[0].geometry.location),b.setZoom(16),l(t[0].geometry.location),n(t[0].geometry.location,"store"),s=p(t),e("#wpsl-country").val(s.country.long_name),e("#wpsl-country_iso").val(s.country.short_name)):alert(wpslL10n.geocodeFail+": "+o)}),!1)}function a(){var s,t,o=["address","city","country"],l=!1;for(e(".wpsl-store-meta input").removeClass("wpsl-error"),s=0;s<o.length;s++)t=e.trim(e("#wpsl-"+o[s]).val()),t||(e("#wpsl-"+o[s]).addClass("wpsl-error"),l=!0),t="";return l}function i(){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()),t&&o.push(t),t="";return o.join()}function p(e){var s,t,o={},l={},n=e[0].address_components.length;for(s=0;n>s;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 l={country:o}}function c(e){var s,t=6;return s=Math.round(e*Math.pow(10,t))/Math.pow(10,t)}function d(e){var s=[],t=e.toString(),o=t.split(",",2);return s[0]=o[0].replace("(",""),s[1]=o[1].replace(")",""),s}function w(s){s="first"==s?":first-child":"."+s,e("#wpsl-meta-nav li"+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 u(e){var s={};return s={type:"id",val:e.attr("id")},"undefined"==typeof s.val&&(s={type:"class",val:e.attr("class")}),s}function h(){e("#wpsl-store-hours .wpsl-icon-cancel-circled").off(),e("#wpsl-store-hours .wpsl-icon-cancel-circled").on("click",function(){f(e(this))})}function f(e){var s=m(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")}function m(e){var s=e.parents("tr").find(".wpsl-current-period").length;return s}function v(s){var t,o,l,n,r=!1,a="",i="",p=[],c={hours:{hr12:[0,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]},interval:["00","15","30","45"]};n=e("#wpsl-editor-hour-format").length?e("#wpsl-editor-hour-format").val():wpslSettings.hourFormat,e("#wpsl-store-hours td").removeAttr("style"),12==n?(e("#wpsl-store-hours").removeClass().addClass("wpsl-twelve-format"),t=c.hours.hr12):(e("#wpsl-store-hours").removeClass().addClass("wpsl-twentyfour-format"),t=c.hours.hr24),o=c.interval;for(var d=0;d<t.length;d++){l=t[d],12==n?(l>=12&&(r=!0),a=r?"PM":"AM"):24==n&&1==l.toString().length&&(l="0"+l);for(var w=0;w<o.length;w++)p.push(l+":"+o[w]+" "+a)}for(var d=0;d<p.length;d++)i=i+'<option value="'+e.trim(p[d])+'">'+e.trim(p[d])+"</option>";return s?i:void g(i,n)}function g(s,t){var o,l,n,r={};e(".wpsl-current-period").each(function(){n=e(this),r={open:e(this).find(".wpsl-open-hour").val(),close:e(this).find(".wpsl-close-hour").val()},e(this).find("select").html(s).promise().done(function(){for(var s in r)r.hasOwnProperty(s)&&(o=r[s].split(":"),12==t?(l="",0==r[s].charAt(0)?(r[s]=r[s].substr(1),l=" AM"):2==o[0].length&&o[0]>12?(r[s]=o[0]-12+":"+o[1],l=" PM"):o[0]<12?(r[s]=o[0]+":"+o[1],l=" AM"):12==o[0]&&(r[s]=o[0]+":"+o[1],l=" PM"),-1==o[1].indexOf("PM")&&-1==o[1].indexOf("AM")&&(r[s]=r[s]+l)):24==t&&(-1!=o[1].indexOf("PM")?12==o[0]?r[s]="12:"+o[1].replace(" PM",""):r[s]=+o[0]+12+":"+o[1].replace(" PM",""):-1!=o[1].indexOf("AM")?1==o[0].toString().length?r[s]="0"+o[0]+":"+o[1].replace(" AM",""):r[s]=o[0]+":"+o[1].replace(" AM",""):r[s]=o[0]+":"+o[1]),n.find(".wpsl-"+s+"-hour option[value='"+e.trim(r[s])+"']").attr("selected","selected"))})})}function y(){var s="",t=e.trim(e("#wpsl-map-style").val());e(".wpsl-style-preview-error").remove(),t&&(s=C(t),s||e("#wpsl-style-preview").after("<div class='wpsl-style-preview-error'>"+wpslL10n.styleError+"</div>")),b.setOptions({styles:s})}function C(e){try{var s=JSON.parse(e);if(s&&"object"==typeof s&&null!==s)return s}catch(t){}return!1}var b,M,k=[];e("#wpsl-gmap-wrap").length&&s(),e("#wpsl-zoom-name").length&&o(),e("#wpsl-lookup-location").on("click",function(e){e.preventDefault(),r()}),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-dismiss").click(function(){var s=e(this),t={action:"disable_location_warning",_ajax_nonce:s.attr("data-nonce")};return e.post(ajaxurl,t),e(".wpsl-dismiss").parents(".error").remove(),!1}),e("#wpsl-more-info").on("change",function(){e("#wpsl-more-info-options").toggle()}),e("#wpsl-autoload").on("change",function(){e("#wpsl-autoload-options").toggle()}),e("#wpsl-editor-hide-hours").on("change",function(){e(".wpsl-hours").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-marker-clusters").on("change",function(){e(".wpsl-cluster-options").toggle()}),e("#wpsl-permalinks-active").on("change",function(){e(".wpsl-permalink-option").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>",n=!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"),"undefined"==typeof s&&(s=u(e(this))),n=!0)}),n?(e("#wpbody-content .wrap > h2").after(l),"undefined"!=typeof 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,""))),w(t?t:"first"),e("#publish").removeClass("button-primary-disabled"),e(".spinner").hide(),!1):!0}),e("#wpsl-store-hours").length&&h(),e(".wpsl-add-period").on("click",function(s){var t,o={},l=!0,n=e(this).parents("tr"),r=m(e(this)),a=r>=1?"wpsl-current-period wpsl-multiple-periods":"wpsl-current-period",i=n.find(".wpsl-opening-hours").attr("data-day"),p=e("#wpsl-settings-form").length?"wpsl_editor[dropdown]":"wpsl[hours]";t='<div class="'+a+'">',t+='<select autocomplete="off" name="'+p+"["+i+'_open][]" class="wpsl-open-hour">'+v(l)+"</select>",t+="<span> - </span>",t+='<select autocomplete="off" name="'+p+"["+i+'_close][]" class="wpsl-close-hour">'+v(l)+"</select>",t+='<div class="wpsl-icon-cancel-circled"></div>',t+="</div>",n.find(".wpsl-store-closed").remove(),e("#wpsl-hours-"+i).append(t).end(),h(),o=24==e("#wpsl-editor-hour-format").val()?{open:"09:00",close:"17:00"}:{open:"9:00 AM",close:"5:00 PM"},n.find(".wpsl-open-hour:last option[value='"+o.open+"']").attr("selected","selected"),n.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(){v()}),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()&&y(),e("#wpsl-style-preview").on("click",function(){return y(),!1})});
admin/templates/map-settings.php CHANGED
@@ -2,486 +2,569 @@
2
  if ( !defined( 'ABSPATH' ) ) exit;
3
 
4
  global $wpdb, $wpsl, $wpsl_admin, $wp_version, $wpsl_settings;
 
 
 
5
  ?>
6
 
7
  <div id="wpsl-wrap" class="wrap wpsl-settings <?php if ( floatval( $wp_version ) < 3.8 ) { echo 'wpsl-pre-38'; } // Fix CSS issue with < 3.8 versions ?>">
8
  <h2>WP Store Locator <?php _e( 'Settings', 'wpsl' ); ?></h2>
 
 
 
 
 
 
 
 
9
 
10
- <?php settings_errors(); ?>
11
-
12
- <form id="wpsl-settings-form" method="post" action="options.php" autocomplete="off" accept-charset="utf-8">
13
- <div class="postbox-container">
14
- <div class="metabox-holder">
15
- <div id="wpsl-api-settings" class="postbox">
16
- <h3 class="hndle"><span><?php _e( 'Google Maps API', 'wpsl' ); ?></span></h3>
17
- <div class="inside">
18
- <p>
19
- <label for="wpsl-api-key"><?php _e( 'API key', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'A valid %sAPI key%s allows you to monitor the API usage and is required if you need to purchase additional quota.', 'wpsl' ), '<a href="https://developers.google.com/maps/documentation/javascript/tutorial#api_key" target="_blank">', '</a>' ); ?></span></span></label>
20
- <input type="text" value="<?php echo esc_attr( $wpsl_settings['api_key'] ); ?>" name="wpsl_api[key]" placeholder="<?php _e( 'Optional', 'wpsl' ); ?>" class="textinput" id="wpsl-api-key">
21
- </p>
22
- <p>
23
- <label for="wpsl-api-language"><?php _e( 'Map language', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php _e( 'If no map language is selected the browser\'s prefered language is used.', 'wpsl' ); ?></span></span></label>
24
- <select id="wpsl-api-language" name="wpsl_api[language]">
25
- <?php echo $wpsl_admin->settings_page->get_api_option_list( 'language' ); ?>
26
- </select>
27
- </p>
28
- <p>
29
- <label for="wpsl-api-region"><?php _e( 'Map region', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'This will bias the geocoding results towards the selected region. %s If no region is selected the bias is set to the United States.', 'wpsl' ), '<br><br>' ); ?></span></span></label>
30
- <select id="wpsl-api-region" name="wpsl_api[region]">
31
- <?php echo $wpsl_admin->settings_page->get_api_option_list( 'region' ); ?>
32
- </select>
33
- </p>
34
- <p class="submit">
35
- <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
36
- </p>
37
- </div>
38
- </div>
39
- </div>
40
- </div>
41
 
42
- <div class="postbox-container wpsl-search-settings">
43
- <div class="metabox-holder">
44
- <div id="wpsl-search-settings" class="postbox">
45
- <h3 class="hndle"><span><?php _e( 'Search', 'wpsl' ); ?></span></h3>
46
- <div class="inside">
47
- <p>
48
- <label for="wpsl-results-dropdown"><?php _e( 'Show the max results dropdown?', 'wpsl' ); ?></label>
49
- <input type="checkbox" value="" <?php checked( $wpsl_settings['results_dropdown'], true ); ?> name="wpsl_search[results_dropdown]" id="wpsl-results-dropdown">
50
- </p>
51
- <p>
52
- <label for="wpsl-radius-dropdown"><?php _e( 'Show the search radius dropdown?', 'wpsl' ); ?></label>
53
- <input type="checkbox" value="" <?php checked( $wpsl_settings['radius_dropdown'], true ); ?> name="wpsl_search[radius_dropdown]" id="wpsl-radius-dropdown">
54
- </p>
55
- <p>
56
- <label for="wpsl-category-dropdown"><?php _e( 'Show the category dropdown?', 'wpsl' ); ?></label>
57
- <input type="checkbox" value="" <?php checked( $wpsl_settings['category_dropdown'], true ); ?> name="wpsl_search[category_dropdown]" id="wpsl-category-dropdown">
58
- </p>
59
- <p>
60
- <label for="wpsl-distance-unit"><?php _e( 'Distance unit', 'wpsl' ); ?>:</label>
61
- <span class="wpsl-radioboxes">
62
- <input type="radio" autocomplete="off" value="km" <?php checked( 'km', $wpsl_settings['distance_unit'] ); ?> name="wpsl_search[distance_unit]" id="wpsl-distance-km">
63
- <label for="wpsl-distance-km"><?php _e( 'km', 'wpsl' ); ?></label>
64
- <input type="radio" autocomplete="off" value="mi" <?php checked( 'mi', $wpsl_settings['distance_unit'] ); ?> name="wpsl_search[distance_unit]" id="wpsl-distance-mi">
65
- <label for="wpsl-distance-mi"><?php _e( 'mi', 'wpsl' ); ?></label>
66
- </span>
67
- </p>
68
- <p>
69
- <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>
70
- <input type="text" value="<?php echo esc_attr( $wpsl_settings['max_results'] ); ?>" name="wpsl_search[max_results]" class="textinput" id="wpsl-max-results">
71
- </p>
72
- <p>
73
- <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>
74
- <input type="text" value="<?php echo esc_attr( $wpsl_settings['search_radius'] ); ?>" name="wpsl_search[radius]" class="textinput" id="wpsl-search-radius">
75
- </p>
76
- <p class="submit">
77
- <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
78
- </p>
79
- </div>
80
- </div>
81
- </div>
82
- </div>
83
 
84
- <div class="postbox-container">
85
- <div class="metabox-holder">
86
- <div id="wpsl-map-settings" class="postbox">
87
- <h3 class="hndle"><span><?php _e( 'Map', 'wpsl' ); ?></span></h3>
88
- <div class="inside">
89
- <p>
90
- <label for="wpsl-auto-locate"><?php _e( 'Attempt to auto-locate the user', 'wpsl' ); ?>:</label>
91
- <input type="checkbox" value="" <?php checked( $wpsl_settings['auto_locate'], true ); ?> name="wpsl_map[auto_locate]" id="wpsl-auto-locate">
92
- </p>
93
- <p>
94
- <label for="wpsl-autoload"><?php _e( 'Load locations on page load', 'wpsl' ); ?>:</label>
95
- <input type="checkbox" value="" <?php checked( $wpsl_settings['autoload'], true ); ?> name="wpsl_map[autoload]" id="wpsl-autoload">
96
- </p>
97
- <p id="wpsl-autoload-options" <?php if ( !$wpsl_settings['autoload'] ) { echo 'style="display:none;"'; } ?>>
98
- <label for="wpsl-autoload-limit"><?php _e( 'Number of locations to show', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'Although the location data is cached after the first load, a lower number will result in the map being more responsive. %s If this field is left empty or set to 0, then all locations are loaded.', 'wpsl' ), '<br><br>' ); ?></span></span></label>
99
- <input type="text" value="<?php echo esc_attr( $wpsl_settings['autoload_limit'] ); ?>" name="wpsl_map[autoload_limit]" class="textinput" id="wpsl-autoload-limit">
100
- </p>
101
- <p>
102
- <label for="wpsl-zoom-name"><?php _e( 'Start point', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( '%sRequired field.%s %s If auto-locating the user is disabled or fails, the center of the provided city or country will be used as the initial starting point for the user.', 'wpsl' ), '<strong>', '</strong>', '<br><br>' ); ?></span></span></label>
103
- <input type="text" value="<?php echo esc_attr( $wpsl_settings['zoom_name'] ); ?>" name="wpsl_map[zoom_name]" class="textinput" id="wpsl-zoom-name">
104
- <input type="hidden" value="<?php echo esc_attr( $wpsl_settings['zoom_latlng'] ); ?>" name="wpsl_map[zoom_latlng]" id="wpsl-latlng" />
105
- </p>
106
- <p>
107
- <label for="wpsl-zoom-level"><?php _e( 'Initial zoom level', 'wpsl' ); ?>:</label>
108
- <?php echo $wpsl_admin->settings_page->show_zoom_levels(); ?>
109
- </p>
110
- <p>
111
- <label for="wpsl-max-zoom-level"><?php _e( 'Max auto zoom level', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'This value sets the zoom level for the "Zoom here" link in the info window. %s It is also used to limit the zooming when the viewport of the map is changed to make all the markers fit on the screen.', 'wpsl' ), '<br><br>' ); ?></span></span></label>
112
- <?php echo $wpsl_admin->settings_page->create_dropdown( 'max_zoom_level' ); ?>
113
- </p>
114
- <p>
115
- <label for="wpsl-streetview"><?php _e( 'Show the street view controls?', 'wpsl' ); ?></label>
116
- <input type="checkbox" value="" <?php checked( $wpsl_settings['streetview'], true ); ?> name="wpsl_map[streetview]" id="wpsl-streetview">
117
- </p>
118
- <p>
119
- <label for="wpsl-type-control"><?php _e( 'Show the map type control?', 'wpsl' ); ?></label>
120
- <input type="checkbox" value="" <?php checked( $wpsl_settings['type_control'], true ); ?> name="wpsl_map[type_control]" id="wpsl-type-control">
121
- </p>
122
- <p>
123
- <label for="wpsl-scollwheel-zoom"><?php _e( 'Enable scroll wheel zooming?', 'wpsl' ); ?></label>
124
- <input type="checkbox" value="" <?php checked( $wpsl_settings['scrollwheel'], true ); ?> name="wpsl_map[scrollwheel]" id="wpsl-scollwheel-zoom">
125
- </p>
126
- <p>
127
- <label><?php _e( 'Zoom control position', 'wpsl' ); ?>:</label>
128
- <span class="wpsl-radioboxes">
129
- <input type="radio" autocomplete="off" value="left" <?php checked( 'left', $wpsl_settings['control_position'], true ); ?> name="wpsl_map[control_position]" id="wpsl-control-left">
130
- <label for="wpsl-control-left"><?php _e( 'Left', 'wpsl' ); ?></label>
131
- <input type="radio" autocomplete="off" value="right" <?php checked( 'right', $wpsl_settings['control_position'], true ); ?> name="wpsl_map[control_position]" id="wpsl-control-right">
132
- <label for="wpsl-control-right"><?php _e( 'Right', 'wpsl' ); ?></label>
133
- </span>
134
- </p>
135
- <p>
136
- <label for="wpsl-map-type"><?php _e( 'Map type', 'wpsl' ); ?>:</label>
137
- <?php echo $wpsl_admin->settings_page->create_dropdown( 'map_types' ); ?>
138
- </p>
139
- <p>
140
- <label for="wpsl-map-style"><?php _e( 'Map style', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php _e( 'Custom map styles only work if the map type is set to "Roadmap" or "Terrain".', 'wpsl' ); ?></span></span></label>
141
- </p>
142
- <div class="wpsl-style-input">
143
- <p><?php echo sprintf( __( 'You can use existing map styles from %sSnazzy Maps%s or %sMap Stylr%s and paste it in the textarea below, or you can generate a custom map style through the %sMap Style Editor%s or %sStyled Maps Wizard%s.', 'wpsl' ), '<a target="_blank" href="http://snazzymaps.com">', '</a>', '<a target="_blank" href="http://mapstylr.com">', '</a>', '<a target="_blank" href="http://mapstylr.com/map-style-editor/">', '</a>', '<a target="_blank" href="http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html">', '</a>' ); ?></p>
144
- <p><?php echo sprintf( __( 'If you like to write the style code yourself, then you can find the documentation from Google %shere%s.', 'wpsl' ), '<a target="_blank" href="https://developers.google.com/maps/documentation/javascript/styling">', '</a>' ); ?></p>
145
- <textarea id="wpsl-map-style" name="wpsl_map[map_style]"><?php echo strip_tags( stripslashes( json_decode( $wpsl_settings['map_style'] ) ) ); ?></textarea>
146
- <input type="submit" value="<?php _e( 'Preview Map Style', 'wpsl' ); ?>" class="button-primary" name="wpsl-style-preview" id="wpsl-style-preview">
147
- </div>
148
- <div id="wpsl-gmap-wrap" class="wpsl-styles-preview"></div>
149
- <p>
150
- <label for="wpsl-show-credits"><?php _e( 'Show credits?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php _e( 'This will place a "Search provided by WP Store Locator" backlink below the map.', 'wpsl' ); ?></span></span></label>
151
- <input type="checkbox" value="" <?php checked( $wpsl_settings['show_credits'], true ); ?> name="wpsl_credits" id="wpsl-show-credits">
152
- </p>
153
- <p class="submit">
154
- <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
155
- </p>
156
- </div>
157
- </div>
158
- </div>
159
- </div>
160
 
161
- <div class="postbox-container">
162
- <div class="metabox-holder">
163
- <div id="wpsl-user-experience" class="postbox">
164
- <h3 class="hndle"><span><?php _e( 'User Experience', 'wpsl' ); ?></span></h3>
165
- <div class="inside">
166
- <p>
167
- <label for="wpsl-design-height"><?php _e( 'Store Locator height', 'wpsl' ); ?>:</label>
168
- <input size="3" value="<?php echo esc_attr( $wpsl_settings['height'] ); ?>" id="wpsl-design-height" name="wpsl_ux[height]"> px
169
- </p>
170
- <p>
171
- <label for="wpsl-infowindow-width"><?php _e( 'Max width for the info window content', 'wpsl' ); ?>:</label>
172
- <input size="3" value="<?php echo esc_attr( $wpsl_settings['infowindow_width'] ); ?>" id="wpsl-infowindow-width" name="wpsl_ux[infowindow_width]"> px
173
- </p>
174
- <p>
175
- <label for="wpsl-search-width"><?php _e( 'Search field width', 'wpsl' ); ?>:</label>
176
- <input size="3" value="<?php echo esc_attr( $wpsl_settings['search_width'] ); ?>" id="wpsl-search-width" name="wpsl_ux[search_width]"> px
177
- </p>
178
- <p>
179
- <label for="wpsl-label-width"><?php _e( 'Search and radius label width', 'wpsl' ); ?>:</label>
180
- <input size="3" value="<?php echo esc_attr( $wpsl_settings['label_width'] ); ?>" id="wpsl-label-width" name="wpsl_ux[label_width]"> px
181
- </p>
182
- <p>
183
- <label for="wpsl-store-template"><?php _e( 'Store Locator template', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'The selected template is used with the [wpsl] shortcode. %s You can add a custom template with the %swpsl_templates%s filter.', 'wpsl' ), '<br><br>', '<a href="http://wpstorelocator.co/document/wpsl_templates/">', '</a>' ); ?></span></span></label>
184
- <?php echo $wpsl_admin->settings_page->show_template_options(); ?>
185
- </p>
186
- <p id="wpsl-listing-below-no-scroll" <?php if ( $wpsl_settings['template_id'] != 'below_map' ) { echo 'style="display:none;"'; } ?>>
187
- <label for="wpsl-more-info-list"><?php _e( 'Hide the scrollbar?', 'wpsl' ); ?></label>
188
- <input type="checkbox" value="" <?php checked( $wpsl_settings['listing_below_no_scroll'], true ); ?> name="wpsl_ux[listing_below_no_scroll]" id="wpsl-listing-below-no-scroll">
189
- </p>
190
- <p>
191
- <label for="wpsl-new-window"><?php _e( 'Open links in a new window?', 'wpsl' ); ?></label>
192
- <input type="checkbox" value="" <?php checked( $wpsl_settings['new_window'], true ); ?> name="wpsl_ux[new_window]" id="wpsl-new-window">
193
- </p>
194
- <p>
195
- <label for="wpsl-reset-map"><?php _e( 'Show a reset map button?', 'wpsl' ); ?></label>
196
- <input type="checkbox" value="" <?php checked( $wpsl_settings['reset_map'], true ); ?> name="wpsl_ux[reset_map]" id="wpsl-reset-map">
197
- </p>
198
- <p>
199
- <label for="wpsl-direction-redirect"><?php _e( 'When a user clicks on "Directions", open a new window, and show the route on google.com/maps ?', 'wpsl' ); ?></label>
200
- <input type="checkbox" value="" <?php checked( $wpsl_settings['direction_redirect'], true ); ?> name="wpsl_ux[direction_redirect]" id="wpsl-direction-redirect">
201
- </p>
202
- <p>
203
- <label for="wpsl-more-info"><?php _e( 'Show a "More info" link in the store listings?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'This places a "More Info" link below the address and will show the phone, fax, email, opening hours and description once the link is clicked. %s If you for example want the contact details to always be visible, then please follow the instructions on %sthis%s page.', 'wpsl' ), '<br><br>', '<a href="http://wpstorelocator.co/document/include-contact-details-in-search-results/">', '</a>' ); ?></span></span></label>
204
- <input type="checkbox" value="" <?php checked( $wpsl_settings['more_info'], true ); ?> name="wpsl_ux[more_info]" id="wpsl-more-info">
205
- </p>
206
- <p id="wpsl-more-info-options" <?php if ( !$wpsl_settings['more_info'] ) { echo 'style="display:none;"'; } ?>>
207
- <label for="wpsl-more-info-list"><?php _e( 'Where do you want to show the "More info" details?', 'wpsl' ); ?></label>
208
- <?php echo $wpsl_admin->settings_page->create_dropdown( 'more_info' ); ?>
209
- </p>
210
- <p>
211
- <label for="wpsl-store-url"><?php _e( 'Make the store name clickable if a store URL exists?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'If %spermalinks%s are enabled, the store name will always link to the store page.', 'wpsl' ), '<a href="' . admin_url( 'edit.php?post_type=wpsl_stores&page=wpsl_settings#wpsl-permalink-settings' ) . '">', '</a>' ); ?></span></span></label>
212
- <input type="checkbox" value="" <?php checked( $wpsl_settings['store_url'], true ); ?> name="wpsl_ux[store_url]" id="wpsl-store-url">
213
- </p>
214
- <p>
215
- <label for="wpsl-phone-url"><?php _e( 'Make the phone number clickable on mobile devices?', 'wpsl' ); ?></label>
216
- <input type="checkbox" value="" <?php checked( $wpsl_settings['phone_url'], true ); ?> name="wpsl_ux[phone_url]" id="wpsl-phone-url">
217
- </p>
218
- <p>
219
- <label for="wpsl-marker-streetview"><?php _e( 'If street view is available for the current location, then show a "Street view" link in the info window?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'Enabling this option can sometimes result in a small delay in the opening of the info window. %s This happens because an API request is made to Google Maps to check if street view is available for the current location.', 'wpsl' ), '<br><br>' ); ?></span></span></label>
220
- <input type="checkbox" value="" <?php checked( $wpsl_settings['marker_streetview'], true ); ?> name="wpsl_ux[marker_streetview]" id="wpsl-marker-streetview">
221
- </p>
222
- <p>
223
- <label for="wpsl-marker-zoom-to"><?php _e( 'Show a "Zoom here" link in the info window?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'Clicking this link will make the map zoom in to the %s max auto zoom level %s.', 'wpsl' ), '<a href="#wpsl-zoom-level">', '</a>' ); ?></span></span></label>
224
- <input type="checkbox" value="" <?php checked( $wpsl_settings['marker_zoom_to'], true ); ?> name="wpsl_ux[marker_zoom_to]" id="wpsl-marker-zoom-to">
225
- </p>
226
- <p>
227
- <label for="wpsl-mouse-focus"><?php _e( 'On page load move the mouse cursor to the search field?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'If the store locator is not placed at the top of the page, enabling this feature can result in the page scrolling down. %s %sThis option is disabled on mobile devices.%s', 'wpsl' ), '<br><br>', '<em>', '</em>' ); ?></span></span></label>
228
- <input type="checkbox" value="" <?php checked( $wpsl_settings['mouse_focus'], true ); ?> name="wpsl_ux[mouse_focus]" id="wpsl-mouse-focus">
229
- </p>
230
- <p>
231
- <label for="wpsl-infowindow-style"><?php _e( 'Use the default style for the info window?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'If the default style is disabled the %sInfoBox%s library will be used instead. %s This enables you to easily change the look and feel of the info window through the .wpsl-infobox css class.', 'wpsl' ), '<a href="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/reference.html" target="_blank">', '</a>', '<br><br>' ); ?></span></span></label>
232
- <input type="checkbox" value="default" <?php checked( $wpsl_settings['infowindow_style'], 'default' ); ?> name="wpsl_ux[infowindow_style]" id="wpsl-infowindow-style">
233
- </p>
234
- <p>
235
- <label for="wpsl-hide-distance"><?php _e( 'Hide the distance in the search results?', 'wpsl' ); ?></label>
236
- <input type="checkbox" value="" <?php checked( $wpsl_settings['hide_distance'], true ); ?> name="wpsl_ux[hide_distance]" id="wpsl-hide-distance">
237
- </p>
238
- <p>
239
- <label for="wpsl-bounce"><?php _e( 'If a user hovers over the search results the store marker', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'If marker clusters are enabled this option will not work as expected as long as the markers are clustered. %s The bouncing of the marker won\'t be visible at all unless a user zooms in far enough for the marker cluster to change back in to individual markers. %s The info window will open as expected, but it won\'t be clear to which marker it belongs to. ', 'wpsl' ), '<br><br>' , '<br><br>' ); ?></span></span></label>
240
- <?php echo $wpsl_admin->settings_page->create_dropdown( 'marker_effects' ); ?>
241
- </p>
242
- <p>
243
- <label for="wpsl-address-format"><?php _e( 'Address format', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'You can add custom address formats with the %swpsl_address_formats%s filter.', 'wpsl' ), '<a href="http://wpstorelocator.co/document/wpsl_address_formats/">', '</a>' ); ?></span></span></label>
244
- <?php echo $wpsl_admin->settings_page->create_dropdown( 'address_format' ); ?>
245
- </p>
246
- <p class="submit">
247
- <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
248
- </p>
249
- </div>
250
- </div>
251
- </div>
252
- </div>
253
 
254
- <div class="postbox-container">
255
- <div class="metabox-holder">
256
- <div id="wpsl-marker-settings" class="postbox">
257
- <h3 class="hndle"><span><?php _e( 'Markers', 'wpsl' ); ?></span></h3>
258
- <div class="inside">
259
- <?php echo $wpsl_admin->settings_page->show_marker_options(); ?>
260
- <p>
261
- <label for="wpsl-marker-clusters"><?php _e( 'Enable marker clusters?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php _e( 'Recommended for maps with a large amount of markers.', 'wpsl' ); ?></span></span></label>
262
- <input type="checkbox" value="" <?php checked( $wpsl_settings['marker_clusters'], true ); ?> name="wpsl_map[marker_clusters]" id="wpsl-marker-clusters">
263
- </p>
264
- <p class="wpsl-cluster-options" <?php if ( !$wpsl_settings['marker_clusters'] ) { echo 'style="display:none;"'; } ?>>
265
- <label for="wpsl-marker-zoom"><?php _e( 'Max zoom level', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php _e( 'If this zoom level is reached or exceeded, then all markers are moved out of the marker cluster and shown as individual markers.', 'wpsl' ); ?></span></span></label>
266
- <?php echo $wpsl_admin->settings_page->show_cluster_options( 'cluster_zoom' ); ?>
267
- </p>
268
- <p class="wpsl-cluster-options" <?php if ( !$wpsl_settings['marker_clusters'] ) { echo 'style="display:none;"'; } ?>>
269
- <label for="wpsl-marker-cluster-size"><?php _e( 'Cluster size', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'The grid size of a cluster in pixels. %s A larger number will result in a lower amount of clusters and also make the algorithm run faster.', 'wpsl' ), '<br><br>' ); ?></span></span></label>
270
- <?php echo $wpsl_admin->settings_page->show_cluster_options( 'cluster_size' ); ?>
271
- </p>
272
- <p class="submit">
273
- <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
274
- </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
  </div>
276
- </div>
277
- </div>
278
- </div>
279
 
280
- <div class="postbox-container">
281
- <div class="metabox-holder">
282
- <div id="wpsl-store-editor-settings" class="postbox">
283
- <h3 class="hndle"><span><?php _e( 'Store Editor', 'wpsl' ); ?></span></h3>
284
- <div class="inside">
285
- <p>
286
- <label for="wpsl-editor-country"><?php _e( 'Default country', 'wpsl' ); ?>:</label>
287
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'editor_country', '' ) ); ?>" name="wpsl_editor[default_country]" class="textinput" id="wpsl-editor-country">
288
- </p>
289
- <p>
290
- <label for="wpsl-editor-map-type"><?php _e( 'Map type for the location preview', 'wpsl' ); ?>:</label>
291
- <?php echo $wpsl_admin->settings_page->create_dropdown( 'editor_map_types' ); ?>
292
- </p>
293
- <p>
294
- <label for="wpsl-editor-hide-hours"><?php _e( 'Hide the opening hours?', 'wpsl' ); ?></label>
295
- <input type="checkbox" value="" <?php checked( $wpsl_settings['hide_hours'], true ); ?> name="wpsl_editor[hide_hours]" id="wpsl-editor-hide-hours">
296
- </p>
297
- <div class="wpsl-hours" <?php if ( $wpsl_settings['hide_hours'] ) { echo 'style="display:none"'; } ?>>
298
- <?php if ( get_option( 'wpsl_legacy_support' ) ) { // Is only set for users who upgraded from 1.x ?>
299
- <p>
300
- <label for="wpsl-editor-hour-input"><?php _e( 'Opening hours input type', 'wpsl' ); ?>:</label>
301
- <?php echo $wpsl_admin->settings_page->create_dropdown( 'hour_input' ); ?>
302
- </p>
303
- <p class="wpsl-hour-notice <?php if ( $wpsl_settings['editor_hour_input'] !== 'dropdown' ) { echo 'style="display:none"'; } ?>">
304
- <em><?php echo sprintf( __( 'Opening hours created in version 1.x %sare not%s automatically converted to the new dropdown format.', 'wpsl' ), '<strong>', '</strong>' ); ?></em>
305
- </p>
306
- <div class="wpsl-textarea-hours" <?php if ( $wpsl_settings['editor_hour_input'] !== 'textarea' ) { echo 'style="display:none"'; } ?>>
307
- <p class="wpsl-default-hours"><strong><?php _e( 'The default opening hours', 'wpsl' ); ?></strong></p>
308
- <textarea rows="5" cols="5" name="wpsl_editor[textarea]" id="wpsl-textarea-hours"><?php if ( isset( $wpsl_settings['editor_hours']['textarea'] ) ) { echo esc_textarea( stripslashes( $wpsl_settings['editor_hours']['textarea'] ) ); } ?></textarea>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
309
  </div>
310
- <?php } ?>
311
- <div class="wpsl-dropdown-hours" <?php if ( $wpsl_settings['editor_hour_input'] !== 'dropdown' ) { echo 'style="display:none"'; } ?>>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
312
  <p>
313
- <label for="wpsl-editor-hour-format"><?php _e( 'Opening hours format', 'wpsl' ); ?>:</label>
314
- <?php echo $wpsl_admin->settings_page->show_opening_hours_format(); ?>
 
 
 
315
  </p>
316
- <p class="wpsl-default-hours"><strong><?php _e( 'The default opening hours', 'wpsl' ); ?></strong></p>
317
- <?php echo $wpsl_admin->metaboxes->opening_hours( 'settings' ); ?>
 
 
 
 
 
 
 
 
 
 
 
318
  </div>
319
- </div>
320
- <p><em><?php _e( 'The default country and opening hours are only used when a new store is created. So changing the default values will have no effect on existing store locations.', 'wpsl' ); ?></em></p>
321
-
322
- <p class="submit">
323
- <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
324
- </p>
325
- </div>
326
- </div>
327
- </div>
328
- </div>
329
 
330
- <div class="postbox-container">
331
- <div class="metabox-holder">
332
- <div id="wpsl-permalink-settings" class="postbox">
333
- <h3 class="hndle"><span><?php _e( 'Permalink', 'wpsl' ); ?></span></h3>
334
- <div class="inside">
335
- <p>
336
- <label for="wpsl-permalinks-active"><?php _e( 'Enable permalink?', 'wpsl' ); ?></label>
337
- <input type="checkbox" value="" <?php checked( $wpsl_settings['permalinks'], true ); ?> name="wpsl_permalinks[active]" id="wpsl-permalinks-active">
338
- </p>
339
- <p class="wpsl-permalink-option" <?php if ( !$wpsl_settings['permalinks'] ) { echo 'style="display:none;"'; } ?>>
340
- <label for="wpsl-permalinks-slug"><?php _e( 'Store slug', 'wpsl' ); ?>:</label>
341
- <input type="text" value="<?php echo esc_attr( $wpsl_settings['permalink_slug'] ); ?>" name="wpsl_permalinks[slug]" class="textinput" id="wpsl-permalinks-slug">
342
- </p>
343
- <p class="wpsl-permalink-option" <?php if ( !$wpsl_settings['permalinks'] ) { echo 'style="display:none;"'; } ?>>
344
- <label for="wpsl-category-slug"><?php _e( 'Category slug', 'wpsl' ); ?>:</label>
345
- <input type="text" value="<?php echo esc_attr( $wpsl_settings['category_slug'] ); ?>" name="wpsl_permalinks[category_slug]" class="textinput" id="wpsl-category-slug">
346
- </p>
347
- <em class="wpsl-permalink-option"><?php echo sprintf( __( 'The permalink slugs %smust be unique%s on your site.', 'wpsl' ), '<strong>', '</strong>' ); ?></em>
348
- <p class="submit">
349
- <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
350
- </p>
351
- </div>
352
- </div>
353
- </div>
354
- </div>
355
 
356
- <div class="postbox-container">
357
- <div class="metabox-holder">
358
- <div id="wpsl-label-settings" class="postbox">
359
- <h3 class="hndle"><span><?php _e( 'Labels', 'wpsl' ); ?></span></h3>
360
- <div class="inside">
361
- <?php
362
- /*
363
- * Show a msg to make sure that when a WPML compatible plugin
364
- * is active users use the 'String Translations' page to change the labels,
365
- * instead of the 'Label' section.
366
- */
367
- if ( $wpsl->i18n->wpml_exists() ) {
368
- echo '<p>' . sprintf( __( '%sWarning!%s %sWPML%s, or a plugin using the WPML API is active.', 'wpsl' ), '<strong>', '</strong>', '<a href="https://wpml.org/">', '</a>' ) . '</p>';
369
- echo '<p>' . __( 'Please use the "String Translations" section in the used multilingual plugin to change the labels. Changing them here will have no effect as long as the multilingual plugin remains active.', 'wpsl' ) . '</p>';
370
- }
371
- ?>
372
- <p>
373
- <label for="wpsl-search"><?php _e( 'Your location', 'wpsl' ); ?>:</label>
374
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'search_label', __( 'Your location', 'wpsl' ) ) ); ?>" name="wpsl_label[search]" class="textinput" id="wpsl-search">
375
- </p>
376
- <p>
377
- <label for="wpsl-search-radius"><?php _e( 'Search radius', 'wpsl' ); ?>:</label>
378
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'radius_label', __( 'Search radius', 'wpsl' ) ) ); ?>" name="wpsl_label[radius]" class="textinput" id="wpsl-search-radius">
379
- </p>
380
- <p>
381
- <label for="wpsl-no-results"><?php _e( 'No results found', 'wpsl' ); ?>:</label>
382
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'no_results_label', __( 'No results found', 'wpsl' ) ) ); ?>" name="wpsl_label[no_results]" class="textinput" id="wpsl-no-results">
383
- </p>
384
- <p>
385
- <label for="wpsl-search-btn"><?php _e( 'Search', 'wpsl' ); ?>:</label>
386
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'search_btn_label', __( 'Search', 'wpsl' ) ) ); ?>" name="wpsl_label[search_btn]" class="textinput" id="wpsl-search-btn">
387
- </p>
388
- <p>
389
- <label for="wpsl-preloader"><?php _e( 'Searching (preloader text)', 'wpsl' ); ?>:</label>
390
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'preloader_label', __( 'Searching...', 'wpsl' ) ) ); ?>" name="wpsl_label[preloader]" class="textinput" id="wpsl-preloader">
391
- </p>
392
- <p>
393
- <label for="wpsl-results"><?php _e( 'Results', 'wpsl' ); ?>:</label>
394
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'results_label', __( 'Results', 'wpsl' ) ) ); ?>" name="wpsl_label[results]" class="textinput" id="wpsl-results">
395
- </p>
396
- <p>
397
- <label for="wpsl-category"><?php _e( 'Category filter', 'wpsl' ); ?>:</label>
398
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'category_label', __( 'Category', 'wpsl' ) ) ); ?>" name="wpsl_label[category]" class="textinput" id="wpsl-category">
399
- </p>
400
- <p>
401
- <label for="wpsl-more-info"><?php _e( 'More info', 'wpsl' ); ?>:</label>
402
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'more_label', __( 'More info', 'wpsl' ) ) ); ?>" name="wpsl_label[more]" class="textinput" id="wpsl-more-info">
403
- </p>
404
- <p>
405
- <label for="wpsl-phone"><?php _e( 'Phone', 'wpsl' ); ?>:</label>
406
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'phone_label', __( 'Phone', 'wpsl' ) ) ); ?>" name="wpsl_label[phone]" class="textinput" id="wpsl-phone">
407
- </p>
408
- <p>
409
- <label for="wpsl-fax"><?php _e( 'Fax', 'wpsl' ); ?>:</label>
410
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'fax_label', __( 'Fax', 'wpsl' ) ) ); ?>" name="wpsl_label[fax]" class="textinput" id="wpsl-fax">
411
- </p>
412
- <p>
413
- <label for="wpsl-email"><?php _e( 'Email', 'wpsl' ); ?>:</label>
414
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'email_label', __( 'Email', 'wpsl' ) ) ); ?>" name="wpsl_label[email]" class="textinput" id="wpsl-email">
415
- </p>
416
- <p>
417
- <label for="wpsl-url"><?php _e( 'Url', 'wpsl' ); ?>:</label>
418
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'url_label', __( 'Url', 'wpsl' ) ) ); ?>" name="wpsl_label[url]" class="textinput" id="wpsl-url">
419
- </p>
420
- <p>
421
- <label for="wpsl-hours"><?php _e( 'Hours', 'wpsl' ); ?>:</label>
422
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'hours_label', __( 'Hours', 'wpsl' ) ) ); ?>" name="wpsl_label[hours]" class="textinput" id="wpsl-hours">
423
- </p>
424
- <p>
425
- <label for="wpsl-start"><?php _e( 'Start location', 'wpsl' ); ?>:</label>
426
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'start_label', __( 'Start location', 'wpsl' ) ) ); ?>" name="wpsl_label[start]" class="textinput" id="wpsl-start">
427
- </p>
428
- <p>
429
- <label for="wpsl-directions"><?php _e( 'Get directions', 'wpsl' ); ?>:</label>
430
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'directions_label', __( 'Directions', 'wpsl' ) ) ); ?>" name="wpsl_label[directions]" class="textinput" id="wpsl-directions">
431
- </p>
432
- <p>
433
- <label for="wpsl-no-directions"><?php _e( 'No directions found', 'wpsl' ); ?>:</label>
434
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'no_directions_label', __( 'No route could be found between the origin and destination', 'wpsl' ) ) ); ?>" name="wpsl_label[no_directions]" class="textinput" id="wpsl-no-directions">
435
- </p>
436
- <p>
437
- <label for="wpsl-back"><?php _e( 'Back', 'wpsl' ); ?>:</label>
438
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'back_label', __( 'Back', 'wpsl' ) ) ); ?>" name="wpsl_label[back]" class="textinput" id="wpsl-back">
439
- </p>
440
- <p>
441
- <label for="wpsl-street-view"><?php _e( 'Street view', 'wpsl' ); ?>:</label>
442
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'street_view_label', __( 'Street view', 'wpsl' ) ) ); ?>" name="wpsl_label[street_view]" class="textinput" id="wpsl-street-view">
443
- </p>
444
- <p>
445
- <label for="wpsl-zoom-here"><?php _e( 'Zoom here', 'wpsl' ); ?>:</label>
446
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'zoom_here_label', __( 'Zoom here', 'wpsl' ) ) ); ?>" name="wpsl_label[zoom_here]" class="textinput" id="wpsl-zoom-here">
447
- </p>
448
- <p>
449
- <label for="wpsl-error"><?php _e( 'General error', 'wpsl' ); ?>:</label>
450
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'error_label', __( 'Something went wrong, please try again!', 'wpsl' ) ) ); ?>" name="wpsl_label[error]" class="textinput" id="wpsl-error">
451
- </p>
452
- <p>
453
- <label for="wpsl-limit"><?php _e( 'Query limit error', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'You can raise the %susage limit%s by obtaining an API %skey%s, and fill in the "API key" field at the top of this page.', 'wpsl' ), '<a href="https://developers.google.com/maps/documentation/javascript/usage#usage_limits" target="_blank">', '</a>' ,'<a href="https://developers.google.com/maps/documentation/javascript/tutorial#api_key" target="_blank">', '</a>' ); ?></span></span></label>
454
- <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'limit_label', __( 'API usage limit reached', 'wpsl' ) ) ); ?>" name="wpsl_label[limit]" class="textinput" id="wpsl-limit">
455
- </p>
456
- <p class="submit">
457
- <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
458
- </p>
459
- </div>
460
- </div>
461
- </div>
462
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
463
 
464
- <div class="postbox-container">
465
- <div class="metabox-holder">
466
- <div id="wpsl-tools" class="postbox">
467
- <h3 class="hndle"><span><?php _e( 'Tools', 'wpsl' ); ?></span></h3>
468
- <div class="inside">
469
- <p>
470
- <label for="wpsl-debug"><?php _e( 'Enable store locator debug?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'This disables the WPSL transient cache. %sThe transient cache is only used if the %sLoad locations on page load%s option is enabled.', 'wpsl' ), '<br><br>', '<em>', '</em>' ); ?></span></span></label>
471
- <input type="checkbox" value="" <?php checked( $wpsl_settings['debug'], true ); ?> name="wpsl_tools[debug]" id="wpsl-debug">
472
- </p>
473
- <p>
474
- <label for="wpsl-transient"><?php _e( 'WPSL transients', 'wpsl' ); ?></label>
475
- <a class="button" href="<?php echo wp_nonce_url( admin_url( "edit.php?post_type=wpsl_stores&page=wpsl_settings&action=clear_wpsl_transients" ), 'clear_transients' ); ?>"><?php _e( 'Clear store locator transient cache', 'wpsl' ); ?></a>
476
- </p>
477
- <p class="submit">
478
- <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
479
- </p>
 
480
  </div>
481
- </div>
482
- </div>
483
- </div>
484
-
485
- <?php settings_fields( 'wpsl_settings' ); ?>
486
- </form>
 
 
 
487
  </div>
2
  if ( !defined( 'ABSPATH' ) ) exit;
3
 
4
  global $wpdb, $wpsl, $wpsl_admin, $wp_version, $wpsl_settings;
5
+
6
+ //@todo make settings sections more dynamic with do_actions etc. Look into split sections into tabs?
7
+ //@todo when the wpsl menu contains the extra add-on page, maybe move the license tab to the add-ons page instead of having them here?
8
  ?>
9
 
10
  <div id="wpsl-wrap" class="wrap wpsl-settings <?php if ( floatval( $wp_version ) < 3.8 ) { echo 'wpsl-pre-38'; } // Fix CSS issue with < 3.8 versions ?>">
11
  <h2>WP Store Locator <?php _e( 'Settings', 'wpsl' ); ?></h2>
12
+ <?php
13
+ settings_errors();
14
+
15
+ $current_tab = isset( $_GET['tab'] ) ? $_GET['tab'] : '';
16
+ $wpsl_licenses = apply_filters( 'wpsl_license_settings', array() );
17
+
18
+ if ( $wpsl_licenses ) {
19
+ $tabs = array( 'general', 'licenses' );
20
 
21
+ echo '<h2 id="wpsl-tabs" class="nav-tab-wrapper">';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
+ foreach ( $tabs as $name ) {
24
+ if ( !$current_tab && $name == 'general' || $current_tab == $name ) {
25
+ $active_tab = 'nav-tab-active';
26
+ } else {
27
+ $active_tab = '';
28
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
 
30
+ echo '<a class="nav-tab ' . $active_tab . '" title="' . ucfirst( $name ) . '" href="' . admin_url( 'edit.php?post_type=wpsl_stores&page=wpsl_settings&tab=' . $name ) . '">' . ucfirst( $name ) . '</a>';
31
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
+ echo '</h2>';
34
+ }
35
+
36
+ if ( $current_tab == 'licenses' ) {
37
+ ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
 
39
+ <form action="" method="post">
40
+ <table class="wp-list-table widefat">
41
+ <thead>
42
+ <tr>
43
+ <th scope="col"><?php _e( 'Add-On', 'wpsl' ); ?></th>
44
+ <th scope="col"><?php _e( 'License Key', 'wpsl' ); ?></th>
45
+ <th scope="col"><?php _e( 'License Expiry Date', 'wpsl' ); ?></th>
46
+ </tr>
47
+ </thead>
48
+ <tbody id="the-list">
49
+ <?php
50
+ foreach ( $wpsl_licenses as $wpsl_license ) {
51
+ $key = ( $wpsl_license['status'] == 'valid' ) ? esc_attr( $wpsl_license['key'] ) : '';
52
+
53
+ echo '<tr>';
54
+ echo '<td>' . esc_html( $wpsl_license['name'] ) . '</td>';
55
+ echo '<td>';
56
+ echo '<input type="text" value="' . $key . '" name="wpsl_licenses[' . esc_attr( $wpsl_license['short_name'] ) . ']" />';
57
+
58
+ if ( $wpsl_license['status'] == 'valid' ) {
59
+ echo '<input type="submit" class="button-secondary" name="' . esc_attr( $wpsl_license['short_name'] ) . '_license_key_deactivate" value="' . __( 'Deactivate License', 'wpsl' ) . '"/>';
60
+ }
61
+
62
+ wp_nonce_field( $wpsl_license['short_name'] . '_license-nonce', $wpsl_license['short_name'] . '_license-nonce' );
63
+
64
+ echo '</td>';
65
+ echo '<td>';
66
+
67
+ if ( $wpsl_license['expiration'] && $wpsl_license['status'] == 'valid' ) {
68
+ echo esc_html( date_i18n( get_option( 'date_format' ), strtotime( $wpsl_license['expiration'] ) ) );
69
+ }
70
+
71
+ echo '</td>';
72
+ echo '</tr>';
73
+ }
74
+ ?>
75
+ </tbody>
76
+ </table>
77
+
78
+ <p class="submit">
79
+ <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button button-primary" id="submit" name="submit">
80
+ </p>
81
+ </form>
82
+ <?php
83
+ } else {
84
+ ?>
85
+
86
+ <div id="general">
87
+ <form id="wpsl-settings-form" method="post" action="options.php" autocomplete="off" accept-charset="utf-8">
88
+ <div class="postbox-container">
89
+ <div class="metabox-holder">
90
+ <div id="wpsl-api-settings" class="postbox">
91
+ <h3 class="hndle"><span><?php _e( 'Google Maps API', 'wpsl' ); ?></span></h3>
92
+ <div class="inside">
93
+ <p>
94
+ <label for="wpsl-api-key"><?php _e( 'API key', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'A valid %sAPI key%s allows you to monitor the API usage and is required if you need to purchase additional quota.', 'wpsl' ), '<a href="https://developers.google.com/maps/documentation/javascript/tutorial#api_key" target="_blank">', '</a>' ); ?></span></span></label>
95
+ <input type="text" value="<?php echo esc_attr( $wpsl_settings['api_key'] ); ?>" name="wpsl_api[key]" placeholder="<?php _e( 'Optional', 'wpsl' ); ?>" class="textinput" id="wpsl-api-key">
96
+ </p>
97
+ <p>
98
+ <label for="wpsl-api-language"><?php _e( 'Map language', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php _e( 'If no map language is selected the browser\'s prefered language is used.', 'wpsl' ); ?></span></span></label>
99
+ <select id="wpsl-api-language" name="wpsl_api[language]">
100
+ <?php echo $wpsl_admin->settings_page->get_api_option_list( 'language' ); ?>
101
+ </select>
102
+ </p>
103
+ <p>
104
+ <label for="wpsl-api-region"><?php _e( 'Map region', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'This will bias the %sgeocoding%s results towards the selected region. %s If no region is selected the bias is set to the United States.', 'wpsl' ), '<a href="https://developers.google.com/maps/documentation/javascript/geocoding#Geocoding">', '</a>', '<br><br>' ); ?></span></span></label>
105
+ <select id="wpsl-api-region" name="wpsl_api[region]">
106
+ <?php echo $wpsl_admin->settings_page->get_api_option_list( 'region' ); ?>
107
+ </select>
108
+ </p>
109
+ <p id="wpsl-geocode-component" <?php if ( !$wpsl_settings['api_region'] ) { echo 'style="display:none;"'; } ?>>
110
+ <label for="wpsl-api-component"><?php _e( 'Restrict the geocoding results to the selected map region?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'If the %sgeocoding%s API finds more relevant results outside of the set map region ( some location names exist in multiple regions ), the user will likely see a "No results found" message. %s To rule this out you can restrict the results to the set map region. %s You can modify the used restrictions with %sthis%s filter.', 'wpsl' ), '<a href="https://developers.google.com/maps/documentation/javascript/geocoding#Geocoding">', '</a>', '<br><br>', '<br><br>', '<a href="http://wpstorelocator.co/document/wpsl_geocode_components">', '</a>' ); ?></span></span></label>
111
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['api_geocode_component'], true ); ?> name="wpsl_api[geocode_component]" id="wpsl-api-component">
112
+ </p>
113
+ <p class="submit">
114
+ <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
115
+ </p>
116
+ </div>
117
  </div>
118
+ </div>
119
+ </div>
 
120
 
121
+ <div class="postbox-container wpsl-search-settings">
122
+ <div class="metabox-holder">
123
+ <div id="wpsl-search-settings" class="postbox">
124
+ <h3 class="hndle"><span><?php _e( 'Search', 'wpsl' ); ?></span></h3>
125
+ <div class="inside">
126
+ <p>
127
+ <label for="wpsl-results-dropdown"><?php _e( 'Show the max results dropdown?', 'wpsl' ); ?></label>
128
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['results_dropdown'], true ); ?> name="wpsl_search[results_dropdown]" id="wpsl-results-dropdown">
129
+ </p>
130
+ <p>
131
+ <label for="wpsl-radius-dropdown"><?php _e( 'Show the search radius dropdown?', 'wpsl' ); ?></label>
132
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['radius_dropdown'], true ); ?> name="wpsl_search[radius_dropdown]" id="wpsl-radius-dropdown">
133
+ </p>
134
+ <p>
135
+ <label for="wpsl-category-dropdown"><?php _e( 'Show the category dropdown?', 'wpsl' ); ?></label>
136
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['category_dropdown'], true ); ?> name="wpsl_search[category_dropdown]" id="wpsl-category-dropdown">
137
+ </p>
138
+ <p>
139
+ <label for="wpsl-distance-unit"><?php _e( 'Distance unit', 'wpsl' ); ?>:</label>
140
+ <span class="wpsl-radioboxes">
141
+ <input type="radio" autocomplete="off" value="km" <?php checked( 'km', $wpsl_settings['distance_unit'] ); ?> name="wpsl_search[distance_unit]" id="wpsl-distance-km">
142
+ <label for="wpsl-distance-km"><?php _e( 'km', 'wpsl' ); ?></label>
143
+ <input type="radio" autocomplete="off" value="mi" <?php checked( 'mi', $wpsl_settings['distance_unit'] ); ?> name="wpsl_search[distance_unit]" id="wpsl-distance-mi">
144
+ <label for="wpsl-distance-mi"><?php _e( 'mi', 'wpsl' ); ?></label>
145
+ </span>
146
+ </p>
147
+ <p>
148
+ <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>
149
+ <input type="text" value="<?php echo esc_attr( $wpsl_settings['max_results'] ); ?>" name="wpsl_search[max_results]" class="textinput" id="wpsl-max-results">
150
+ </p>
151
+ <p>
152
+ <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>
153
+ <input type="text" value="<?php echo esc_attr( $wpsl_settings['search_radius'] ); ?>" name="wpsl_search[radius]" class="textinput" id="wpsl-search-radius">
154
+ </p>
155
+ <p class="submit">
156
+ <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
157
+ </p>
158
+ </div>
159
+ </div>
160
+ </div>
161
+ </div>
162
+
163
+ <div class="postbox-container">
164
+ <div class="metabox-holder">
165
+ <div id="wpsl-map-settings" class="postbox">
166
+ <h3 class="hndle"><span><?php _e( 'Map', 'wpsl' ); ?></span></h3>
167
+ <div class="inside">
168
+ <p>
169
+ <label for="wpsl-auto-locate"><?php _e( 'Attempt to auto-locate the user', 'wpsl' ); ?>:</label>
170
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['auto_locate'], true ); ?> name="wpsl_map[auto_locate]" id="wpsl-auto-locate">
171
+ </p>
172
+ <p>
173
+ <label for="wpsl-autoload"><?php _e( 'Load locations on page load', 'wpsl' ); ?>:</label>
174
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['autoload'], true ); ?> name="wpsl_map[autoload]" id="wpsl-autoload">
175
+ </p>
176
+ <p id="wpsl-autoload-options" <?php if ( !$wpsl_settings['autoload'] ) { echo 'style="display:none;"'; } ?>>
177
+ <label for="wpsl-autoload-limit"><?php _e( 'Number of locations to show', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'Although the location data is cached after the first load, a lower number will result in the map being more responsive. %s If this field is left empty or set to 0, then all locations are loaded.', 'wpsl' ), '<br><br>' ); ?></span></span></label>
178
+ <input type="text" value="<?php echo esc_attr( $wpsl_settings['autoload_limit'] ); ?>" name="wpsl_map[autoload_limit]" class="textinput" id="wpsl-autoload-limit">
179
+ </p>
180
+ <p>
181
+ <label for="wpsl-zoom-name"><?php _e( 'Start point', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( '%sRequired field.%s %s If auto-locating the user is disabled or fails, the center of the provided city or country will be used as the initial starting point for the user.', 'wpsl' ), '<strong>', '</strong>', '<br><br>' ); ?></span></span></label>
182
+ <input type="text" value="<?php echo esc_attr( $wpsl_settings['zoom_name'] ); ?>" name="wpsl_map[zoom_name]" class="textinput" id="wpsl-zoom-name">
183
+ <input type="hidden" value="<?php echo esc_attr( $wpsl_settings['zoom_latlng'] ); ?>" name="wpsl_map[zoom_latlng]" id="wpsl-latlng" />
184
+ </p>
185
+ <p>
186
+ <label for="wpsl-zoom-level"><?php _e( 'Initial zoom level', 'wpsl' ); ?>:</label>
187
+ <?php echo $wpsl_admin->settings_page->show_zoom_levels(); ?>
188
+ </p>
189
+ <p>
190
+ <label for="wpsl-max-zoom-level"><?php _e( 'Max auto zoom level', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'This value sets the zoom level for the "Zoom here" link in the info window. %s It is also used to limit the zooming when the viewport of the map is changed to make all the markers fit on the screen.', 'wpsl' ), '<br><br>' ); ?></span></span></label>
191
+ <?php echo $wpsl_admin->settings_page->create_dropdown( 'max_zoom_level' ); ?>
192
+ </p>
193
+ <p>
194
+ <label for="wpsl-streetview"><?php _e( 'Show the street view controls?', 'wpsl' ); ?></label>
195
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['streetview'], true ); ?> name="wpsl_map[streetview]" id="wpsl-streetview">
196
+ </p>
197
+ <p>
198
+ <label for="wpsl-type-control"><?php _e( 'Show the map type control?', 'wpsl' ); ?></label>
199
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['type_control'], true ); ?> name="wpsl_map[type_control]" id="wpsl-type-control">
200
+ </p>
201
+ <p>
202
+ <label for="wpsl-scollwheel-zoom"><?php _e( 'Enable scroll wheel zooming?', 'wpsl' ); ?></label>
203
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['scrollwheel'], true ); ?> name="wpsl_map[scrollwheel]" id="wpsl-scollwheel-zoom">
204
+ </p>
205
+ <p>
206
+ <label><?php _e( 'Zoom control position', 'wpsl' ); ?>:</label>
207
+ <span class="wpsl-radioboxes">
208
+ <input type="radio" autocomplete="off" value="left" <?php checked( 'left', $wpsl_settings['control_position'], true ); ?> name="wpsl_map[control_position]" id="wpsl-control-left">
209
+ <label for="wpsl-control-left"><?php _e( 'Left', 'wpsl' ); ?></label>
210
+ <input type="radio" autocomplete="off" value="right" <?php checked( 'right', $wpsl_settings['control_position'], true ); ?> name="wpsl_map[control_position]" id="wpsl-control-right">
211
+ <label for="wpsl-control-right"><?php _e( 'Right', 'wpsl' ); ?></label>
212
+ </span>
213
+ </p>
214
+ <p>
215
+ <label for="wpsl-map-type"><?php _e( 'Map type', 'wpsl' ); ?>:</label>
216
+ <?php echo $wpsl_admin->settings_page->create_dropdown( 'map_types' ); ?>
217
+ </p>
218
+ <p>
219
+ <label for="wpsl-map-style"><?php _e( 'Map style', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php _e( 'Custom map styles only work if the map type is set to "Roadmap" or "Terrain".', 'wpsl' ); ?></span></span></label>
220
+ </p>
221
+ <div class="wpsl-style-input">
222
+ <p><?php echo sprintf( __( 'You can use existing map styles from %sSnazzy Maps%s or %sMap Stylr%s and paste it in the textarea below, or you can generate a custom map style through the %sMap Style Editor%s or %sStyled Maps Wizard%s.', 'wpsl' ), '<a target="_blank" href="http://snazzymaps.com">', '</a>', '<a target="_blank" href="http://mapstylr.com">', '</a>', '<a target="_blank" href="http://mapstylr.com/map-style-editor/">', '</a>', '<a target="_blank" href="http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html">', '</a>' ); ?></p>
223
+ <p><?php echo sprintf( __( 'If you like to write the style code yourself, then you can find the documentation from Google %shere%s.', 'wpsl' ), '<a target="_blank" href="https://developers.google.com/maps/documentation/javascript/styling">', '</a>' ); ?></p>
224
+ <textarea id="wpsl-map-style" name="wpsl_map[map_style]"><?php echo strip_tags( stripslashes( json_decode( $wpsl_settings['map_style'] ) ) ); ?></textarea>
225
+ <input type="submit" value="<?php _e( 'Preview Map Style', 'wpsl' ); ?>" class="button-primary" name="wpsl-style-preview" id="wpsl-style-preview">
226
  </div>
227
+ <div id="wpsl-gmap-wrap" class="wpsl-styles-preview"></div>
228
+ <p>
229
+ <label for="wpsl-show-credits"><?php _e( 'Show credits?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php _e( 'This will place a "Search provided by WP Store Locator" backlink below the map.', 'wpsl' ); ?></span></span></label>
230
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['show_credits'], true ); ?> name="wpsl_credits" id="wpsl-show-credits">
231
+ </p>
232
+ <p class="submit">
233
+ <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
234
+ </p>
235
+ </div>
236
+ </div>
237
+ </div>
238
+ </div>
239
+
240
+ <div class="postbox-container">
241
+ <div class="metabox-holder">
242
+ <div id="wpsl-user-experience" class="postbox">
243
+ <h3 class="hndle"><span><?php _e( 'User Experience', 'wpsl' ); ?></span></h3>
244
+ <div class="inside">
245
+ <p>
246
+ <label for="wpsl-design-height"><?php _e( 'Store Locator height', 'wpsl' ); ?>:</label>
247
+ <input size="3" value="<?php echo esc_attr( $wpsl_settings['height'] ); ?>" id="wpsl-design-height" name="wpsl_ux[height]"> px
248
+ </p>
249
+ <p>
250
+ <label for="wpsl-infowindow-width"><?php _e( 'Max width for the info window content', 'wpsl' ); ?>:</label>
251
+ <input size="3" value="<?php echo esc_attr( $wpsl_settings['infowindow_width'] ); ?>" id="wpsl-infowindow-width" name="wpsl_ux[infowindow_width]"> px
252
+ </p>
253
+ <p>
254
+ <label for="wpsl-search-width"><?php _e( 'Search field width', 'wpsl' ); ?>:</label>
255
+ <input size="3" value="<?php echo esc_attr( $wpsl_settings['search_width'] ); ?>" id="wpsl-search-width" name="wpsl_ux[search_width]"> px
256
+ </p>
257
+ <p>
258
+ <label for="wpsl-label-width"><?php _e( 'Search and radius label width', 'wpsl' ); ?>:</label>
259
+ <input size="3" value="<?php echo esc_attr( $wpsl_settings['label_width'] ); ?>" id="wpsl-label-width" name="wpsl_ux[label_width]"> px
260
+ </p>
261
+ <p>
262
+ <label for="wpsl-store-template"><?php _e( 'Store Locator template', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'The selected template is used with the [wpsl] shortcode. %s You can add a custom template with the %swpsl_templates%s filter.', 'wpsl' ), '<br><br>', '<a href="http://wpstorelocator.co/document/wpsl_templates/">', '</a>' ); ?></span></span></label>
263
+ <?php echo $wpsl_admin->settings_page->show_template_options(); ?>
264
+ </p>
265
+ <p id="wpsl-listing-below-no-scroll" <?php if ( $wpsl_settings['template_id'] != 'below_map' ) { echo 'style="display:none;"'; } ?>>
266
+ <label for="wpsl-more-info-list"><?php _e( 'Hide the scrollbar?', 'wpsl' ); ?></label>
267
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['listing_below_no_scroll'], true ); ?> name="wpsl_ux[listing_below_no_scroll]" id="wpsl-listing-below-no-scroll">
268
+ </p>
269
+ <p>
270
+ <label for="wpsl-new-window"><?php _e( 'Open links in a new window?', 'wpsl' ); ?></label>
271
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['new_window'], true ); ?> name="wpsl_ux[new_window]" id="wpsl-new-window">
272
+ </p>
273
+ <p>
274
+ <label for="wpsl-reset-map"><?php _e( 'Show a reset map button?', 'wpsl' ); ?></label>
275
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['reset_map'], true ); ?> name="wpsl_ux[reset_map]" id="wpsl-reset-map">
276
+ </p>
277
+ <p>
278
+ <label for="wpsl-direction-redirect"><?php _e( 'When a user clicks on "Directions", open a new window, and show the route on google.com/maps ?', 'wpsl' ); ?></label>
279
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['direction_redirect'], true ); ?> name="wpsl_ux[direction_redirect]" id="wpsl-direction-redirect">
280
+ </p>
281
+ <p>
282
+ <label for="wpsl-more-info"><?php _e( 'Show a "More info" link in the store listings?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'This places a "More Info" link below the address and will show the phone, fax, email, opening hours and description once the link is clicked. %s If you for example want the contact details to always be visible, then please follow the instructions on %sthis%s page.', 'wpsl' ), '<br><br>', '<a href="http://wpstorelocator.co/document/include-contact-details-in-search-results/">', '</a>' ); ?></span></span></label>
283
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['more_info'], true ); ?> name="wpsl_ux[more_info]" id="wpsl-more-info">
284
+ </p>
285
+ <p id="wpsl-more-info-options" <?php if ( !$wpsl_settings['more_info'] ) { echo 'style="display:none;"'; } ?>>
286
+ <label for="wpsl-more-info-list"><?php _e( 'Where do you want to show the "More info" details?', 'wpsl' ); ?></label>
287
+ <?php echo $wpsl_admin->settings_page->create_dropdown( 'more_info' ); ?>
288
+ </p>
289
+ <p>
290
+ <label for="wpsl-store-url"><?php _e( 'Make the store name clickable if a store URL exists?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'If %spermalinks%s are enabled, the store name will always link to the store page.', 'wpsl' ), '<a href="' . admin_url( 'edit.php?post_type=wpsl_stores&page=wpsl_settings#wpsl-permalink-settings' ) . '">', '</a>' ); ?></span></span></label>
291
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['store_url'], true ); ?> name="wpsl_ux[store_url]" id="wpsl-store-url">
292
+ </p>
293
+ <p>
294
+ <label for="wpsl-phone-url"><?php _e( 'Make the phone number clickable on mobile devices?', 'wpsl' ); ?></label>
295
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['phone_url'], true ); ?> name="wpsl_ux[phone_url]" id="wpsl-phone-url">
296
+ </p>
297
+ <p>
298
+ <label for="wpsl-marker-streetview"><?php _e( 'If street view is available for the current location, then show a "Street view" link in the info window?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'Enabling this option can sometimes result in a small delay in the opening of the info window. %s This happens because an API request is made to Google Maps to check if street view is available for the current location.', 'wpsl' ), '<br><br>' ); ?></span></span></label>
299
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['marker_streetview'], true ); ?> name="wpsl_ux[marker_streetview]" id="wpsl-marker-streetview">
300
+ </p>
301
+ <p>
302
+ <label for="wpsl-marker-zoom-to"><?php _e( 'Show a "Zoom here" link in the info window?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'Clicking this link will make the map zoom in to the %s max auto zoom level %s.', 'wpsl' ), '<a href="#wpsl-zoom-level">', '</a>' ); ?></span></span></label>
303
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['marker_zoom_to'], true ); ?> name="wpsl_ux[marker_zoom_to]" id="wpsl-marker-zoom-to">
304
+ </p>
305
+ <p>
306
+ <label for="wpsl-mouse-focus"><?php _e( 'On page load move the mouse cursor to the search field?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'If the store locator is not placed at the top of the page, enabling this feature can result in the page scrolling down. %s %sThis option is disabled on mobile devices.%s', 'wpsl' ), '<br><br>', '<em>', '</em>' ); ?></span></span></label>
307
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['mouse_focus'], true ); ?> name="wpsl_ux[mouse_focus]" id="wpsl-mouse-focus">
308
+ </p>
309
+ <p>
310
+ <label for="wpsl-infowindow-style"><?php _e( 'Use the default style for the info window?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'If the default style is disabled the %sInfoBox%s library will be used instead. %s This enables you to easily change the look and feel of the info window through the .wpsl-infobox css class.', 'wpsl' ), '<a href="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/reference.html" target="_blank">', '</a>', '<br><br>' ); ?></span></span></label>
311
+ <input type="checkbox" value="default" <?php checked( $wpsl_settings['infowindow_style'], 'default' ); ?> name="wpsl_ux[infowindow_style]" id="wpsl-infowindow-style">
312
+ </p>
313
+ <p>
314
+ <label for="wpsl-hide-distance"><?php _e( 'Hide the distance in the search results?', 'wpsl' ); ?></label>
315
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['hide_distance'], true ); ?> name="wpsl_ux[hide_distance]" id="wpsl-hide-distance">
316
+ </p>
317
+ <p>
318
+ <label for="wpsl-bounce"><?php _e( 'If a user hovers over the search results the store marker', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'If marker clusters are enabled this option will not work as expected as long as the markers are clustered. %s The bouncing of the marker won\'t be visible at all unless a user zooms in far enough for the marker cluster to change back in to individual markers. %s The info window will open as expected, but it won\'t be clear to which marker it belongs to. ', 'wpsl' ), '<br><br>' , '<br><br>' ); ?></span></span></label>
319
+ <?php echo $wpsl_admin->settings_page->create_dropdown( 'marker_effects' ); ?>
320
+ </p>
321
+ <p>
322
+ <label for="wpsl-address-format"><?php _e( 'Address format', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'You can add custom address formats with the %swpsl_address_formats%s filter.', 'wpsl' ), '<a href="http://wpstorelocator.co/document/wpsl_address_formats/">', '</a>' ); ?></span></span></label>
323
+ <?php echo $wpsl_admin->settings_page->create_dropdown( 'address_format' ); ?>
324
+ </p>
325
+ <p class="submit">
326
+ <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
327
+ </p>
328
+ </div>
329
+ </div>
330
+ </div>
331
+ </div>
332
+
333
+ <div class="postbox-container">
334
+ <div class="metabox-holder">
335
+ <div id="wpsl-marker-settings" class="postbox">
336
+ <h3 class="hndle"><span><?php _e( 'Markers', 'wpsl' ); ?></span></h3>
337
+ <div class="inside">
338
+ <?php echo $wpsl_admin->settings_page->show_marker_options(); ?>
339
+ <p>
340
+ <label for="wpsl-marker-clusters"><?php _e( 'Enable marker clusters?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php _e( 'Recommended for maps with a large amount of markers.', 'wpsl' ); ?></span></span></label>
341
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['marker_clusters'], true ); ?> name="wpsl_map[marker_clusters]" id="wpsl-marker-clusters">
342
+ </p>
343
+ <p class="wpsl-cluster-options" <?php if ( !$wpsl_settings['marker_clusters'] ) { echo 'style="display:none;"'; } ?>>
344
+ <label for="wpsl-marker-zoom"><?php _e( 'Max zoom level', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php _e( 'If this zoom level is reached or exceeded, then all markers are moved out of the marker cluster and shown as individual markers.', 'wpsl' ); ?></span></span></label>
345
+ <?php echo $wpsl_admin->settings_page->show_cluster_options( 'cluster_zoom' ); ?>
346
+ </p>
347
+ <p class="wpsl-cluster-options" <?php if ( !$wpsl_settings['marker_clusters'] ) { echo 'style="display:none;"'; } ?>>
348
+ <label for="wpsl-marker-cluster-size"><?php _e( 'Cluster size', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'The grid size of a cluster in pixels. %s A larger number will result in a lower amount of clusters and also make the algorithm run faster.', 'wpsl' ), '<br><br>' ); ?></span></span></label>
349
+ <?php echo $wpsl_admin->settings_page->show_cluster_options( 'cluster_size' ); ?>
350
+ </p>
351
+ <p class="submit">
352
+ <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
353
+ </p>
354
+ </div>
355
+ </div>
356
+ </div>
357
+ </div>
358
+
359
+ <div class="postbox-container">
360
+ <div class="metabox-holder">
361
+ <div id="wpsl-store-editor-settings" class="postbox">
362
+ <h3 class="hndle"><span><?php _e( 'Store Editor', 'wpsl' ); ?></span></h3>
363
+ <div class="inside">
364
+ <p>
365
+ <label for="wpsl-editor-country"><?php _e( 'Default country', 'wpsl' ); ?>:</label>
366
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'editor_country', '' ) ); ?>" name="wpsl_editor[default_country]" class="textinput" id="wpsl-editor-country">
367
+ </p>
368
+ <p>
369
+ <label for="wpsl-editor-map-type"><?php _e( 'Map type for the location preview', 'wpsl' ); ?>:</label>
370
+ <?php echo $wpsl_admin->settings_page->create_dropdown( 'editor_map_types' ); ?>
371
+ </p>
372
+ <p>
373
+ <label for="wpsl-editor-hide-hours"><?php _e( 'Hide the opening hours?', 'wpsl' ); ?></label>
374
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['hide_hours'], true ); ?> name="wpsl_editor[hide_hours]" id="wpsl-editor-hide-hours">
375
+ </p>
376
+ <div class="wpsl-hours" <?php if ( $wpsl_settings['hide_hours'] ) { echo 'style="display:none"'; } ?>>
377
+ <?php if ( get_option( 'wpsl_legacy_support' ) ) { // Is only set for users who upgraded from 1.x ?>
378
  <p>
379
+ <label for="wpsl-editor-hour-input"><?php _e( 'Opening hours input type', 'wpsl' ); ?>:</label>
380
+ <?php echo $wpsl_admin->settings_page->create_dropdown( 'hour_input' ); ?>
381
+ </p>
382
+ <p class="wpsl-hour-notice <?php if ( $wpsl_settings['editor_hour_input'] !== 'dropdown' ) { echo 'style="display:none"'; } ?>">
383
+ <em><?php echo sprintf( __( 'Opening hours created in version 1.x %sare not%s automatically converted to the new dropdown format.', 'wpsl' ), '<strong>', '</strong>' ); ?></em>
384
  </p>
385
+ <div class="wpsl-textarea-hours" <?php if ( $wpsl_settings['editor_hour_input'] !== 'textarea' ) { echo 'style="display:none"'; } ?>>
386
+ <p class="wpsl-default-hours"><strong><?php _e( 'The default opening hours', 'wpsl' ); ?></strong></p>
387
+ <textarea rows="5" cols="5" name="wpsl_editor[textarea]" id="wpsl-textarea-hours"><?php if ( isset( $wpsl_settings['editor_hours']['textarea'] ) ) { echo esc_textarea( stripslashes( $wpsl_settings['editor_hours']['textarea'] ) ); } ?></textarea>
388
+ </div>
389
+ <?php } ?>
390
+ <div class="wpsl-dropdown-hours" <?php if ( $wpsl_settings['editor_hour_input'] !== 'dropdown' ) { echo 'style="display:none"'; } ?>>
391
+ <p>
392
+ <label for="wpsl-editor-hour-format"><?php _e( 'Opening hours format', 'wpsl' ); ?>:</label>
393
+ <?php echo $wpsl_admin->settings_page->show_opening_hours_format(); ?>
394
+ </p>
395
+ <p class="wpsl-default-hours"><strong><?php _e( 'The default opening hours', 'wpsl' ); ?></strong></p>
396
+ <?php echo $wpsl_admin->metaboxes->opening_hours( 'settings' ); ?>
397
+ </div>
398
  </div>
399
+ <p><em><?php _e( 'The default country and opening hours are only used when a new store is created. So changing the default values will have no effect on existing store locations.', 'wpsl' ); ?></em></p>
 
 
 
 
 
 
 
 
 
400
 
401
+ <p class="submit">
402
+ <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
403
+ </p>
404
+ </div>
405
+ </div>
406
+ </div>
407
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
408
 
409
+ <div class="postbox-container">
410
+ <div class="metabox-holder">
411
+ <div id="wpsl-permalink-settings" class="postbox">
412
+ <h3 class="hndle"><span><?php _e( 'Permalink', 'wpsl' ); ?></span></h3>
413
+ <div class="inside">
414
+ <p>
415
+ <label for="wpsl-permalinks-active"><?php _e( 'Enable permalink?', 'wpsl' ); ?></label>
416
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['permalinks'], true ); ?> name="wpsl_permalinks[active]" id="wpsl-permalinks-active">
417
+ </p>
418
+ <p class="wpsl-permalink-option" <?php if ( !$wpsl_settings['permalinks'] ) { echo 'style="display:none;"'; } ?>>
419
+ <label for="wpsl-permalinks-slug"><?php _e( 'Store slug', 'wpsl' ); ?>:</label>
420
+ <input type="text" value="<?php echo esc_attr( $wpsl_settings['permalink_slug'] ); ?>" name="wpsl_permalinks[slug]" class="textinput" id="wpsl-permalinks-slug">
421
+ </p>
422
+ <p class="wpsl-permalink-option" <?php if ( !$wpsl_settings['permalinks'] ) { echo 'style="display:none;"'; } ?>>
423
+ <label for="wpsl-category-slug"><?php _e( 'Category slug', 'wpsl' ); ?>:</label>
424
+ <input type="text" value="<?php echo esc_attr( $wpsl_settings['category_slug'] ); ?>" name="wpsl_permalinks[category_slug]" class="textinput" id="wpsl-category-slug">
425
+ </p>
426
+ <em class="wpsl-permalink-option"><?php echo sprintf( __( 'The permalink slugs %smust be unique%s on your site.', 'wpsl' ), '<strong>', '</strong>' ); ?></em>
427
+ <p class="submit">
428
+ <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
429
+ </p>
430
+ </div>
431
+ </div>
432
+ </div>
433
+ </div>
434
+
435
+ <div class="postbox-container">
436
+ <div class="metabox-holder">
437
+ <div id="wpsl-label-settings" class="postbox">
438
+ <h3 class="hndle"><span><?php _e( 'Labels', 'wpsl' ); ?></span></h3>
439
+ <div class="inside">
440
+ <?php
441
+ /*
442
+ * Show a msg to make sure that when a WPML compatible plugin
443
+ * is active users use the 'String Translations' page to change the labels,
444
+ * instead of the 'Label' section.
445
+ */
446
+ if ( $wpsl->i18n->wpml_exists() ) {
447
+ echo '<p>' . sprintf( __( '%sWarning!%s %sWPML%s, or a plugin using the WPML API is active.', 'wpsl' ), '<strong>', '</strong>', '<a href="https://wpml.org/">', '</a>' ) . '</p>';
448
+ echo '<p>' . __( 'Please use the "String Translations" section in the used multilingual plugin to change the labels. Changing them here will have no effect as long as the multilingual plugin remains active.', 'wpsl' ) . '</p>';
449
+ }
450
+ ?>
451
+ <p>
452
+ <label for="wpsl-search"><?php _e( 'Your location', 'wpsl' ); ?>:</label>
453
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'search_label', __( 'Your location', 'wpsl' ) ) ); ?>" name="wpsl_label[search]" class="textinput" id="wpsl-search">
454
+ </p>
455
+ <p>
456
+ <label for="wpsl-search-radius"><?php _e( 'Search radius', 'wpsl' ); ?>:</label>
457
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'radius_label', __( 'Search radius', 'wpsl' ) ) ); ?>" name="wpsl_label[radius]" class="textinput" id="wpsl-search-radius">
458
+ </p>
459
+ <p>
460
+ <label for="wpsl-no-results"><?php _e( 'No results found', 'wpsl' ); ?>:</label>
461
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'no_results_label', __( 'No results found', 'wpsl' ) ) ); ?>" name="wpsl_label[no_results]" class="textinput" id="wpsl-no-results">
462
+ </p>
463
+ <p>
464
+ <label for="wpsl-search-btn"><?php _e( 'Search', 'wpsl' ); ?>:</label>
465
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'search_btn_label', __( 'Search', 'wpsl' ) ) ); ?>" name="wpsl_label[search_btn]" class="textinput" id="wpsl-search-btn">
466
+ </p>
467
+ <p>
468
+ <label for="wpsl-preloader"><?php _e( 'Searching (preloader text)', 'wpsl' ); ?>:</label>
469
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'preloader_label', __( 'Searching...', 'wpsl' ) ) ); ?>" name="wpsl_label[preloader]" class="textinput" id="wpsl-preloader">
470
+ </p>
471
+ <p>
472
+ <label for="wpsl-results"><?php _e( 'Results', 'wpsl' ); ?>:</label>
473
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'results_label', __( 'Results', 'wpsl' ) ) ); ?>" name="wpsl_label[results]" class="textinput" id="wpsl-results">
474
+ </p>
475
+ <p>
476
+ <label for="wpsl-category"><?php _e( 'Category filter', 'wpsl' ); ?>:</label>
477
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'category_label', __( 'Category', 'wpsl' ) ) ); ?>" name="wpsl_label[category]" class="textinput" id="wpsl-category">
478
+ </p>
479
+ <p>
480
+ <label for="wpsl-more-info"><?php _e( 'More info', 'wpsl' ); ?>:</label>
481
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'more_label', __( 'More info', 'wpsl' ) ) ); ?>" name="wpsl_label[more]" class="textinput" id="wpsl-more-info">
482
+ </p>
483
+ <p>
484
+ <label for="wpsl-phone"><?php _e( 'Phone', 'wpsl' ); ?>:</label>
485
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'phone_label', __( 'Phone', 'wpsl' ) ) ); ?>" name="wpsl_label[phone]" class="textinput" id="wpsl-phone">
486
+ </p>
487
+ <p>
488
+ <label for="wpsl-fax"><?php _e( 'Fax', 'wpsl' ); ?>:</label>
489
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'fax_label', __( 'Fax', 'wpsl' ) ) ); ?>" name="wpsl_label[fax]" class="textinput" id="wpsl-fax">
490
+ </p>
491
+ <p>
492
+ <label for="wpsl-email"><?php _e( 'Email', 'wpsl' ); ?>:</label>
493
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'email_label', __( 'Email', 'wpsl' ) ) ); ?>" name="wpsl_label[email]" class="textinput" id="wpsl-email">
494
+ </p>
495
+ <p>
496
+ <label for="wpsl-url"><?php _e( 'Url', 'wpsl' ); ?>:</label>
497
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'url_label', __( 'Url', 'wpsl' ) ) ); ?>" name="wpsl_label[url]" class="textinput" id="wpsl-url">
498
+ </p>
499
+ <p>
500
+ <label for="wpsl-hours"><?php _e( 'Hours', 'wpsl' ); ?>:</label>
501
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'hours_label', __( 'Hours', 'wpsl' ) ) ); ?>" name="wpsl_label[hours]" class="textinput" id="wpsl-hours">
502
+ </p>
503
+ <p>
504
+ <label for="wpsl-start"><?php _e( 'Start location', 'wpsl' ); ?>:</label>
505
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'start_label', __( 'Start location', 'wpsl' ) ) ); ?>" name="wpsl_label[start]" class="textinput" id="wpsl-start">
506
+ </p>
507
+ <p>
508
+ <label for="wpsl-directions"><?php _e( 'Get directions', 'wpsl' ); ?>:</label>
509
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'directions_label', __( 'Directions', 'wpsl' ) ) ); ?>" name="wpsl_label[directions]" class="textinput" id="wpsl-directions">
510
+ </p>
511
+ <p>
512
+ <label for="wpsl-no-directions"><?php _e( 'No directions found', 'wpsl' ); ?>:</label>
513
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'no_directions_label', __( 'No route could be found between the origin and destination', 'wpsl' ) ) ); ?>" name="wpsl_label[no_directions]" class="textinput" id="wpsl-no-directions">
514
+ </p>
515
+ <p>
516
+ <label for="wpsl-back"><?php _e( 'Back', 'wpsl' ); ?>:</label>
517
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'back_label', __( 'Back', 'wpsl' ) ) ); ?>" name="wpsl_label[back]" class="textinput" id="wpsl-back">
518
+ </p>
519
+ <p>
520
+ <label for="wpsl-street-view"><?php _e( 'Street view', 'wpsl' ); ?>:</label>
521
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'street_view_label', __( 'Street view', 'wpsl' ) ) ); ?>" name="wpsl_label[street_view]" class="textinput" id="wpsl-street-view">
522
+ </p>
523
+ <p>
524
+ <label for="wpsl-zoom-here"><?php _e( 'Zoom here', 'wpsl' ); ?>:</label>
525
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'zoom_here_label', __( 'Zoom here', 'wpsl' ) ) ); ?>" name="wpsl_label[zoom_here]" class="textinput" id="wpsl-zoom-here">
526
+ </p>
527
+ <p>
528
+ <label for="wpsl-error"><?php _e( 'General error', 'wpsl' ); ?>:</label>
529
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'error_label', __( 'Something went wrong, please try again!', 'wpsl' ) ) ); ?>" name="wpsl_label[error]" class="textinput" id="wpsl-error">
530
+ </p>
531
+ <p>
532
+ <label for="wpsl-limit"><?php _e( 'Query limit error', 'wpsl' ); ?>:<span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'You can raise the %susage limit%s by obtaining an API %skey%s, and fill in the "API key" field at the top of this page.', 'wpsl' ), '<a href="https://developers.google.com/maps/documentation/javascript/usage#usage_limits" target="_blank">', '</a>' ,'<a href="https://developers.google.com/maps/documentation/javascript/tutorial#api_key" target="_blank">', '</a>' ); ?></span></span></label>
533
+ <input type="text" value="<?php echo esc_attr( $wpsl->i18n->get_translation( 'limit_label', __( 'API usage limit reached', 'wpsl' ) ) ); ?>" name="wpsl_label[limit]" class="textinput" id="wpsl-limit">
534
+ </p>
535
+ <p class="submit">
536
+ <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
537
+ </p>
538
+ </div>
539
+ </div>
540
+ </div>
541
+ </div>
542
 
543
+ <div class="postbox-container">
544
+ <div class="metabox-holder">
545
+ <div id="wpsl-tools" class="postbox">
546
+ <h3 class="hndle"><span><?php _e( 'Tools', 'wpsl' ); ?></span></h3>
547
+ <div class="inside">
548
+ <p>
549
+ <label for="wpsl-debug"><?php _e( 'Enable store locator debug?', 'wpsl' ); ?><span class="wpsl-info"><span class="wpsl-info-text wpsl-hide"><?php echo sprintf( __( 'This disables the WPSL transient cache. %sThe transient cache is only used if the %sLoad locations on page load%s option is enabled.', 'wpsl' ), '<br><br>', '<em>', '</em>' ); ?></span></span></label>
550
+ <input type="checkbox" value="" <?php checked( $wpsl_settings['debug'], true ); ?> name="wpsl_tools[debug]" id="wpsl-debug">
551
+ </p>
552
+ <p>
553
+ <label for="wpsl-transient"><?php _e( 'WPSL transients', 'wpsl' ); ?></label>
554
+ <a class="button" href="<?php echo wp_nonce_url( admin_url( "edit.php?post_type=wpsl_stores&page=wpsl_settings&action=clear_wpsl_transients" ), 'clear_transients' ); ?>"><?php _e( 'Clear store locator transient cache', 'wpsl' ); ?></a>
555
+ </p>
556
+ <p class="submit">
557
+ <input type="submit" value="<?php _e( 'Save Changes', 'wpsl' ); ?>" class="button-primary">
558
+ </p>
559
+ </div>
560
  </div>
561
+ </div>
562
+ </div>
563
+
564
+ <?php settings_fields( 'wpsl_settings' ); ?>
565
+ </form>
566
+ </div>
567
+
568
+ <?php } ?>
569
+
570
  </div>
admin/upgrade.php CHANGED
@@ -361,7 +361,15 @@ function wpsl_check_upgrade() {
361
 
362
  update_option( 'wpsl_settings', $wpsl_settings );
363
  }
364
-
 
 
 
 
 
 
 
 
365
  update_option( 'wpsl_version', WPSL_VERSION_NUM );
366
  }
367
 
361
 
362
  update_option( 'wpsl_settings', $wpsl_settings );
363
  }
364
+
365
+ if ( version_compare( $current_version, '2.1.0', '<' ) ) {
366
+ if ( empty( $wpsl_settings['api_geocode_component'] ) ) {
367
+ $wpsl_settings['api_geocode_component'] = 0;
368
+ }
369
+
370
+ update_option( 'wpsl_settings', $wpsl_settings );
371
+ }
372
+
373
  update_option( 'wpsl_version', WPSL_VERSION_NUM );
374
  }
375
 
css/styles.min.css CHANGED
@@ -1 +1 @@
1
- #wpsl-wrap,.wpsl-gmap-canvas{margin-bottom:20px;width:100%}#wpsl-result-list a,#wpsl-wrap [class*=" wpsl-icon-"]:focus,#wpsl-wrap [class^=wpsl-icon-]:active{outline:0}#wpsl-map-controls div:hover,#wpsl-reset-map:hover,#wpsl-search-btn:hover,.wpsl-dropdown{cursor:pointer}#wpsl-wrap,.wpsl-clearfix:after,.wpsl-contact-details{clear:both}@font-face{font-family:wpsl-fontello;src:url(../font/fontello.eot?28897909);src:url(../font/fontello.eot?28897909#iefix) format('embedded-opentype'),url(../font/fontello.woff?28897909) format('woff'),url(../font/fontello.ttf?28897909) format('truetype'),url(../font/fontello.svg?28897909#fontello) format('svg');font-weight:400;font-style:normal}#wpsl-gmap{float:right;width:66.5%;height:350px;margin-bottom:0}.wpsl-store-below #wpsl-gmap{float:none;width:100%}.wpsl-gmap-canvas{height:300px}.gm-style-mtc,.gmnoprint{z-index:9999!important}#wpsl-gmap div,#wpsl-gmap img,.wpsl-gmap-canvas div,.wpsl-gmap-canvas img{box-shadow:none!important;max-width:none!important;background:0 0}#wpsl-gmap img,.wpsl-gmap-canvas img{display:inline!important;opacity:1!important;max-height:none!important}#wpsl-wrap{overflow:hidden}#wpsl-search-wrap{float:left;width:100%}#wpsl-gmap #wpsl-map-controls{position:absolute;height:28px;right:10px;bottom:24px;border-radius:2px;z-index:3;font-size:11px;white-space:nowrap;overflow:hidden}#wpsl-gmap #wpsl-map-controls.wpsl-street-view-exists{right:48px}#wpsl-map-controls .wpsl-direction-preloader{margin:5px 5px 0}#wpsl-map-controls div{float:left;background:#fff;border-radius:2px}#wpsl-wrap [class*=" wpsl-icon-"],#wpsl-wrap [class^=wpsl-icon-]{position:relative;float:left;padding:7px 9px 7px 8px;display:inline-block;font-family:wpsl-fontello;font-style:normal;font-weight:400;font-size:1.3em;color:#737373;speak:none;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none;line-height:1em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpsl-map-controls span{font-family:inherit;font-size:inherit}#wpsl-wrap .wpsl-ie [class*=" wpsl-icon-"],#wpsl-wrap .wpsl-ie [class^=wpsl-icon-]{padding:9px 8px 4px}#wpsl-wrap.wpsl-mobile [class*=" wpsl-icon-"],#wpsl-wrap.wpsl-mobile [class^=wpsl-icon-]{padding:8px 10px}#wpsl-wrap .wpsl-icon-reset{border-radius:2px 0 0 2px;z-index:2;padding-left:9px;padding-right:4px}#wpsl-wrap .wpsl-icon-direction{z-index:1}#wpsl-map-controls.wpsl-reset-exists .wpsl-icon-direction{border-radius:0 2px 2px 0}#wpsl-wrap .wpsl-active-icon,#wpsl-wrap [class*=" wpsl-icon-"]:hover,#wpsl-wrap [class^=wpsl-icon-]:hover{color:#000}#wpsl-wrap .wpsl-in-progress,#wpsl-wrap .wpsl-in-progress:hover{color:#c6c6c6}#wpsl-gmap #wpsl-reset-map{position:absolute;display:none;right:37px;top:37px;padding:6px 14px;background:#fff!important;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:2px;z-index:3}.gm-style-cc{word-wrap:normal}#wpsl-search-wrap .wpsl-input,#wpsl-search-wrap .wpsl-select-wrap{display:table}#wpsl-search-btn,#wpsl-search-wrap #wpsl-radius,#wpsl-search-wrap #wpsl-results,#wpsl-search-wrap .wpsl-input input,#wpsl-search-wrap .wpsl-input label{display:table-cell}#wpsl-search-wrap label{margin-bottom:0}#wpsl-search-input{width:179px;height:auto;padding:7px 12px;font-size:100%;margin:0}#wpsl-search-btn,#wpsl-search-wrap input{border:1px solid #d2d2d2;border-radius:3px}#wpsl-search-btn{padding:7px 10px;line-height:1.428571429;font-weight:400;color:#7c7c7c;background-color:#e6e6e6;background-repeat:repeat-x;background-image:-moz-linear-gradient(top,#f4f4f4,#e6e6e6);background-image:-ms-linear-gradient(top,#f4f4f4,#e6e6e6);background-image:-webkit-linear-gradient(top,#f4f4f4,#e6e6e6);background-image:-o-linear-gradient(top,#f4f4f4,#e6e6e6);background-image:linear-gradient(top,#f4f4f4,#e6e6e6);box-shadow:0 1px 2px rgba(64,64,64,.1);text-transform:none!important}#wpsl-search-input.wpsl-error{border:1px solid #bd0028!important}.wpsl-search{margin-bottom:12px;padding:12px 12px 0;background:#f4f3f3}.wpsl-back{display:inline-block}#wpsl-result-list{width:33%;margin-right:.5%}.wpsl-store-below #wpsl-result-list{width:100%;margin:12px 0 0}#wpsl-direction-details,#wpsl-stores{height:350px;overflow-y:auto}#wpsl-direction-details,.wpsl-hide{display:none}#wpsl-result-list p{padding-left:10px}.wpsl-store-below #wpsl-result-list p{padding-left:0}.wpsl-direction-before{margin:14px 0 21px;padding-left:10px}.wpsl-store-below .wpsl-direction-before{padding-left:0}.wpsl-direction-before div{margin-top:10px}#wpsl-wrap #wpsl-result-list li{padding:10px;border-bottom:1px dotted #ccc;margin-left:0;overflow:hidden;list-style:none!important;text-indent:0}#wpsl-wrap.wpsl-store-below #wpsl-result-list li{padding:10px 10px 10px 0}#wpsl-result-list li p{padding-left:0;margin:0 0 20px}.wpsl-store-details.wpsl-store-listing{position:relative;padding-right:20px}.wpsl-store-details.wpsl-store-listing.wpsl-active-details:before,.wpsl-store-details.wpsl-store-listing:before{position:absolute;content:'';bottom:6px;right:0;border-top:5px solid #000;border-left:6px solid transparent;border-right:6px solid transparent}.wpsl-store-details.wpsl-store-listing.wpsl-active-details:before{border-bottom:5px solid #000;border-top:none;border-left:6px solid transparent;border-right:6px solid transparent}#wpsl-stores .wpsl-store-thumb{float:right;border-radius:3px;margin:7px 0 0 10px;padding:0;border:none}.wpsl-direction-index{float:left;width:8%;margin:0 5% 0 0}.wpsl-direction-txt{float:left;width:62%}.wpsl-direction-distance{float:left;width:20%;margin:0 0 0 5%}.wpsl-direction-txt span{display:block;margin-top:10px}.wpsl-country,.wpsl-directions,.wpsl-street{display:block;border-bottom:none!important}#wpsl-wrap #wpsl-result-list li.wpsl-preloader{position:relative;border-bottom:none;padding:10px 10px 10px 35px}.wpsl-preloader img{position:absolute;left:10px;top:50%;margin-top:-8px;box-shadow:none!important;border:none!important}.wpsl-preloader span{float:left;margin:-5px 0 0 11px}#wpsl-search-btn,#wpsl-search-wrap div{margin-right:10px;float:left}#wpsl-search-wrap .wpsl-select-wrap{position:relative;z-index:2;margin-right:0}#wpsl-search-wrap .wpsl-input-field{position:relative}#wpsl-radius,#wpsl-results{float:left;margin-right:15px;display:inline}#wpsl-category{z-index:1;clear:both}#wpsl-search-wrap .wpsl-dropdown div{position:absolute;float:none;margin:-1px 0 0;top:100%;left:-1px;right:-1px;border:1px solid #ccc;background:#fff;border-top:1px solid #eee;border-radius:0 0 3px 3px;opacity:0;overflow:hidden;-webkit-transition:all 150ms ease-in-out;-moz-transition:all 150ms ease-in-out;-ms-transition:all 150ms ease-in-out;transition:all 150ms ease-in-out}#wpsl-search-wrap .wpsl-dropdown.wpsl-active div{opacity:1}#wpsl-search-wrap .wpsl-input label{margin-right:0}#wpsl-radius{margin-right:10px}#wpsl-search select,#wpsl-search-wrap select,.wpsl-direction-details{display:none}#wpsl-search-wrap div label{float:left;margin-right:10px;line-height:32px}#wpsl-results label{width:auto}#wpsl-result-list ul{list-style:none;margin:0;padding:0}#wpsl-gmap .wpsl-info-window,.wpsl-gmap-canvas .wpsl-info-window{max-width:225px}.wpsl-info-window span,.wpsl-more-info-listings span{display:block}.wpsl-info-window .wpsl-no-margin{margin:0}.wpsl-more-info-listings{display:none}.wpsl-info-window span span{display:inline!important}#wpsl-wrap .wpsl-info-window p{margin:0 0 10px}.wpsl-store-hours{margin-top:10px}.wpsl-store-hours strong{display:block}#wpsl-gmap .wpsl-info-actions{display:block;margin:10px 0!important}.wpsl-info-actions a{float:left;margin-right:7px}.wpsl-info-actions .wpsl-zoom-here{margin-right:0}.wpsl-dropdown{position:relative;width:90px;border:1px solid #ccc;background:#fff;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-right:0!important;z-index:2}#wpsl-results .wpsl-dropdown{width:70px}.wpsl-dropdown ul{position:absolute;left:0;width:100%;height:100%;padding:0!important;margin:0!important;list-style:none;overflow:hidden}.wpsl-dropdown:hover{box-shadow:0 0 5px rgba(0,0,0,.15)}.wpsl-dropdown .wpsl-selected-item,.wpsl-dropdown li{position:relative;display:block;line-height:1;color:#000;overflow:hidden;white-space:nowrap}.wpsl-selected-item:after{position:absolute;content:"";right:12px;top:50%;margin-top:-4px;border:6px solid transparent;border-top:8px solid #000}.wpsl-active .wpsl-selected-item:after{margin-top:-10px;border:6px solid transparent;border-bottom:8px solid #000}.wpsl-dropdown li:hover{background:#f8f9f8;position:relative;z-index:3;color:#000}.wpsl-dropdown .wpsl-selected-item,.wpsl-dropdown li,.wpsl-selected-item{list-style:none;padding:9px 12px!important;margin:0!important}.wpsl-selected-dropdown{font-weight:700}.wpsl-clearfix:after,.wpsl-clearfix:before{content:" ";display:table}#wpsl-wrap .wpsl-selected-item{position:static;padding-right:35px!important}#wpsl-category,.wpsl-input,.wpsl-select-wrap{position:relative;margin-bottom:10px}.wpsl-provided-by{float:right;padding:5px 0;text-align:right;font-size:12px;width:100%}#wpsl-wrap .wpsl-results-only label{width:auto}.wpsl-contact-details,.wpsl-location-address,.wpsl-locations-details{margin-bottom:15px}table.wpsl-opening-hours td{vertical-align:top;padding:0 15px 0 0;text-align:left}#wpsl-stores .wpsl-contact-details span,.wpsl_stores .wpsl-contact-details span,table.wpsl-opening-hours time{display:block}table.wpsl-opening-hours{width:auto!important;font-size:100%!important}table.wpsl-opening-hours,table.wpsl-opening-hours td{border:none!important}.wpsl-gmap-canvas .wpsl-infobox{min-width:155px;max-width:350px!important;padding:10px;border-radius:4px;font-size:13px;font-weight:300;border:1px solid #ccc;background:#fff!important}.wpsl-gmap-canvas .wpsl-infobox:after,.wpsl-gmap-canvas .wpsl-infobox:before{position:absolute;content:"";left:40px;bottom:-11px}.wpsl-gmap-canvas .wpsl-infobox:after{border-left:11px solid transparent;border-right:11px solid transparent;border-top:11px solid #fff}.wpsl-gmap-canvas .wpsl-infobox:before{border-left:13px solid transparent;border-right:13px solid transparent;border-top:13px solid #ccc;bottom:-13px;left:38px}@media (max-width:825px){#wpsl-search-input{width:348px}.wpsl-results-only #wpsl-search-wrap .wpsl-dropdown{width:70px}#wpsl-search-wrap .wpsl-input{width:100%;margin-bottom:10px}#wpsl-category label,#wpsl-radius label,.wpsl-cat-results-filter #wpsl-search-wrap .wpsl-input,.wpsl-input label,.wpsl-no-filters #wpsl-search-wrap .wpsl-input,.wpsl-results-only #wpsl-search-wrap .wpsl-input{width:auto}}@media (max-width:720px){#wpsl-search-wrap .wpsl-dropdown{width:114px}}@media (max-width:675px){#wpsl-search-wrap #wpsl-search-btn{float:left;margin:0 5px 0 0}.wpsl-dropdown,.wpsl-results-only #wpsl-search-wrap .wpsl-input{width:100%}.wpsl-search{padding:2%}#wpsl-result-list p,#wpsl-wrap #wpsl-result-list li,.wpsl-direction-before{padding-left:0}.wpsl-input{margin-right:0}#wpsl-gmap,#wpsl-result-list{float:none;width:100%}#wpsl-gmap{margin-bottom:15px;margin-top:10px}#wpsl-result-list,.wpsl-cat-results-filter .wpsl-select-wrap,.wpsl-filter .wpsl-select-wrap{margin-bottom:10px}#wpsl-wrap #wpsl-result-list li.wpsl-preloader{padding-left:25px}.wpsl-preloader img{left:0}#wpsl-stores.wpsl-not-loaded{height:25px}#wpsl-reset-map{top:25px}#wpsl-category,#wpsl-search-btn,.wpsl-input,.wpsl-no-filters #wpsl-search-wrap .wpsl-input,.wpsl-select-wrap{margin-bottom:0}#wpsl-stores.wpsl-no-autoload{height:auto!important}}@media (max-width:570px){#wpsl-search-wrap #wpsl-search-btn{margin-bottom:5px}.wpsl-search{padding:4%}#wpsl-search-input{width:98%!important}.wpsl-cat-results-filter #wpsl-search-input,.wpsl-cat-results-filter #wpsl-search-wrap .wpsl-input,.wpsl-no-results #wpsl-search-input,.wpsl-results-only #wpsl-search-input{width:100%!important}.wpsl-search-btn-wrap{margin-top:15px;clear:both}#wpsl-search-btn,#wpsl-search-wrap div{margin-right:0}#wpsl-search-wrap div label{display:block;width:100%}.wpsl-select-wrap{width:100%}#wpsl-radius,#wpsl-results{width:50%}#wpsl-radius{margin-right:4%}#wpsl-search-wrap .wpsl-dropdown{width:96%!important}.wpsl-no-filters #wpsl-search-input,.wpsl-no-filters #wpsl-search-wrap .wpsl-input{width:100%!important}}
1
+ #wpsl-wrap,.wpsl-gmap-canvas{margin-bottom:20px;width:100%}#wpsl-result-list a,#wpsl-wrap [class*=" wpsl-icon-"]:focus,#wpsl-wrap [class^=wpsl-icon-]:active{outline:0}#wpsl-map-controls div:hover,#wpsl-reset-map:hover,#wpsl-search-btn:hover,.wpsl-dropdown{cursor:pointer}#wpsl-wrap,.wpsl-clearfix:after,.wpsl-contact-details{clear:both}@font-face{font-family:wpsl-fontello;src:url(../font/fontello.eot?28897909);src:url(../font/fontello.eot?28897909#iefix) format('embedded-opentype'),url(../font/fontello.woff?28897909) format('woff'),url(../font/fontello.ttf?28897909) format('truetype'),url(../font/fontello.svg?28897909#fontello) format('svg');font-weight:400;font-style:normal}#wpsl-gmap{float:right;width:66.5%;height:350px;margin-bottom:0}.wpsl-store-below #wpsl-gmap{float:none;width:100%}.wpsl-gmap-canvas{height:300px}.gm-style-mtc,.gmnoprint{z-index:9999!important}#wpsl-gmap div,#wpsl-gmap img,.wpsl-gmap-canvas div,.wpsl-gmap-canvas img{box-shadow:none!important;max-width:none!important;background:0 0}#wpsl-gmap img,.wpsl-gmap-canvas img{display:inline!important;opacity:1!important;max-height:none!important}#wpsl-wrap{overflow:hidden}#wpsl-search-wrap{float:left;width:100%}#wpsl-gmap #wpsl-map-controls{position:absolute;height:28px;right:10px;bottom:24px;border-radius:2px;z-index:3;font-size:11px;white-space:nowrap;overflow:hidden}#wpsl-gmap #wpsl-map-controls.wpsl-street-view-exists{right:48px}#wpsl-map-controls .wpsl-direction-preloader{margin:5px 5px 0}#wpsl-map-controls div{float:left;background:#fff;border-radius:2px}#wpsl-wrap [class*=" wpsl-icon-"],#wpsl-wrap [class^=wpsl-icon-]{position:relative;float:left;padding:7px 9px 7px 8px;display:inline-block;font-family:wpsl-fontello;font-style:normal;font-weight:400;font-size:1.3em;color:#737373;speak:none;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none;line-height:1em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpsl-map-controls span{font-family:inherit;font-size:inherit}#wpsl-wrap .wpsl-ie [class*=" wpsl-icon-"],#wpsl-wrap .wpsl-ie [class^=wpsl-icon-]{padding:9px 8px 4px}#wpsl-wrap.wpsl-mobile [class*=" wpsl-icon-"],#wpsl-wrap.wpsl-mobile [class^=wpsl-icon-]{padding:8px 10px}#wpsl-wrap .wpsl-icon-reset{border-radius:2px 0 0 2px;z-index:2;padding-left:9px;padding-right:4px}#wpsl-wrap .wpsl-icon-direction{z-index:1}#wpsl-map-controls.wpsl-reset-exists .wpsl-icon-direction{border-radius:0 2px 2px 0}#wpsl-wrap .wpsl-active-icon,#wpsl-wrap [class*=" wpsl-icon-"]:hover,#wpsl-wrap [class^=wpsl-icon-]:hover{color:#000}#wpsl-wrap .wpsl-in-progress,#wpsl-wrap .wpsl-in-progress:hover{color:#c6c6c6}#wpsl-gmap #wpsl-reset-map{position:absolute;display:none;right:37px;top:37px;padding:6px 14px;background:#fff!important;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:2px;z-index:3}.gm-style-cc{word-wrap:normal}#wpsl-search-wrap .wpsl-input,#wpsl-search-wrap .wpsl-select-wrap{display:table}#wpsl-search-btn,#wpsl-search-wrap #wpsl-radius,#wpsl-search-wrap #wpsl-results,#wpsl-search-wrap .wpsl-input input,#wpsl-search-wrap .wpsl-input label{display:table-cell}#wpsl-search-wrap label{margin-bottom:0}#wpsl-search-input{width:179px;height:auto;padding:7px 12px;font-size:100%;margin:0}#wpsl-search-btn,#wpsl-search-wrap input{border:1px solid #d2d2d2;border-radius:3px}#wpsl-search-btn{padding:7px 10px;line-height:1.428571429;font-weight:400;color:#7c7c7c;background-color:#e6e6e6;background-repeat:repeat-x;background-image:-moz-linear-gradient(top,#f4f4f4,#e6e6e6);background-image:-ms-linear-gradient(top,#f4f4f4,#e6e6e6);background-image:-webkit-linear-gradient(top,#f4f4f4,#e6e6e6);background-image:-o-linear-gradient(top,#f4f4f4,#e6e6e6);background-image:linear-gradient(top,#f4f4f4,#e6e6e6);box-shadow:0 1px 2px rgba(64,64,64,.1);text-transform:none!important}#wpsl-search-input.wpsl-error{border:1px solid #bd0028!important}.wpsl-search{margin-bottom:12px;padding:12px 12px 0;background:#f4f3f3}.wpsl-back{display:inline-block}#wpsl-result-list{width:33%;margin-right:.5%}.wpsl-store-below #wpsl-result-list{width:100%;margin:12px 0 0}#wpsl-direction-details,#wpsl-stores{height:350px;overflow-y:auto}#wpsl-direction-details,.wpsl-hide{display:none}#wpsl-result-list p{padding-left:10px}.wpsl-store-below #wpsl-result-list p{padding-left:0}.wpsl-direction-before{margin:14px 0 21px;padding-left:10px}.wpsl-store-below .wpsl-direction-before{padding-left:0}.wpsl-direction-before div{margin-top:10px}#wpsl-wrap #wpsl-result-list li{padding:10px;border-bottom:1px dotted #ccc;margin-left:0;overflow:hidden;list-style:none!important;text-indent:0}#wpsl-wrap.wpsl-store-below #wpsl-result-list li{padding:10px 10px 10px 0}#wpsl-result-list li p{padding-left:0;margin:0 0 20px}.wpsl-store-details.wpsl-store-listing{position:relative;padding-right:20px}.wpsl-store-details.wpsl-store-listing.wpsl-active-details:before,.wpsl-store-details.wpsl-store-listing:before{position:absolute;content:'';bottom:6px;right:0;border-top:5px solid #000;border-left:6px solid transparent;border-right:6px solid transparent}.wpsl-store-details.wpsl-store-listing.wpsl-active-details:before{border-bottom:5px solid #000;border-top:none;border-left:6px solid transparent;border-right:6px solid transparent}#wpsl-stores .wpsl-store-thumb{float:right;border-radius:3px;margin:7px 0 0 10px;padding:0;border:none}.wpsl-direction-index{float:left;width:8%;margin:0 5% 0 0}.wpsl-direction-txt{float:left;width:62%}.wpsl-direction-distance{float:left;width:20%;margin:0 0 0 5%}.wpsl-direction-txt span{display:block;margin-top:10px}.wpsl-country,.wpsl-directions,.wpsl-street{display:block;border-bottom:none!important}#wpsl-wrap #wpsl-result-list li.wpsl-preloader{position:relative;border-bottom:none;padding:10px 10px 10px 35px}.wpsl-preloader img{position:absolute;left:10px;top:50%;margin-top:-8px;box-shadow:none!important;border:none!important}.wpsl-preloader span{float:left;margin:-5px 0 0 11px}#wpsl-search-btn,#wpsl-search-wrap div{margin-right:10px;float:left}#wpsl-search-wrap .wpsl-select-wrap{position:relative;z-index:2;margin-right:0}#wpsl-search-wrap .wpsl-input-field{position:relative}#wpsl-radius,#wpsl-results{float:left;margin-right:15px;display:inline}#wpsl-category{z-index:1;clear:both}#wpsl-search-wrap .wpsl-dropdown div{position:absolute;float:none;margin:-1px 0 0;top:100%;left:-1px;right:-1px;border:1px solid #ccc;background:#fff;border-top:1px solid #eee;border-radius:0 0 3px 3px;opacity:0;overflow:hidden;-webkit-transition:all 150ms ease-in-out;-moz-transition:all 150ms ease-in-out;-ms-transition:all 150ms ease-in-out;transition:all 150ms ease-in-out}#wpsl-search-wrap .wpsl-dropdown.wpsl-active div{opacity:1}#wpsl-search-wrap .wpsl-input label{margin-right:0}#wpsl-radius{margin-right:10px}#wpsl-search select,#wpsl-search-wrap select,.wpsl-direction-details{display:none}#wpsl-search-wrap div label{float:left;margin-right:10px;line-height:32px}#wpsl-results label{width:auto}#wpsl-result-list ul{list-style:none;margin:0;padding:0}#wpsl-gmap .wpsl-info-window,.wpsl-gmap-canvas .wpsl-info-window{max-width:225px}.wpsl-info-window span,.wpsl-more-info-listings span{display:block}.wpsl-info-window .wpsl-no-margin{margin:0}.wpsl-more-info-listings{display:none}.wpsl-info-window span span{display:inline!important}#wpsl-wrap .wpsl-info-window p{margin:0 0 10px}.wpsl-store-hours{margin-top:10px}.wpsl-store-hours strong{display:block}#wpsl-gmap .wpsl-info-actions{display:block;margin:10px 0!important}.wpsl-info-actions a{float:left;margin-right:7px}.wpsl-info-actions .wpsl-zoom-here{margin-right:0}.wpsl-dropdown{position:relative;width:90px;border:1px solid #ccc;background:#fff;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-right:0!important;z-index:2}#wpsl-results .wpsl-dropdown{width:70px}.wpsl-dropdown ul{position:absolute;left:0;width:100%;height:100%;padding:0!important;margin:0!important;list-style:none;overflow:hidden}.wpsl-dropdown:hover{box-shadow:0 0 5px rgba(0,0,0,.15)}.wpsl-dropdown .wpsl-selected-item,.wpsl-dropdown li{position:relative;display:block;line-height:1;color:#000;overflow:hidden;white-space:nowrap}.wpsl-selected-item:after{position:absolute;content:"";right:12px;top:50%;margin-top:-4px;border:6px solid transparent;border-top:8px solid #000}.wpsl-active .wpsl-selected-item:after{margin-top:-10px;border:6px solid transparent;border-bottom:8px solid #000}.wpsl-dropdown li:hover{background:#f8f9f8;position:relative;z-index:3;color:#000}.wpsl-dropdown .wpsl-selected-item,.wpsl-dropdown li,.wpsl-selected-item{list-style:none;padding:9px 12px!important;margin:0!important}.wpsl-selected-dropdown{font-weight:700}.wpsl-clearfix:after,.wpsl-clearfix:before{content:" ";display:table}#wpsl-wrap .wpsl-selected-item{position:static;padding-right:35px!important}#wpsl-category,.wpsl-input,.wpsl-select-wrap{position:relative;margin-bottom:10px}.wpsl-provided-by{float:right;padding:5px 0;text-align:right;font-size:12px;width:100%}#wpsl-wrap .wpsl-results-only label{width:auto}.wpsl-contact-details,.wpsl-location-address,.wpsl-locations-details{margin-bottom:15px}table.wpsl-opening-hours td{vertical-align:top;padding:0 15px 0 0;text-align:left}table.wpsl-opening-hours time{display:block}table.wpsl-opening-hours{width:auto!important;font-size:100%!important}table.wpsl-opening-hours,table.wpsl-opening-hours td{border:none!important}.wpsl-gmap-canvas .wpsl-infobox{min-width:155px;max-width:350px!important;padding:10px;border-radius:4px;font-size:13px;font-weight:300;border:1px solid #ccc;background:#fff!important}.wpsl-gmap-canvas .wpsl-infobox:after,.wpsl-gmap-canvas .wpsl-infobox:before{position:absolute;content:"";left:40px;bottom:-11px}.wpsl-gmap-canvas .wpsl-infobox:after{border-left:11px solid transparent;border-right:11px solid transparent;border-top:11px solid #fff}.wpsl-gmap-canvas .wpsl-infobox:before{border-left:13px solid transparent;border-right:13px solid transparent;border-top:13px solid #ccc;bottom:-13px;left:38px}@media (max-width:825px){#wpsl-search-input{width:348px}.wpsl-results-only #wpsl-search-wrap .wpsl-dropdown{width:70px}#wpsl-search-wrap .wpsl-input{width:100%;margin-bottom:10px}#wpsl-category label,#wpsl-radius label,.wpsl-cat-results-filter #wpsl-search-wrap .wpsl-input,.wpsl-input label,.wpsl-no-filters #wpsl-search-wrap .wpsl-input,.wpsl-results-only #wpsl-search-wrap .wpsl-input{width:auto}}@media (max-width:720px){#wpsl-search-wrap .wpsl-dropdown{width:114px}}@media (max-width:675px){#wpsl-search-wrap #wpsl-search-btn{float:left;margin:0 5px 0 0}.wpsl-dropdown,.wpsl-results-only #wpsl-search-wrap .wpsl-input{width:100%}.wpsl-search{padding:2%}#wpsl-result-list p,#wpsl-wrap #wpsl-result-list li,.wpsl-direction-before{padding-left:0}.wpsl-input{margin-right:0}#wpsl-gmap,#wpsl-result-list{float:none;width:100%}#wpsl-gmap{margin-bottom:15px;margin-top:10px}#wpsl-result-list,.wpsl-cat-results-filter .wpsl-select-wrap,.wpsl-filter .wpsl-select-wrap{margin-bottom:10px}#wpsl-wrap #wpsl-result-list li.wpsl-preloader{padding-left:25px}.wpsl-preloader img{left:0}#wpsl-stores.wpsl-not-loaded{height:25px}#wpsl-reset-map{top:25px}#wpsl-category,#wpsl-search-btn,.wpsl-input,.wpsl-no-filters #wpsl-search-wrap .wpsl-input,.wpsl-select-wrap{margin-bottom:0}#wpsl-stores.wpsl-no-autoload{height:auto!important}}@media (max-width:570px){#wpsl-search-wrap #wpsl-search-btn{margin-bottom:5px}.wpsl-search{padding:4%}#wpsl-search-input{width:98%!important}.wpsl-cat-results-filter #wpsl-search-input,.wpsl-cat-results-filter #wpsl-search-wrap .wpsl-input,.wpsl-no-results #wpsl-search-input,.wpsl-results-only #wpsl-search-input{width:100%!important}.wpsl-search-btn-wrap{margin-top:15px;clear:both}#wpsl-search-btn,#wpsl-search-wrap div{margin-right:0}#wpsl-search-wrap div label{display:block;width:100%}.wpsl-select-wrap{width:100%}#wpsl-radius,#wpsl-results{width:50%}#wpsl-radius{margin-right:4%}#wpsl-search-wrap .wpsl-dropdown{width:96%!important}.wpsl-no-filters #wpsl-search-input,.wpsl-no-filters #wpsl-search-wrap .wpsl-input{width:100%!important}}
frontend/class-frontend.php CHANGED
@@ -126,7 +126,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
126
  public function find_nearby_locations() {
127
 
128
  global $wpdb, $wpsl, $wpsl_settings;
129
-
130
  $store_data = array();
131
 
132
  /*
@@ -167,7 +167,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
167
  if ( $wpsl->i18n->wpml_exists() ) {
168
  $group_by = 'GROUP BY lat';
169
  } else {
170
- $group_by = '';
171
  }
172
 
173
  /*
@@ -251,7 +251,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
251
  $custom_fields = get_post_custom( $store->ID );
252
 
253
  foreach ( $meta_field_map as $meta_key => $meta_value ) {
254
-
255
  if ( isset( $custom_fields[$meta_key][0] ) ) {
256
  if ( ( isset( $meta_value['type'] ) ) && ( !empty( $meta_value['type'] ) ) ) {
257
  $meta_type = $meta_value['type'];
@@ -507,7 +507,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
507
  *
508
  * If you want to create a custom template you need to
509
  * create a single-wpsl_stores.php file in your theme folder.
510
- * You can see an example here http://wpstorelocator.co/document/create-custom-store-page-template/
511
  *
512
  * @since 2.0.0
513
  * @param string $content
@@ -765,6 +765,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
765
 
766
  $atts = shortcode_atts( apply_filters( 'wpsl_map_shortcode_defaults', array(
767
  'id' => '',
 
768
  'width' => '',
769
  'height' => $wpsl_settings['height'],
770
  'zoom' => $wpsl_settings['zoom_level'],
@@ -786,11 +787,28 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
786
  return;
787
  }
788
  }
789
- } else if ( empty( $atts['id'] ) ) {
790
- return __( 'If you use the [wpsl_map] shortcode outside a store page you need to set the ID attribute.', 'wpsl' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
791
  }
792
 
793
- $store_ids = array_map( 'absint', explode( ',', $atts['id'] ) );
794
  $store_meta = array();
795
  $i = 0;
796
 
@@ -1046,6 +1064,8 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
1046
  if ( $wpsl_settings['results_dropdown'] && !$wpsl_settings['category_dropdown'] && !$wpsl_settings['radius_dropdown'] ) {
1047
  $classes[] = 'wpsl-results-only';
1048
  }
 
 
1049
 
1050
  if ( !empty( $classes ) ) {
1051
  return join( ' ', $classes );
@@ -1109,7 +1129,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
1109
  $category .= '<option value="0">'. __( 'Any' , 'wpsl' ) .'</option>';
1110
 
1111
  foreach ( $terms as $term ) {
1112
- $category .= '<option value="' . $term->term_id . '">' . $term->name . '</option>';
1113
  }
1114
 
1115
  $category .= '</select>';
@@ -1223,7 +1243,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
1223
  /**
1224
  * The different geolocation errors.
1225
  *
1226
- * They are shown when the HTML Geolocation API returns an error.
1227
  *
1228
  * @since 2.0.0
1229
  * @return array $geolocation_errors
@@ -1240,6 +1260,49 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
1240
  return $geolocation_errors;
1241
  }
1242
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1243
  /**
1244
  * Load the required JS scripts.
1245
  *
@@ -1254,11 +1317,11 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
1254
  if ( empty( $this->load_scripts ) ) {
1255
  return;
1256
  }
1257
-
1258
  $min = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
1259
 
1260
  $dropdown_defaults = $this->get_dropdown_defaults();
1261
-
1262
  wp_enqueue_script( 'wpsl-gmap', ( 'https://maps.google.com/maps/api/js' . wpsl_get_gmap_api_params() ), '', null, true );
1263
 
1264
  $base_settings = array(
@@ -1270,9 +1333,11 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
1270
  'autoZoomLevel' => $wpsl_settings['auto_zoom_level'],
1271
  'scrollWheel' => $wpsl_settings['scrollwheel'],
1272
  'controlPosition' => $wpsl_settings['control_position'],
1273
- 'path' => WPSL_URL
 
 
1274
  );
1275
-
1276
  $locator_map_settings = array(
1277
  'startMarker' => $this->create_retina_filename( $wpsl_settings['start_marker'] ),
1278
  'markerClusters' => $wpsl_settings['marker_clusters'],
@@ -1298,11 +1363,22 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
1298
  'mapControls' => $this->get_map_controls(),
1299
  'mapTabAnchor' => apply_filters( 'wpsl_map_tab_anchor', 'wpsl-map-tab' )
1300
  );
 
 
 
 
 
 
 
 
 
 
 
1301
 
1302
  // If the marker clusters are enabled, include the js file and marker settings.
1303
- if ( $wpsl_settings['marker_clusters'] ) {
1304
  wp_enqueue_script( 'wpsl-cluster', WPSL_URL . 'js/markerclusterer'. $min .'.js', '', WPSL_VERSION_NUM, true ); //not minified version is in the /js folder
1305
-
1306
  $base_settings['clusterZoom'] = $wpsl_settings['cluster_zoom'];
1307
  $base_settings['clusterSize'] = $wpsl_settings['cluster_size'];
1308
  }
@@ -1347,7 +1423,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
1347
  $template = '';
1348
  $settings = $base_settings;
1349
  }
1350
-
1351
  wp_localize_script( 'wpsl-js', 'wpslSettings', $settings );
1352
 
1353
  wpsl_create_underscore_templates( $template );
126
  public function find_nearby_locations() {
127
 
128
  global $wpdb, $wpsl, $wpsl_settings;
129
+
130
  $store_data = array();
131
 
132
  /*
167
  if ( $wpsl->i18n->wpml_exists() ) {
168
  $group_by = 'GROUP BY lat';
169
  } else {
170
+ $group_by = 'GROUP BY posts.ID';
171
  }
172
 
173
  /*
251
  $custom_fields = get_post_custom( $store->ID );
252
 
253
  foreach ( $meta_field_map as $meta_key => $meta_value ) {
254
+
255
  if ( isset( $custom_fields[$meta_key][0] ) ) {
256
  if ( ( isset( $meta_value['type'] ) ) && ( !empty( $meta_value['type'] ) ) ) {
257
  $meta_type = $meta_value['type'];
507
  *
508
  * If you want to create a custom template you need to
509
  * create a single-wpsl_stores.php file in your theme folder.
510
+ * You can see an example here https://wpstorelocator.co/document/create-custom-store-page-template/
511
  *
512
  * @since 2.0.0
513
  * @param string $content
765
 
766
  $atts = shortcode_atts( apply_filters( 'wpsl_map_shortcode_defaults', array(
767
  'id' => '',
768
+ 'category' => '',
769
  'width' => '',
770
  'height' => $wpsl_settings['height'],
771
  'zoom' => $wpsl_settings['zoom_level'],
787
  return;
788
  }
789
  }
790
+ } else if ( empty( $atts['id'] ) && empty( $atts['category'] ) ) {
791
+ return __( 'If you use the [wpsl_map] shortcode outside a store page, then you need to set the ID or category attribute.', 'wpsl' );
792
+ }
793
+
794
+ if ( $atts['category'] ) {
795
+ $store_ids = get_posts( array(
796
+ 'numberposts' => -1,
797
+ 'post_type' => 'wpsl_stores',
798
+ 'post_status' => 'publish',
799
+ 'tax_query' => array(
800
+ array(
801
+ 'taxonomy' => 'wpsl_store_category',
802
+ 'field' => 'slug',
803
+ 'terms' => explode( ',', sanitize_text_field( $atts['category'] ) )
804
+ ),
805
+ ),
806
+ 'fields' => 'ids'
807
+ ) );
808
+ } else {
809
+ $store_ids = array_map( 'absint', explode( ',', $atts['id'] ) );
810
  }
811
 
 
812
  $store_meta = array();
813
  $i = 0;
814
 
1064
  if ( $wpsl_settings['results_dropdown'] && !$wpsl_settings['category_dropdown'] && !$wpsl_settings['radius_dropdown'] ) {
1065
  $classes[] = 'wpsl-results-only';
1066
  }
1067
+
1068
+ $classes = apply_filters( 'wpsl_template_css_classes', $classes );
1069
 
1070
  if ( !empty( $classes ) ) {
1071
  return join( ' ', $classes );
1129
  $category .= '<option value="0">'. __( 'Any' , 'wpsl' ) .'</option>';
1130
 
1131
  foreach ( $terms as $term ) {
1132
+ $category .= '<option value="' . $term->term_id . '" '. apply_filters( 'wpsl_selected_category' , $term->term_id ) .'>' . $term->name . '</option>';
1133
  }
1134
 
1135
  $category .= '</select>';
1243
  /**
1244
  * The different geolocation errors.
1245
  *
1246
+ * They are shown when the Geolocation API returns an error.
1247
  *
1248
  * @since 2.0.0
1249
  * @return array $geolocation_errors
1260
  return $geolocation_errors;
1261
  }
1262
 
1263
+ /**
1264
+ * Get the used marker properties.
1265
+ *
1266
+ * @since 2.1.0
1267
+ * @link https://developers.google.com/maps/documentation/javascript/3.exp/reference#Icon
1268
+ * @return array $marker_props The marker properties.
1269
+ */
1270
+ public function get_marker_props() {
1271
+
1272
+ $marker_props = apply_filters( 'wpsl_marker_props', array(
1273
+ 'scaledSize' => '24,35', // 50% of the normal image to make it work on retina screens.
1274
+ 'origin' => '0,0',
1275
+ 'anchor' => '12,35'
1276
+ ) );
1277
+
1278
+ /*
1279
+ * If this is not defined, the url path will default to
1280
+ * the url path of the WPSL plugin folder + /img/markers/
1281
+ * in the wpsl-gmap.js.
1282
+ */
1283
+ if ( defined( 'WPSL_MARKER_URI' ) ) {
1284
+ $marker_props['url'] = WPSL_MARKER_URI;
1285
+ }
1286
+
1287
+ return $marker_props;
1288
+ }
1289
+
1290
+ /**
1291
+ * Check if the map is draggable.
1292
+ *
1293
+ * @since 2.1.0
1294
+ * @return array $draggable The draggable options.
1295
+ */
1296
+ public function maybe_draggable() {
1297
+
1298
+ $draggable = apply_filters( 'wpsl_draggable_map', array(
1299
+ 'enabled' => true,
1300
+ 'disableRes' => '675' // breakpoint where the dragging is disabled in px.
1301
+ ) );
1302
+
1303
+ return $draggable;
1304
+ }
1305
+
1306
  /**
1307
  * Load the required JS scripts.
1308
  *
1317
  if ( empty( $this->load_scripts ) ) {
1318
  return;
1319
  }
1320
+
1321
  $min = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
1322
 
1323
  $dropdown_defaults = $this->get_dropdown_defaults();
1324
+
1325
  wp_enqueue_script( 'wpsl-gmap', ( 'https://maps.google.com/maps/api/js' . wpsl_get_gmap_api_params() ), '', null, true );
1326
 
1327
  $base_settings = array(
1333
  'autoZoomLevel' => $wpsl_settings['auto_zoom_level'],
1334
  'scrollWheel' => $wpsl_settings['scrollwheel'],
1335
  'controlPosition' => $wpsl_settings['control_position'],
1336
+ 'url' => WPSL_URL,
1337
+ 'markerIconProps' => $this->get_marker_props(),
1338
+ 'draggable' => $this->maybe_draggable()
1339
  );
1340
+
1341
  $locator_map_settings = array(
1342
  'startMarker' => $this->create_retina_filename( $wpsl_settings['start_marker'] ),
1343
  'markerClusters' => $wpsl_settings['marker_clusters'],
1363
  'mapControls' => $this->get_map_controls(),
1364
  'mapTabAnchor' => apply_filters( 'wpsl_map_tab_anchor', 'wpsl-map-tab' )
1365
  );
1366
+
1367
+ /*
1368
+ * If enabled, include the component filter settings.
1369
+ *
1370
+ * See https://developers.google.com/maps/documentation/javascript/geocoding#ComponentFiltering
1371
+ */
1372
+ if ( $wpsl_settings['api_region'] && $wpsl_settings['api_geocode_component'] ) {
1373
+ $locator_map_settings['geocodeComponents'] = apply_filters( 'wpsl_geocode_components', array(
1374
+ 'country' => strtoupper( $wpsl_settings['api_region'] )
1375
+ ) );
1376
+ }
1377
 
1378
  // If the marker clusters are enabled, include the js file and marker settings.
1379
+ if ( $wpsl_settings['marker_clusters'] ) {
1380
  wp_enqueue_script( 'wpsl-cluster', WPSL_URL . 'js/markerclusterer'. $min .'.js', '', WPSL_VERSION_NUM, true ); //not minified version is in the /js folder
1381
+
1382
  $base_settings['clusterZoom'] = $wpsl_settings['cluster_zoom'];
1383
  $base_settings['clusterSize'] = $wpsl_settings['cluster_size'];
1384
  }
1423
  $template = '';
1424
  $settings = $base_settings;
1425
  }
1426
+
1427
  wp_localize_script( 'wpsl-js', 'wpslSettings', $settings );
1428
 
1429
  wpsl_create_underscore_templates( $template );
frontend/templates/default.php CHANGED
@@ -9,7 +9,7 @@ $output .= "\t" . '<div class="wpsl-search wpsl-clearfix ' . $this->get_css_clas
9
  $output .= "\t\t" . '<div id="wpsl-search-wrap">' . "\r\n";
10
  $output .= "\t\t\t" . '<div class="wpsl-input">' . "\r\n";
11
  $output .= "\t\t\t\t" . '<div><label for="wpsl-search-input">' . esc_html( $wpsl->i18n->get_translation( 'search_label', __( 'Your location', 'wpsl' ) ) ) . '</label></div>' . "\r\n";
12
- $output .= "\t\t\t\t" . '<input autocomplete="off" id="wpsl-search-input" type="text" value="" name="wpsl-search-input" />' . "\r\n";
13
  $output .= "\t\t\t" . '</div>' . "\r\n";
14
 
15
  if ( $wpsl_settings['radius_dropdown'] || $wpsl_settings['results_dropdown'] ) {
@@ -57,7 +57,7 @@ $output .= "\t\t" . '</div>' . "\r\n";
57
  $output .= "\t" . '</div>' . "\r\n";
58
 
59
  if ( $wpsl_settings['show_credits'] ) {
60
- $output .= "\t" . '<div class="wpsl-provided-by">'. sprintf( __( "Search provided by %sWP Store Locator%s", "wpsl" ), "<a target='_blank' href='http://wpstorelocator.co'>", "</a>" ) .'</div>' . "\r\n";
61
  }
62
 
63
  $output .= '</div>' . "\r\n";
9
  $output .= "\t\t" . '<div id="wpsl-search-wrap">' . "\r\n";
10
  $output .= "\t\t\t" . '<div class="wpsl-input">' . "\r\n";
11
  $output .= "\t\t\t\t" . '<div><label for="wpsl-search-input">' . esc_html( $wpsl->i18n->get_translation( 'search_label', __( 'Your location', 'wpsl' ) ) ) . '</label></div>' . "\r\n";
12
+ $output .= "\t\t\t\t" . '<input autocomplete="off" id="wpsl-search-input" type="text" value="' . apply_filters( 'wpsl_search_input', '' ) . '" name="wpsl-search-input" />' . "\r\n";
13
  $output .= "\t\t\t" . '</div>' . "\r\n";
14
 
15
  if ( $wpsl_settings['radius_dropdown'] || $wpsl_settings['results_dropdown'] ) {
57
  $output .= "\t" . '</div>' . "\r\n";
58
 
59
  if ( $wpsl_settings['show_credits'] ) {
60
+ $output .= "\t" . '<div class="wpsl-provided-by">'. sprintf( __( "Search provided by %sWP Store Locator%s", "wpsl" ), "<a target='_blank' href='https://wpstorelocator.co'>", "</a>" ) .'</div>' . "\r\n";
61
  }
62
 
63
  $output .= '</div>' . "\r\n";
frontend/templates/store-listings-below.php CHANGED
@@ -9,7 +9,7 @@ $output .= "\t" . '<div class="wpsl-search wpsl-clearfix ' . $this->get_css_clas
9
  $output .= "\t\t" . '<div id="wpsl-search-wrap">' . "\r\n";
10
  $output .= "\t\t\t" . '<div class="wpsl-input">' . "\r\n";
11
  $output .= "\t\t\t\t" . '<div><label for="wpsl-search-input">' . esc_html( $wpsl->i18n->get_translation( 'search_label', __( 'Your location', 'wpsl' ) ) ) . '</label></div>' . "\r\n";
12
- $output .= "\t\t\t\t" . '<input autocomplete="off" id="wpsl-search-input" type="text" value="" name="wpsl-search-input" />' . "\r\n";
13
  $output .= "\t\t\t" . '</div>' . "\r\n";
14
 
15
  if ( $wpsl_settings['radius_dropdown'] || $wpsl_settings['results_dropdown'] ) {
@@ -63,7 +63,7 @@ $output .= "\t\t" . '</div>' . "\r\n";
63
  $output .= "\t" . '</div>' . "\r\n";
64
 
65
  if ( $wpsl_settings['show_credits'] ) {
66
- $output .= "\t" . '<div class="wpsl-provided-by">'. sprintf( __( "Search provided by %sWP Store Locator%s", "wpsl" ), "<a target='_blank' href='http://wpstorelocator.co'>", "</a>" ) .'</div>' . "\r\n";
67
  }
68
 
69
  $output .= '</div>' . "\r\n";
9
  $output .= "\t\t" . '<div id="wpsl-search-wrap">' . "\r\n";
10
  $output .= "\t\t\t" . '<div class="wpsl-input">' . "\r\n";
11
  $output .= "\t\t\t\t" . '<div><label for="wpsl-search-input">' . esc_html( $wpsl->i18n->get_translation( 'search_label', __( 'Your location', 'wpsl' ) ) ) . '</label></div>' . "\r\n";
12
+ $output .= "\t\t\t\t" . '<input autocomplete="off" id="wpsl-search-input" type="text" value="' . apply_filters( 'wpsl_search_input', '' ) . '" name="wpsl-search-input" />' . "\r\n";
13
  $output .= "\t\t\t" . '</div>' . "\r\n";
14
 
15
  if ( $wpsl_settings['radius_dropdown'] || $wpsl_settings['results_dropdown'] ) {
63
  $output .= "\t" . '</div>' . "\r\n";
64
 
65
  if ( $wpsl_settings['show_credits'] ) {
66
+ $output .= "\t" . '<div class="wpsl-provided-by">'. sprintf( __( "Search provided by %sWP Store Locator%s", "wpsl" ), "<a target='_blank' href='https://wpstorelocator.co'>", "</a>" ) .'</div>' . "\r\n";
67
  }
68
 
69
  $output .= '</div>' . "\r\n";
inc/wpsl-functions.php CHANGED
@@ -1,29 +1,36 @@
1
  <?php
2
 
3
  /**
4
- * Collect all the parameters ( language, key, region )
5
  * we need before making a request to the Google Maps API.
6
  *
7
  * @since 1.0.0
8
  * @return string $api_params The api parameters
9
  */
10
- function wpsl_get_gmap_api_params() {
11
 
12
  global $wpsl_settings;
13
 
14
  $api_params = '';
15
  $api_keys = array( 'language', 'key', 'region' );
16
 
 
 
 
 
 
 
 
17
  foreach ( $api_keys as $api_key ) {
18
  if ( !empty( $wpsl_settings['api_'.$api_key] ) ) {
19
- $api_params .= $api_key . '=' . $wpsl_settings['api_'.$api_key] . '&';
20
- }
21
  }
22
-
23
  if ( $api_params ) {
24
- $api_params = '?' . rtrim( $api_params, '&' );
25
  }
26
-
27
  return apply_filters( 'wpsl_gmap_api_params', $api_params );
28
  }
29
 
@@ -39,6 +46,7 @@ function wpsl_get_default_settings() {
39
  'api_key' => '',
40
  'api_language' => 'en',
41
  'api_region' => '',
 
42
  'distance_unit' => 'km',
43
  'max_results' => '[25],50,75,100',
44
  'search_radius' => '10,25,[50],100,200,500',
1
  <?php
2
 
3
  /**
4
+ * Collect all the parameters ( language, key, region )
5
  * we need before making a request to the Google Maps API.
6
  *
7
  * @since 1.0.0
8
  * @return string $api_params The api parameters
9
  */
10
+ function wpsl_get_gmap_api_params( $geocode_params = false ) {
11
 
12
  global $wpsl_settings;
13
 
14
  $api_params = '';
15
  $api_keys = array( 'language', 'key', 'region' );
16
 
17
+ /*
18
+ * The geocode params are included after the address so we need to
19
+ * use a '&' as the first char, but when the maps script is included on
20
+ * the front-end it does need to start with a '?'.
21
+ */
22
+ $first_sep = ( $geocode_params ) ? '&' : '?';
23
+
24
  foreach ( $api_keys as $api_key ) {
25
  if ( !empty( $wpsl_settings['api_'.$api_key] ) ) {
26
+ $api_params .= $api_key . '=' . $wpsl_settings['api_'.$api_key] . '&';
27
+ }
28
  }
29
+
30
  if ( $api_params ) {
31
+ $api_params = $first_sep . rtrim( $api_params, '&' );
32
  }
33
+
34
  return apply_filters( 'wpsl_gmap_api_params', $api_params );
35
  }
36
 
46
  'api_key' => '',
47
  'api_language' => 'en',
48
  'api_region' => '',
49
+ 'api_geocode_component' => 0,
50
  'distance_unit' => 'km',
51
  'max_results' => '[25],50,75,100',
52
  'search_radius' => '10,25,[50],100,200,500',
js/wpsl-gmap.js CHANGED
@@ -1,14 +1,15 @@
1
  jQuery( document ).ready( function( $ ) {
2
- var geocoder, map, directionsDisplay, directionsService, geolocationLatlng,
3
  activeWindowMarkerId, infoWindow, markerClusterer, startMarkerData, startAddress,
4
  openInfoWindow = [],
5
  markersArray = [],
 
6
  directionMarkerPosition = {},
7
  mapDefaults = {},
8
  resetMap = false,
9
  streetViewAvailable = false,
10
  autoLoad = ( typeof wpslSettings !== "undefined" ) ? wpslSettings.autoLoad : "";
11
-
12
  /**
13
  * Set the underscore template settings.
14
  *
@@ -29,8 +30,8 @@ _.templateSettings = {
29
 
30
  // Only continue if a map is present.
31
  if ( $( ".wpsl-gmap-canvas" ).length ) {
32
- $( "<img />" ).attr( "src", wpslSettings.path + "img/ajax-loader.gif" );
33
-
34
  /*
35
  * The [wpsl] shortcode can only exist once on a page,
36
  * but the [wpsl_map] shortcode can exist multiple times.
@@ -39,7 +40,7 @@ if ( $( ".wpsl-gmap-canvas" ).length ) {
39
  */
40
  $( ".wpsl-gmap-canvas" ).each( function( mapIndex ) {
41
  var mapId = $( this ).attr( "id" );
42
-
43
  initializeGmap( mapId, mapIndex );
44
  });
45
  }
@@ -79,8 +80,14 @@ function initializeGmap( mapId, mapIndex ) {
79
  }
80
  };
81
 
 
 
 
82
  map = new google.maps.Map( document.getElementById( mapId ), mapOptions );
83
 
 
 
 
84
  // Check if we need to apply a map style.
85
  maybeApplyMapStyle( settings.mapStyle );
86
 
@@ -88,17 +95,17 @@ function initializeGmap( mapId, mapIndex ) {
88
  bounds = new google.maps.LatLngBounds(),
89
  mapData = window[ "wpslMap_" + mapIndex ].locations,
90
  locationCount = mapData.length;
91
-
92
  // Loop over the map data, create the infowindow object and add each marker.
93
  $.each( mapData, function( index ) {
94
  latLng = new google.maps.LatLng( mapData[index].lat, mapData[index].lng );
95
  addMarker( latLng, mapData[index].id, mapData[index], false, infoWindow );
96
  bounds.extend( latLng );
97
  });
98
-
99
  // Make all the markers fit on the map.
100
  map.fitBounds( bounds );
101
-
102
  // Make sure we don't zoom to far.
103
  google.maps.event.addListenerOnce( map, "bounds_changed", ( function( currentMap ) {
104
  return function() {
@@ -108,10 +115,10 @@ function initializeGmap( mapId, mapIndex ) {
108
  };
109
  }( map ) ) );
110
  }
111
-
112
  // Only run this part if the store locator exist and we don't just have a basic map.
113
  if ( $( "#wpsl-gmap" ).length ) {
114
-
115
  /*
116
  * Not the most optimal solution, but we check the useragent if we should enable the styled dropdowns.
117
  *
@@ -127,10 +134,12 @@ function initializeGmap( mapId, mapIndex ) {
127
  }
128
 
129
  // Check if we need to autolocate the user, or autoload the store locations.
130
- if ( wpslSettings.autoLocate == 1 ) {
131
- checkGeolocation( settings.startLatLng, infoWindow );
132
- } else if ( wpslSettings.autoLoad == 1 ) {
133
- showStores( settings.startLatLng, infoWindow );
 
 
134
  }
135
 
136
  // Move the mousecursor to the store search field if the focus option is enabled.
@@ -140,11 +149,14 @@ function initializeGmap( mapId, mapIndex ) {
140
 
141
  // Bind store search button.
142
  searchLocationBtn( infoWindow );
143
-
144
  // Add the 'reload' and 'find location' icon to the map.
145
  mapControlIcons( settings, map, infoWindow );
 
 
 
146
  }
147
-
148
  // Bind the zoom_changed listener.
149
  zoomChangedListener();
150
  }
@@ -276,10 +288,65 @@ function newInfoWindow() {
276
  } else {
277
  infoWindow = new google.maps.InfoWindow();
278
  }
279
-
280
  return infoWindow;
281
  }
282
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
283
  /**
284
  * Check if we have a map style that we need to apply to the map.
285
  *
@@ -914,9 +981,16 @@ function codeAddress( infoWindow ) {
914
  var latLng,
915
  autoLoad = false,
916
  keepStartMarker = false,
917
- address = $( "#wpsl-search-input" ).val();
 
 
 
 
 
 
 
918
 
919
- geocoder.geocode( { 'address': address}, function( response, status ) {
920
  if ( status == google.maps.GeocoderStatus.OK ) {
921
  latLng = response[0].geometry.location;
922
 
@@ -1041,7 +1115,7 @@ function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
1041
  isMobile = $( "#wpsl-wrap" ).hasClass( "wpsl-mobile" ),
1042
  template = $( "#wpsl-listing-template" ).html(),
1043
  $storeList = $( "#wpsl-stores ul" ),
1044
- preloader = wpslSettings.path + "img/ajax-loader.gif",
1045
  ajaxData = {
1046
  action: "store_search",
1047
  lat: startLatLng.lat(),
@@ -1089,7 +1163,7 @@ function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
1089
  ajaxData.filter = categoryId;
1090
  }
1091
  }
1092
-
1093
  /* @TODO: Look into adding support for extra user defined dropdowns?
1094
  *
1095
  * Create a check that will automatically include data from
@@ -1244,24 +1318,24 @@ function checkMarkerClusters() {
1244
  * @return {void}
1245
  */
1246
  function addMarker( latLng, storeId, infoWindowData, draggable, infoWindow ) {
1247
- var markerPath, mapIcon, marker,
1248
  keepStartMarker = true;
1249
 
1250
  if ( storeId === 0 ) {
1251
  infoWindowData = {
1252
  store: wpslLabels.startPoint
1253
  };
1254
-
1255
- markerPath = wpslSettings.path + "img/markers/" + wpslSettings.startMarker;
1256
  } else {
1257
- markerPath = wpslSettings.path + "img/markers/" + wpslSettings.storeMarker;
1258
  }
1259
-
1260
  mapIcon = {
1261
- url: markerPath,
1262
- scaledSize: new google.maps.Size( 24,35 ), //retina format
1263
- origin: new google.maps.Point( 0,0 ),
1264
- anchor: new google.maps.Point( 12,35 )
1265
  };
1266
 
1267
  marker = new google.maps.Marker({
@@ -1366,7 +1440,7 @@ if ( typeof wpslSettings.infoWindowStyle !== "undefined" && wpslSettings.infoWin
1366
  * it means the info window belongs to a marker that is part of a marker cluster.
1367
  *
1368
  * If that is the case then we hide the info window ( the individual marker isn't visible ).
1369
-
1370
  * The default info window script handles this automatically, but the
1371
  * infobox library in combination with the marker clusters doesn't.
1372
  */
@@ -1925,7 +1999,7 @@ function createDropdowns() {
1925
  * Close all the dropdowns.
1926
  *
1927
  * @since 1.2.24
1928
- * @returns void
1929
  */
1930
  function closeDropdowns() {
1931
  $( ".wpsl-dropdown" ).removeClass( "wpsl-active" );
@@ -1951,9 +2025,9 @@ function closeDropdowns() {
1951
  * @since 2.0.0
1952
  */
1953
  if ( $( "a[href='#" + wpslSettings.mapTabAnchor + "']" ).length ) {
1954
- var mapZoom, mapCenter,
1955
  $wpsl_tab = $( "a[href='#" + wpslSettings.mapTabAnchor + "']" );
1956
-
1957
  $wpsl_tab.on( "click", function() {
1958
  setTimeout( function() {
1959
  mapZoom = map.getZoom();
@@ -1971,4 +2045,17 @@ if ( $( "a[href='#" + wpslSettings.mapTabAnchor + "']" ).length ) {
1971
  });
1972
  }
1973
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1974
  });
1
  jQuery( document ).ready( function( $ ) {
2
+ var geocoder, map, directionsDisplay, directionsService, geolocationLatlng,
3
  activeWindowMarkerId, infoWindow, markerClusterer, startMarkerData, startAddress,
4
  openInfoWindow = [],
5
  markersArray = [],
6
+ markerSettings = {},
7
  directionMarkerPosition = {},
8
  mapDefaults = {},
9
  resetMap = false,
10
  streetViewAvailable = false,
11
  autoLoad = ( typeof wpslSettings !== "undefined" ) ? wpslSettings.autoLoad : "";
12
+
13
  /**
14
  * Set the underscore template settings.
15
  *
30
 
31
  // Only continue if a map is present.
32
  if ( $( ".wpsl-gmap-canvas" ).length ) {
33
+ $( "<img />" ).attr( "src", wpslSettings.url + "img/ajax-loader.gif" );
34
+
35
  /*
36
  * The [wpsl] shortcode can only exist once on a page,
37
  * but the [wpsl_map] shortcode can exist multiple times.
40
  */
41
  $( ".wpsl-gmap-canvas" ).each( function( mapIndex ) {
42
  var mapId = $( this ).attr( "id" );
43
+
44
  initializeGmap( mapId, mapIndex );
45
  });
46
  }
80
  }
81
  };
82
 
83
+ // Get the correct marker path & properties.
84
+ markerSettings = getMarkerSettings();
85
+
86
  map = new google.maps.Map( document.getElementById( mapId ), mapOptions );
87
 
88
+ // Do we need to disable the dragging of the map?
89
+ maybeDisableMapDrag( map );
90
+
91
  // Check if we need to apply a map style.
92
  maybeApplyMapStyle( settings.mapStyle );
93
 
95
  bounds = new google.maps.LatLngBounds(),
96
  mapData = window[ "wpslMap_" + mapIndex ].locations,
97
  locationCount = mapData.length;
98
+
99
  // Loop over the map data, create the infowindow object and add each marker.
100
  $.each( mapData, function( index ) {
101
  latLng = new google.maps.LatLng( mapData[index].lat, mapData[index].lng );
102
  addMarker( latLng, mapData[index].id, mapData[index], false, infoWindow );
103
  bounds.extend( latLng );
104
  });
105
+
106
  // Make all the markers fit on the map.
107
  map.fitBounds( bounds );
108
+
109
  // Make sure we don't zoom to far.
110
  google.maps.event.addListenerOnce( map, "bounds_changed", ( function( currentMap ) {
111
  return function() {
115
  };
116
  }( map ) ) );
117
  }
118
+
119
  // Only run this part if the store locator exist and we don't just have a basic map.
120
  if ( $( "#wpsl-gmap" ).length ) {
121
+
122
  /*
123
  * Not the most optimal solution, but we check the useragent if we should enable the styled dropdowns.
124
  *
134
  }
135
 
136
  // Check if we need to autolocate the user, or autoload the store locations.
137
+ if ( !$( ".wpsl-search" ).hasClass( "wpsl-widget" ) ) {
138
+ if ( wpslSettings.autoLocate == 1 ) {
139
+ checkGeolocation( settings.startLatLng, infoWindow );
140
+ } else if ( wpslSettings.autoLoad == 1 ) {
141
+ showStores( settings.startLatLng, infoWindow );
142
+ }
143
  }
144
 
145
  // Move the mousecursor to the store search field if the focus option is enabled.
149
 
150
  // Bind store search button.
151
  searchLocationBtn( infoWindow );
152
+
153
  // Add the 'reload' and 'find location' icon to the map.
154
  mapControlIcons( settings, map, infoWindow );
155
+
156
+ // Check if the user submitted a search through a search widget.
157
+ checkWidgetSubmit();
158
  }
159
+
160
  // Bind the zoom_changed listener.
161
  zoomChangedListener();
162
  }
288
  } else {
289
  infoWindow = new google.maps.InfoWindow();
290
  }
291
+
292
  return infoWindow;
293
  }
294
 
295
+ /**
296
+ * Check if we need to disable dragging on the map.
297
+ *
298
+ * Disabling dragging fixes the problem on mobile devices where
299
+ * users are scrolling down a page, but can't get past the map
300
+ * because the map itself is being dragged instead of the page.
301
+ *
302
+ * @since 2.1.0
303
+ * @param {object} map The map object.
304
+ * @return {void}
305
+ */
306
+ function maybeDisableMapDrag( map ) {
307
+ var disableRes = parseInt( wpslSettings.draggable.disableRes ),
308
+ mapOption = {
309
+ draggable: Boolean( wpslSettings.draggable.enabled )
310
+ };
311
+
312
+ if ( disableRes !== "NaN" && mapOption.draggable ) {
313
+ mapOption.draggable = $( document ).width() > disableRes ? true : false;
314
+ }
315
+
316
+ map.setOptions( mapOption );
317
+ }
318
+
319
+ /**
320
+ * Get the required marker settings.
321
+ *
322
+ * @since 2.1.0
323
+ * @return {object} settings The marker settings.
324
+ */
325
+ function getMarkerSettings() {
326
+ var markerProp,
327
+ markerProps = wpslSettings.markerIconProps,
328
+ settings = {};
329
+
330
+ // If no custom marker path is provided, then we stick with the default one.
331
+ if ( typeof markerProps.url !== "undefined" ) {
332
+ settings.url = markerProps.url;
333
+ } else {
334
+ settings.url = wpslSettings.url + "img/markers/";
335
+ }
336
+
337
+ for ( var key in markerProps ) {
338
+ if ( markerProps.hasOwnProperty( key ) ) {
339
+ markerProp = markerProps[key].split( "," );
340
+
341
+ if ( markerProp.length == 2 ) {
342
+ settings[key] = markerProp;
343
+ }
344
+ }
345
+ }
346
+
347
+ return settings;
348
+ }
349
+
350
  /**
351
  * Check if we have a map style that we need to apply to the map.
352
  *
981
  var latLng,
982
  autoLoad = false,
983
  keepStartMarker = false,
984
+ request = {
985
+ 'address': $( "#wpsl-search-input" ).val()
986
+ };
987
+
988
+ // Check if we need to set the geocode component restrictions.
989
+ if ( typeof wpslSettings.geocodeComponents !== "undefined" && !$.isEmptyObject( wpslSettings.geocodeComponents ) ) {
990
+ request.componentRestrictions = wpslSettings.geocodeComponents;
991
+ }
992
 
993
+ geocoder.geocode( request, function( response, status ) {
994
  if ( status == google.maps.GeocoderStatus.OK ) {
995
  latLng = response[0].geometry.location;
996
 
1115
  isMobile = $( "#wpsl-wrap" ).hasClass( "wpsl-mobile" ),
1116
  template = $( "#wpsl-listing-template" ).html(),
1117
  $storeList = $( "#wpsl-stores ul" ),
1118
+ preloader = wpslSettings.url + "img/ajax-loader.gif",
1119
  ajaxData = {
1120
  action: "store_search",
1121
  lat: startLatLng.lat(),
1163
  ajaxData.filter = categoryId;
1164
  }
1165
  }
1166
+
1167
  /* @TODO: Look into adding support for extra user defined dropdowns?
1168
  *
1169
  * Create a check that will automatically include data from
1318
  * @return {void}
1319
  */
1320
  function addMarker( latLng, storeId, infoWindowData, draggable, infoWindow ) {
1321
+ var url, mapIcon, marker,
1322
  keepStartMarker = true;
1323
 
1324
  if ( storeId === 0 ) {
1325
  infoWindowData = {
1326
  store: wpslLabels.startPoint
1327
  };
1328
+
1329
+ url = markerSettings.url + wpslSettings.startMarker;
1330
  } else {
1331
+ url = markerSettings.url + wpslSettings.storeMarker;
1332
  }
1333
+
1334
  mapIcon = {
1335
+ url: url,
1336
+ scaledSize: new google.maps.Size( Number( markerSettings.scaledSize[0] ), Number( markerSettings.scaledSize[1] ) ), //retina format
1337
+ origin: new google.maps.Point( Number( markerSettings.origin[0] ), Number( markerSettings.origin[1] ) ),
1338
+ anchor: new google.maps.Point( Number( markerSettings.anchor[0] ), Number( markerSettings.anchor[1] ) )
1339
  };
1340
 
1341
  marker = new google.maps.Marker({
1440
  * it means the info window belongs to a marker that is part of a marker cluster.
1441
  *
1442
  * If that is the case then we hide the info window ( the individual marker isn't visible ).
1443
+ *
1444
  * The default info window script handles this automatically, but the
1445
  * infobox library in combination with the marker clusters doesn't.
1446
  */
1999
  * Close all the dropdowns.
2000
  *
2001
  * @since 1.2.24
2002
+ * @returns {void}
2003
  */
2004
  function closeDropdowns() {
2005
  $( ".wpsl-dropdown" ).removeClass( "wpsl-active" );
2025
  * @since 2.0.0
2026
  */
2027
  if ( $( "a[href='#" + wpslSettings.mapTabAnchor + "']" ).length ) {
2028
+ var mapZoom, mapCenter,
2029
  $wpsl_tab = $( "a[href='#" + wpslSettings.mapTabAnchor + "']" );
2030
+
2031
  $wpsl_tab.on( "click", function() {
2032
  setTimeout( function() {
2033
  mapZoom = map.getZoom();
2045
  });
2046
  }
2047
 
2048
+ /**
2049
+ * Check if the user submitted a search through a search widget.
2050
+ *
2051
+ * @since 2.1.0
2052
+ * @returns {void}
2053
+ */
2054
+ function checkWidgetSubmit() {
2055
+ if ( $( ".wpsl-search" ).hasClass( "wpsl-widget" ) ) {
2056
+ $( "#wpsl-search-btn" ).trigger( "click" );
2057
+ $( ".wpsl-search" ).removeClass( "wpsl-widget" );
2058
+ }
2059
+ }
2060
+
2061
  });
js/wpsl-gmap.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(e){function t(t,n){var a,c,w,u,m,h,v,S=Number(wpslSettings.autoZoomLevel);c=o(n),w=i(),j=new google.maps.Geocoder,F=new google.maps.DirectionsRenderer,H=new google.maps.DirectionsService,a={zoom:Number(c.zoomLevel),center:c.startLatLng,mapTypeId:google.maps.MapTypeId[c.mapType.toUpperCase()],mapTypeControl:Number(c.mapTypeControl)?!0:!1,scrollwheel:Number(c.scrollWheel)?!0:!1,streetViewControl:Number(c.streetView)?!0:!1,zoomControlOptions:{position:google.maps.ControlPosition[c.controlPosition.toUpperCase()+"_TOP"]}},K=new google.maps.Map(document.getElementById(t),a),l(c.mapStyle),"undefined"!=typeof window["wpslMap_"+n]&&"undefined"!=typeof window["wpslMap_"+n].locations&&(m=new google.maps.LatLngBounds,h=window["wpslMap_"+n].locations,v=h.length,e.each(h,function(e){u=new google.maps.LatLng(h[e].lat,h[e].lng),N(u,h[e].id,h[e],!1,w),m.extend(u)}),K.fitBounds(m),google.maps.event.addListenerOnce(K,"bounds_changed",function(e){return function(){e.getZoom()>S&&e.setZoom(S)}}(K))),e("#wpsl-gmap").length&&(!p()&&e(".wpsl-dropdown").length?D():(e("#wpsl-search-wrap select").show(),e("#wpsl-wrap").addClass("wpsl-mobile")),1==wpslSettings.autoLocate?d(c.startLatLng,w):1==wpslSettings.autoLoad&&r(c.startLatLng,w),1!=wpslSettings.mouseFocus||p()||e("#wpsl-search-input").focus(),g(w),f(c,K,w)),s()}function s(){"undefined"!=typeof wpslSettings.markerZoomTo&&1==wpslSettings.markerZoomTo&&google.maps.event.addListener(K,"zoom_changed",function(){R()})}function o(e){var t,s,o,i=["zoomLevel","mapType","mapTypeControl","mapStyle","streetView","scrollWheel","controlPosition"],l={zoomLevel:wpslSettings.zoomLevel,mapType:wpslSettings.mapType,mapTypeControl:wpslSettings.mapTypeControl,mapStyle:wpslSettings.mapStyle,streetView:wpslSettings.streetView,scrollWheel:wpslSettings.scrollWheel,controlPosition:wpslSettings.controlPosition};if("undefined"!=typeof window["wpslMap_"+e]&&"undefined"!=typeof window["wpslMap_"+e].shortCode)for(t=0,s=i.length;s>t;t++)o=window["wpslMap_"+e].shortCode[i[t]],"undefined"!=typeof o&&(l[i[t]]=o);return l.startLatLng=n(e),l}function n(e){var t,s,o="";return"undefined"!=typeof window["wpslMap_"+e]&&"undefined"!=typeof window["wpslMap_"+e].locations&&(o=window["wpslMap_"+e].locations[0]),"undefined"!=typeof o&&"undefined"!=typeof o.lat&&"undefined"!=typeof o.lng?t=new google.maps.LatLng(o.lat,o.lng):""!==wpslSettings.zoomLatlng?(s=wpslSettings.zoomLatlng.split(","),t=new google.maps.LatLng(s[0],s[1])):t=new google.maps.LatLng(0,0),t}function i(){var e,t,s={};return"undefined"!=typeof wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle?(e=wpslSettings.infoBoxClearance.split(","),t=wpslSettings.infoBoxPixelOffset.split(","),s={alignBottom:!0,boxClass:wpslSettings.infoBoxClass,closeBoxMargin:wpslSettings.infoBoxCloseMargin,closeBoxURL:wpslSettings.infoBoxCloseUrl,content:"",disableAutoPan:Number(wpslSettings.infoBoxDisableAutoPan)?!0:!1,enableEventPropagation:Number(wpslSettings.infoBoxEnableEventPropagation)?!0:!1,infoBoxClearance:new google.maps.Size(Number(e[0]),Number(e[1])),pixelOffset:new google.maps.Size(Number(t[0]),Number(t[1])),zIndex:Number(wpslSettings.infoBoxZindex)},Y=new InfoBox(s)):Y=new google.maps.InfoWindow,Y}function l(e){e=a(e),e&&K.setOptions({styles:e})}function a(e){try{var t=JSON.parse(e);if(t&&"object"==typeof t&&null!==t)return t}catch(s){}return!1}function r(e,t){N(e,0,"",!0,t),I(e,ie,ae,t)}function p(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}function d(t,s){if(navigator.geolocation){var o,n,i=!1,l=Number(wpslSettings.geoLocationTimout);o=setInterval(function(){e(".wpsl-icon-direction").toggleClass("wpsl-active-icon")},600),n=setTimeout(function(){c(o),r(t,s)},l),navigator.geolocation.getCurrentPosition(function(e){c(o),clearTimeout(n),U(i),w(t,e,ie,s)},function(o){if(e(".wpsl-icon-direction").hasClass("wpsl-user-activated")){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 clearTimeout(n),r(t,s)},{maximumAge:6e4,timeout:l,enableHighAccuracy:!0})}else alert(wpslGeolocationErrors.unavailable),r(t,s)}function c(t){clearInterval(t),e(".wpsl-icon-direction").removeClass("wpsl-active-icon")}function w(e,t,s,o){if("undefined"==typeof t)r(e,o);else{var n=new google.maps.LatLng(t.coords.latitude,t.coords.longitude);Q=t,C(n),K.setCenter(n),N(n,0,"",!0,o),I(n,s,ae,o)}}function g(t){e("#wpsl-search-btn").on("click",function(){var s=!1;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(),ie=!1,u(),U(s),h(),y(t)):e("#wpsl-search-input").addClass("wpsl-error").focus()})}function u(){"undefined"!=typeof wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&"undefined"!=typeof te[0]&&te[0].close()}function f(t,s,o){google.maps.event.addListenerOnce(s,"tilesloaded",function(){e(".gm-style").append(wpslSettings.mapControls),e(".wpsl-icon-reset, #wpsl-reset-map").length>0&&(m(t.startLatLng,o),e(".wpsl-icon-reset").hide()),e(".wpsl-icon-direction").on("click",function(){e(this).addClass("wpsl-user-activated"),d(t.startLatLng,o)})})}function m(t,s){e(".wpsl-icon-reset, #wpsl-reset-map").on("click",function(){var o=!1,n=!0;e(this).hasClass("wpsl-in-progress")||(1==wpslSettings.autoLoad&&(ae=1),(K.getCenter().lat()!==ne.centerLatlng.lat()||K.getCenter().lng()!==ne.centerLatlng.lng()||K.getZoom()!==ne.zoomLevel)&&(U(o),e("#wpsl-search-input").val("").removeClass(),e(".wpsl-icon-reset").addClass("wpsl-in-progress"),J&&J.clearMarkers(),h(),v(),1==wpslSettings.autoLocate?w(t,Q,n,s):r(t,s)),e("#wpsl-stores").show(),e("#wpsl-direction-details").hide())})}function h(){"undefined"!=typeof X&&""!==X&&(X.setMap(null),X="")}function v(){var t,s,o,n,i=[wpslSettings.searchRadius+" "+wpslSettings.distanceUnit,wpslSettings.maxResults],l=["wpsl-radius","wpsl-results"];for(t=0,s=l.length;s>t;t++)e("#"+l[t]+" select").val(parseInt(i[t])),e("#"+l[t]+" li").removeClass(),"wpsl-radius"==l[t]?o=wpslSettings.searchRadius:"wpsl-results"==l[t]&&(o=wpslSettings.maxResults),e("#"+l[t]+" li").each(function(){e(this).text()===i[t]&&(e(this).addClass("wpsl-selected-dropdown"),e("#"+l[t]+" .wpsl-selected-item").html(i[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))}function S(t){var s,o,n,i,l;for(u(),l=t.parents("li").length>0?t.parents("li").data("store-id"):t.parents(".wpsl-info-window").data("store-id"),"undefined"!=typeof X&&""!==X&&(o=X.getPosition()),oe={centerLatlng:K.getCenter(),zoomLevel:K.getZoom()},s=0,i=se.length;i>s;s++)0!=se[s].storeId||"undefined"!=typeof o&&""!==o?se[s].storeId==l&&(n=se[s].getPosition()):o=se[s].getPosition();o&&n?(e("#wpsl-direction-details ul").empty(),e(".wpsl-direction-before, .wpsl-direction-after").remove(),b(o,n)):alert(wpslLabels.generalError)}function L(e,t){var s,o,n;for(s=0,o=se.length;o>s;s++)se[s].storeId==e&&(n=se[s],"start"==t?n.setAnimation(google.maps.Animation.BOUNCE):n.setAnimation(null))}function b(t,s){var o,n,i,l,a,r,p,d,c,w="",g={};d="km"==wpslSettings.distanceUnit?"METRIC":"IMPERIAL",g={origin:t,destination:s,travelMode:google.maps.DirectionsTravelMode.DRIVING,unitSystem:google.maps.UnitSystem[d]},H.route(g,function(t,s){if(s==google.maps.DirectionsStatus.OK){if(F.setMap(K),F.setDirections(t),t.routes.length>0){for(a=t.routes[0],r=0;r<a.legs.length;r++)for(o=a.legs[r],p=0,n=o.steps.length;n>p;p++)i=o.steps[p],l=p+1,w=w+"<li><div class='wpsl-direction-index'>"+l+"</div><div class='wpsl-direction-txt'>"+i.instructions+"</div><div class='wpsl-direction-distance'>"+i.distance.text+"</div></li>";for(e("#wpsl-direction-details ul").append(w).before("<div class='wpsl-direction-before'><a class='wpsl-back' id='wpsl-direction-start' href='#'>"+wpslLabels.back+"</a><div><span class='wpsl-total-distance'>"+a.legs[0].distance.text+"</span> - <span class='wpsl-total-durations'>"+a.legs[0].duration.text+"</span></div></div>").after("<p class='wpsl-direction-after'>"+t.routes[0].copyrights+"</p>"),e("#wpsl-direction-details").show(),r=0,n=se.length;n>r;r++)se[r].setMap(null);J&&J.clearMarkers(),"undefined"!=typeof X&&""!==X&&X.setMap(null),e("#wpsl-stores").hide(),1==wpslSettings.templateId&&(c=e("#wpsl-gmap").offset(),e(window).scrollTop(c.top))}}else A(s)})}function y(t){var s,o=!1,n=!1,i=e("#wpsl-search-input").val();j.geocode({address:i},function(e,i){i==google.maps.GeocoderStatus.OK?(s=e[0].geometry.location,U(n),N(s,0,"",!0,t),I(s,ie,o,t)):W(i)})}function C(t){var s;j.geocode({latLng:t},function(t,o){o==google.maps.GeocoderStatus.OK?(s=k(t),""!==s&&e("#wpsl-search-input").val(s)):W(o)})}function k(e){var t,s,o,n=e[0].address_components.length;for(o=0;n>o;o++)s=e[0].address_components[o].types,(/^postal_code$/.test(s)||/^postal_code_prefix,postal_code$/.test(s))&&(t=e[0].address_components[o].long_name);return t}function I(e,t,s,o){1==wpslSettings.directionRedirect?x(e,function(){E(e,t,s,o)}):E(e,t,s,o)}function x(e,t){j.geocode({latLng:e},function(e,s){s==google.maps.GeocoderStatus.OK?(ee=e[0].formatted_address,t()):W(s)})}function E(t,s,o,n){var i,l,a,r="",d="",c=!1,w=e("#wpsl-wrap").hasClass("wpsl-mobile"),g=e("#wpsl-listing-template").html(),u=e("#wpsl-stores ul"),f=wpslSettings.path+"img/ajax-loader.gif",m={action:"store_search",lat:t.lat(),lng:t.lng()};s?(m.max_results=wpslSettings.maxResults,m.radius=wpslSettings.searchRadius):(w?(l=parseInt(e("#wpsl-results .wpsl-dropdown").val()),a=parseInt(e("#wpsl-radius .wpsl-dropdown").val())):(l=parseInt(e("#wpsl-results .wpsl-selected-item").attr("data-value")),a=parseInt(e("#wpsl-radius .wpsl-selected-item").attr("data-value"))),isNaN(l)?m.max_results=wpslSettings.maxResults:m.max_results=l,isNaN(a)?m.radius=wpslSettings.searchRadius:m.radius=a,e("#wpsl-category").length>0&&(d=w?parseInt(e("#wpsl-category .wpsl-dropdown").val()):parseInt(e("#wpsl-category .wpsl-selected-item").attr("data-value")),isNaN(d)||0===d||(m.filter=d))),1==o&&("undefined"!=typeof Q?m.skip_cache=1:m.autoload=1),u.empty().append("<li class='wpsl-preloader'><img src='"+f+"'/>"+wpslLabels.preloader+"</li>"),e.get(wpslSettings.ajaxurl,m,function(t){e(".wpsl-preloader, .no-results").remove(),t.length>0?(e.each(t,function(e){_.extend(t[e],ge),i=new google.maps.LatLng(t[e].lat,t[e].lng),N(i,t[e].id,t[e],c,n),r+=_.template(g,t[e])}),e("#wpsl-result-list").off("click",".wpsl-directions"),u.append(r),e("#wpsl-result-list").on("click",".wpsl-directions",function(){return 1!=wpslSettings.directionRedirect?(S(e(this)),!1):void 0}),M(),$(),e("#wpsl-result-list p:empty").remove()):u.html("<li class='no-results'>"+wpslLabels.noResults+"</li>"),1==wpslSettings.resetMap&&(e.isEmptyObject(ne)&&google.maps.event.addListenerOnce(K,"tilesloaded",function(){ne={centerLatlng:K.getCenter(),zoomLevel:K.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||p()||e("#wpsl-search-input").focus()}function M(){if(1==wpslSettings.markerClusters){var e=Number(wpslSettings.clusterZoom),t=Number(wpslSettings.clusterSize);isNaN(e)&&(e=""),isNaN(t)&&(t=""),J=new MarkerClusterer(K,se,{gridSize:t,maxZoom:e})}}function N(e,t,s,o,n){var i,l,a,r=!0;0===t?(s={store:wpslLabels.startPoint},i=wpslSettings.path+"img/markers/"+wpslSettings.startMarker):i=wpslSettings.path+"img/markers/"+wpslSettings.storeMarker,l={url:i,scaledSize:new google.maps.Size(24,35),origin:new google.maps.Point(0,0),anchor:new google.maps.Point(12,35)},a=new google.maps.Marker({position:e,map:K,optimized:!1,title:P(s.store),draggable:o,storeId:t,icon:l}),se.push(a),google.maps.event.addListener(a,"click",function(o){return function(){0!=t?"undefined"!=typeof wpslSettings.markerStreetView&&1==wpslSettings.markerStreetView?V(e,function(){T(a,B(s),n,o)}):T(a,B(s),n,o):T(a,wpslLabels.startPoint,n,o),google.maps.event.clearListeners(n,"domready"),google.maps.event.addListener(n,"domready",function(){O(a,o),R()})}}(K)),o&&google.maps.event.addListener(a,"dragend",function(e){U(r),K.setCenter(e.latLng),C(e.latLng),I(e.latLng,ie,ae=!1,n)})}function P(e){return e?e.replace(/&#(\d+);/g,function(e,t){return String.fromCharCode(t)}):void 0}function T(e,t,s,o){te.length=0,s.setContent(t),s.open(o,e),te.push(s),"undefined"!=typeof wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&1==wpslSettings.markerClusters&&(q=e.storeId,s.setVisible(!0))}function O(t,s){e(".wpsl-info-actions a").on("click",function(o){var n=Number(wpslSettings.autoZoomLevel);if(o.stopImmediatePropagation(),e(this).hasClass("wpsl-directions")){if(1==wpslSettings.directionRedirect)return!0;S(e(this))}else e(this).hasClass("wpsl-streetview")?z(t,s):e(this).hasClass("wpsl-zoom-here")&&(s.setCenter(t.getPosition()),s.setZoom(n));return!1})}function R(){var t=K.getZoom();t>=wpslSettings.autoZoomLevel?e(".wpsl-zoom-here").hide():e(".wpsl-zoom-here").show()}function z(t,s){var o=s.getStreetView();o.setPosition(t.getPosition()),o.setVisible(!0),e("#wpsl-map-controls").hide(),Z(o,s)}function Z(t,s){google.maps.event.addListener(t,"visible_changed",function(){if(!t.getVisible()){var o=s.getZoom();e("#wpsl-map-controls").show(),s.setZoom(o-1),s.setZoom(o)}})}function V(e,t){var s=new google.maps.StreetViewService;s.getPanoramaByLocation(e,50,function(e,s){le=s==google.maps.StreetViewStatus.OK?!0:!1,t()})}function B(t){var s,o;return o=e("#wpsl-base-gmap_0").length?e("#wpsl-cpt-info-window-template").html():e("#wpsl-info-window-template").html(),s=_.template(o,t)}function $(){var e,t,s=Number(wpslSettings.autoZoomLevel),o=new google.maps.LatLngBounds;for(google.maps.event.addListenerOnce(K,"bounds_changed",function(e){this.getZoom()>s&&this.setZoom(s)}),e=0,t=se.length;t>e;e++)o.extend(se[e].position);K.fitBounds(o)}function U(e){var t,s;if(F.setMap(null),se){for(s=0,t=se.length;t>s;s++)e?1!=se[s].draggable?se[s].setMap(null):X=se[s]:se[s].setMap(null);se.length=0}J&&J.clearMarkers()}function W(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 A(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)}function D(){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){G(),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),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"),G(),t.stopPropagation()})}),e(document).click(function(){G()})}function G(){e(".wpsl-dropdown").removeClass("wpsl-active"),e(".wpsl-dropdown div").css("height",0)}var j,K,F,H,Q,q,Y,J,X,ee,te=[],se=[],oe={},ne={},ie=!1,le=!1,ae="undefined"!=typeof wpslSettings?wpslSettings.autoLoad:"";if(_.templateSettings={evaluate:/\<\%(.+?)\%\>/g,interpolate:/\<\%=(.+?)\%\>/g,escape:/\<\%-(.+?)\%\>/g},e(".wpsl-gmap-canvas").length&&(e("<img />").attr("src",wpslSettings.path+"img/ajax-loader.gif"),e(".wpsl-gmap-canvas").each(function(s){var o=e(this).attr("id");t(o,s)})),e("#wpsl-result-list").on("click",".wpsl-back",function(){var t,s;for(F.setMap(null),t=0,s=se.length;s>t;t++)se[t].setMap(K);return"undefined"!=typeof X&&""!==X&&X.setMap(K),J&&M(),K.setCenter(oe.centerLatlng),K.setZoom(oe.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(){L(e(this).data("store-id"),"start")}),e("#wpsl-stores").on("mouseleave","li",function(){L(e(this).data("store-id"),"stop")})):"info_window"==wpslSettings.markerEffect&&e("#wpsl-stores").on("mouseenter","li",function(){var t,s;for(t=0,s=se.length;s>t;t++)se[t].storeId==e(this).data("store-id")&&(google.maps.event.trigger(se[t],"click"),K.setCenter(se[t].position))})),"undefined"!=typeof wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&1==wpslSettings.markerClusters){var re,pe,de,ce,we;google.maps.event.addListener(K,"zoom_changed",function(){google.maps.event.addListenerOnce(K,"idle",function(){if("undefined"!=typeof J&&(re=J.clusters_,re.length))for(ce=0,pe=re.length;pe>ce;ce++)for(we=0,de=re[ce].markers_.length;de>we;we++)if(re[ce].markers_[we].storeId==q){Y.getVisible()&&null===re[ce].markers_[we].map?Y.setVisible(!1):Y.getVisible()||null===re[ce].markers_[we].map||Y.setVisible(!0);break}})})}var ge={formatPhoneNumber:function(e){return 1==wpslSettings.phoneUrl&&p()&&(e="<a href='tel:"+ge.formatClickablePhoneNumber(e)+"'>"+e+"</a>"),e},formatClickablePhoneNumber:function(e){return-1!=e.indexOf("+")&&-1!=e.indexOf("(0)")&&(e=e.replace("(0)","")),e.replace(/(-| |\(|\)|\.|)/g,"")},createInfoWindowActions:function(t){var s,o="",n="";return e("#wpsl-gmap").length&&(le&&(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'>"+ge.createDirectionUrl(t)+o+n+"</div>"),s},createDirectionUrl:function(t){var s,o,n,i={};return 1==wpslSettings.directionRedirect?("undefined"==typeof ee&&(ee=""),i.target="target='_blank'","undefined"!=typeof t?i.src=e("[data-store-id="+t+"] .wpsl-directions").attr("href"):(n=this.zip?this.zip+", ":"",o=this.address+", "+this.city+", "+n+this.country,i.src="https://maps.google.com/maps?saddr="+ge.rfc3986EncodeURIComponent(ee)+"&daddr="+ge.rfc3986EncodeURIComponent(o))):i={src:"#",target:""},s="<a class='wpsl-directions' "+i.target+" href='"+i.src+"'>"+wpslLabels.directions+"</a>"},rfc3986EncodeURIComponent:function(e){return encodeURIComponent(e).replace(/[!'()*]/g,escape)}};if(e("#wpsl-search-input").keydown(function(t){var s=t.keyCode||t.which;13==s&&e("#wpsl-search-btn").trigger("click")}),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=se.length;s>t;t++)se[t].storeId==n&&google.maps.event.trigger(se[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();return"default"!=wpslSettings.templateId||"store listings"==wpslSettings.moreInfoLocation?!1:void 0}),e("a[href='#"+wpslSettings.mapTabAnchor+"']").length){var ue,fe,me=e("a[href='#"+wpslSettings.mapTabAnchor+"']");me.on("click",function(){return setTimeout(function(){ue=K.getZoom(),fe=K.getCenter(),google.maps.event.trigger(K,"resize"),K.setZoom(ue),K.setCenter(fe),$()},50),!1})}});
1
+ jQuery(document).ready(function(e){function t(t,n){var p,g,u,m,v,S,b,L=Number(wpslSettings.autoZoomLevel);g=o(n),u=i(),H=new google.maps.Geocoder,q=new google.maps.DirectionsRenderer,Y=new google.maps.DirectionsService,p={zoom:Number(g.zoomLevel),center:g.startLatLng,mapTypeId:google.maps.MapTypeId[g.mapType.toUpperCase()],mapTypeControl:Number(g.mapTypeControl)?!0:!1,scrollwheel:Number(g.scrollWheel)?!0:!1,streetViewControl:Number(g.streetView)?!0:!1,zoomControlOptions:{position:google.maps.ControlPosition[g.controlPosition.toUpperCase()+"_TOP"]}},le=a(),Q=new google.maps.Map(document.getElementById(t),p),l(Q),r(g.mapStyle),"undefined"!=typeof window["wpslMap_"+n]&&"undefined"!=typeof window["wpslMap_"+n].locations&&(v=new google.maps.LatLngBounds,S=window["wpslMap_"+n].locations,b=S.length,e.each(S,function(e){m=new google.maps.LatLng(S[e].lat,S[e].lng),O(m,S[e].id,S[e],!1,u),v.extend(m)}),Q.fitBounds(v),google.maps.event.addListenerOnce(Q,"bounds_changed",function(e){return function(){e.getZoom()>L&&e.setZoom(L)}}(Q))),e("#wpsl-gmap").length&&(!c()&&e(".wpsl-dropdown").length?j():(e("#wpsl-search-wrap select").show(),e("#wpsl-wrap").addClass("wpsl-mobile")),e(".wpsl-search").hasClass("wpsl-widget")||(1==wpslSettings.autoLocate?w(g.startLatLng,u):1==wpslSettings.autoLoad&&d(g.startLatLng,u)),1!=wpslSettings.mouseFocus||c()||e("#wpsl-search-input").focus(),f(u),h(g,Q,u),F()),s()}function s(){"undefined"!=typeof wpslSettings.markerZoomTo&&1==wpslSettings.markerZoomTo&&google.maps.event.addListener(Q,"zoom_changed",function(){Z()})}function o(e){var t,s,o,i=["zoomLevel","mapType","mapTypeControl","mapStyle","streetView","scrollWheel","controlPosition"],l={zoomLevel:wpslSettings.zoomLevel,mapType:wpslSettings.mapType,mapTypeControl:wpslSettings.mapTypeControl,mapStyle:wpslSettings.mapStyle,streetView:wpslSettings.streetView,scrollWheel:wpslSettings.scrollWheel,controlPosition:wpslSettings.controlPosition};if("undefined"!=typeof window["wpslMap_"+e]&&"undefined"!=typeof window["wpslMap_"+e].shortCode)for(t=0,s=i.length;s>t;t++)o=window["wpslMap_"+e].shortCode[i[t]],"undefined"!=typeof o&&(l[i[t]]=o);return l.startLatLng=n(e),l}function n(e){var t,s,o="";return"undefined"!=typeof window["wpslMap_"+e]&&"undefined"!=typeof window["wpslMap_"+e].locations&&(o=window["wpslMap_"+e].locations[0]),"undefined"!=typeof o&&"undefined"!=typeof o.lat&&"undefined"!=typeof o.lng?t=new google.maps.LatLng(o.lat,o.lng):""!==wpslSettings.zoomLatlng?(s=wpslSettings.zoomLatlng.split(","),t=new google.maps.LatLng(s[0],s[1])):t=new google.maps.LatLng(0,0),t}function i(){var e,t,s={};return"undefined"!=typeof wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle?(e=wpslSettings.infoBoxClearance.split(","),t=wpslSettings.infoBoxPixelOffset.split(","),s={alignBottom:!0,boxClass:wpslSettings.infoBoxClass,closeBoxMargin:wpslSettings.infoBoxCloseMargin,closeBoxURL:wpslSettings.infoBoxCloseUrl,content:"",disableAutoPan:Number(wpslSettings.infoBoxDisableAutoPan)?!0:!1,enableEventPropagation:Number(wpslSettings.infoBoxEnableEventPropagation)?!0:!1,infoBoxClearance:new google.maps.Size(Number(e[0]),Number(e[1])),pixelOffset:new google.maps.Size(Number(t[0]),Number(t[1])),zIndex:Number(wpslSettings.infoBoxZindex)},ee=new InfoBox(s)):ee=new google.maps.InfoWindow,ee}function l(t){var s=parseInt(wpslSettings.draggable.disableRes),o={draggable:Boolean(wpslSettings.draggable.enabled)};"NaN"!==s&&o.draggable&&(o.draggable=e(document).width()>s?!0:!1),t.setOptions(o)}function a(){var e,t=wpslSettings.markerIconProps,s={};"undefined"!=typeof t.url?s.url=t.url:s.url=wpslSettings.url+"img/markers/";for(var o in t)t.hasOwnProperty(o)&&(e=t[o].split(","),2==e.length&&(s[o]=e));return s}function r(e){e=p(e),e&&Q.setOptions({styles:e})}function p(e){try{var t=JSON.parse(e);if(t&&"object"==typeof t&&null!==t)return t}catch(s){}return!1}function d(e,t){O(e,0,"",!0,t),N(e,pe,ce,t)}function c(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}function w(t,s){if(navigator.geolocation){var o,n,i=!1,l=Number(wpslSettings.geoLocationTimout);o=setInterval(function(){e(".wpsl-icon-direction").toggleClass("wpsl-active-icon")},600),n=setTimeout(function(){g(o),d(t,s)},l),navigator.geolocation.getCurrentPosition(function(e){g(o),clearTimeout(n),A(i),u(t,e,pe,s)},function(o){if(e(".wpsl-icon-direction").hasClass("wpsl-user-activated")){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 clearTimeout(n),d(t,s)},{maximumAge:6e4,timeout:l,enableHighAccuracy:!0})}else alert(wpslGeolocationErrors.unavailable),d(t,s)}function g(t){clearInterval(t),e(".wpsl-icon-direction").removeClass("wpsl-active-icon")}function u(e,t,s,o){if("undefined"==typeof t)d(e,o);else{var n=new google.maps.LatLng(t.coords.latitude,t.coords.longitude);J=t,I(n),Q.setCenter(n),O(n,0,"",!0,o),N(n,s,ce,o)}}function f(t){e("#wpsl-search-btn").on("click",function(){var s=!1;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(),pe=!1,m(),A(s),S(),k(t)):e("#wpsl-search-input").addClass("wpsl-error").focus()})}function m(){"undefined"!=typeof wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&"undefined"!=typeof ne[0]&&ne[0].close()}function h(t,s,o){google.maps.event.addListenerOnce(s,"tilesloaded",function(){e(".gm-style").append(wpslSettings.mapControls),e(".wpsl-icon-reset, #wpsl-reset-map").length>0&&(v(t.startLatLng,o),e(".wpsl-icon-reset").hide()),e(".wpsl-icon-direction").on("click",function(){e(this).addClass("wpsl-user-activated"),w(t.startLatLng,o)})})}function v(t,s){e(".wpsl-icon-reset, #wpsl-reset-map").on("click",function(){var o=!1,n=!0;e(this).hasClass("wpsl-in-progress")||(1==wpslSettings.autoLoad&&(ce=1),(Q.getCenter().lat()!==re.centerLatlng.lat()||Q.getCenter().lng()!==re.centerLatlng.lng()||Q.getZoom()!==re.zoomLevel)&&(A(o),e("#wpsl-search-input").val("").removeClass(),e(".wpsl-icon-reset").addClass("wpsl-in-progress"),te&&te.clearMarkers(),S(),b(),1==wpslSettings.autoLocate?u(t,J,n,s):d(t,s)),e("#wpsl-stores").show(),e("#wpsl-direction-details").hide())})}function S(){"undefined"!=typeof se&&""!==se&&(se.setMap(null),se="")}function b(){var t,s,o,n,i=[wpslSettings.searchRadius+" "+wpslSettings.distanceUnit,wpslSettings.maxResults],l=["wpsl-radius","wpsl-results"];for(t=0,s=l.length;s>t;t++)e("#"+l[t]+" select").val(parseInt(i[t])),e("#"+l[t]+" li").removeClass(),"wpsl-radius"==l[t]?o=wpslSettings.searchRadius:"wpsl-results"==l[t]&&(o=wpslSettings.maxResults),e("#"+l[t]+" li").each(function(){e(this).text()===i[t]&&(e(this).addClass("wpsl-selected-dropdown"),e("#"+l[t]+" .wpsl-selected-item").html(i[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))}function L(t){var s,o,n,i,l;for(m(),l=t.parents("li").length>0?t.parents("li").data("store-id"):t.parents(".wpsl-info-window").data("store-id"),"undefined"!=typeof se&&""!==se&&(o=se.getPosition()),ae={centerLatlng:Q.getCenter(),zoomLevel:Q.getZoom()},s=0,i=ie.length;i>s;s++)0!=ie[s].storeId||"undefined"!=typeof o&&""!==o?ie[s].storeId==l&&(n=ie[s].getPosition()):o=ie[s].getPosition();o&&n?(e("#wpsl-direction-details ul").empty(),e(".wpsl-direction-before, .wpsl-direction-after").remove(),C(o,n)):alert(wpslLabels.generalError)}function y(e,t){var s,o,n;for(s=0,o=ie.length;o>s;s++)ie[s].storeId==e&&(n=ie[s],"start"==t?n.setAnimation(google.maps.Animation.BOUNCE):n.setAnimation(null))}function C(t,s){var o,n,i,l,a,r,p,d,c,w="",g={};d="km"==wpslSettings.distanceUnit?"METRIC":"IMPERIAL",g={origin:t,destination:s,travelMode:google.maps.DirectionsTravelMode.DRIVING,unitSystem:google.maps.UnitSystem[d]},Y.route(g,function(t,s){if(s==google.maps.DirectionsStatus.OK){if(q.setMap(Q),q.setDirections(t),t.routes.length>0){for(a=t.routes[0],r=0;r<a.legs.length;r++)for(o=a.legs[r],p=0,n=o.steps.length;n>p;p++)i=o.steps[p],l=p+1,w=w+"<li><div class='wpsl-direction-index'>"+l+"</div><div class='wpsl-direction-txt'>"+i.instructions+"</div><div class='wpsl-direction-distance'>"+i.distance.text+"</div></li>";for(e("#wpsl-direction-details ul").append(w).before("<div class='wpsl-direction-before'><a class='wpsl-back' id='wpsl-direction-start' href='#'>"+wpslLabels.back+"</a><div><span class='wpsl-total-distance'>"+a.legs[0].distance.text+"</span> - <span class='wpsl-total-durations'>"+a.legs[0].duration.text+"</span></div></div>").after("<p class='wpsl-direction-after'>"+t.routes[0].copyrights+"</p>"),e("#wpsl-direction-details").show(),r=0,n=ie.length;n>r;r++)ie[r].setMap(null);te&&te.clearMarkers(),"undefined"!=typeof se&&""!==se&&se.setMap(null),e("#wpsl-stores").hide(),1==wpslSettings.templateId&&(c=e("#wpsl-gmap").offset(),e(window).scrollTop(c.top))}}else G(s)})}function k(t){var s,o=!1,n=!1,i={address:e("#wpsl-search-input").val()};"undefined"==typeof wpslSettings.geocodeComponents||e.isEmptyObject(wpslSettings.geocodeComponents)||(i.componentRestrictions=wpslSettings.geocodeComponents),H.geocode(i,function(e,i){i==google.maps.GeocoderStatus.OK?(s=e[0].geometry.location,A(n),O(s,0,"",!0,t),N(s,pe,o,t)):D(i)})}function I(t){var s;H.geocode({latLng:t},function(t,o){o==google.maps.GeocoderStatus.OK?(s=x(t),""!==s&&e("#wpsl-search-input").val(s)):D(o)})}function x(e){var t,s,o,n=e[0].address_components.length;for(o=0;n>o;o++)s=e[0].address_components[o].types,(/^postal_code$/.test(s)||/^postal_code_prefix,postal_code$/.test(s))&&(t=e[0].address_components[o].long_name);return t}function N(e,t,s,o){1==wpslSettings.directionRedirect?E(e,function(){M(e,t,s,o)}):M(e,t,s,o)}function E(e,t){H.geocode({latLng:e},function(e,s){s==google.maps.GeocoderStatus.OK?(oe=e[0].formatted_address,t()):D(s)})}function M(t,s,o,n){var i,l,a,r="",p="",d=!1,w=e("#wpsl-wrap").hasClass("wpsl-mobile"),g=e("#wpsl-listing-template").html(),u=e("#wpsl-stores ul"),f=wpslSettings.url+"img/ajax-loader.gif",m={action:"store_search",lat:t.lat(),lng:t.lng()};s?(m.max_results=wpslSettings.maxResults,m.radius=wpslSettings.searchRadius):(w?(l=parseInt(e("#wpsl-results .wpsl-dropdown").val()),a=parseInt(e("#wpsl-radius .wpsl-dropdown").val())):(l=parseInt(e("#wpsl-results .wpsl-selected-item").attr("data-value")),a=parseInt(e("#wpsl-radius .wpsl-selected-item").attr("data-value"))),isNaN(l)?m.max_results=wpslSettings.maxResults:m.max_results=l,isNaN(a)?m.radius=wpslSettings.searchRadius:m.radius=a,e("#wpsl-category").length>0&&(p=w?parseInt(e("#wpsl-category .wpsl-dropdown").val()):parseInt(e("#wpsl-category .wpsl-selected-item").attr("data-value")),isNaN(p)||0===p||(m.filter=p))),1==o&&("undefined"!=typeof J?m.skip_cache=1:m.autoload=1),u.empty().append("<li class='wpsl-preloader'><img src='"+f+"'/>"+wpslLabels.preloader+"</li>"),e.get(wpslSettings.ajaxurl,m,function(t){e(".wpsl-preloader, .no-results").remove(),t.length>0?(e.each(t,function(e){_.extend(t[e],he),i=new google.maps.LatLng(t[e].lat,t[e].lng),O(i,t[e].id,t[e],d,n),r+=_.template(g,t[e])}),e("#wpsl-result-list").off("click",".wpsl-directions"),u.append(r),e("#wpsl-result-list").on("click",".wpsl-directions",function(){return 1!=wpslSettings.directionRedirect?(L(e(this)),!1):void 0}),P(),W(),e("#wpsl-result-list p:empty").remove()):u.html("<li class='no-results'>"+wpslLabels.noResults+"</li>"),1==wpslSettings.resetMap&&(e.isEmptyObject(re)&&google.maps.event.addListenerOnce(Q,"tilesloaded",function(){re={centerLatlng:Q.getCenter(),zoomLevel:Q.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||c()||e("#wpsl-search-input").focus()}function P(){if(1==wpslSettings.markerClusters){var e=Number(wpslSettings.clusterZoom),t=Number(wpslSettings.clusterSize);isNaN(e)&&(e=""),isNaN(t)&&(t=""),te=new MarkerClusterer(Q,ie,{gridSize:t,maxZoom:e})}}function O(e,t,s,o,n){var i,l,a,r=!0;0===t?(s={store:wpslLabels.startPoint},i=le.url+wpslSettings.startMarker):i=le.url+wpslSettings.storeMarker,l={url:i,scaledSize:new google.maps.Size(Number(le.scaledSize[0]),Number(le.scaledSize[1])),origin:new google.maps.Point(Number(le.origin[0]),Number(le.origin[1])),anchor:new google.maps.Point(Number(le.anchor[0]),Number(le.anchor[1]))},a=new google.maps.Marker({position:e,map:Q,optimized:!1,title:R(s.store),draggable:o,storeId:t,icon:l}),ie.push(a),google.maps.event.addListener(a,"click",function(o){return function(){0!=t?"undefined"!=typeof wpslSettings.markerStreetView&&1==wpslSettings.markerStreetView?$(e,function(){T(a,U(s),n,o)}):T(a,U(s),n,o):T(a,wpslLabels.startPoint,n,o),google.maps.event.clearListeners(n,"domready"),google.maps.event.addListener(n,"domready",function(){z(a,o),Z()})}}(Q)),o&&google.maps.event.addListener(a,"dragend",function(e){A(r),Q.setCenter(e.latLng),I(e.latLng),N(e.latLng,pe,ce=!1,n)})}function R(e){return e?e.replace(/&#(\d+);/g,function(e,t){return String.fromCharCode(t)}):void 0}function T(e,t,s,o){ne.length=0,s.setContent(t),s.open(o,e),ne.push(s),"undefined"!=typeof wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&1==wpslSettings.markerClusters&&(X=e.storeId,s.setVisible(!0))}function z(t,s){e(".wpsl-info-actions a").on("click",function(o){var n=Number(wpslSettings.autoZoomLevel);if(o.stopImmediatePropagation(),e(this).hasClass("wpsl-directions")){if(1==wpslSettings.directionRedirect)return!0;L(e(this))}else e(this).hasClass("wpsl-streetview")?B(t,s):e(this).hasClass("wpsl-zoom-here")&&(s.setCenter(t.getPosition()),s.setZoom(n));return!1})}function Z(){var t=Q.getZoom();t>=wpslSettings.autoZoomLevel?e(".wpsl-zoom-here").hide():e(".wpsl-zoom-here").show()}function B(t,s){var o=s.getStreetView();o.setPosition(t.getPosition()),o.setVisible(!0),e("#wpsl-map-controls").hide(),V(o,s)}function V(t,s){google.maps.event.addListener(t,"visible_changed",function(){if(!t.getVisible()){var o=s.getZoom();e("#wpsl-map-controls").show(),s.setZoom(o-1),s.setZoom(o)}})}function $(e,t){var s=new google.maps.StreetViewService;s.getPanoramaByLocation(e,50,function(e,s){de=s==google.maps.StreetViewStatus.OK?!0:!1,t()})}function U(t){var s,o;return o=e("#wpsl-base-gmap_0").length?e("#wpsl-cpt-info-window-template").html():e("#wpsl-info-window-template").html(),s=_.template(o,t)}function W(){var e,t,s=Number(wpslSettings.autoZoomLevel),o=new google.maps.LatLngBounds;for(google.maps.event.addListenerOnce(Q,"bounds_changed",function(e){this.getZoom()>s&&this.setZoom(s)}),e=0,t=ie.length;t>e;e++)o.extend(ie[e].position);Q.fitBounds(o)}function A(e){var t,s;if(q.setMap(null),ie){for(s=0,t=ie.length;t>s;s++)e?1!=ie[s].draggable?ie[s].setMap(null):se=ie[s]:ie[s].setMap(null);ie.length=0}te&&te.clearMarkers()}function D(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 G(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)}function j(){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){K(),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),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"),K(),t.stopPropagation()})}),e(document).click(function(){K()})}function K(){e(".wpsl-dropdown").removeClass("wpsl-active"),e(".wpsl-dropdown div").css("height",0)}function F(){e(".wpsl-search").hasClass("wpsl-widget")&&(e("#wpsl-search-btn").trigger("click"),e(".wpsl-search").removeClass("wpsl-widget"))}var H,Q,q,Y,J,X,ee,te,se,oe,ne=[],ie=[],le={},ae={},re={},pe=!1,de=!1,ce="undefined"!=typeof wpslSettings?wpslSettings.autoLoad:"";if(_.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(s){var o=e(this).attr("id");t(o,s)})),e("#wpsl-result-list").on("click",".wpsl-back",function(){var t,s;for(q.setMap(null),t=0,s=ie.length;s>t;t++)ie[t].setMap(Q);return"undefined"!=typeof se&&""!==se&&se.setMap(Q),te&&P(),Q.setCenter(ae.centerLatlng),Q.setZoom(ae.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(){y(e(this).data("store-id"),"start")}),e("#wpsl-stores").on("mouseleave","li",function(){y(e(this).data("store-id"),"stop")})):"info_window"==wpslSettings.markerEffect&&e("#wpsl-stores").on("mouseenter","li",function(){var t,s;for(t=0,s=ie.length;s>t;t++)ie[t].storeId==e(this).data("store-id")&&(google.maps.event.trigger(ie[t],"click"),Q.setCenter(ie[t].position))})),"undefined"!=typeof wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&1==wpslSettings.markerClusters){var we,ge,ue,fe,me;google.maps.event.addListener(Q,"zoom_changed",function(){google.maps.event.addListenerOnce(Q,"idle",function(){if("undefined"!=typeof te&&(we=te.clusters_,we.length))for(fe=0,ge=we.length;ge>fe;fe++)for(me=0,ue=we[fe].markers_.length;ue>me;me++)if(we[fe].markers_[me].storeId==X){ee.getVisible()&&null===we[fe].markers_[me].map?ee.setVisible(!1):ee.getVisible()||null===we[fe].markers_[me].map||ee.setVisible(!0);break}})})}var he={formatPhoneNumber:function(e){return 1==wpslSettings.phoneUrl&&c()&&(e="<a href='tel:"+he.formatClickablePhoneNumber(e)+"'>"+e+"</a>"),e},formatClickablePhoneNumber:function(e){return-1!=e.indexOf("+")&&-1!=e.indexOf("(0)")&&(e=e.replace("(0)","")),e.replace(/(-| |\(|\)|\.|)/g,"")},createInfoWindowActions:function(t){var s,o="",n="";return e("#wpsl-gmap").length&&(de&&(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'>"+he.createDirectionUrl(t)+o+n+"</div>"),s},createDirectionUrl:function(t){var s,o,n,i={};return 1==wpslSettings.directionRedirect?("undefined"==typeof oe&&(oe=""),i.target="target='_blank'","undefined"!=typeof t?i.src=e("[data-store-id="+t+"] .wpsl-directions").attr("href"):(n=this.zip?this.zip+", ":"",o=this.address+", "+this.city+", "+n+this.country,i.src="https://maps.google.com/maps?saddr="+he.rfc3986EncodeURIComponent(oe)+"&daddr="+he.rfc3986EncodeURIComponent(o))):i={src:"#",target:""},s="<a class='wpsl-directions' "+i.target+" href='"+i.src+"'>"+wpslLabels.directions+"</a>"},rfc3986EncodeURIComponent:function(e){return encodeURIComponent(e).replace(/[!'()*]/g,escape)}};if(e("#wpsl-search-input").keydown(function(t){var s=t.keyCode||t.which;13==s&&e("#wpsl-search-btn").trigger("click")}),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=ie.length;s>t;t++)ie[t].storeId==n&&google.maps.event.trigger(ie[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();return"default"!=wpslSettings.templateId||"store listings"==wpslSettings.moreInfoLocation?!1:void 0}),e("a[href='#"+wpslSettings.mapTabAnchor+"']").length){var ve,Se,be=e("a[href='#"+wpslSettings.mapTabAnchor+"']");be.on("click",function(){return setTimeout(function(){ve=Q.getZoom(),Se=Q.getCenter(),google.maps.event.trigger(Q,"resize"),Q.setZoom(ve),Q.setCenter(Se),W()},50),!1})}});
languages/wpsl-nl_NL.po CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: WP Store Locator 2.0\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2015-11-23 12:04+0100\n"
6
- "PO-Revision-Date: 2015-11-23 12:04+0100\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "Language: nl_NL\n"
@@ -37,59 +37,60 @@ msgstr ""
37
  "Vergeet niet voordat je de [wpsl] shortcode op een pagina plaatst, om een "
38
  "start locatie op te geven op de %sinstellingen%s pagina. %sSluit%s"
39
 
40
- #: admin/class-admin.php:150 admin/templates/map-settings.php:8
 
41
  msgid "Settings"
42
  msgstr "Instellingen"
43
 
44
- #: admin/class-admin.php:264
45
  msgid "Cannot determine the address at this location."
46
  msgstr "Er kan geen adres gevonden worden voor deze locatie."
47
 
48
- #: admin/class-admin.php:265
49
  msgid "Geocode was not successful for the following reason"
50
  msgstr "Geocode was niet succesvol om de volgende reden"
51
 
52
- #: admin/class-admin.php:266 admin/upgrade.php:406
53
  msgid "Security check failed, reload the page and try again."
54
  msgstr ""
55
  "Beveiligings controle mislukt, herlaad de pagina en probeer het nog een keer."
56
 
57
- #: admin/class-admin.php:267
58
  msgid "Please fill in all the required store details."
59
  msgstr "Vul alle verplichte velden in."
60
 
61
- #: admin/class-admin.php:268
62
  msgid "The map preview requires all the location details."
63
  msgstr ""
64
  "Alle locatie details moeten zijn ingevuld voordat de locatie op de kaart "
65
  "getoond kan worden."
66
 
67
- #: admin/class-admin.php:269 admin/class-metaboxes.php:505
68
  #: frontend/class-frontend.php:493
69
  msgid "Closed"
70
  msgstr "gesloten"
71
 
72
- #: admin/class-admin.php:270
73
  msgid "The code for the map style is invalid."
74
  msgstr "De code voor de map stijl is ongeldig."
75
 
76
- #: admin/class-admin.php:361
77
  msgid "Welcome to WP Store Locator"
78
  msgstr "Welkom bij WP Store Locator"
79
 
80
- #: admin/class-admin.php:362
81
  msgid "Sign up for the latest plugin updates and announcements."
82
  msgstr "Meld je aan voor de nieuwsbrief en ontvang het laatste nieuws."
83
 
84
- #: admin/class-admin.php:406
85
  msgid "Documentation"
86
  msgstr "Documentatie"
87
 
88
- #: admin/class-admin.php:409
89
  msgid "General Settings"
90
  msgstr "Instellingen"
91
 
92
- #: admin/class-admin.php:429
93
  #, php-format
94
  msgid "If you like this plugin please leave us a %s5 star%s rating."
95
  msgstr "Als je tevreden bent met deze plugin geef het dan %s5 sterren%s."
@@ -111,12 +112,31 @@ msgstr ""
111
  "Je hebt de dagelijkse toegestane geocoding limiet bereikt, je kan er %shier"
112
  "%s meer over lezen."
113
 
114
- #: admin/class-geocode.php:79 admin/class-geocode.php:105
 
 
 
 
 
115
  msgid ""
116
  "The Google Geocoding API failed to return valid data, please try again later."
117
  msgstr ""
118
  "De Google Geocoding API geeft ongeldige data terug, probeer het nog een keer."
119
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
120
  #: admin/class-metaboxes.php:33
121
  msgid "Store Details"
122
  msgstr "Winkel details"
@@ -166,9 +186,9 @@ msgstr "Lengtegraad"
166
  msgid "Opening Hours"
167
  msgstr "Openingstijden"
168
 
169
- #: admin/class-metaboxes.php:82 admin/templates/map-settings.php:421
170
- #: admin/templates/map-settings.php:422 frontend/underscore-functions.php:133
171
- #: inc/wpsl-functions.php:116
172
  msgid "Hours"
173
  msgstr "Uren"
174
 
@@ -180,23 +200,23 @@ msgstr "Extra informatie"
180
  msgid "Tel"
181
  msgstr "Tel."
182
 
183
- #: admin/class-metaboxes.php:91 admin/templates/map-settings.php:409
184
- #: admin/templates/map-settings.php:410 frontend/class-frontend.php:677
185
  #: frontend/underscore-functions.php:32 frontend/underscore-functions.php:124
186
- #: inc/wpsl-functions.php:113
187
  msgid "Fax"
188
  msgstr "Fax"
189
 
190
- #: admin/class-metaboxes.php:94 admin/templates/map-settings.php:413
191
- #: admin/templates/map-settings.php:414 admin/upgrade.php:210
192
  #: frontend/class-frontend.php:681 frontend/underscore-functions.php:35
193
- #: frontend/underscore-functions.php:127 inc/wpsl-functions.php:114
194
  msgid "Email"
195
  msgstr "E-mail"
196
 
197
- #: admin/class-metaboxes.php:97 admin/templates/map-settings.php:417
198
- #: admin/templates/map-settings.php:418 admin/upgrade.php:214
199
- #: frontend/class-frontend.php:686 inc/wpsl-functions.php:115
200
  msgid "Url"
201
  msgstr "Url"
202
 
@@ -288,20 +308,20 @@ msgstr "Winkel voorbeeld"
288
  msgid "WP Store Locator Transients Cleared"
289
  msgstr "WP Store Locator transients verwijderd"
290
 
291
- #: admin/class-settings.php:371
292
  msgid ""
293
  "The max results field cannot be empty, the default value has been restored."
294
  msgstr ""
295
  "Het max zoek resulaten veld kan niet leeg zijn, de standaard waarde is "
296
  "hersteld."
297
 
298
- #: admin/class-settings.php:374
299
  msgid ""
300
  "The search radius field cannot be empty, the default value has been restored."
301
  msgstr ""
302
  "Het zoek radius veld kan niet leeg zijn, de standaard waarde is hersteld."
303
 
304
- #: admin/class-settings.php:377
305
  #, php-format
306
  msgid ""
307
  "Please provide the name of a city or country that can be used as a starting "
@@ -313,1108 +333,1108 @@ msgstr ""
313
  "automatische achterhalen van de gebruikers locatie mislukt, of het "
314
  "automatische achterhalen is uitgeschakeld."
315
 
316
- #: admin/class-settings.php:398
317
  msgid "Select your language"
318
  msgstr "Kies uw taal"
319
 
320
- #: admin/class-settings.php:399
321
  msgid "English"
322
  msgstr "Engels"
323
 
324
- #: admin/class-settings.php:400
325
  msgid "Arabic"
326
  msgstr "Arabisch"
327
 
328
- #: admin/class-settings.php:401
329
  msgid "Basque"
330
  msgstr "Bask"
331
 
332
- #: admin/class-settings.php:402
333
  msgid "Bulgarian"
334
  msgstr "Bulgaars"
335
 
336
- #: admin/class-settings.php:403
337
  msgid "Bengali"
338
  msgstr "Bengali"
339
 
340
- #: admin/class-settings.php:404
341
  msgid "Catalan"
342
  msgstr "Catalaans"
343
 
344
- #: admin/class-settings.php:405
345
  msgid "Czech"
346
  msgstr "Tjechisch"
347
 
348
- #: admin/class-settings.php:406
349
  msgid "Danish"
350
  msgstr "Deens"
351
 
352
- #: admin/class-settings.php:407
353
  msgid "German"
354
  msgstr "Duits"
355
 
356
- #: admin/class-settings.php:408
357
  msgid "Greek"
358
  msgstr "Grieks"
359
 
360
- #: admin/class-settings.php:409
361
  msgid "English (Australian)"
362
  msgstr "Engels (Australisch)"
363
 
364
- #: admin/class-settings.php:410
365
  msgid "English (Great Britain)"
366
  msgstr "Engels (Verenigd Koninkrijk)"
367
 
368
- #: admin/class-settings.php:411
369
  msgid "Spanish"
370
  msgstr "Spaans"
371
 
372
- #: admin/class-settings.php:412
373
  msgid "Farsi"
374
  msgstr "Farsi"
375
 
376
- #: admin/class-settings.php:413
377
  msgid "Finnish"
378
  msgstr "Fins"
379
 
380
- #: admin/class-settings.php:414
381
  msgid "Filipino"
382
  msgstr "Filipijns"
383
 
384
- #: admin/class-settings.php:415
385
  msgid "French"
386
  msgstr "Frans"
387
 
388
- #: admin/class-settings.php:416
389
  msgid "Galician"
390
  msgstr "Gallisch"
391
 
392
- #: admin/class-settings.php:417
393
  msgid "Gujarati"
394
  msgstr "Gujurati"
395
 
396
- #: admin/class-settings.php:418
397
  msgid "Hindi"
398
  msgstr "Hindi"
399
 
400
- #: admin/class-settings.php:419
401
  msgid "Croatian"
402
  msgstr "Kroatisch"
403
 
404
- #: admin/class-settings.php:420
405
  msgid "Hungarian"
406
  msgstr "Hongaars"
407
 
408
- #: admin/class-settings.php:421
409
  msgid "Indonesian"
410
  msgstr "Indonesisch"
411
 
412
- #: admin/class-settings.php:422
413
  msgid "Italian"
414
  msgstr "Italiaans"
415
 
416
- #: admin/class-settings.php:423
417
  msgid "Hebrew"
418
  msgstr "Hebreeuws"
419
 
420
- #: admin/class-settings.php:424
421
  msgid "Japanese"
422
  msgstr "Japans"
423
 
424
- #: admin/class-settings.php:425
425
  msgid "Kannada"
426
  msgstr "Kannada"
427
 
428
- #: admin/class-settings.php:426
429
  msgid "Korean"
430
  msgstr "Koreaans"
431
 
432
- #: admin/class-settings.php:427
433
  msgid "Lithuanian"
434
  msgstr "Litouws"
435
 
436
- #: admin/class-settings.php:428
437
  msgid "Latvian"
438
  msgstr "Lets"
439
 
440
- #: admin/class-settings.php:429
441
  msgid "Malayalam"
442
  msgstr "Malayalam"
443
 
444
- #: admin/class-settings.php:430
445
  msgid "Marathi"
446
  msgstr "Marathi"
447
 
448
- #: admin/class-settings.php:431
449
  msgid "Dutch"
450
  msgstr "Nederlands"
451
 
452
- #: admin/class-settings.php:432
453
  msgid "Norwegian"
454
  msgstr "Noors"
455
 
456
- #: admin/class-settings.php:433
457
  msgid "Norwegian Nynorsk"
458
  msgstr "Noors Nynorsk"
459
 
460
- #: admin/class-settings.php:434
461
  msgid "Polish"
462
  msgstr "Pools"
463
 
464
- #: admin/class-settings.php:435
465
  msgid "Portuguese"
466
  msgstr "Portugees"
467
 
468
- #: admin/class-settings.php:436
469
  msgid "Portuguese (Brazil)"
470
  msgstr "Portugees (Brazilië)"
471
 
472
- #: admin/class-settings.php:437
473
  msgid "Portuguese (Portugal)"
474
  msgstr "Portugees (Portugal)"
475
 
476
- #: admin/class-settings.php:438
477
  msgid "Romanian"
478
  msgstr "Roemeens"
479
 
480
- #: admin/class-settings.php:439
481
  msgid "Russian"
482
  msgstr "Russisch"
483
 
484
- #: admin/class-settings.php:440
485
  msgid "Slovak"
486
  msgstr "Slowaaks"
487
 
488
- #: admin/class-settings.php:441
489
  msgid "Slovenian"
490
  msgstr "Sloveens"
491
 
492
- #: admin/class-settings.php:442
493
  msgid "Serbian"
494
  msgstr "Servisch"
495
 
496
- #: admin/class-settings.php:443
497
  msgid "Swedish"
498
  msgstr "Zweeds"
499
 
500
- #: admin/class-settings.php:444
501
  msgid "Tagalog"
502
  msgstr "Tagalog"
503
 
504
- #: admin/class-settings.php:445
505
  msgid "Tamil"
506
  msgstr "Tamil"
507
 
508
- #: admin/class-settings.php:446
509
  msgid "Telugu"
510
  msgstr "Telugu"
511
 
512
- #: admin/class-settings.php:447
513
  msgid "Thai"
514
  msgstr "Thai"
515
 
516
- #: admin/class-settings.php:448
517
  msgid "Turkish"
518
  msgstr "Turks"
519
 
520
- #: admin/class-settings.php:449
521
  msgid "Ukrainian"
522
  msgstr "Oekraïens"
523
 
524
- #: admin/class-settings.php:450
525
  msgid "Vietnamese"
526
  msgstr "Vietnamees"
527
 
528
- #: admin/class-settings.php:451
529
  msgid "Chinese (Simplified)"
530
  msgstr "Chinees (Vereenvoudigd)"
531
 
532
- #: admin/class-settings.php:452
533
  msgid "Chinese (Traditional)"
534
  msgstr "Chinees (Traditioneel)"
535
 
536
- #: admin/class-settings.php:457
537
  msgid "Select your region"
538
  msgstr "Kies uw regio"
539
 
540
- #: admin/class-settings.php:458
541
  msgid "Afghanistan"
542
  msgstr "Afghanistan"
543
 
544
- #: admin/class-settings.php:459
545
  msgid "Albania"
546
  msgstr "Albanië"
547
 
548
- #: admin/class-settings.php:460
549
  msgid "Algeria"
550
  msgstr "Algerije"
551
 
552
- #: admin/class-settings.php:461
553
  msgid "American Samoa"
554
  msgstr "Amerikaans Samoa"
555
 
556
- #: admin/class-settings.php:462
557
  msgid "Andorra"
558
  msgstr "Andorra"
559
 
560
- #: admin/class-settings.php:463
561
  msgid "Anguilla"
562
  msgstr "Anguilla"
563
 
564
- #: admin/class-settings.php:464
565
  msgid "Angola"
566
  msgstr "Angola"
567
 
568
- #: admin/class-settings.php:465
569
  msgid "Antigua and Barbuda"
570
  msgstr "Antigua en Barbuda"
571
 
572
- #: admin/class-settings.php:466
573
  msgid "Argentina"
574
  msgstr "Argentinië"
575
 
576
- #: admin/class-settings.php:467
577
  msgid "Armenia"
578
  msgstr "Armenia"
579
 
580
- #: admin/class-settings.php:468
581
  msgid "Aruba"
582
  msgstr "Aruba"
583
 
584
- #: admin/class-settings.php:469
585
  msgid "Australia"
586
  msgstr "Australië"
587
 
588
- #: admin/class-settings.php:470
589
  msgid "Austria"
590
  msgstr "Oostenrijk"
591
 
592
- #: admin/class-settings.php:471
593
  msgid "Azerbaijan"
594
  msgstr "Azerbeidzjan"
595
 
596
- #: admin/class-settings.php:472
597
  msgid "Bahamas"
598
  msgstr "Bahamas"
599
 
600
- #: admin/class-settings.php:473
601
  msgid "Bahrain"
602
  msgstr "Bahrein"
603
 
604
- #: admin/class-settings.php:474
605
  msgid "Bangladesh"
606
  msgstr "Bangladesh"
607
 
608
- #: admin/class-settings.php:475
609
  msgid "Barbados"
610
  msgstr "Barbados"
611
 
612
- #: admin/class-settings.php:476
613
  msgid "Belarus"
614
  msgstr "Wit-Rusland"
615
 
616
- #: admin/class-settings.php:477
617
  msgid "Belgium"
618
  msgstr "België"
619
 
620
- #: admin/class-settings.php:478
621
  msgid "Belize"
622
  msgstr "Belize"
623
 
624
- #: admin/class-settings.php:479
625
  msgid "Benin"
626
  msgstr "Benin"
627
 
628
- #: admin/class-settings.php:480
629
  msgid "Bermuda"
630
  msgstr "Bermuda"
631
 
632
- #: admin/class-settings.php:481
633
  msgid "Bhutan"
634
  msgstr "Bhutan"
635
 
636
- #: admin/class-settings.php:482
637
  msgid "Bolivia"
638
  msgstr "Bolivia"
639
 
640
- #: admin/class-settings.php:483
641
  msgid "Bosnia and Herzegovina"
642
  msgstr "Bosnia en Herzegovina"
643
 
644
- #: admin/class-settings.php:484
645
  msgid "Botswana"
646
  msgstr "Botswana"
647
 
648
- #: admin/class-settings.php:485
649
  msgid "Brazil"
650
  msgstr "Brazilië"
651
 
652
- #: admin/class-settings.php:486
653
  msgid "British Indian Ocean Territory"
654
  msgstr "Brits Indische Oceaanterritorium"
655
 
656
- #: admin/class-settings.php:487
657
  msgid "Brunei"
658
  msgstr "Brunei"
659
 
660
- #: admin/class-settings.php:488
661
  msgid "Bulgaria"
662
  msgstr "Bulgarije"
663
 
664
- #: admin/class-settings.php:489
665
  msgid "Burkina Faso"
666
  msgstr "Burkina Faso"
667
 
668
- #: admin/class-settings.php:490
669
  msgid "Burundi"
670
  msgstr "Burundi"
671
 
672
- #: admin/class-settings.php:491
673
  msgid "Cambodia"
674
  msgstr "Cambodja"
675
 
676
- #: admin/class-settings.php:492
677
  msgid "Cameroon"
678
  msgstr "Kameroen"
679
 
680
- #: admin/class-settings.php:493
681
  msgid "Canada"
682
  msgstr "Canada"
683
 
684
- #: admin/class-settings.php:494
685
  msgid "Cape Verde"
686
  msgstr "Kaapverdië"
687
 
688
- #: admin/class-settings.php:495
689
  msgid "Cayman Islands"
690
  msgstr "Kaaimaneilanden"
691
 
692
- #: admin/class-settings.php:496
693
  msgid "Central African Republic"
694
  msgstr "Centraal-Afrikaanse Republiek"
695
 
696
- #: admin/class-settings.php:497
697
  msgid "Chad"
698
  msgstr "Chad"
699
 
700
- #: admin/class-settings.php:498
701
  msgid "Chile"
702
  msgstr "Chili"
703
 
704
- #: admin/class-settings.php:499
705
  msgid "China"
706
  msgstr "China"
707
 
708
- #: admin/class-settings.php:500
709
  msgid "Christmas Island"
710
  msgstr "Christmaseiland"
711
 
712
- #: admin/class-settings.php:501
713
  msgid "Cocos Islands"
714
  msgstr "Cocoseilanden"
715
 
716
- #: admin/class-settings.php:502
717
  msgid "Colombia"
718
  msgstr "Colombia"
719
 
720
- #: admin/class-settings.php:503
721
  msgid "Comoros"
722
  msgstr "Comoren"
723
 
724
- #: admin/class-settings.php:504
725
  msgid "Congo"
726
  msgstr "Congo"
727
 
728
- #: admin/class-settings.php:505
729
  msgid "Costa Rica"
730
  msgstr "Costa Rica"
731
 
732
- #: admin/class-settings.php:506
733
  msgid "Côte d'Ivoire"
734
  msgstr "Ivoorkust"
735
 
736
- #: admin/class-settings.php:507
737
  msgid "Croatia"
738
  msgstr "Kroatië"
739
 
740
- #: admin/class-settings.php:508
741
  msgid "Cuba"
742
  msgstr "Cuba"
743
 
744
- #: admin/class-settings.php:509
745
  msgid "Czech Republic"
746
  msgstr "Tsjechië"
747
 
748
- #: admin/class-settings.php:510
749
  msgid "Denmark"
750
  msgstr "Denemarken"
751
 
752
- #: admin/class-settings.php:511
753
  msgid "Djibouti"
754
  msgstr "Djibouti"
755
 
756
- #: admin/class-settings.php:512
757
  msgid "Democratic Republic of the Congo"
758
  msgstr "Democratische Republiek Congo"
759
 
760
- #: admin/class-settings.php:513
761
  msgid "Dominica"
762
  msgstr "Dominica"
763
 
764
- #: admin/class-settings.php:514
765
  msgid "Dominican Republic"
766
  msgstr "Dominicaanse Republiek"
767
 
768
- #: admin/class-settings.php:515
769
  msgid "Ecuador"
770
  msgstr "Ecuador"
771
 
772
- #: admin/class-settings.php:516
773
  msgid "Egypt"
774
  msgstr "Egypte"
775
 
776
- #: admin/class-settings.php:517
777
  msgid "El Salvador"
778
  msgstr "El Salvador"
779
 
780
- #: admin/class-settings.php:518
781
  msgid "Equatorial Guinea"
782
  msgstr "Equatoriaal-Guinea"
783
 
784
- #: admin/class-settings.php:519
785
  msgid "Eritrea"
786
  msgstr "Eritrea"
787
 
788
- #: admin/class-settings.php:520
789
  msgid "Estonia"
790
  msgstr "Estland"
791
 
792
- #: admin/class-settings.php:521
793
  msgid "Ethiopia"
794
  msgstr "Ethiopië"
795
 
796
- #: admin/class-settings.php:522
797
  msgid "Fiji"
798
  msgstr "Fiji"
799
 
800
- #: admin/class-settings.php:523
801
  msgid "Finland"
802
  msgstr "Finland"
803
 
804
- #: admin/class-settings.php:524
805
  msgid "France"
806
  msgstr "Frankrijk"
807
 
808
- #: admin/class-settings.php:525
809
  msgid "French Guiana"
810
  msgstr "Frans Guyana"
811
 
812
- #: admin/class-settings.php:526
813
  msgid "Gabon"
814
  msgstr "Gabon"
815
 
816
- #: admin/class-settings.php:527
817
  msgid "Gambia"
818
  msgstr "Gambia"
819
 
820
- #: admin/class-settings.php:528
821
  msgid "Germany"
822
  msgstr "Duitsland"
823
 
824
- #: admin/class-settings.php:529
825
  msgid "Ghana"
826
  msgstr "Ghana"
827
 
828
- #: admin/class-settings.php:530
829
  msgid "Greenland"
830
  msgstr "Groenland"
831
 
832
- #: admin/class-settings.php:531
833
  msgid "Greece"
834
  msgstr "Griekenland"
835
 
836
- #: admin/class-settings.php:532
837
  msgid "Grenada"
838
  msgstr "Grenada"
839
 
840
- #: admin/class-settings.php:533
841
  msgid "Guam"
842
  msgstr "Guam"
843
 
844
- #: admin/class-settings.php:534
845
  msgid "Guadeloupe"
846
  msgstr "Guadeloupe"
847
 
848
- #: admin/class-settings.php:535
849
  msgid "Guatemala"
850
  msgstr "Guatemala"
851
 
852
- #: admin/class-settings.php:536
853
  msgid "Guinea"
854
  msgstr "Guinee"
855
 
856
- #: admin/class-settings.php:537
857
  msgid "Guinea-Bissau"
858
  msgstr "Guinee-Bissau"
859
 
860
- #: admin/class-settings.php:538
861
  msgid "Haiti"
862
  msgstr "Haïti"
863
 
864
- #: admin/class-settings.php:539
865
  msgid "Honduras"
866
  msgstr "Honduras"
867
 
868
- #: admin/class-settings.php:540
869
  msgid "Hong Kong"
870
  msgstr "Hong Kong"
871
 
872
- #: admin/class-settings.php:541
873
  msgid "Hungary"
874
  msgstr "Hongarije"
875
 
876
- #: admin/class-settings.php:542
877
  msgid "Iceland"
878
  msgstr "IJsland"
879
 
880
- #: admin/class-settings.php:543
881
  msgid "India"
882
  msgstr "India"
883
 
884
- #: admin/class-settings.php:544
885
  msgid "Indonesia"
886
  msgstr "Indonesië"
887
 
888
- #: admin/class-settings.php:545
889
  msgid "Iran"
890
  msgstr "Iran"
891
 
892
- #: admin/class-settings.php:546
893
  msgid "Iraq"
894
  msgstr "Irak"
895
 
896
- #: admin/class-settings.php:547
897
  msgid "Ireland"
898
  msgstr "Ierland"
899
 
900
- #: admin/class-settings.php:548
901
  msgid "Israel"
902
  msgstr "Israël"
903
 
904
- #: admin/class-settings.php:549
905
  msgid "Italy"
906
  msgstr "Italië"
907
 
908
- #: admin/class-settings.php:550
909
  msgid "Jamaica"
910
  msgstr "Jamaica"
911
 
912
- #: admin/class-settings.php:551
913
  msgid "Japan"
914
  msgstr "Japan"
915
 
916
- #: admin/class-settings.php:552
917
  msgid "Jordan"
918
  msgstr "Jordanië"
919
 
920
- #: admin/class-settings.php:553
921
  msgid "Kazakhstan"
922
  msgstr "Kazachstan"
923
 
924
- #: admin/class-settings.php:554
925
  msgid "Kenya"
926
  msgstr "Kenia"
927
 
928
- #: admin/class-settings.php:555
929
  msgid "Kuwait"
930
  msgstr "Koeweit"
931
 
932
- #: admin/class-settings.php:556
933
  msgid "Kyrgyzstan"
934
  msgstr "Kirgizië"
935
 
936
- #: admin/class-settings.php:557
937
  msgid "Laos"
938
  msgstr "Laos"
939
 
940
- #: admin/class-settings.php:558
941
  msgid "Latvia"
942
  msgstr "Letland"
943
 
944
- #: admin/class-settings.php:559
945
  msgid "Lebanon"
946
  msgstr "Libanon"
947
 
948
- #: admin/class-settings.php:560
949
  msgid "Lesotho"
950
  msgstr "Lesotho"
951
 
952
- #: admin/class-settings.php:561
953
  msgid "Liberia"
954
  msgstr "Liberia"
955
 
956
- #: admin/class-settings.php:562
957
  msgid "Libya"
958
  msgstr "Libië"
959
 
960
- #: admin/class-settings.php:563
961
  msgid "Liechtenstein"
962
  msgstr "Liechtenstein"
963
 
964
- #: admin/class-settings.php:564
965
  msgid "Lithuania"
966
  msgstr "Litouwen"
967
 
968
- #: admin/class-settings.php:565
969
  msgid "Luxembourg"
970
  msgstr "Luxemburg"
971
 
972
- #: admin/class-settings.php:566
973
  msgid "Macau"
974
  msgstr "Macau"
975
 
976
- #: admin/class-settings.php:567
977
  msgid "Macedonia"
978
  msgstr "Macedonië"
979
 
980
- #: admin/class-settings.php:568
981
  msgid "Madagascar"
982
  msgstr "Madagascar"
983
 
984
- #: admin/class-settings.php:569
985
  msgid "Malawi"
986
  msgstr "Malawi"
987
 
988
- #: admin/class-settings.php:570
989
  msgid "Malaysia "
990
  msgstr "Maleisie"
991
 
992
- #: admin/class-settings.php:571
993
  msgid "Mali"
994
  msgstr "Mali"
995
 
996
- #: admin/class-settings.php:572
997
  msgid "Marshall Islands"
998
  msgstr "Marshalleilanden"
999
 
1000
- #: admin/class-settings.php:573
1001
  msgid "Martinique"
1002
  msgstr "Martinique"
1003
 
1004
- #: admin/class-settings.php:574
1005
  msgid "Mauritania"
1006
  msgstr "Mauritanië"
1007
 
1008
- #: admin/class-settings.php:575
1009
  msgid "Mauritius"
1010
  msgstr "Mauritius"
1011
 
1012
- #: admin/class-settings.php:576
1013
  msgid "Mexico"
1014
  msgstr "Mexico"
1015
 
1016
- #: admin/class-settings.php:577
1017
  msgid "Micronesia"
1018
  msgstr "Micronesia"
1019
 
1020
- #: admin/class-settings.php:578
1021
  msgid "Moldova"
1022
  msgstr "Moldavië"
1023
 
1024
- #: admin/class-settings.php:579
1025
  msgid "Monaco"
1026
  msgstr "Monaco"
1027
 
1028
- #: admin/class-settings.php:580
1029
  msgid "Mongolia"
1030
  msgstr "Mongolië"
1031
 
1032
- #: admin/class-settings.php:581
1033
  msgid "Montenegro"
1034
  msgstr "Montenegro"
1035
 
1036
- #: admin/class-settings.php:582
1037
  msgid "Montserrat"
1038
  msgstr "Montserrat "
1039
 
1040
- #: admin/class-settings.php:583
1041
  msgid "Morocco"
1042
  msgstr "Marokko"
1043
 
1044
- #: admin/class-settings.php:584
1045
  msgid "Mozambique"
1046
  msgstr "Mozambique"
1047
 
1048
- #: admin/class-settings.php:585
1049
  msgid "Myanmar"
1050
  msgstr "Myanmar"
1051
 
1052
- #: admin/class-settings.php:586
1053
  msgid "Namibia"
1054
  msgstr "Namibië"
1055
 
1056
- #: admin/class-settings.php:587
1057
  msgid "Nauru"
1058
  msgstr "Nauru"
1059
 
1060
- #: admin/class-settings.php:588
1061
  msgid "Nepal"
1062
  msgstr "Nepal"
1063
 
1064
- #: admin/class-settings.php:589
1065
  msgid "Netherlands"
1066
  msgstr "Nederland"
1067
 
1068
- #: admin/class-settings.php:590
1069
  msgid "Netherlands Antilles"
1070
  msgstr "Nederlandse Antillen"
1071
 
1072
- #: admin/class-settings.php:591
1073
  msgid "New Zealand"
1074
  msgstr "Nieuw Zeeland"
1075
 
1076
- #: admin/class-settings.php:592
1077
  msgid "Nicaragua"
1078
  msgstr "Nicaragua"
1079
 
1080
- #: admin/class-settings.php:593
1081
  msgid "Niger"
1082
  msgstr "Niger"
1083
 
1084
- #: admin/class-settings.php:594
1085
  msgid "Nigeria"
1086
  msgstr "Nigeria"
1087
 
1088
- #: admin/class-settings.php:595
1089
  msgid "Niue"
1090
  msgstr "Niue"
1091
 
1092
- #: admin/class-settings.php:596
1093
  msgid "Northern Mariana Islands"
1094
  msgstr "Noordelijke Marianen"
1095
 
1096
- #: admin/class-settings.php:597
1097
  msgid "Norway"
1098
  msgstr "Noorwegen"
1099
 
1100
- #: admin/class-settings.php:598
1101
  msgid "Oman"
1102
  msgstr "Oman"
1103
 
1104
- #: admin/class-settings.php:599
1105
  msgid "Pakistan"
1106
  msgstr "Pakistan"
1107
 
1108
- #: admin/class-settings.php:600
1109
  msgid "Panama"
1110
  msgstr "Panama"
1111
 
1112
- #: admin/class-settings.php:601
1113
  msgid "Papua New Guinea"
1114
  msgstr "Papoea-Nieuw-Guinea"
1115
 
1116
- #: admin/class-settings.php:602
1117
  msgid "Paraguay"
1118
  msgstr "Paraguay"
1119
 
1120
- #: admin/class-settings.php:603
1121
  msgid "Peru"
1122
  msgstr "Peru"
1123
 
1124
- #: admin/class-settings.php:604
1125
  msgid "Philippines"
1126
  msgstr "Filipijnen"
1127
 
1128
- #: admin/class-settings.php:605
1129
  msgid "Pitcairn Islands"
1130
  msgstr "Pitcairneilanden"
1131
 
1132
- #: admin/class-settings.php:606
1133
  msgid "Poland"
1134
  msgstr "Polen"
1135
 
1136
- #: admin/class-settings.php:607
1137
  msgid "Portugal"
1138
  msgstr "Portugal"
1139
 
1140
- #: admin/class-settings.php:608
1141
  msgid "Qatar"
1142
  msgstr "Qatar"
1143
 
1144
- #: admin/class-settings.php:609
1145
  msgid "Reunion"
1146
  msgstr "Réunion"
1147
 
1148
- #: admin/class-settings.php:610
1149
  msgid "Romania"
1150
  msgstr "Roemenië"
1151
 
1152
- #: admin/class-settings.php:611
1153
  msgid "Russia"
1154
  msgstr "Rusland"
1155
 
1156
- #: admin/class-settings.php:612
1157
  msgid "Rwanda"
1158
  msgstr "Rwanda"
1159
 
1160
- #: admin/class-settings.php:613
1161
  msgid "Saint Helena"
1162
  msgstr "Sint-Helena"
1163
 
1164
- #: admin/class-settings.php:614
1165
  msgid "Saint Kitts and Nevis"
1166
  msgstr "Saint Kitts en Nevis"
1167
 
1168
- #: admin/class-settings.php:615
1169
  msgid "Saint Vincent and the Grenadines"
1170
  msgstr "Saint Vincent en de Grenadines"
1171
 
1172
- #: admin/class-settings.php:616
1173
  msgid "Saint Lucia"
1174
  msgstr "Saint Lucia"
1175
 
1176
- #: admin/class-settings.php:617
1177
  msgid "Samoa"
1178
  msgstr "Samoa"
1179
 
1180
- #: admin/class-settings.php:618
1181
  msgid "San Marino"
1182
  msgstr "San Marino"
1183
 
1184
- #: admin/class-settings.php:619
1185
  msgid "São Tomé and Príncipe"
1186
  msgstr "Sao Tomé en Principe"
1187
 
1188
- #: admin/class-settings.php:620
1189
  msgid "Saudi Arabia"
1190
  msgstr "Saoedi-Arabië"
1191
 
1192
- #: admin/class-settings.php:621
1193
  msgid "Senegal"
1194
  msgstr "Senegal"
1195
 
1196
- #: admin/class-settings.php:622
1197
  msgid "Serbia"
1198
  msgstr "Servië"
1199
 
1200
- #: admin/class-settings.php:623
1201
  msgid "Seychelles"
1202
  msgstr "Seychellen"
1203
 
1204
- #: admin/class-settings.php:624
1205
  msgid "Sierra Leone"
1206
  msgstr "Sierra Leone"
1207
 
1208
- #: admin/class-settings.php:625
1209
  msgid "Singapore"
1210
  msgstr "Singapore"
1211
 
1212
- #: admin/class-settings.php:626
1213
  msgid "Slovakia"
1214
  msgstr "Slowakije"
1215
 
1216
- #: admin/class-settings.php:627
1217
  msgid "Solomon Islands"
1218
  msgstr "Salomonseilanden"
1219
 
1220
- #: admin/class-settings.php:628
1221
  msgid "Somalia"
1222
  msgstr "Somalie"
1223
 
1224
- #: admin/class-settings.php:629
1225
  msgid "South Africa"
1226
  msgstr "Zuid Afrika"
1227
 
1228
- #: admin/class-settings.php:630
1229
  msgid "South Korea"
1230
  msgstr "Zuid Korea"
1231
 
1232
- #: admin/class-settings.php:631
1233
  msgid "Spain"
1234
  msgstr "Spanje"
1235
 
1236
- #: admin/class-settings.php:632
1237
  msgid "Sri Lanka"
1238
  msgstr "Sri Lanka"
1239
 
1240
- #: admin/class-settings.php:633
1241
  msgid "Sudan"
1242
  msgstr "Sudan"
1243
 
1244
- #: admin/class-settings.php:634
1245
  msgid "Swaziland"
1246
  msgstr "Swaziland "
1247
 
1248
- #: admin/class-settings.php:635
1249
  msgid "Sweden"
1250
  msgstr "Zweden"
1251
 
1252
- #: admin/class-settings.php:636
1253
  msgid "Switzerland"
1254
  msgstr "Zwitserland"
1255
 
1256
- #: admin/class-settings.php:637
1257
  msgid "Syria"
1258
  msgstr "Syrië"
1259
 
1260
- #: admin/class-settings.php:638
1261
  msgid "Taiwan"
1262
  msgstr "Taiwan"
1263
 
1264
- #: admin/class-settings.php:639
1265
  msgid "Tajikistan"
1266
  msgstr "Tajikistan"
1267
 
1268
- #: admin/class-settings.php:640
1269
  msgid "Tanzania"
1270
  msgstr "Tanzania"
1271
 
1272
- #: admin/class-settings.php:641
1273
  msgid "Thailand"
1274
  msgstr "Thailand"
1275
 
1276
- #: admin/class-settings.php:642
1277
  msgid "Timor-Leste"
1278
  msgstr "Oost-Timor"
1279
 
1280
- #: admin/class-settings.php:643
1281
  msgid "Tokelau"
1282
  msgstr "Tokelau"
1283
 
1284
- #: admin/class-settings.php:644
1285
  msgid "Togo"
1286
  msgstr "Togo"
1287
 
1288
- #: admin/class-settings.php:645
1289
  msgid "Tonga"
1290
  msgstr "Tonga"
1291
 
1292
- #: admin/class-settings.php:646
1293
  msgid "Trinidad and Tobago"
1294
  msgstr "Trinidad en Tobago"
1295
 
1296
- #: admin/class-settings.php:647
1297
  msgid "Tunisia"
1298
  msgstr "Tunesië"
1299
 
1300
- #: admin/class-settings.php:648
1301
  msgid "Turkey"
1302
  msgstr "Turkije"
1303
 
1304
- #: admin/class-settings.php:649
1305
  msgid "Turkmenistan"
1306
  msgstr "Turkmenistan"
1307
 
1308
- #: admin/class-settings.php:650
1309
  msgid "Tuvalu"
1310
  msgstr "Tuvalu"
1311
 
1312
- #: admin/class-settings.php:651
1313
  msgid "Uganda"
1314
  msgstr "Uganda"
1315
 
1316
- #: admin/class-settings.php:652
1317
  msgid "Ukraine"
1318
  msgstr "Oekraïne"
1319
 
1320
- #: admin/class-settings.php:653
1321
  msgid "United Arab Emirates"
1322
  msgstr "Verenigde Arabische Emiraten"
1323
 
1324
- #: admin/class-settings.php:654
1325
  msgid "United Kingdom"
1326
  msgstr "Verenigd Koninkrijk"
1327
 
1328
- #: admin/class-settings.php:655
1329
  msgid "United States"
1330
  msgstr "Verenigde Staten"
1331
 
1332
- #: admin/class-settings.php:656
1333
  msgid "Uruguay"
1334
  msgstr "Uruguay"
1335
 
1336
- #: admin/class-settings.php:657
1337
  msgid "Uzbekistan"
1338
  msgstr "Uzbekistan"
1339
 
1340
- #: admin/class-settings.php:658
1341
  msgid "Wallis Futuna"
1342
  msgstr "Wallis en Futuna"
1343
 
1344
- #: admin/class-settings.php:659
1345
  msgid "Venezuela"
1346
  msgstr "Venezuela"
1347
 
1348
- #: admin/class-settings.php:660
1349
  msgid "Vietnam"
1350
  msgstr "Vietnam"
1351
 
1352
- #: admin/class-settings.php:661
1353
  msgid "Yemen"
1354
  msgstr "Yemen"
1355
 
1356
- #: admin/class-settings.php:662
1357
  msgid "Zambia"
1358
  msgstr "Zambia"
1359
 
1360
- #: admin/class-settings.php:663
1361
  msgid "Zimbabwe"
1362
  msgstr "Zimbabwe"
1363
 
1364
- #: admin/class-settings.php:706
1365
  msgid "World view"
1366
  msgstr "wereldkaart"
1367
 
1368
- #: admin/class-settings.php:709 admin/class-settings.php:822
1369
- #: inc/wpsl-functions.php:181
1370
  msgid "Default"
1371
  msgstr "standaard"
1372
 
1373
- #: admin/class-settings.php:712 inc/wpsl-functions.php:254
1374
  msgid "Roadmap"
1375
  msgstr "wegenkaart"
1376
 
1377
- #: admin/class-settings.php:852
1378
  msgid "Start location marker"
1379
  msgstr "Start locatie marker"
1380
 
1381
- #: admin/class-settings.php:854
1382
  msgid "Store location marker"
1383
  msgstr "Winkel locatie marker"
1384
 
1385
- #: admin/class-settings.php:935
1386
  msgid "Textarea"
1387
  msgstr "tekstvlak"
1388
 
1389
- #: admin/class-settings.php:936
1390
  msgid "Dropdowns (recommended)"
1391
  msgstr "dropdown (aangeraden)"
1392
 
1393
- #: admin/class-settings.php:944
1394
  msgid "Bounces up and down"
1395
  msgstr "beweegt op en neer"
1396
 
1397
- #: admin/class-settings.php:945
1398
  msgid "Will open the info window"
1399
  msgstr "opent de info window"
1400
 
1401
- #: admin/class-settings.php:946
1402
  msgid "Does not respond"
1403
  msgstr "reageert niet"
1404
 
1405
- #: admin/class-settings.php:954
1406
  msgid "In the store listings"
1407
  msgstr "In de locatie lijst"
1408
 
1409
- #: admin/class-settings.php:955
1410
  msgid "In the info window on the map"
1411
  msgstr "In de info window op de kaart"
1412
 
1413
- #: admin/class-settings.php:1011
1414
  msgid "12 Hours"
1415
  msgstr "12 uur"
1416
 
1417
- #: admin/class-settings.php:1012
1418
  msgid "24 Hours"
1419
  msgstr "24 uur"
1420
 
@@ -1460,80 +1480,99 @@ msgstr "Kaart regio"
1460
  #: admin/templates/map-settings.php:29
1461
  #, php-format
1462
  msgid ""
1463
- "This will bias the geocoding results towards the selected region. %s If no "
1464
- "region is selected the bias is set to the United States."
1465
  msgstr ""
1466
- "Dit zorgt er voor dat de geocode resultaten uit de geselecteerde regio "
1467
  "voorkeur krijgen over resultaten uit andere regio's . %s Als er geen regio "
1468
  "is geselecteerd dan gaat de voorkeur uit naar de Verenigde Staten."
1469
 
1470
- #: admin/templates/map-settings.php:35 admin/templates/map-settings.php:77
1471
- #: admin/templates/map-settings.php:154 admin/templates/map-settings.php:247
1472
- #: admin/templates/map-settings.php:273 admin/templates/map-settings.php:323
1473
- #: admin/templates/map-settings.php:349 admin/templates/map-settings.php:457
1474
- #: admin/templates/map-settings.php:478
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1475
  msgid "Save Changes"
1476
  msgstr "Wijzigingen opslaan"
1477
 
1478
- #: admin/templates/map-settings.php:45 admin/templates/map-settings.php:385
1479
- #: admin/templates/map-settings.php:386 frontend/templates/default.php:43
1480
- #: frontend/templates/store-listings-below.php:43 inc/wpsl-functions.php:99
1481
  msgid "Search"
1482
  msgstr "Zoek"
1483
 
1484
- #: admin/templates/map-settings.php:48
1485
  msgid "Show the max results dropdown?"
1486
  msgstr "Toon de max resultaten dropdown?"
1487
 
1488
- #: admin/templates/map-settings.php:52
1489
  msgid "Show the search radius dropdown?"
1490
  msgstr "Toon de zoek radius dropdown?"
1491
 
1492
- #: admin/templates/map-settings.php:56
1493
  msgid "Show the category dropdown?"
1494
  msgstr "Toon de categorie dropdown?"
1495
 
1496
- #: admin/templates/map-settings.php:60
1497
  msgid "Distance unit"
1498
  msgstr "Afstands eenheid"
1499
 
1500
- #: admin/templates/map-settings.php:63
1501
  msgid "km"
1502
  msgstr "km"
1503
 
1504
- #: admin/templates/map-settings.php:65
1505
  msgid "mi"
1506
  msgstr "mi"
1507
 
1508
- #: admin/templates/map-settings.php:69
1509
  msgid "Max search results"
1510
  msgstr "Max zoek resultaten"
1511
 
1512
- #: admin/templates/map-settings.php:69 admin/templates/map-settings.php:73
1513
  msgid "The default value is set between the [ ]."
1514
  msgstr "* De standaard waarde staat tussen de []."
1515
 
1516
- #: admin/templates/map-settings.php:73
1517
  msgid "Search radius options"
1518
  msgstr "Zoek radius opties"
1519
 
1520
- #: admin/templates/map-settings.php:87
1521
  msgid "Map"
1522
  msgstr "Kaart"
1523
 
1524
- #: admin/templates/map-settings.php:90
1525
  msgid "Attempt to auto-locate the user"
1526
  msgstr "Probeer de locatie van de gebruiker automatische te achterhalen"
1527
 
1528
- #: admin/templates/map-settings.php:94
1529
  msgid "Load locations on page load"
1530
  msgstr "Toon alle locaties op de kaart zodra de pagina geladen is"
1531
 
1532
- #: admin/templates/map-settings.php:98
1533
  msgid "Number of locations to show"
1534
  msgstr "Aantal getoonde locaties"
1535
 
1536
- #: admin/templates/map-settings.php:98
1537
  #, php-format
1538
  msgid ""
1539
  "Although the location data is cached after the first load, a lower number "
@@ -1546,11 +1585,11 @@ msgstr ""
1546
  "Als het veld leeg blijft of er wordt 0 ingevuld, dan worden alle locaties "
1547
  "geladen."
1548
 
1549
- #: admin/templates/map-settings.php:102
1550
  msgid "Start point"
1551
  msgstr "Start locatie"
1552
 
1553
- #: admin/templates/map-settings.php:102
1554
  #, php-format
1555
  msgid ""
1556
  "%sRequired field.%s %s If auto-locating the user is disabled or fails, the "
@@ -1561,15 +1600,15 @@ msgstr ""
1561
  "locatie is uitgeschakeld of mislukt, dan wordt het middelpunt van de "
1562
  "opgegeven locatie als begin punt gebruikt."
1563
 
1564
- #: admin/templates/map-settings.php:107
1565
  msgid "Initial zoom level"
1566
  msgstr "Start zoom niveau"
1567
 
1568
- #: admin/templates/map-settings.php:111
1569
  msgid "Max auto zoom level"
1570
  msgstr "Max zoom niveau"
1571
 
1572
- #: admin/templates/map-settings.php:111
1573
  #, php-format
1574
  msgid ""
1575
  "This value sets the zoom level for the \"Zoom here\" link in the info "
@@ -1581,39 +1620,39 @@ msgstr ""
1581
  "limiteren als de viewport van de kaart verandert, wanneer geprobeerd wordt "
1582
  "om alle markers op het scherm te laten passen."
1583
 
1584
- #: admin/templates/map-settings.php:115
1585
  msgid "Show the street view controls?"
1586
  msgstr "Toon de street view controls?"
1587
 
1588
- #: admin/templates/map-settings.php:119
1589
  msgid "Show the map type control?"
1590
  msgstr "Toon de kaart type controls?"
1591
 
1592
- #: admin/templates/map-settings.php:123
1593
  msgid "Enable scroll wheel zooming?"
1594
  msgstr "Activeer het inzoomen met je scrollwheel?"
1595
 
1596
- #: admin/templates/map-settings.php:127
1597
  msgid "Zoom control position"
1598
  msgstr "Zoom bediening positie"
1599
 
1600
- #: admin/templates/map-settings.php:130
1601
  msgid "Left"
1602
  msgstr "links"
1603
 
1604
- #: admin/templates/map-settings.php:132
1605
  msgid "Right"
1606
  msgstr "rechts"
1607
 
1608
- #: admin/templates/map-settings.php:136
1609
  msgid "Map type"
1610
  msgstr "Kaart soort"
1611
 
1612
- #: admin/templates/map-settings.php:140
1613
  msgid "Map style"
1614
  msgstr "Kaart stijl"
1615
 
1616
- #: admin/templates/map-settings.php:140
1617
  msgid ""
1618
  "Custom map styles only work if the map type is set to \"Roadmap\" or "
1619
  "\"Terrain\"."
@@ -1621,7 +1660,7 @@ msgstr ""
1621
  "Custom map stijlen werken alleen maar als de kaart soort op \"Wegenkaart\" "
1622
  "of \"Terrein\" is gezet."
1623
 
1624
- #: admin/templates/map-settings.php:143
1625
  #, php-format
1626
  msgid ""
1627
  "You can use existing map styles from %sSnazzy Maps%s or %sMap Stylr%s and "
@@ -1632,7 +1671,7 @@ msgstr ""
1632
  "en in het onderstaande tekstvlak plaatsen. Of je kan de map stijl genereren "
1633
  "via de %sMap Style Editor%s of de %sStyled Maps Wizard%s."
1634
 
1635
- #: admin/templates/map-settings.php:144
1636
  #, php-format
1637
  msgid ""
1638
  "If you like to write the style code yourself, then you can find the "
@@ -1641,46 +1680,46 @@ msgstr ""
1641
  "Als je zelf de stijl code wil schrijven dan kun je de documentatie %shier%s "
1642
  "vinden."
1643
 
1644
- #: admin/templates/map-settings.php:146
1645
  msgid "Preview Map Style"
1646
  msgstr "Map stijl voorbeeld"
1647
 
1648
- #: admin/templates/map-settings.php:150
1649
  msgid "Show credits?"
1650
  msgstr "Toon credits?"
1651
 
1652
- #: admin/templates/map-settings.php:150
1653
  msgid ""
1654
  "This will place a \"Search provided by WP Store Locator\" backlink below the "
1655
  "map."
1656
  msgstr ""
1657
  "Dit plaatst een \"Ondersteund door WP Store Locator\" link onder de kaart."
1658
 
1659
- #: admin/templates/map-settings.php:164
1660
  msgid "User Experience"
1661
  msgstr "Gebruikers ervaring"
1662
 
1663
- #: admin/templates/map-settings.php:167
1664
  msgid "Store Locator height"
1665
  msgstr "Store Locator hoogte"
1666
 
1667
- #: admin/templates/map-settings.php:171
1668
  msgid "Max width for the info window content"
1669
  msgstr "Max breedte voor de info window inhoud"
1670
 
1671
- #: admin/templates/map-settings.php:175
1672
  msgid "Search field width"
1673
  msgstr "Zoekveld breedte"
1674
 
1675
- #: admin/templates/map-settings.php:179
1676
  msgid "Search and radius label width"
1677
  msgstr "Zoek en radius label breedte"
1678
 
1679
- #: admin/templates/map-settings.php:183
1680
  msgid "Store Locator template"
1681
  msgstr "Store locator template"
1682
 
1683
- #: admin/templates/map-settings.php:183
1684
  #, php-format
1685
  msgid ""
1686
  "The selected template is used with the [wpsl] shortcode. %s You can add a "
@@ -1689,19 +1728,19 @@ msgstr ""
1689
  "De geselecteerde template wordt gebruikt bij de [wpsl] shortcode. %s Je kunt "
1690
  "een custom template gebruiken met behulp van de %swpsl_templates%s filter."
1691
 
1692
- #: admin/templates/map-settings.php:187
1693
  msgid "Hide the scrollbar?"
1694
  msgstr "Verberg de scrollbar?"
1695
 
1696
- #: admin/templates/map-settings.php:191
1697
  msgid "Open links in a new window?"
1698
  msgstr "Open links in een nieuw venster?"
1699
 
1700
- #: admin/templates/map-settings.php:195
1701
  msgid "Show a reset map button?"
1702
  msgstr "Toon een knop om de kaart te resetten?"
1703
 
1704
- #: admin/templates/map-settings.php:199
1705
  msgid ""
1706
  "When a user clicks on \"Directions\", open a new window, and show the route "
1707
  "on google.com/maps ?"
@@ -1709,11 +1748,11 @@ msgstr ""
1709
  "Zodra een gebruiker op \"Route\" klikt, open een nieuwe venster en toon de "
1710
  "route op google.com/maps?"
1711
 
1712
- #: admin/templates/map-settings.php:203
1713
  msgid "Show a \"More info\" link in the store listings?"
1714
  msgstr "Toon een \"Meer info\" link in de locatie lijst?"
1715
 
1716
- #: admin/templates/map-settings.php:203
1717
  #, php-format
1718
  msgid ""
1719
  "This places a \"More Info\" link below the address and will show the phone, "
@@ -1726,15 +1765,15 @@ msgstr ""
1726
  "omschrijving. %s Als je bijvoorbeeld de contact gegevens altijd wil tonen, "
1727
  "volg dan de instructies op %sdeze%s pagina."
1728
 
1729
- #: admin/templates/map-settings.php:207
1730
  msgid "Where do you want to show the \"More info\" details?"
1731
  msgstr "Waar wil je de \"Meer info\" details tonen?"
1732
 
1733
- #: admin/templates/map-settings.php:211
1734
  msgid "Make the store name clickable if a store URL exists?"
1735
  msgstr "Als een winkel url bestaat, maak de winkel naam dan klikbaar?"
1736
 
1737
- #: admin/templates/map-settings.php:211
1738
  #, php-format
1739
  msgid ""
1740
  "If %spermalinks%s are enabled, the store name will always link to the store "
@@ -1743,11 +1782,11 @@ msgstr ""
1743
  "Als de %spermalinks%s zijn ingeschakeld dan zal de winkel naam altijd linken "
1744
  "naar de winkel pagina."
1745
 
1746
- #: admin/templates/map-settings.php:215
1747
  msgid "Make the phone number clickable on mobile devices?"
1748
  msgstr "Maak het telefoonnummer klikbaar op mobiele apparaten?"
1749
 
1750
- #: admin/templates/map-settings.php:219
1751
  msgid ""
1752
  "If street view is available for the current location, then show a \"Street "
1753
  "view\" link in the info window?"
@@ -1755,7 +1794,7 @@ msgstr ""
1755
  "Als voor de huidge locatie street view beschikbaar is, toon dan een \"Street "
1756
  "view\" link om vanuit de info window?"
1757
 
1758
- #: admin/templates/map-settings.php:219
1759
  #, php-format
1760
  msgid ""
1761
  "Enabling this option can sometimes result in a small delay in the opening of "
@@ -1767,11 +1806,11 @@ msgstr ""
1767
  "er een verzoek naar de Google Maps API word gemaakt om te controleren ofdat "
1768
  "street view wel beschikbaar is voor de huidige locatie."
1769
 
1770
- #: admin/templates/map-settings.php:223
1771
  msgid "Show a \"Zoom here\" link in the info window?"
1772
  msgstr "Toon een \"zoom hier\" link in de info window?"
1773
 
1774
- #: admin/templates/map-settings.php:223
1775
  #, php-format
1776
  msgid ""
1777
  "Clicking this link will make the map zoom in to the %s max auto zoom level "
@@ -1780,12 +1819,12 @@ msgstr ""
1780
  "Als er op deze link geklikt word dan zoomt de kaart in totdat de %s max auto "
1781
  "zoom level %s bereikt is."
1782
 
1783
- #: admin/templates/map-settings.php:227
1784
  msgid "On page load move the mouse cursor to the search field?"
1785
  msgstr ""
1786
  "Als de pagina wordt geladen, verplaats de muiscursor dan naar het invulveld?"
1787
 
1788
- #: admin/templates/map-settings.php:227
1789
  #, php-format
1790
  msgid ""
1791
  "If the store locator is not placed at the top of the page, enabling this "
@@ -1796,11 +1835,11 @@ msgstr ""
1796
  "instelling ervoor zorgen dat de pagina naar benenden schuift tijden het "
1797
  "laden. %s %sDeze optie staat uit op mobiele apparaten.%s"
1798
 
1799
- #: admin/templates/map-settings.php:231
1800
  msgid "Use the default style for the info window?"
1801
  msgstr "Gebruik de standaard style voor de info window?"
1802
 
1803
- #: admin/templates/map-settings.php:231
1804
  #, php-format
1805
  msgid ""
1806
  "If the default style is disabled the %sInfoBox%s library will be used "
@@ -1811,17 +1850,17 @@ msgstr ""
1811
  "gebruikt. %s Dit script maakt het mogelijk om makkelijk het ontwerp te "
1812
  "wijzigen met behulp van de .wpsl-infobox css class."
1813
 
1814
- #: admin/templates/map-settings.php:235
1815
  msgid "Hide the distance in the search results?"
1816
  msgstr "Verberg de afstand in de zoek resultaten?"
1817
 
1818
- #: admin/templates/map-settings.php:239
1819
  msgid "If a user hovers over the search results the store marker"
1820
  msgstr ""
1821
  "Als een gebruiker over de zoekresultaten beweegt met zijn muis de "
1822
  "bijbehorende marker"
1823
 
1824
- #: admin/templates/map-settings.php:239
1825
  #, php-format
1826
  msgid ""
1827
  "If marker clusters are enabled this option will not work as expected as long "
@@ -1836,11 +1875,11 @@ msgstr ""
1836
  "de marker cluster wordt omgezet naar losse markers. %s De info window wordt "
1837
  "wel geopend, maar het is niet duidelijk bij welke marker het hoort."
1838
 
1839
- #: admin/templates/map-settings.php:243
1840
  msgid "Address format"
1841
  msgstr "Adres formaat"
1842
 
1843
- #: admin/templates/map-settings.php:243
1844
  #, php-format
1845
  msgid ""
1846
  "You can add custom address formats with the %swpsl_address_formats%s filter."
@@ -1848,23 +1887,23 @@ msgstr ""
1848
  "Je kunt een nieuwe adres formaat toevoegen met de %swpsl_address_formats%s "
1849
  "filter."
1850
 
1851
- #: admin/templates/map-settings.php:257
1852
  msgid "Markers"
1853
  msgstr "Markers"
1854
 
1855
- #: admin/templates/map-settings.php:261
1856
  msgid "Enable marker clusters?"
1857
  msgstr "Activeer marker clusters?"
1858
 
1859
- #: admin/templates/map-settings.php:261
1860
  msgid "Recommended for maps with a large amount of markers."
1861
  msgstr "Aan te raden voor kaarten met grote hoeveelheden markers."
1862
 
1863
- #: admin/templates/map-settings.php:265
1864
  msgid "Max zoom level"
1865
  msgstr "Max zoom niveau"
1866
 
1867
- #: admin/templates/map-settings.php:265
1868
  msgid ""
1869
  "If this zoom level is reached or exceeded, then all markers are moved out of "
1870
  "the marker cluster and shown as individual markers."
@@ -1872,11 +1911,11 @@ msgstr ""
1872
  "Als dit zoom niveau bereikt is of gepasseerd, dan worden alle markers uit de "
1873
  "marker cluster gehaald en als losse markers getoond."
1874
 
1875
- #: admin/templates/map-settings.php:269
1876
  msgid "Cluster size"
1877
  msgstr "Cluster grote"
1878
 
1879
- #: admin/templates/map-settings.php:269
1880
  #, php-format
1881
  msgid ""
1882
  "The grid size of a cluster in pixels. %s A larger number will result in a "
@@ -1886,27 +1925,27 @@ msgstr ""
1886
  "voor dat er minder clusters zichtbaar zijn en het algoritme dus ook sneller "
1887
  "klaar is."
1888
 
1889
- #: admin/templates/map-settings.php:283
1890
  msgid "Store Editor"
1891
  msgstr "Winkel editor"
1892
 
1893
- #: admin/templates/map-settings.php:286
1894
  msgid "Default country"
1895
  msgstr "Standaard land"
1896
 
1897
- #: admin/templates/map-settings.php:290
1898
  msgid "Map type for the location preview"
1899
  msgstr "Kaart type voor het lokatie voorbeeld"
1900
 
1901
- #: admin/templates/map-settings.php:294
1902
  msgid "Hide the opening hours?"
1903
  msgstr "Verberg de openingstijden?"
1904
 
1905
- #: admin/templates/map-settings.php:300
1906
  msgid "Opening hours input type"
1907
  msgstr "Openingstijden formaat"
1908
 
1909
- #: admin/templates/map-settings.php:304
1910
  #, php-format
1911
  msgid ""
1912
  "Opening hours created in version 1.x %sare not%s automatically converted to "
@@ -1915,15 +1954,15 @@ msgstr ""
1915
  "De openingstijden die zijn aangemaakt in versie 1.x %sworden niet%s "
1916
  "automatische omgezet naar het dropdown formaat."
1917
 
1918
- #: admin/templates/map-settings.php:307 admin/templates/map-settings.php:316
1919
  msgid "The default opening hours"
1920
  msgstr "De standaard openingstijden"
1921
 
1922
- #: admin/templates/map-settings.php:313
1923
  msgid "Opening hours format"
1924
  msgstr "Openingstijden formaat"
1925
 
1926
- #: admin/templates/map-settings.php:320
1927
  msgid ""
1928
  "The default country and opening hours are only used when a new store is "
1929
  "created. So changing the default values will have no effect on existing "
@@ -1933,39 +1972,39 @@ msgstr ""
1933
  "gebruikt als een nieuwe locatie wordt aangemaakt. Het wijzigen van deze "
1934
  "waardes heeft dus geen enkele invloed op de bestaande locaties."
1935
 
1936
- #: admin/templates/map-settings.php:333
1937
  msgid "Permalink"
1938
  msgstr "Permalink"
1939
 
1940
- #: admin/templates/map-settings.php:336
1941
  msgid "Enable permalink?"
1942
  msgstr "Activeer permalink?"
1943
 
1944
- #: admin/templates/map-settings.php:340
1945
  msgid "Store slug"
1946
  msgstr "Winkel slug"
1947
 
1948
- #: admin/templates/map-settings.php:344
1949
  msgid "Category slug"
1950
  msgstr "Categorie slug"
1951
 
1952
- #: admin/templates/map-settings.php:347
1953
  #, php-format
1954
  msgid "The permalink slugs %smust be unique%s on your site."
1955
  msgstr "De permalink slug %smoet uniek%s zijn op je site."
1956
 
1957
- #: admin/templates/map-settings.php:359
1958
  msgid "Labels"
1959
  msgstr "Labels"
1960
 
1961
- #: admin/templates/map-settings.php:368
1962
  #, php-format
1963
  msgid "%sWarning!%s %sWPML%s, or a plugin using the WPML API is active."
1964
  msgstr ""
1965
  "%sWaarschuwing!%s %sWPML%s, of een plugin die de WPML API gebruikt is "
1966
  "actief."
1967
 
1968
- #: admin/templates/map-settings.php:369
1969
  msgid ""
1970
  "Please use the \"String Translations\" section in the used multilingual "
1971
  "plugin to change the labels. Changing them here will have no effect as long "
@@ -1975,115 +2014,115 @@ msgstr ""
1975
  "labels te wijzigen. Wijzigingen die in dit gedeelte worden aangebracht "
1976
  "hebben geen effect zolang de vertaal plugin actief is."
1977
 
1978
- #: admin/templates/map-settings.php:373 admin/templates/map-settings.php:374
1979
  #: frontend/templates/default.php:11
1980
- #: frontend/templates/store-listings-below.php:11 inc/wpsl-functions.php:98
1981
  msgid "Your location"
1982
  msgstr "Uw locatie"
1983
 
1984
- #: admin/templates/map-settings.php:377 admin/templates/map-settings.php:378
1985
  #: frontend/templates/default.php:20
1986
- #: frontend/templates/store-listings-below.php:20 inc/wpsl-functions.php:101
1987
  msgid "Search radius"
1988
  msgstr "Zoek radius"
1989
 
1990
- #: admin/templates/map-settings.php:381 admin/templates/map-settings.php:382
1991
- #: frontend/class-frontend.php:1332 inc/wpsl-functions.php:102
1992
  msgid "No results found"
1993
  msgstr "Geen resultaten gevonden"
1994
 
1995
- #: admin/templates/map-settings.php:389
1996
  msgid "Searching (preloader text)"
1997
  msgstr "Aan het zoeken (preloader tekst)"
1998
 
1999
- #: admin/templates/map-settings.php:390 frontend/class-frontend.php:1331
2000
- #: inc/wpsl-functions.php:100
2001
  msgid "Searching..."
2002
  msgstr "Zoeken..."
2003
 
2004
- #: admin/templates/map-settings.php:393 admin/templates/map-settings.php:394
2005
  #: frontend/templates/default.php:29
2006
- #: frontend/templates/store-listings-below.php:29 inc/wpsl-functions.php:103
2007
  msgid "Results"
2008
  msgstr "Resultaten"
2009
 
2010
- #: admin/templates/map-settings.php:397 admin/upgrade.php:218
2011
- #: inc/wpsl-functions.php:117
2012
  msgid "Category filter"
2013
  msgstr "Categorie filter"
2014
 
2015
- #: admin/templates/map-settings.php:398 frontend/class-frontend.php:1107
2016
  msgid "Category"
2017
  msgstr "Categorie"
2018
 
2019
- #: admin/templates/map-settings.php:401 admin/templates/map-settings.php:402
2020
- #: admin/upgrade.php:66 frontend/class-frontend.php:1333
2021
  #: frontend/underscore-functions.php:114 frontend/underscore-functions.php:141
2022
- #: inc/wpsl-functions.php:104
2023
  msgid "More info"
2024
  msgstr "Meer info"
2025
 
2026
- #: admin/templates/map-settings.php:405 admin/templates/map-settings.php:406
2027
  #: frontend/class-frontend.php:673 frontend/underscore-functions.php:29
2028
- #: frontend/underscore-functions.php:121 inc/wpsl-functions.php:112
2029
  msgid "Phone"
2030
  msgstr "Telefoon"
2031
 
2032
- #: admin/templates/map-settings.php:425 admin/templates/map-settings.php:426
2033
- #: frontend/class-frontend.php:1338 inc/wpsl-functions.php:97
2034
  msgid "Start location"
2035
  msgstr "Start locatie"
2036
 
2037
- #: admin/templates/map-settings.php:429
2038
  msgid "Get directions"
2039
  msgstr "Toon routebeschrijving"
2040
 
2041
- #: admin/templates/map-settings.php:430 frontend/class-frontend.php:1336
2042
- #: inc/wpsl-functions.php:105
2043
  msgid "Directions"
2044
  msgstr "Routebeschrijving"
2045
 
2046
- #: admin/templates/map-settings.php:433
2047
  msgid "No directions found"
2048
  msgstr "Geen routebeschrijving beschikbaar"
2049
 
2050
- #: admin/templates/map-settings.php:434 admin/upgrade.php:163
2051
- #: frontend/class-frontend.php:1337 inc/wpsl-functions.php:106
2052
  msgid "No route could be found between the origin and destination"
2053
  msgstr "Er kon geen route gevonden worden tussen het begin- en eindpunt"
2054
 
2055
- #: admin/templates/map-settings.php:437 admin/templates/map-settings.php:438
2056
- #: admin/upgrade.php:87 frontend/class-frontend.php:1339
2057
- #: inc/wpsl-functions.php:107
2058
  msgid "Back"
2059
  msgstr "Terug"
2060
 
2061
- #: admin/templates/map-settings.php:441 admin/templates/map-settings.php:442
2062
- #: admin/upgrade.php:155 frontend/class-frontend.php:1340
2063
- #: inc/wpsl-functions.php:108
2064
  msgid "Street view"
2065
  msgstr "Street view"
2066
 
2067
- #: admin/templates/map-settings.php:445 admin/templates/map-settings.php:446
2068
- #: admin/upgrade.php:159 frontend/class-frontend.php:1341
2069
- #: inc/wpsl-functions.php:109
2070
  msgid "Zoom here"
2071
  msgstr "Zoom hier"
2072
 
2073
- #: admin/templates/map-settings.php:449
2074
  msgid "General error"
2075
  msgstr "Foutmelding"
2076
 
2077
- #: admin/templates/map-settings.php:450 frontend/class-frontend.php:1334
2078
- #: inc/wpsl-functions.php:110
2079
  msgid "Something went wrong, please try again!"
2080
  msgstr "Er ging iets fout, probeer het nog een keer!"
2081
 
2082
- #: admin/templates/map-settings.php:453
2083
  msgid "Query limit error"
2084
  msgstr "Query limit foutmelding"
2085
 
2086
- #: admin/templates/map-settings.php:453
2087
  #, php-format
2088
  msgid ""
2089
  "You can raise the %susage limit%s by obtaining an API %skey%s, and fill in "
@@ -2092,20 +2131,20 @@ msgstr ""
2092
  "Je kan de %sgebruiks limiet%s verhogen door een API %ssleutel%s aan te "
2093
  "vragen en die in het \"API sleutel\" veld bovenaan de pagina in te vullen."
2094
 
2095
- #: admin/templates/map-settings.php:454 frontend/class-frontend.php:1335
2096
- #: inc/wpsl-functions.php:111
2097
  msgid "API usage limit reached"
2098
  msgstr "API gebruikslimiet bereikt"
2099
 
2100
- #: admin/templates/map-settings.php:467
2101
  msgid "Tools"
2102
  msgstr "Tools"
2103
 
2104
- #: admin/templates/map-settings.php:470
2105
  msgid "Enable store locator debug?"
2106
  msgstr "Activeer store locator debug?"
2107
 
2108
- #: admin/templates/map-settings.php:470
2109
  #, php-format
2110
  msgid ""
2111
  "This disables the WPSL transient cache. %sThe transient cache is only used "
@@ -2115,11 +2154,11 @@ msgstr ""
2115
  "alleen gebruikt als de %sToon alle locaties op de kaart zodra de pagina "
2116
  "geladen is%s optie is geactiveerd."
2117
 
2118
- #: admin/templates/map-settings.php:474
2119
  msgid "WPSL transients"
2120
  msgstr "WPSL transients"
2121
 
2122
- #: admin/templates/map-settings.php:475
2123
  msgid "Clear store locator transient cache"
2124
  msgstr "Verwijder het store locator transient cache."
2125
 
@@ -2131,15 +2170,15 @@ msgstr "info window"
2131
  msgid "Reset"
2132
  msgstr "Herstel"
2133
 
2134
- #: admin/upgrade.php:186 inc/wpsl-functions.php:92
2135
  msgid "stores"
2136
  msgstr "winkels"
2137
 
2138
- #: admin/upgrade.php:190 inc/wpsl-functions.php:93
2139
  msgid "store-category"
2140
  msgstr "winkel-categorie"
2141
 
2142
- #: admin/upgrade.php:384
2143
  #, php-format
2144
  msgid ""
2145
  "Because you updated WP Store Locator from version 1.x, the %s current store "
@@ -2148,7 +2187,7 @@ msgstr ""
2148
  "Doordat je WP Store Locator update van versie 1.x, de %s huidige winkel "
2149
  "locaties moeten worden %somgezet%s naar custom post types."
2150
 
2151
- #: admin/upgrade.php:405
2152
  #, php-format
2153
  msgid ""
2154
  "The script converting the locations timed out. %s You can click the \"Start "
@@ -2166,15 +2205,15 @@ msgstr ""
2166
  "heeft al geprobeerd om de maximum execution time uit te zetten, maar als je "
2167
  "dit leest dan is dat mislukt."
2168
 
2169
- #: admin/upgrade.php:426
2170
  msgid "Store locations to convert:"
2171
  msgstr "Locaties die omgezet worden:"
2172
 
2173
- #: admin/upgrade.php:428
2174
  msgid "Start Converting"
2175
  msgstr "Begin met omzetten"
2176
 
2177
- #: admin/upgrade.php:550
2178
  #, php-format
2179
  msgid ""
2180
  "All the store locations are now converted to custom post types. %s You can "
@@ -2199,32 +2238,32 @@ msgstr ""
2199
  "Als je de [wpsl_hours] shortcode op een pagina gebruikt die geen winkel "
2200
  "pagina is dan is de ID attribute verplicht."
2201
 
2202
- #: frontend/class-frontend.php:790
2203
  msgid ""
2204
- "If you use the [wpsl_map] shortcode outside a store page you need to set the "
2205
- "ID attribute."
2206
  msgstr ""
2207
- "Als je de [wpsl_map] shortcode op een pagina gebruikt die geen winkel pagina "
2208
- "is dan is de ID attribute verplicht."
2209
 
2210
- #: frontend/class-frontend.php:1109
2211
  msgid "Any"
2212
  msgstr "Alle"
2213
 
2214
- #: frontend/class-frontend.php:1234
2215
  msgid "The application does not have permission to use the Geolocation API."
2216
  msgstr ""
2217
  "Deze applicatie heeft geen toestemming om de Geolocation API te gebruiken."
2218
 
2219
- #: frontend/class-frontend.php:1235
2220
  msgid "Location information is unavailable."
2221
  msgstr "Informatie over de huidige locatie is niet beschikbaar."
2222
 
2223
- #: frontend/class-frontend.php:1236
2224
  msgid "The geolocation request timed out."
2225
  msgstr "Het geolocation verzoek timed out."
2226
 
2227
- #: frontend/class-frontend.php:1237
2228
  msgid "An unknown error occurred."
2229
  msgstr " Er heeft zich een onbekende fout voorgedaan."
2230
 
@@ -2334,79 +2373,94 @@ msgstr "Voer winkel naam in"
2334
  msgid "Zip"
2335
  msgstr "Postcode"
2336
 
2337
- #: inc/wpsl-functions.php:186
2338
  msgid "Show the store list below the map"
2339
  msgstr "Toon the locatie lijst onder de kaart"
2340
 
2341
- #: inc/wpsl-functions.php:203
2342
  msgid "Monday"
2343
  msgstr "Maandag"
2344
 
2345
- #: inc/wpsl-functions.php:204
2346
  msgid "Tuesday"
2347
  msgstr "Dinsdag"
2348
 
2349
- #: inc/wpsl-functions.php:205
2350
  msgid "Wednesday"
2351
  msgstr "Woensdag"
2352
 
2353
- #: inc/wpsl-functions.php:206
2354
  msgid "Thursday"
2355
  msgstr "Donderdag"
2356
 
2357
- #: inc/wpsl-functions.php:207
2358
  msgid "Friday"
2359
  msgstr "Vrijdag"
2360
 
2361
- #: inc/wpsl-functions.php:208
2362
  msgid "Saturday"
2363
  msgstr "Zaterdag"
2364
 
2365
- #: inc/wpsl-functions.php:209
2366
  msgid "Sunday"
2367
  msgstr "Zondag"
2368
 
2369
- #: inc/wpsl-functions.php:239
2370
  #, php-format
2371
  msgid "Mon %sTue %sWed %sThu %sFri %sSat Closed %sSun Closed"
2372
  msgstr "ma %sdi %swoe %sdo %svrij %szat gesloten %szo gesloten"
2373
 
2374
- #: inc/wpsl-functions.php:255
2375
  msgid "Satellite"
2376
  msgstr "Satelliet"
2377
 
2378
- #: inc/wpsl-functions.php:256
2379
  msgid "Hybrid"
2380
  msgstr "Hybrid"
2381
 
2382
- #: inc/wpsl-functions.php:257
2383
  msgid "Terrain"
2384
  msgstr "Terrein"
2385
 
2386
- #: inc/wpsl-functions.php:272
2387
  msgid "(city) (state) (zip code)"
2388
  msgstr "(stad) (provincie) (postcode)"
2389
 
2390
- #: inc/wpsl-functions.php:273
2391
  msgid "(city), (state) (zip code)"
2392
  msgstr "(stad), (provincie), (postcode)"
2393
 
2394
- #: inc/wpsl-functions.php:274
2395
  msgid "(city) (zip code)"
2396
  msgstr "(stad) (postcode)"
2397
 
2398
- #: inc/wpsl-functions.php:275
2399
  msgid "(city), (zip code)"
2400
  msgstr "(stad), (postcode)"
2401
 
2402
- #: inc/wpsl-functions.php:276
2403
  msgid "(zip code) (city) (state)"
2404
  msgstr "(postcode) (stad) (provincie)"
2405
 
2406
- #: inc/wpsl-functions.php:277
2407
  msgid "(zip code) (city)"
2408
  msgstr "(postcode) (stad)"
2409
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2410
  #~ msgid "Show the pan controls?"
2411
  #~ msgstr "Toon de pan controls?"
2412
 
2
  msgstr ""
3
  "Project-Id-Version: WP Store Locator 2.0\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2015-12-12 11:53+0100\n"
6
+ "PO-Revision-Date: 2015-12-12 12:09+0100\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "Language: nl_NL\n"
37
  "Vergeet niet voordat je de [wpsl] shortcode op een pagina plaatst, om een "
38
  "start locatie op te geven op de %sinstellingen%s pagina. %sSluit%s"
39
 
40
+ #: admin/class-admin.php:153 admin/class-admin.php:154
41
+ #: admin/templates/map-settings.php:8
42
  msgid "Settings"
43
  msgstr "Instellingen"
44
 
45
+ #: admin/class-admin.php:280
46
  msgid "Cannot determine the address at this location."
47
  msgstr "Er kan geen adres gevonden worden voor deze locatie."
48
 
49
+ #: admin/class-admin.php:281
50
  msgid "Geocode was not successful for the following reason"
51
  msgstr "Geocode was niet succesvol om de volgende reden"
52
 
53
+ #: admin/class-admin.php:282 admin/upgrade.php:414
54
  msgid "Security check failed, reload the page and try again."
55
  msgstr ""
56
  "Beveiligings controle mislukt, herlaad de pagina en probeer het nog een keer."
57
 
58
+ #: admin/class-admin.php:283
59
  msgid "Please fill in all the required store details."
60
  msgstr "Vul alle verplichte velden in."
61
 
62
+ #: admin/class-admin.php:284
63
  msgid "The map preview requires all the location details."
64
  msgstr ""
65
  "Alle locatie details moeten zijn ingevuld voordat de locatie op de kaart "
66
  "getoond kan worden."
67
 
68
+ #: admin/class-admin.php:285 admin/class-metaboxes.php:505
69
  #: frontend/class-frontend.php:493
70
  msgid "Closed"
71
  msgstr "gesloten"
72
 
73
+ #: admin/class-admin.php:286
74
  msgid "The code for the map style is invalid."
75
  msgstr "De code voor de map stijl is ongeldig."
76
 
77
+ #: admin/class-admin.php:377
78
  msgid "Welcome to WP Store Locator"
79
  msgstr "Welkom bij WP Store Locator"
80
 
81
+ #: admin/class-admin.php:378
82
  msgid "Sign up for the latest plugin updates and announcements."
83
  msgstr "Meld je aan voor de nieuwsbrief en ontvang het laatste nieuws."
84
 
85
+ #: admin/class-admin.php:422
86
  msgid "Documentation"
87
  msgstr "Documentatie"
88
 
89
+ #: admin/class-admin.php:425
90
  msgid "General Settings"
91
  msgstr "Instellingen"
92
 
93
+ #: admin/class-admin.php:445
94
  #, php-format
95
  msgid "If you like this plugin please leave us a %s5 star%s rating."
96
  msgstr "Als je tevreden bent met deze plugin geef het dan %s5 sterren%s."
112
  "Je hebt de dagelijkse toegestane geocoding limiet bereikt, je kan er %shier"
113
  "%s meer over lezen."
114
 
115
+ #: admin/class-geocode.php:79
116
+ #, php-format
117
+ msgid "The Google Geocoding API returned REQUEST_DENIED. %s"
118
+ msgstr "Er is een probleem met Google Geocoding API - REQUEST_DENIED. %s"
119
+
120
+ #: admin/class-geocode.php:82
121
  msgid ""
122
  "The Google Geocoding API failed to return valid data, please try again later."
123
  msgstr ""
124
  "De Google Geocoding API geeft ongeldige data terug, probeer het nog een keer."
125
 
126
+ #: admin/class-geocode.php:107
127
+ #, php-format
128
+ msgid "%sError message: %s"
129
+ msgstr "%sFout melding: %s"
130
+
131
+ #: admin/class-geocode.php:129
132
+ #, php-format
133
+ msgid ""
134
+ "Something went wrong connecting to the Google Geocode API: %s %s Please try "
135
+ "again later."
136
+ msgstr ""
137
+ "Er kon geen verbinding gemaakt worden met de Google Geocode API: %s %s "
138
+ "Probeer het later nogmaals."
139
+
140
  #: admin/class-metaboxes.php:33
141
  msgid "Store Details"
142
  msgstr "Winkel details"
186
  msgid "Opening Hours"
187
  msgstr "Openingstijden"
188
 
189
+ #: admin/class-metaboxes.php:82 admin/templates/map-settings.php:425
190
+ #: admin/templates/map-settings.php:426 frontend/underscore-functions.php:133
191
+ #: inc/wpsl-functions.php:124
192
  msgid "Hours"
193
  msgstr "Uren"
194
 
200
  msgid "Tel"
201
  msgstr "Tel."
202
 
203
+ #: admin/class-metaboxes.php:91 admin/templates/map-settings.php:413
204
+ #: admin/templates/map-settings.php:414 frontend/class-frontend.php:677
205
  #: frontend/underscore-functions.php:32 frontend/underscore-functions.php:124
206
+ #: inc/wpsl-functions.php:121
207
  msgid "Fax"
208
  msgstr "Fax"
209
 
210
+ #: admin/class-metaboxes.php:94 admin/templates/map-settings.php:417
211
+ #: admin/templates/map-settings.php:418 admin/upgrade.php:210
212
  #: frontend/class-frontend.php:681 frontend/underscore-functions.php:35
213
+ #: frontend/underscore-functions.php:127 inc/wpsl-functions.php:122
214
  msgid "Email"
215
  msgstr "E-mail"
216
 
217
+ #: admin/class-metaboxes.php:97 admin/templates/map-settings.php:421
218
+ #: admin/templates/map-settings.php:422 admin/upgrade.php:214
219
+ #: frontend/class-frontend.php:686 inc/wpsl-functions.php:123
220
  msgid "Url"
221
  msgstr "Url"
222
 
308
  msgid "WP Store Locator Transients Cleared"
309
  msgstr "WP Store Locator transients verwijderd"
310
 
311
+ #: admin/class-settings.php:372
312
  msgid ""
313
  "The max results field cannot be empty, the default value has been restored."
314
  msgstr ""
315
  "Het max zoek resulaten veld kan niet leeg zijn, de standaard waarde is "
316
  "hersteld."
317
 
318
+ #: admin/class-settings.php:375
319
  msgid ""
320
  "The search radius field cannot be empty, the default value has been restored."
321
  msgstr ""
322
  "Het zoek radius veld kan niet leeg zijn, de standaard waarde is hersteld."
323
 
324
+ #: admin/class-settings.php:378
325
  #, php-format
326
  msgid ""
327
  "Please provide the name of a city or country that can be used as a starting "
333
  "automatische achterhalen van de gebruikers locatie mislukt, of het "
334
  "automatische achterhalen is uitgeschakeld."
335
 
336
+ #: admin/class-settings.php:399
337
  msgid "Select your language"
338
  msgstr "Kies uw taal"
339
 
340
+ #: admin/class-settings.php:400
341
  msgid "English"
342
  msgstr "Engels"
343
 
344
+ #: admin/class-settings.php:401
345
  msgid "Arabic"
346
  msgstr "Arabisch"
347
 
348
+ #: admin/class-settings.php:402
349
  msgid "Basque"
350
  msgstr "Bask"
351
 
352
+ #: admin/class-settings.php:403
353
  msgid "Bulgarian"
354
  msgstr "Bulgaars"
355
 
356
+ #: admin/class-settings.php:404
357
  msgid "Bengali"
358
  msgstr "Bengali"
359
 
360
+ #: admin/class-settings.php:405
361
  msgid "Catalan"
362
  msgstr "Catalaans"
363
 
364
+ #: admin/class-settings.php:406
365
  msgid "Czech"
366
  msgstr "Tjechisch"
367
 
368
+ #: admin/class-settings.php:407
369
  msgid "Danish"
370
  msgstr "Deens"
371
 
372
+ #: admin/class-settings.php:408
373
  msgid "German"
374
  msgstr "Duits"
375
 
376
+ #: admin/class-settings.php:409
377
  msgid "Greek"
378
  msgstr "Grieks"
379
 
380
+ #: admin/class-settings.php:410
381
  msgid "English (Australian)"
382
  msgstr "Engels (Australisch)"
383
 
384
+ #: admin/class-settings.php:411
385
  msgid "English (Great Britain)"
386
  msgstr "Engels (Verenigd Koninkrijk)"
387
 
388
+ #: admin/class-settings.php:412
389
  msgid "Spanish"
390
  msgstr "Spaans"
391
 
392
+ #: admin/class-settings.php:413
393
  msgid "Farsi"
394
  msgstr "Farsi"
395
 
396
+ #: admin/class-settings.php:414
397
  msgid "Finnish"
398
  msgstr "Fins"
399
 
400
+ #: admin/class-settings.php:415
401
  msgid "Filipino"
402
  msgstr "Filipijns"
403
 
404
+ #: admin/class-settings.php:416
405
  msgid "French"
406
  msgstr "Frans"
407
 
408
+ #: admin/class-settings.php:417
409
  msgid "Galician"
410
  msgstr "Gallisch"
411
 
412
+ #: admin/class-settings.php:418
413
  msgid "Gujarati"
414
  msgstr "Gujurati"
415
 
416
+ #: admin/class-settings.php:419
417
  msgid "Hindi"
418
  msgstr "Hindi"
419
 
420
+ #: admin/class-settings.php:420
421
  msgid "Croatian"
422
  msgstr "Kroatisch"
423
 
424
+ #: admin/class-settings.php:421
425
  msgid "Hungarian"
426
  msgstr "Hongaars"
427
 
428
+ #: admin/class-settings.php:422
429
  msgid "Indonesian"
430
  msgstr "Indonesisch"
431
 
432
+ #: admin/class-settings.php:423
433
  msgid "Italian"
434
  msgstr "Italiaans"
435
 
436
+ #: admin/class-settings.php:424
437
  msgid "Hebrew"
438
  msgstr "Hebreeuws"
439
 
440
+ #: admin/class-settings.php:425
441
  msgid "Japanese"
442
  msgstr "Japans"
443
 
444
+ #: admin/class-settings.php:426
445
  msgid "Kannada"
446
  msgstr "Kannada"
447
 
448
+ #: admin/class-settings.php:427
449
  msgid "Korean"
450
  msgstr "Koreaans"
451
 
452
+ #: admin/class-settings.php:428
453
  msgid "Lithuanian"
454
  msgstr "Litouws"
455
 
456
+ #: admin/class-settings.php:429
457
  msgid "Latvian"
458
  msgstr "Lets"
459
 
460
+ #: admin/class-settings.php:430
461
  msgid "Malayalam"
462
  msgstr "Malayalam"
463
 
464
+ #: admin/class-settings.php:431
465
  msgid "Marathi"
466
  msgstr "Marathi"
467
 
468
+ #: admin/class-settings.php:432
469
  msgid "Dutch"
470
  msgstr "Nederlands"
471
 
472
+ #: admin/class-settings.php:433
473
  msgid "Norwegian"
474
  msgstr "Noors"
475
 
476
+ #: admin/class-settings.php:434
477
  msgid "Norwegian Nynorsk"
478
  msgstr "Noors Nynorsk"
479
 
480
+ #: admin/class-settings.php:435
481
  msgid "Polish"
482
  msgstr "Pools"
483
 
484
+ #: admin/class-settings.php:436
485
  msgid "Portuguese"
486
  msgstr "Portugees"
487
 
488
+ #: admin/class-settings.php:437
489
  msgid "Portuguese (Brazil)"
490
  msgstr "Portugees (Brazilië)"
491
 
492
+ #: admin/class-settings.php:438
493
  msgid "Portuguese (Portugal)"
494
  msgstr "Portugees (Portugal)"
495
 
496
+ #: admin/class-settings.php:439
497
  msgid "Romanian"
498
  msgstr "Roemeens"
499
 
500
+ #: admin/class-settings.php:440
501
  msgid "Russian"
502
  msgstr "Russisch"
503
 
504
+ #: admin/class-settings.php:441
505
  msgid "Slovak"
506
  msgstr "Slowaaks"
507
 
508
+ #: admin/class-settings.php:442
509
  msgid "Slovenian"
510
  msgstr "Sloveens"
511
 
512
+ #: admin/class-settings.php:443
513
  msgid "Serbian"
514
  msgstr "Servisch"
515
 
516
+ #: admin/class-settings.php:444
517
  msgid "Swedish"
518
  msgstr "Zweeds"
519
 
520
+ #: admin/class-settings.php:445
521
  msgid "Tagalog"
522
  msgstr "Tagalog"
523
 
524
+ #: admin/class-settings.php:446
525
  msgid "Tamil"
526
  msgstr "Tamil"
527
 
528
+ #: admin/class-settings.php:447
529
  msgid "Telugu"
530
  msgstr "Telugu"
531
 
532
+ #: admin/class-settings.php:448
533
  msgid "Thai"
534
  msgstr "Thai"
535
 
536
+ #: admin/class-settings.php:449
537
  msgid "Turkish"
538
  msgstr "Turks"
539
 
540
+ #: admin/class-settings.php:450
541
  msgid "Ukrainian"
542
  msgstr "Oekraïens"
543
 
544
+ #: admin/class-settings.php:451
545
  msgid "Vietnamese"
546
  msgstr "Vietnamees"
547
 
548
+ #: admin/class-settings.php:452
549
  msgid "Chinese (Simplified)"
550
  msgstr "Chinees (Vereenvoudigd)"
551
 
552
+ #: admin/class-settings.php:453
553
  msgid "Chinese (Traditional)"
554
  msgstr "Chinees (Traditioneel)"
555
 
556
+ #: admin/class-settings.php:458
557
  msgid "Select your region"
558
  msgstr "Kies uw regio"
559
 
560
+ #: admin/class-settings.php:459
561
  msgid "Afghanistan"
562
  msgstr "Afghanistan"
563
 
564
+ #: admin/class-settings.php:460
565
  msgid "Albania"
566
  msgstr "Albanië"
567
 
568
+ #: admin/class-settings.php:461
569
  msgid "Algeria"
570
  msgstr "Algerije"
571
 
572
+ #: admin/class-settings.php:462
573
  msgid "American Samoa"
574
  msgstr "Amerikaans Samoa"
575
 
576
+ #: admin/class-settings.php:463
577
  msgid "Andorra"
578
  msgstr "Andorra"
579
 
580
+ #: admin/class-settings.php:464
581
  msgid "Anguilla"
582
  msgstr "Anguilla"
583
 
584
+ #: admin/class-settings.php:465
585
  msgid "Angola"
586
  msgstr "Angola"
587
 
588
+ #: admin/class-settings.php:466
589
  msgid "Antigua and Barbuda"
590
  msgstr "Antigua en Barbuda"
591
 
592
+ #: admin/class-settings.php:467
593
  msgid "Argentina"
594
  msgstr "Argentinië"
595
 
596
+ #: admin/class-settings.php:468
597
  msgid "Armenia"
598
  msgstr "Armenia"
599
 
600
+ #: admin/class-settings.php:469
601
  msgid "Aruba"
602
  msgstr "Aruba"
603
 
604
+ #: admin/class-settings.php:470
605
  msgid "Australia"
606
  msgstr "Australië"
607
 
608
+ #: admin/class-settings.php:471
609
  msgid "Austria"
610
  msgstr "Oostenrijk"
611
 
612
+ #: admin/class-settings.php:472
613
  msgid "Azerbaijan"
614
  msgstr "Azerbeidzjan"
615
 
616
+ #: admin/class-settings.php:473
617
  msgid "Bahamas"
618
  msgstr "Bahamas"
619
 
620
+ #: admin/class-settings.php:474
621
  msgid "Bahrain"
622
  msgstr "Bahrein"
623
 
624
+ #: admin/class-settings.php:475
625
  msgid "Bangladesh"
626
  msgstr "Bangladesh"
627
 
628
+ #: admin/class-settings.php:476
629
  msgid "Barbados"
630
  msgstr "Barbados"
631
 
632
+ #: admin/class-settings.php:477
633
  msgid "Belarus"
634
  msgstr "Wit-Rusland"
635
 
636
+ #: admin/class-settings.php:478
637
  msgid "Belgium"
638
  msgstr "België"
639
 
640
+ #: admin/class-settings.php:479
641
  msgid "Belize"
642
  msgstr "Belize"
643
 
644
+ #: admin/class-settings.php:480
645
  msgid "Benin"
646
  msgstr "Benin"
647
 
648
+ #: admin/class-settings.php:481
649
  msgid "Bermuda"
650
  msgstr "Bermuda"
651
 
652
+ #: admin/class-settings.php:482
653
  msgid "Bhutan"
654
  msgstr "Bhutan"
655
 
656
+ #: admin/class-settings.php:483
657
  msgid "Bolivia"
658
  msgstr "Bolivia"
659
 
660
+ #: admin/class-settings.php:484
661
  msgid "Bosnia and Herzegovina"
662
  msgstr "Bosnia en Herzegovina"
663
 
664
+ #: admin/class-settings.php:485
665
  msgid "Botswana"
666
  msgstr "Botswana"
667
 
668
+ #: admin/class-settings.php:486
669
  msgid "Brazil"
670
  msgstr "Brazilië"
671
 
672
+ #: admin/class-settings.php:487
673
  msgid "British Indian Ocean Territory"
674
  msgstr "Brits Indische Oceaanterritorium"
675
 
676
+ #: admin/class-settings.php:488
677
  msgid "Brunei"
678
  msgstr "Brunei"
679
 
680
+ #: admin/class-settings.php:489
681
  msgid "Bulgaria"
682
  msgstr "Bulgarije"
683
 
684
+ #: admin/class-settings.php:490
685
  msgid "Burkina Faso"
686
  msgstr "Burkina Faso"
687
 
688
+ #: admin/class-settings.php:491
689
  msgid "Burundi"
690
  msgstr "Burundi"
691
 
692
+ #: admin/class-settings.php:492
693
  msgid "Cambodia"
694
  msgstr "Cambodja"
695
 
696
+ #: admin/class-settings.php:493
697
  msgid "Cameroon"
698
  msgstr "Kameroen"
699
 
700
+ #: admin/class-settings.php:494
701
  msgid "Canada"
702
  msgstr "Canada"
703
 
704
+ #: admin/class-settings.php:495
705
  msgid "Cape Verde"
706
  msgstr "Kaapverdië"
707
 
708
+ #: admin/class-settings.php:496
709
  msgid "Cayman Islands"
710
  msgstr "Kaaimaneilanden"
711
 
712
+ #: admin/class-settings.php:497
713
  msgid "Central African Republic"
714
  msgstr "Centraal-Afrikaanse Republiek"
715
 
716
+ #: admin/class-settings.php:498
717
  msgid "Chad"
718
  msgstr "Chad"
719
 
720
+ #: admin/class-settings.php:499
721
  msgid "Chile"
722
  msgstr "Chili"
723
 
724
+ #: admin/class-settings.php:500
725
  msgid "China"
726
  msgstr "China"
727
 
728
+ #: admin/class-settings.php:501
729
  msgid "Christmas Island"
730
  msgstr "Christmaseiland"
731
 
732
+ #: admin/class-settings.php:502
733
  msgid "Cocos Islands"
734
  msgstr "Cocoseilanden"
735
 
736
+ #: admin/class-settings.php:503
737
  msgid "Colombia"
738
  msgstr "Colombia"
739
 
740
+ #: admin/class-settings.php:504
741
  msgid "Comoros"
742
  msgstr "Comoren"
743
 
744
+ #: admin/class-settings.php:505
745
  msgid "Congo"
746
  msgstr "Congo"
747
 
748
+ #: admin/class-settings.php:506
749
  msgid "Costa Rica"
750
  msgstr "Costa Rica"
751
 
752
+ #: admin/class-settings.php:507
753
  msgid "Côte d'Ivoire"
754
  msgstr "Ivoorkust"
755
 
756
+ #: admin/class-settings.php:508
757
  msgid "Croatia"
758
  msgstr "Kroatië"
759
 
760
+ #: admin/class-settings.php:509
761
  msgid "Cuba"
762
  msgstr "Cuba"
763
 
764
+ #: admin/class-settings.php:510
765
  msgid "Czech Republic"
766
  msgstr "Tsjechië"
767
 
768
+ #: admin/class-settings.php:511
769
  msgid "Denmark"
770
  msgstr "Denemarken"
771
 
772
+ #: admin/class-settings.php:512
773
  msgid "Djibouti"
774
  msgstr "Djibouti"
775
 
776
+ #: admin/class-settings.php:513
777
  msgid "Democratic Republic of the Congo"
778
  msgstr "Democratische Republiek Congo"
779
 
780
+ #: admin/class-settings.php:514
781
  msgid "Dominica"
782
  msgstr "Dominica"
783
 
784
+ #: admin/class-settings.php:515
785
  msgid "Dominican Republic"
786
  msgstr "Dominicaanse Republiek"
787
 
788
+ #: admin/class-settings.php:516
789
  msgid "Ecuador"
790
  msgstr "Ecuador"
791
 
792
+ #: admin/class-settings.php:517
793
  msgid "Egypt"
794
  msgstr "Egypte"
795
 
796
+ #: admin/class-settings.php:518
797
  msgid "El Salvador"
798
  msgstr "El Salvador"
799
 
800
+ #: admin/class-settings.php:519
801
  msgid "Equatorial Guinea"
802
  msgstr "Equatoriaal-Guinea"
803
 
804
+ #: admin/class-settings.php:520
805
  msgid "Eritrea"
806
  msgstr "Eritrea"
807
 
808
+ #: admin/class-settings.php:521
809
  msgid "Estonia"
810
  msgstr "Estland"
811
 
812
+ #: admin/class-settings.php:522
813
  msgid "Ethiopia"
814
  msgstr "Ethiopië"
815
 
816
+ #: admin/class-settings.php:523
817
  msgid "Fiji"
818
  msgstr "Fiji"
819
 
820
+ #: admin/class-settings.php:524
821
  msgid "Finland"
822
  msgstr "Finland"
823
 
824
+ #: admin/class-settings.php:525
825
  msgid "France"
826
  msgstr "Frankrijk"
827
 
828
+ #: admin/class-settings.php:526
829
  msgid "French Guiana"
830
  msgstr "Frans Guyana"
831
 
832
+ #: admin/class-settings.php:527
833
  msgid "Gabon"
834
  msgstr "Gabon"
835
 
836
+ #: admin/class-settings.php:528
837
  msgid "Gambia"
838
  msgstr "Gambia"
839
 
840
+ #: admin/class-settings.php:529
841
  msgid "Germany"
842
  msgstr "Duitsland"
843
 
844
+ #: admin/class-settings.php:530
845
  msgid "Ghana"
846
  msgstr "Ghana"
847
 
848
+ #: admin/class-settings.php:531
849
  msgid "Greenland"
850
  msgstr "Groenland"
851
 
852
+ #: admin/class-settings.php:532
853
  msgid "Greece"
854
  msgstr "Griekenland"
855
 
856
+ #: admin/class-settings.php:533
857
  msgid "Grenada"
858
  msgstr "Grenada"
859
 
860
+ #: admin/class-settings.php:534
861
  msgid "Guam"
862
  msgstr "Guam"
863
 
864
+ #: admin/class-settings.php:535
865
  msgid "Guadeloupe"
866
  msgstr "Guadeloupe"
867
 
868
+ #: admin/class-settings.php:536
869
  msgid "Guatemala"
870
  msgstr "Guatemala"
871
 
872
+ #: admin/class-settings.php:537
873
  msgid "Guinea"
874
  msgstr "Guinee"
875
 
876
+ #: admin/class-settings.php:538
877
  msgid "Guinea-Bissau"
878
  msgstr "Guinee-Bissau"
879
 
880
+ #: admin/class-settings.php:539
881
  msgid "Haiti"
882
  msgstr "Haïti"
883
 
884
+ #: admin/class-settings.php:540
885
  msgid "Honduras"
886
  msgstr "Honduras"
887
 
888
+ #: admin/class-settings.php:541
889
  msgid "Hong Kong"
890
  msgstr "Hong Kong"
891
 
892
+ #: admin/class-settings.php:542
893
  msgid "Hungary"
894
  msgstr "Hongarije"
895
 
896
+ #: admin/class-settings.php:543
897
  msgid "Iceland"
898
  msgstr "IJsland"
899
 
900
+ #: admin/class-settings.php:544
901
  msgid "India"
902
  msgstr "India"
903
 
904
+ #: admin/class-settings.php:545
905
  msgid "Indonesia"
906
  msgstr "Indonesië"
907
 
908
+ #: admin/class-settings.php:546
909
  msgid "Iran"
910
  msgstr "Iran"
911
 
912
+ #: admin/class-settings.php:547
913
  msgid "Iraq"
914
  msgstr "Irak"
915
 
916
+ #: admin/class-settings.php:548
917
  msgid "Ireland"
918
  msgstr "Ierland"
919
 
920
+ #: admin/class-settings.php:549
921
  msgid "Israel"
922
  msgstr "Israël"
923
 
924
+ #: admin/class-settings.php:550
925
  msgid "Italy"
926
  msgstr "Italië"
927
 
928
+ #: admin/class-settings.php:551
929
  msgid "Jamaica"
930
  msgstr "Jamaica"
931
 
932
+ #: admin/class-settings.php:552
933
  msgid "Japan"
934
  msgstr "Japan"
935
 
936
+ #: admin/class-settings.php:553
937
  msgid "Jordan"
938
  msgstr "Jordanië"
939
 
940
+ #: admin/class-settings.php:554
941
  msgid "Kazakhstan"
942
  msgstr "Kazachstan"
943
 
944
+ #: admin/class-settings.php:555
945
  msgid "Kenya"
946
  msgstr "Kenia"
947
 
948
+ #: admin/class-settings.php:556
949
  msgid "Kuwait"
950
  msgstr "Koeweit"
951
 
952
+ #: admin/class-settings.php:557
953
  msgid "Kyrgyzstan"
954
  msgstr "Kirgizië"
955
 
956
+ #: admin/class-settings.php:558
957
  msgid "Laos"
958
  msgstr "Laos"
959
 
960
+ #: admin/class-settings.php:559
961
  msgid "Latvia"
962
  msgstr "Letland"
963
 
964
+ #: admin/class-settings.php:560
965
  msgid "Lebanon"
966
  msgstr "Libanon"
967
 
968
+ #: admin/class-settings.php:561
969
  msgid "Lesotho"
970
  msgstr "Lesotho"
971
 
972
+ #: admin/class-settings.php:562
973
  msgid "Liberia"
974
  msgstr "Liberia"
975
 
976
+ #: admin/class-settings.php:563
977
  msgid "Libya"
978
  msgstr "Libië"
979
 
980
+ #: admin/class-settings.php:564
981
  msgid "Liechtenstein"
982
  msgstr "Liechtenstein"
983
 
984
+ #: admin/class-settings.php:565
985
  msgid "Lithuania"
986
  msgstr "Litouwen"
987
 
988
+ #: admin/class-settings.php:566
989
  msgid "Luxembourg"
990
  msgstr "Luxemburg"
991
 
992
+ #: admin/class-settings.php:567
993
  msgid "Macau"
994
  msgstr "Macau"
995
 
996
+ #: admin/class-settings.php:568
997
  msgid "Macedonia"
998
  msgstr "Macedonië"
999
 
1000
+ #: admin/class-settings.php:569
1001
  msgid "Madagascar"
1002
  msgstr "Madagascar"
1003
 
1004
+ #: admin/class-settings.php:570
1005
  msgid "Malawi"
1006
  msgstr "Malawi"
1007
 
1008
+ #: admin/class-settings.php:571
1009
  msgid "Malaysia "
1010
  msgstr "Maleisie"
1011
 
1012
+ #: admin/class-settings.php:572
1013
  msgid "Mali"
1014
  msgstr "Mali"
1015
 
1016
+ #: admin/class-settings.php:573
1017
  msgid "Marshall Islands"
1018
  msgstr "Marshalleilanden"
1019
 
1020
+ #: admin/class-settings.php:574
1021
  msgid "Martinique"
1022
  msgstr "Martinique"
1023
 
1024
+ #: admin/class-settings.php:575
1025
  msgid "Mauritania"
1026
  msgstr "Mauritanië"
1027
 
1028
+ #: admin/class-settings.php:576
1029
  msgid "Mauritius"
1030
  msgstr "Mauritius"
1031
 
1032
+ #: admin/class-settings.php:577
1033
  msgid "Mexico"
1034
  msgstr "Mexico"
1035
 
1036
+ #: admin/class-settings.php:578
1037
  msgid "Micronesia"
1038
  msgstr "Micronesia"
1039
 
1040
+ #: admin/class-settings.php:579
1041
  msgid "Moldova"
1042
  msgstr "Moldavië"
1043
 
1044
+ #: admin/class-settings.php:580
1045
  msgid "Monaco"
1046
  msgstr "Monaco"
1047
 
1048
+ #: admin/class-settings.php:581
1049
  msgid "Mongolia"
1050
  msgstr "Mongolië"
1051
 
1052
+ #: admin/class-settings.php:582
1053
  msgid "Montenegro"
1054
  msgstr "Montenegro"
1055
 
1056
+ #: admin/class-settings.php:583
1057
  msgid "Montserrat"
1058
  msgstr "Montserrat "
1059
 
1060
+ #: admin/class-settings.php:584
1061
  msgid "Morocco"
1062
  msgstr "Marokko"
1063
 
1064
+ #: admin/class-settings.php:585
1065
  msgid "Mozambique"
1066
  msgstr "Mozambique"
1067
 
1068
+ #: admin/class-settings.php:586
1069
  msgid "Myanmar"
1070
  msgstr "Myanmar"
1071
 
1072
+ #: admin/class-settings.php:587
1073
  msgid "Namibia"
1074
  msgstr "Namibië"
1075
 
1076
+ #: admin/class-settings.php:588
1077
  msgid "Nauru"
1078
  msgstr "Nauru"
1079
 
1080
+ #: admin/class-settings.php:589
1081
  msgid "Nepal"
1082
  msgstr "Nepal"
1083
 
1084
+ #: admin/class-settings.php:590
1085
  msgid "Netherlands"
1086
  msgstr "Nederland"
1087
 
1088
+ #: admin/class-settings.php:591
1089
  msgid "Netherlands Antilles"
1090
  msgstr "Nederlandse Antillen"
1091
 
1092
+ #: admin/class-settings.php:592
1093
  msgid "New Zealand"
1094
  msgstr "Nieuw Zeeland"
1095
 
1096
+ #: admin/class-settings.php:593
1097
  msgid "Nicaragua"
1098
  msgstr "Nicaragua"
1099
 
1100
+ #: admin/class-settings.php:594
1101
  msgid "Niger"
1102
  msgstr "Niger"
1103
 
1104
+ #: admin/class-settings.php:595
1105
  msgid "Nigeria"
1106
  msgstr "Nigeria"
1107
 
1108
+ #: admin/class-settings.php:596
1109
  msgid "Niue"
1110
  msgstr "Niue"
1111
 
1112
+ #: admin/class-settings.php:597
1113
  msgid "Northern Mariana Islands"
1114
  msgstr "Noordelijke Marianen"
1115
 
1116
+ #: admin/class-settings.php:598
1117
  msgid "Norway"
1118
  msgstr "Noorwegen"
1119
 
1120
+ #: admin/class-settings.php:599
1121
  msgid "Oman"
1122
  msgstr "Oman"
1123
 
1124
+ #: admin/class-settings.php:600
1125
  msgid "Pakistan"
1126
  msgstr "Pakistan"
1127
 
1128
+ #: admin/class-settings.php:601
1129
  msgid "Panama"
1130
  msgstr "Panama"
1131
 
1132
+ #: admin/class-settings.php:602
1133
  msgid "Papua New Guinea"
1134
  msgstr "Papoea-Nieuw-Guinea"
1135
 
1136
+ #: admin/class-settings.php:603
1137
  msgid "Paraguay"
1138
  msgstr "Paraguay"
1139
 
1140
+ #: admin/class-settings.php:604
1141
  msgid "Peru"
1142
  msgstr "Peru"
1143
 
1144
+ #: admin/class-settings.php:605
1145
  msgid "Philippines"
1146
  msgstr "Filipijnen"
1147
 
1148
+ #: admin/class-settings.php:606
1149
  msgid "Pitcairn Islands"
1150
  msgstr "Pitcairneilanden"
1151
 
1152
+ #: admin/class-settings.php:607
1153
  msgid "Poland"
1154
  msgstr "Polen"
1155
 
1156
+ #: admin/class-settings.php:608
1157
  msgid "Portugal"
1158
  msgstr "Portugal"
1159
 
1160
+ #: admin/class-settings.php:609
1161
  msgid "Qatar"
1162
  msgstr "Qatar"
1163
 
1164
+ #: admin/class-settings.php:610
1165
  msgid "Reunion"
1166
  msgstr "Réunion"
1167
 
1168
+ #: admin/class-settings.php:611
1169
  msgid "Romania"
1170
  msgstr "Roemenië"
1171
 
1172
+ #: admin/class-settings.php:612
1173
  msgid "Russia"
1174
  msgstr "Rusland"
1175
 
1176
+ #: admin/class-settings.php:613
1177
  msgid "Rwanda"
1178
  msgstr "Rwanda"
1179
 
1180
+ #: admin/class-settings.php:614
1181
  msgid "Saint Helena"
1182
  msgstr "Sint-Helena"
1183
 
1184
+ #: admin/class-settings.php:615
1185
  msgid "Saint Kitts and Nevis"
1186
  msgstr "Saint Kitts en Nevis"
1187
 
1188
+ #: admin/class-settings.php:616
1189
  msgid "Saint Vincent and the Grenadines"
1190
  msgstr "Saint Vincent en de Grenadines"
1191
 
1192
+ #: admin/class-settings.php:617
1193
  msgid "Saint Lucia"
1194
  msgstr "Saint Lucia"
1195
 
1196
+ #: admin/class-settings.php:618
1197
  msgid "Samoa"
1198
  msgstr "Samoa"
1199
 
1200
+ #: admin/class-settings.php:619
1201
  msgid "San Marino"
1202
  msgstr "San Marino"
1203
 
1204
+ #: admin/class-settings.php:620
1205
  msgid "São Tomé and Príncipe"
1206
  msgstr "Sao Tomé en Principe"
1207
 
1208
+ #: admin/class-settings.php:621
1209
  msgid "Saudi Arabia"
1210
  msgstr "Saoedi-Arabië"
1211
 
1212
+ #: admin/class-settings.php:622
1213
  msgid "Senegal"
1214
  msgstr "Senegal"
1215
 
1216
+ #: admin/class-settings.php:623
1217
  msgid "Serbia"
1218
  msgstr "Servië"
1219
 
1220
+ #: admin/class-settings.php:624
1221
  msgid "Seychelles"
1222
  msgstr "Seychellen"
1223
 
1224
+ #: admin/class-settings.php:625
1225
  msgid "Sierra Leone"
1226
  msgstr "Sierra Leone"
1227
 
1228
+ #: admin/class-settings.php:626
1229
  msgid "Singapore"
1230
  msgstr "Singapore"
1231
 
1232
+ #: admin/class-settings.php:627
1233
  msgid "Slovakia"
1234
  msgstr "Slowakije"
1235
 
1236
+ #: admin/class-settings.php:628
1237
  msgid "Solomon Islands"
1238
  msgstr "Salomonseilanden"
1239
 
1240
+ #: admin/class-settings.php:629
1241
  msgid "Somalia"
1242
  msgstr "Somalie"
1243
 
1244
+ #: admin/class-settings.php:630
1245
  msgid "South Africa"
1246
  msgstr "Zuid Afrika"
1247
 
1248
+ #: admin/class-settings.php:631
1249
  msgid "South Korea"
1250
  msgstr "Zuid Korea"
1251
 
1252
+ #: admin/class-settings.php:632
1253
  msgid "Spain"
1254
  msgstr "Spanje"
1255
 
1256
+ #: admin/class-settings.php:633
1257
  msgid "Sri Lanka"
1258
  msgstr "Sri Lanka"
1259
 
1260
+ #: admin/class-settings.php:634
1261
  msgid "Sudan"
1262
  msgstr "Sudan"
1263
 
1264
+ #: admin/class-settings.php:635
1265
  msgid "Swaziland"
1266
  msgstr "Swaziland "
1267
 
1268
+ #: admin/class-settings.php:636
1269
  msgid "Sweden"
1270
  msgstr "Zweden"
1271
 
1272
+ #: admin/class-settings.php:637
1273
  msgid "Switzerland"
1274
  msgstr "Zwitserland"
1275
 
1276
+ #: admin/class-settings.php:638
1277
  msgid "Syria"
1278
  msgstr "Syrië"
1279
 
1280
+ #: admin/class-settings.php:639
1281
  msgid "Taiwan"
1282
  msgstr "Taiwan"
1283
 
1284
+ #: admin/class-settings.php:640
1285
  msgid "Tajikistan"
1286
  msgstr "Tajikistan"
1287
 
1288
+ #: admin/class-settings.php:641
1289
  msgid "Tanzania"
1290
  msgstr "Tanzania"
1291
 
1292
+ #: admin/class-settings.php:642
1293
  msgid "Thailand"
1294
  msgstr "Thailand"
1295
 
1296
+ #: admin/class-settings.php:643
1297
  msgid "Timor-Leste"
1298
  msgstr "Oost-Timor"
1299
 
1300
+ #: admin/class-settings.php:644
1301
  msgid "Tokelau"
1302
  msgstr "Tokelau"
1303
 
1304
+ #: admin/class-settings.php:645
1305
  msgid "Togo"
1306
  msgstr "Togo"
1307
 
1308
+ #: admin/class-settings.php:646
1309
  msgid "Tonga"
1310
  msgstr "Tonga"
1311
 
1312
+ #: admin/class-settings.php:647
1313
  msgid "Trinidad and Tobago"
1314
  msgstr "Trinidad en Tobago"
1315
 
1316
+ #: admin/class-settings.php:648
1317
  msgid "Tunisia"
1318
  msgstr "Tunesië"
1319
 
1320
+ #: admin/class-settings.php:649
1321
  msgid "Turkey"
1322
  msgstr "Turkije"
1323
 
1324
+ #: admin/class-settings.php:650
1325
  msgid "Turkmenistan"
1326
  msgstr "Turkmenistan"
1327
 
1328
+ #: admin/class-settings.php:651
1329
  msgid "Tuvalu"
1330
  msgstr "Tuvalu"
1331
 
1332
+ #: admin/class-settings.php:652
1333
  msgid "Uganda"
1334
  msgstr "Uganda"
1335
 
1336
+ #: admin/class-settings.php:653
1337
  msgid "Ukraine"
1338
  msgstr "Oekraïne"
1339
 
1340
+ #: admin/class-settings.php:654
1341
  msgid "United Arab Emirates"
1342
  msgstr "Verenigde Arabische Emiraten"
1343
 
1344
+ #: admin/class-settings.php:655
1345
  msgid "United Kingdom"
1346
  msgstr "Verenigd Koninkrijk"
1347
 
1348
+ #: admin/class-settings.php:656
1349
  msgid "United States"
1350
  msgstr "Verenigde Staten"
1351
 
1352
+ #: admin/class-settings.php:657
1353
  msgid "Uruguay"
1354
  msgstr "Uruguay"
1355
 
1356
+ #: admin/class-settings.php:658
1357
  msgid "Uzbekistan"
1358
  msgstr "Uzbekistan"
1359
 
1360
+ #: admin/class-settings.php:659
1361
  msgid "Wallis Futuna"
1362
  msgstr "Wallis en Futuna"
1363
 
1364
+ #: admin/class-settings.php:660
1365
  msgid "Venezuela"
1366
  msgstr "Venezuela"
1367
 
1368
+ #: admin/class-settings.php:661
1369
  msgid "Vietnam"
1370
  msgstr "Vietnam"
1371
 
1372
+ #: admin/class-settings.php:662
1373
  msgid "Yemen"
1374
  msgstr "Yemen"
1375
 
1376
+ #: admin/class-settings.php:663
1377
  msgid "Zambia"
1378
  msgstr "Zambia"
1379
 
1380
+ #: admin/class-settings.php:664
1381
  msgid "Zimbabwe"
1382
  msgstr "Zimbabwe"
1383
 
1384
+ #: admin/class-settings.php:707
1385
  msgid "World view"
1386
  msgstr "wereldkaart"
1387
 
1388
+ #: admin/class-settings.php:710 admin/class-settings.php:824
1389
+ #: inc/wpsl-functions.php:189
1390
  msgid "Default"
1391
  msgstr "standaard"
1392
 
1393
+ #: admin/class-settings.php:713 inc/wpsl-functions.php:262
1394
  msgid "Roadmap"
1395
  msgstr "wegenkaart"
1396
 
1397
+ #: admin/class-settings.php:854
1398
  msgid "Start location marker"
1399
  msgstr "Start locatie marker"
1400
 
1401
+ #: admin/class-settings.php:856
1402
  msgid "Store location marker"
1403
  msgstr "Winkel locatie marker"
1404
 
1405
+ #: admin/class-settings.php:938
1406
  msgid "Textarea"
1407
  msgstr "tekstvlak"
1408
 
1409
+ #: admin/class-settings.php:939
1410
  msgid "Dropdowns (recommended)"
1411
  msgstr "dropdown (aangeraden)"
1412
 
1413
+ #: admin/class-settings.php:947
1414
  msgid "Bounces up and down"
1415
  msgstr "beweegt op en neer"
1416
 
1417
+ #: admin/class-settings.php:948
1418
  msgid "Will open the info window"
1419
  msgstr "opent de info window"
1420
 
1421
+ #: admin/class-settings.php:949
1422
  msgid "Does not respond"
1423
  msgstr "reageert niet"
1424
 
1425
+ #: admin/class-settings.php:957
1426
  msgid "In the store listings"
1427
  msgstr "In de locatie lijst"
1428
 
1429
+ #: admin/class-settings.php:958
1430
  msgid "In the info window on the map"
1431
  msgstr "In de info window op de kaart"
1432
 
1433
+ #: admin/class-settings.php:1014
1434
  msgid "12 Hours"
1435
  msgstr "12 uur"
1436
 
1437
+ #: admin/class-settings.php:1015
1438
  msgid "24 Hours"
1439
  msgstr "24 uur"
1440
 
1480
  #: admin/templates/map-settings.php:29
1481
  #, php-format
1482
  msgid ""
1483
+ "This will bias the %sgeocoding%s results towards the selected region. %s If "
1484
+ "no region is selected the bias is set to the United States."
1485
  msgstr ""
1486
+ "Dit zorgt er voor dat de %sgeocode%s resultaten uit de geselecteerde regio "
1487
  "voorkeur krijgen over resultaten uit andere regio's . %s Als er geen regio "
1488
  "is geselecteerd dan gaat de voorkeur uit naar de Verenigde Staten."
1489
 
1490
+ #: admin/templates/map-settings.php:35
1491
+ msgid "Restrict the geocoding results to the selected map region?"
1492
+ msgstr "Limiteer de geocode resultaten tot de geselecteerde map regio?"
1493
+
1494
+ #: admin/templates/map-settings.php:35
1495
+ #, php-format
1496
+ msgid ""
1497
+ "If the %sgeocoding%s API finds more relevant results outside of the set map "
1498
+ "region ( some location names exist in multiple regions ), the user will "
1499
+ "likely see a \"No results found\" message. %s To rule this out you can "
1500
+ "restrict the results to the set map region. %s You can modify the used "
1501
+ "restrictions with %sthis%s filter."
1502
+ msgstr ""
1503
+ "Als de %sgeocode%s API meer relevante resultaten vindt buiten de ingestelde "
1504
+ "map regio ( sommige locatie namen bestaan in meerdere regio's ), dan zal de "
1505
+ "gebruiker waarschijnlijk een \"Geen resultaten gevonden\" boodschap zien. %s "
1506
+ "Om dit uit te sluiten kan je een restrictie plaatsen om dit te voorkomen. "
1507
+ "%s Je kan de gebruikte restricties aanpassen met %sdeze%s filter."
1508
+
1509
+ #: admin/templates/map-settings.php:39 admin/templates/map-settings.php:81
1510
+ #: admin/templates/map-settings.php:158 admin/templates/map-settings.php:251
1511
+ #: admin/templates/map-settings.php:277 admin/templates/map-settings.php:327
1512
+ #: admin/templates/map-settings.php:353 admin/templates/map-settings.php:461
1513
+ #: admin/templates/map-settings.php:482
1514
  msgid "Save Changes"
1515
  msgstr "Wijzigingen opslaan"
1516
 
1517
+ #: admin/templates/map-settings.php:49 admin/templates/map-settings.php:389
1518
+ #: admin/templates/map-settings.php:390 frontend/templates/default.php:43
1519
+ #: frontend/templates/store-listings-below.php:43 inc/wpsl-functions.php:107
1520
  msgid "Search"
1521
  msgstr "Zoek"
1522
 
1523
+ #: admin/templates/map-settings.php:52
1524
  msgid "Show the max results dropdown?"
1525
  msgstr "Toon de max resultaten dropdown?"
1526
 
1527
+ #: admin/templates/map-settings.php:56
1528
  msgid "Show the search radius dropdown?"
1529
  msgstr "Toon de zoek radius dropdown?"
1530
 
1531
+ #: admin/templates/map-settings.php:60
1532
  msgid "Show the category dropdown?"
1533
  msgstr "Toon de categorie dropdown?"
1534
 
1535
+ #: admin/templates/map-settings.php:64
1536
  msgid "Distance unit"
1537
  msgstr "Afstands eenheid"
1538
 
1539
+ #: admin/templates/map-settings.php:67
1540
  msgid "km"
1541
  msgstr "km"
1542
 
1543
+ #: admin/templates/map-settings.php:69
1544
  msgid "mi"
1545
  msgstr "mi"
1546
 
1547
+ #: admin/templates/map-settings.php:73
1548
  msgid "Max search results"
1549
  msgstr "Max zoek resultaten"
1550
 
1551
+ #: admin/templates/map-settings.php:73 admin/templates/map-settings.php:77
1552
  msgid "The default value is set between the [ ]."
1553
  msgstr "* De standaard waarde staat tussen de []."
1554
 
1555
+ #: admin/templates/map-settings.php:77
1556
  msgid "Search radius options"
1557
  msgstr "Zoek radius opties"
1558
 
1559
+ #: admin/templates/map-settings.php:91
1560
  msgid "Map"
1561
  msgstr "Kaart"
1562
 
1563
+ #: admin/templates/map-settings.php:94
1564
  msgid "Attempt to auto-locate the user"
1565
  msgstr "Probeer de locatie van de gebruiker automatische te achterhalen"
1566
 
1567
+ #: admin/templates/map-settings.php:98
1568
  msgid "Load locations on page load"
1569
  msgstr "Toon alle locaties op de kaart zodra de pagina geladen is"
1570
 
1571
+ #: admin/templates/map-settings.php:102
1572
  msgid "Number of locations to show"
1573
  msgstr "Aantal getoonde locaties"
1574
 
1575
+ #: admin/templates/map-settings.php:102
1576
  #, php-format
1577
  msgid ""
1578
  "Although the location data is cached after the first load, a lower number "
1585
  "Als het veld leeg blijft of er wordt 0 ingevuld, dan worden alle locaties "
1586
  "geladen."
1587
 
1588
+ #: admin/templates/map-settings.php:106
1589
  msgid "Start point"
1590
  msgstr "Start locatie"
1591
 
1592
+ #: admin/templates/map-settings.php:106
1593
  #, php-format
1594
  msgid ""
1595
  "%sRequired field.%s %s If auto-locating the user is disabled or fails, the "
1600
  "locatie is uitgeschakeld of mislukt, dan wordt het middelpunt van de "
1601
  "opgegeven locatie als begin punt gebruikt."
1602
 
1603
+ #: admin/templates/map-settings.php:111
1604
  msgid "Initial zoom level"
1605
  msgstr "Start zoom niveau"
1606
 
1607
+ #: admin/templates/map-settings.php:115
1608
  msgid "Max auto zoom level"
1609
  msgstr "Max zoom niveau"
1610
 
1611
+ #: admin/templates/map-settings.php:115
1612
  #, php-format
1613
  msgid ""
1614
  "This value sets the zoom level for the \"Zoom here\" link in the info "
1620
  "limiteren als de viewport van de kaart verandert, wanneer geprobeerd wordt "
1621
  "om alle markers op het scherm te laten passen."
1622
 
1623
+ #: admin/templates/map-settings.php:119
1624
  msgid "Show the street view controls?"
1625
  msgstr "Toon de street view controls?"
1626
 
1627
+ #: admin/templates/map-settings.php:123
1628
  msgid "Show the map type control?"
1629
  msgstr "Toon de kaart type controls?"
1630
 
1631
+ #: admin/templates/map-settings.php:127
1632
  msgid "Enable scroll wheel zooming?"
1633
  msgstr "Activeer het inzoomen met je scrollwheel?"
1634
 
1635
+ #: admin/templates/map-settings.php:131
1636
  msgid "Zoom control position"
1637
  msgstr "Zoom bediening positie"
1638
 
1639
+ #: admin/templates/map-settings.php:134
1640
  msgid "Left"
1641
  msgstr "links"
1642
 
1643
+ #: admin/templates/map-settings.php:136
1644
  msgid "Right"
1645
  msgstr "rechts"
1646
 
1647
+ #: admin/templates/map-settings.php:140
1648
  msgid "Map type"
1649
  msgstr "Kaart soort"
1650
 
1651
+ #: admin/templates/map-settings.php:144
1652
  msgid "Map style"
1653
  msgstr "Kaart stijl"
1654
 
1655
+ #: admin/templates/map-settings.php:144
1656
  msgid ""
1657
  "Custom map styles only work if the map type is set to \"Roadmap\" or "
1658
  "\"Terrain\"."
1660
  "Custom map stijlen werken alleen maar als de kaart soort op \"Wegenkaart\" "
1661
  "of \"Terrein\" is gezet."
1662
 
1663
+ #: admin/templates/map-settings.php:147
1664
  #, php-format
1665
  msgid ""
1666
  "You can use existing map styles from %sSnazzy Maps%s or %sMap Stylr%s and "
1671
  "en in het onderstaande tekstvlak plaatsen. Of je kan de map stijl genereren "
1672
  "via de %sMap Style Editor%s of de %sStyled Maps Wizard%s."
1673
 
1674
+ #: admin/templates/map-settings.php:148
1675
  #, php-format
1676
  msgid ""
1677
  "If you like to write the style code yourself, then you can find the "
1680
  "Als je zelf de stijl code wil schrijven dan kun je de documentatie %shier%s "
1681
  "vinden."
1682
 
1683
+ #: admin/templates/map-settings.php:150
1684
  msgid "Preview Map Style"
1685
  msgstr "Map stijl voorbeeld"
1686
 
1687
+ #: admin/templates/map-settings.php:154
1688
  msgid "Show credits?"
1689
  msgstr "Toon credits?"
1690
 
1691
+ #: admin/templates/map-settings.php:154
1692
  msgid ""
1693
  "This will place a \"Search provided by WP Store Locator\" backlink below the "
1694
  "map."
1695
  msgstr ""
1696
  "Dit plaatst een \"Ondersteund door WP Store Locator\" link onder de kaart."
1697
 
1698
+ #: admin/templates/map-settings.php:168
1699
  msgid "User Experience"
1700
  msgstr "Gebruikers ervaring"
1701
 
1702
+ #: admin/templates/map-settings.php:171
1703
  msgid "Store Locator height"
1704
  msgstr "Store Locator hoogte"
1705
 
1706
+ #: admin/templates/map-settings.php:175
1707
  msgid "Max width for the info window content"
1708
  msgstr "Max breedte voor de info window inhoud"
1709
 
1710
+ #: admin/templates/map-settings.php:179
1711
  msgid "Search field width"
1712
  msgstr "Zoekveld breedte"
1713
 
1714
+ #: admin/templates/map-settings.php:183
1715
  msgid "Search and radius label width"
1716
  msgstr "Zoek en radius label breedte"
1717
 
1718
+ #: admin/templates/map-settings.php:187
1719
  msgid "Store Locator template"
1720
  msgstr "Store locator template"
1721
 
1722
+ #: admin/templates/map-settings.php:187
1723
  #, php-format
1724
  msgid ""
1725
  "The selected template is used with the [wpsl] shortcode. %s You can add a "
1728
  "De geselecteerde template wordt gebruikt bij de [wpsl] shortcode. %s Je kunt "
1729
  "een custom template gebruiken met behulp van de %swpsl_templates%s filter."
1730
 
1731
+ #: admin/templates/map-settings.php:191
1732
  msgid "Hide the scrollbar?"
1733
  msgstr "Verberg de scrollbar?"
1734
 
1735
+ #: admin/templates/map-settings.php:195
1736
  msgid "Open links in a new window?"
1737
  msgstr "Open links in een nieuw venster?"
1738
 
1739
+ #: admin/templates/map-settings.php:199
1740
  msgid "Show a reset map button?"
1741
  msgstr "Toon een knop om de kaart te resetten?"
1742
 
1743
+ #: admin/templates/map-settings.php:203
1744
  msgid ""
1745
  "When a user clicks on \"Directions\", open a new window, and show the route "
1746
  "on google.com/maps ?"
1748
  "Zodra een gebruiker op \"Route\" klikt, open een nieuwe venster en toon de "
1749
  "route op google.com/maps?"
1750
 
1751
+ #: admin/templates/map-settings.php:207
1752
  msgid "Show a \"More info\" link in the store listings?"
1753
  msgstr "Toon een \"Meer info\" link in de locatie lijst?"
1754
 
1755
+ #: admin/templates/map-settings.php:207
1756
  #, php-format
1757
  msgid ""
1758
  "This places a \"More Info\" link below the address and will show the phone, "
1765
  "omschrijving. %s Als je bijvoorbeeld de contact gegevens altijd wil tonen, "
1766
  "volg dan de instructies op %sdeze%s pagina."
1767
 
1768
+ #: admin/templates/map-settings.php:211
1769
  msgid "Where do you want to show the \"More info\" details?"
1770
  msgstr "Waar wil je de \"Meer info\" details tonen?"
1771
 
1772
+ #: admin/templates/map-settings.php:215
1773
  msgid "Make the store name clickable if a store URL exists?"
1774
  msgstr "Als een winkel url bestaat, maak de winkel naam dan klikbaar?"
1775
 
1776
+ #: admin/templates/map-settings.php:215
1777
  #, php-format
1778
  msgid ""
1779
  "If %spermalinks%s are enabled, the store name will always link to the store "
1782
  "Als de %spermalinks%s zijn ingeschakeld dan zal de winkel naam altijd linken "
1783
  "naar de winkel pagina."
1784
 
1785
+ #: admin/templates/map-settings.php:219
1786
  msgid "Make the phone number clickable on mobile devices?"
1787
  msgstr "Maak het telefoonnummer klikbaar op mobiele apparaten?"
1788
 
1789
+ #: admin/templates/map-settings.php:223
1790
  msgid ""
1791
  "If street view is available for the current location, then show a \"Street "
1792
  "view\" link in the info window?"
1794
  "Als voor de huidge locatie street view beschikbaar is, toon dan een \"Street "
1795
  "view\" link om vanuit de info window?"
1796
 
1797
+ #: admin/templates/map-settings.php:223
1798
  #, php-format
1799
  msgid ""
1800
  "Enabling this option can sometimes result in a small delay in the opening of "
1806
  "er een verzoek naar de Google Maps API word gemaakt om te controleren ofdat "
1807
  "street view wel beschikbaar is voor de huidige locatie."
1808
 
1809
+ #: admin/templates/map-settings.php:227
1810
  msgid "Show a \"Zoom here\" link in the info window?"
1811
  msgstr "Toon een \"zoom hier\" link in de info window?"
1812
 
1813
+ #: admin/templates/map-settings.php:227
1814
  #, php-format
1815
  msgid ""
1816
  "Clicking this link will make the map zoom in to the %s max auto zoom level "
1819
  "Als er op deze link geklikt word dan zoomt de kaart in totdat de %s max auto "
1820
  "zoom level %s bereikt is."
1821
 
1822
+ #: admin/templates/map-settings.php:231
1823
  msgid "On page load move the mouse cursor to the search field?"
1824
  msgstr ""
1825
  "Als de pagina wordt geladen, verplaats de muiscursor dan naar het invulveld?"
1826
 
1827
+ #: admin/templates/map-settings.php:231
1828
  #, php-format
1829
  msgid ""
1830
  "If the store locator is not placed at the top of the page, enabling this "
1835
  "instelling ervoor zorgen dat de pagina naar benenden schuift tijden het "
1836
  "laden. %s %sDeze optie staat uit op mobiele apparaten.%s"
1837
 
1838
+ #: admin/templates/map-settings.php:235
1839
  msgid "Use the default style for the info window?"
1840
  msgstr "Gebruik de standaard style voor de info window?"
1841
 
1842
+ #: admin/templates/map-settings.php:235
1843
  #, php-format
1844
  msgid ""
1845
  "If the default style is disabled the %sInfoBox%s library will be used "
1850
  "gebruikt. %s Dit script maakt het mogelijk om makkelijk het ontwerp te "
1851
  "wijzigen met behulp van de .wpsl-infobox css class."
1852
 
1853
+ #: admin/templates/map-settings.php:239
1854
  msgid "Hide the distance in the search results?"
1855
  msgstr "Verberg de afstand in de zoek resultaten?"
1856
 
1857
+ #: admin/templates/map-settings.php:243
1858
  msgid "If a user hovers over the search results the store marker"
1859
  msgstr ""
1860
  "Als een gebruiker over de zoekresultaten beweegt met zijn muis de "
1861
  "bijbehorende marker"
1862
 
1863
+ #: admin/templates/map-settings.php:243
1864
  #, php-format
1865
  msgid ""
1866
  "If marker clusters are enabled this option will not work as expected as long "
1875
  "de marker cluster wordt omgezet naar losse markers. %s De info window wordt "
1876
  "wel geopend, maar het is niet duidelijk bij welke marker het hoort."
1877
 
1878
+ #: admin/templates/map-settings.php:247
1879
  msgid "Address format"
1880
  msgstr "Adres formaat"
1881
 
1882
+ #: admin/templates/map-settings.php:247
1883
  #, php-format
1884
  msgid ""
1885
  "You can add custom address formats with the %swpsl_address_formats%s filter."
1887
  "Je kunt een nieuwe adres formaat toevoegen met de %swpsl_address_formats%s "
1888
  "filter."
1889
 
1890
+ #: admin/templates/map-settings.php:261
1891
  msgid "Markers"
1892
  msgstr "Markers"
1893
 
1894
+ #: admin/templates/map-settings.php:265
1895
  msgid "Enable marker clusters?"
1896
  msgstr "Activeer marker clusters?"
1897
 
1898
+ #: admin/templates/map-settings.php:265
1899
  msgid "Recommended for maps with a large amount of markers."
1900
  msgstr "Aan te raden voor kaarten met grote hoeveelheden markers."
1901
 
1902
+ #: admin/templates/map-settings.php:269
1903
  msgid "Max zoom level"
1904
  msgstr "Max zoom niveau"
1905
 
1906
+ #: admin/templates/map-settings.php:269
1907
  msgid ""
1908
  "If this zoom level is reached or exceeded, then all markers are moved out of "
1909
  "the marker cluster and shown as individual markers."
1911
  "Als dit zoom niveau bereikt is of gepasseerd, dan worden alle markers uit de "
1912
  "marker cluster gehaald en als losse markers getoond."
1913
 
1914
+ #: admin/templates/map-settings.php:273
1915
  msgid "Cluster size"
1916
  msgstr "Cluster grote"
1917
 
1918
+ #: admin/templates/map-settings.php:273
1919
  #, php-format
1920
  msgid ""
1921
  "The grid size of a cluster in pixels. %s A larger number will result in a "
1925
  "voor dat er minder clusters zichtbaar zijn en het algoritme dus ook sneller "
1926
  "klaar is."
1927
 
1928
+ #: admin/templates/map-settings.php:287
1929
  msgid "Store Editor"
1930
  msgstr "Winkel editor"
1931
 
1932
+ #: admin/templates/map-settings.php:290
1933
  msgid "Default country"
1934
  msgstr "Standaard land"
1935
 
1936
+ #: admin/templates/map-settings.php:294
1937
  msgid "Map type for the location preview"
1938
  msgstr "Kaart type voor het lokatie voorbeeld"
1939
 
1940
+ #: admin/templates/map-settings.php:298
1941
  msgid "Hide the opening hours?"
1942
  msgstr "Verberg de openingstijden?"
1943
 
1944
+ #: admin/templates/map-settings.php:304
1945
  msgid "Opening hours input type"
1946
  msgstr "Openingstijden formaat"
1947
 
1948
+ #: admin/templates/map-settings.php:308
1949
  #, php-format
1950
  msgid ""
1951
  "Opening hours created in version 1.x %sare not%s automatically converted to "
1954
  "De openingstijden die zijn aangemaakt in versie 1.x %sworden niet%s "
1955
  "automatische omgezet naar het dropdown formaat."
1956
 
1957
+ #: admin/templates/map-settings.php:311 admin/templates/map-settings.php:320
1958
  msgid "The default opening hours"
1959
  msgstr "De standaard openingstijden"
1960
 
1961
+ #: admin/templates/map-settings.php:317
1962
  msgid "Opening hours format"
1963
  msgstr "Openingstijden formaat"
1964
 
1965
+ #: admin/templates/map-settings.php:324
1966
  msgid ""
1967
  "The default country and opening hours are only used when a new store is "
1968
  "created. So changing the default values will have no effect on existing "
1972
  "gebruikt als een nieuwe locatie wordt aangemaakt. Het wijzigen van deze "
1973
  "waardes heeft dus geen enkele invloed op de bestaande locaties."
1974
 
1975
+ #: admin/templates/map-settings.php:337
1976
  msgid "Permalink"
1977
  msgstr "Permalink"
1978
 
1979
+ #: admin/templates/map-settings.php:340
1980
  msgid "Enable permalink?"
1981
  msgstr "Activeer permalink?"
1982
 
1983
+ #: admin/templates/map-settings.php:344
1984
  msgid "Store slug"
1985
  msgstr "Winkel slug"
1986
 
1987
+ #: admin/templates/map-settings.php:348
1988
  msgid "Category slug"
1989
  msgstr "Categorie slug"
1990
 
1991
+ #: admin/templates/map-settings.php:351
1992
  #, php-format
1993
  msgid "The permalink slugs %smust be unique%s on your site."
1994
  msgstr "De permalink slug %smoet uniek%s zijn op je site."
1995
 
1996
+ #: admin/templates/map-settings.php:363
1997
  msgid "Labels"
1998
  msgstr "Labels"
1999
 
2000
+ #: admin/templates/map-settings.php:372
2001
  #, php-format
2002
  msgid "%sWarning!%s %sWPML%s, or a plugin using the WPML API is active."
2003
  msgstr ""
2004
  "%sWaarschuwing!%s %sWPML%s, of een plugin die de WPML API gebruikt is "
2005
  "actief."
2006
 
2007
+ #: admin/templates/map-settings.php:373
2008
  msgid ""
2009
  "Please use the \"String Translations\" section in the used multilingual "
2010
  "plugin to change the labels. Changing them here will have no effect as long "
2014
  "labels te wijzigen. Wijzigingen die in dit gedeelte worden aangebracht "
2015
  "hebben geen effect zolang de vertaal plugin actief is."
2016
 
2017
+ #: admin/templates/map-settings.php:377 admin/templates/map-settings.php:378
2018
  #: frontend/templates/default.php:11
2019
+ #: frontend/templates/store-listings-below.php:11 inc/wpsl-functions.php:106
2020
  msgid "Your location"
2021
  msgstr "Uw locatie"
2022
 
2023
+ #: admin/templates/map-settings.php:381 admin/templates/map-settings.php:382
2024
  #: frontend/templates/default.php:20
2025
+ #: frontend/templates/store-listings-below.php:20 inc/wpsl-functions.php:109
2026
  msgid "Search radius"
2027
  msgstr "Zoek radius"
2028
 
2029
+ #: admin/templates/map-settings.php:385 admin/templates/map-settings.php:386
2030
+ #: frontend/class-frontend.php:1408 inc/wpsl-functions.php:110
2031
  msgid "No results found"
2032
  msgstr "Geen resultaten gevonden"
2033
 
2034
+ #: admin/templates/map-settings.php:393
2035
  msgid "Searching (preloader text)"
2036
  msgstr "Aan het zoeken (preloader tekst)"
2037
 
2038
+ #: admin/templates/map-settings.php:394 frontend/class-frontend.php:1407
2039
+ #: inc/wpsl-functions.php:108
2040
  msgid "Searching..."
2041
  msgstr "Zoeken..."
2042
 
2043
+ #: admin/templates/map-settings.php:397 admin/templates/map-settings.php:398
2044
  #: frontend/templates/default.php:29
2045
+ #: frontend/templates/store-listings-below.php:29 inc/wpsl-functions.php:111
2046
  msgid "Results"
2047
  msgstr "Resultaten"
2048
 
2049
+ #: admin/templates/map-settings.php:401 admin/upgrade.php:218
2050
+ #: inc/wpsl-functions.php:125
2051
  msgid "Category filter"
2052
  msgstr "Categorie filter"
2053
 
2054
+ #: admin/templates/map-settings.php:402 frontend/class-frontend.php:1127
2055
  msgid "Category"
2056
  msgstr "Categorie"
2057
 
2058
+ #: admin/templates/map-settings.php:405 admin/templates/map-settings.php:406
2059
+ #: admin/upgrade.php:66 frontend/class-frontend.php:1409
2060
  #: frontend/underscore-functions.php:114 frontend/underscore-functions.php:141
2061
+ #: inc/wpsl-functions.php:112
2062
  msgid "More info"
2063
  msgstr "Meer info"
2064
 
2065
+ #: admin/templates/map-settings.php:409 admin/templates/map-settings.php:410
2066
  #: frontend/class-frontend.php:673 frontend/underscore-functions.php:29
2067
+ #: frontend/underscore-functions.php:121 inc/wpsl-functions.php:120
2068
  msgid "Phone"
2069
  msgstr "Telefoon"
2070
 
2071
+ #: admin/templates/map-settings.php:429 admin/templates/map-settings.php:430
2072
+ #: frontend/class-frontend.php:1414 inc/wpsl-functions.php:105
2073
  msgid "Start location"
2074
  msgstr "Start locatie"
2075
 
2076
+ #: admin/templates/map-settings.php:433
2077
  msgid "Get directions"
2078
  msgstr "Toon routebeschrijving"
2079
 
2080
+ #: admin/templates/map-settings.php:434 frontend/class-frontend.php:1412
2081
+ #: inc/wpsl-functions.php:113
2082
  msgid "Directions"
2083
  msgstr "Routebeschrijving"
2084
 
2085
+ #: admin/templates/map-settings.php:437
2086
  msgid "No directions found"
2087
  msgstr "Geen routebeschrijving beschikbaar"
2088
 
2089
+ #: admin/templates/map-settings.php:438 admin/upgrade.php:163
2090
+ #: frontend/class-frontend.php:1413 inc/wpsl-functions.php:114
2091
  msgid "No route could be found between the origin and destination"
2092
  msgstr "Er kon geen route gevonden worden tussen het begin- en eindpunt"
2093
 
2094
+ #: admin/templates/map-settings.php:441 admin/templates/map-settings.php:442
2095
+ #: admin/upgrade.php:87 frontend/class-frontend.php:1415
2096
+ #: inc/wpsl-functions.php:115
2097
  msgid "Back"
2098
  msgstr "Terug"
2099
 
2100
+ #: admin/templates/map-settings.php:445 admin/templates/map-settings.php:446
2101
+ #: admin/upgrade.php:155 frontend/class-frontend.php:1416
2102
+ #: inc/wpsl-functions.php:116
2103
  msgid "Street view"
2104
  msgstr "Street view"
2105
 
2106
+ #: admin/templates/map-settings.php:449 admin/templates/map-settings.php:450
2107
+ #: admin/upgrade.php:159 frontend/class-frontend.php:1417
2108
+ #: inc/wpsl-functions.php:117
2109
  msgid "Zoom here"
2110
  msgstr "Zoom hier"
2111
 
2112
+ #: admin/templates/map-settings.php:453
2113
  msgid "General error"
2114
  msgstr "Foutmelding"
2115
 
2116
+ #: admin/templates/map-settings.php:454 frontend/class-frontend.php:1410
2117
+ #: inc/wpsl-functions.php:118
2118
  msgid "Something went wrong, please try again!"
2119
  msgstr "Er ging iets fout, probeer het nog een keer!"
2120
 
2121
+ #: admin/templates/map-settings.php:457
2122
  msgid "Query limit error"
2123
  msgstr "Query limit foutmelding"
2124
 
2125
+ #: admin/templates/map-settings.php:457
2126
  #, php-format
2127
  msgid ""
2128
  "You can raise the %susage limit%s by obtaining an API %skey%s, and fill in "
2131
  "Je kan de %sgebruiks limiet%s verhogen door een API %ssleutel%s aan te "
2132
  "vragen en die in het \"API sleutel\" veld bovenaan de pagina in te vullen."
2133
 
2134
+ #: admin/templates/map-settings.php:458 frontend/class-frontend.php:1411
2135
+ #: inc/wpsl-functions.php:119
2136
  msgid "API usage limit reached"
2137
  msgstr "API gebruikslimiet bereikt"
2138
 
2139
+ #: admin/templates/map-settings.php:471
2140
  msgid "Tools"
2141
  msgstr "Tools"
2142
 
2143
+ #: admin/templates/map-settings.php:474
2144
  msgid "Enable store locator debug?"
2145
  msgstr "Activeer store locator debug?"
2146
 
2147
+ #: admin/templates/map-settings.php:474
2148
  #, php-format
2149
  msgid ""
2150
  "This disables the WPSL transient cache. %sThe transient cache is only used "
2154
  "alleen gebruikt als de %sToon alle locaties op de kaart zodra de pagina "
2155
  "geladen is%s optie is geactiveerd."
2156
 
2157
+ #: admin/templates/map-settings.php:478
2158
  msgid "WPSL transients"
2159
  msgstr "WPSL transients"
2160
 
2161
+ #: admin/templates/map-settings.php:479
2162
  msgid "Clear store locator transient cache"
2163
  msgstr "Verwijder het store locator transient cache."
2164
 
2170
  msgid "Reset"
2171
  msgstr "Herstel"
2172
 
2173
+ #: admin/upgrade.php:186 inc/wpsl-functions.php:100
2174
  msgid "stores"
2175
  msgstr "winkels"
2176
 
2177
+ #: admin/upgrade.php:190 inc/wpsl-functions.php:101
2178
  msgid "store-category"
2179
  msgstr "winkel-categorie"
2180
 
2181
+ #: admin/upgrade.php:392
2182
  #, php-format
2183
  msgid ""
2184
  "Because you updated WP Store Locator from version 1.x, the %s current store "
2187
  "Doordat je WP Store Locator update van versie 1.x, de %s huidige winkel "
2188
  "locaties moeten worden %somgezet%s naar custom post types."
2189
 
2190
+ #: admin/upgrade.php:413
2191
  #, php-format
2192
  msgid ""
2193
  "The script converting the locations timed out. %s You can click the \"Start "
2205
  "heeft al geprobeerd om de maximum execution time uit te zetten, maar als je "
2206
  "dit leest dan is dat mislukt."
2207
 
2208
+ #: admin/upgrade.php:434
2209
  msgid "Store locations to convert:"
2210
  msgstr "Locaties die omgezet worden:"
2211
 
2212
+ #: admin/upgrade.php:436
2213
  msgid "Start Converting"
2214
  msgstr "Begin met omzetten"
2215
 
2216
+ #: admin/upgrade.php:558
2217
  #, php-format
2218
  msgid ""
2219
  "All the store locations are now converted to custom post types. %s You can "
2238
  "Als je de [wpsl_hours] shortcode op een pagina gebruikt die geen winkel "
2239
  "pagina is dan is de ID attribute verplicht."
2240
 
2241
+ #: frontend/class-frontend.php:791
2242
  msgid ""
2243
+ "If you use the [wpsl_map] shortcode outside a store page, then you need to "
2244
+ "set the ID or category attribute."
2245
  msgstr ""
2246
+ "Als de [wpsl_map] shortcode buiten een winkel page is geplaatst, dan moet je "
2247
+ "de ID of category attribute opgeven."
2248
 
2249
+ #: frontend/class-frontend.php:1129
2250
  msgid "Any"
2251
  msgstr "Alle"
2252
 
2253
+ #: frontend/class-frontend.php:1254
2254
  msgid "The application does not have permission to use the Geolocation API."
2255
  msgstr ""
2256
  "Deze applicatie heeft geen toestemming om de Geolocation API te gebruiken."
2257
 
2258
+ #: frontend/class-frontend.php:1255
2259
  msgid "Location information is unavailable."
2260
  msgstr "Informatie over de huidige locatie is niet beschikbaar."
2261
 
2262
+ #: frontend/class-frontend.php:1256
2263
  msgid "The geolocation request timed out."
2264
  msgstr "Het geolocation verzoek timed out."
2265
 
2266
+ #: frontend/class-frontend.php:1257
2267
  msgid "An unknown error occurred."
2268
  msgstr " Er heeft zich een onbekende fout voorgedaan."
2269
 
2373
  msgid "Zip"
2374
  msgstr "Postcode"
2375
 
2376
+ #: inc/wpsl-functions.php:194
2377
  msgid "Show the store list below the map"
2378
  msgstr "Toon the locatie lijst onder de kaart"
2379
 
2380
+ #: inc/wpsl-functions.php:211
2381
  msgid "Monday"
2382
  msgstr "Maandag"
2383
 
2384
+ #: inc/wpsl-functions.php:212
2385
  msgid "Tuesday"
2386
  msgstr "Dinsdag"
2387
 
2388
+ #: inc/wpsl-functions.php:213
2389
  msgid "Wednesday"
2390
  msgstr "Woensdag"
2391
 
2392
+ #: inc/wpsl-functions.php:214
2393
  msgid "Thursday"
2394
  msgstr "Donderdag"
2395
 
2396
+ #: inc/wpsl-functions.php:215
2397
  msgid "Friday"
2398
  msgstr "Vrijdag"
2399
 
2400
+ #: inc/wpsl-functions.php:216
2401
  msgid "Saturday"
2402
  msgstr "Zaterdag"
2403
 
2404
+ #: inc/wpsl-functions.php:217
2405
  msgid "Sunday"
2406
  msgstr "Zondag"
2407
 
2408
+ #: inc/wpsl-functions.php:247
2409
  #, php-format
2410
  msgid "Mon %sTue %sWed %sThu %sFri %sSat Closed %sSun Closed"
2411
  msgstr "ma %sdi %swoe %sdo %svrij %szat gesloten %szo gesloten"
2412
 
2413
+ #: inc/wpsl-functions.php:263
2414
  msgid "Satellite"
2415
  msgstr "Satelliet"
2416
 
2417
+ #: inc/wpsl-functions.php:264
2418
  msgid "Hybrid"
2419
  msgstr "Hybrid"
2420
 
2421
+ #: inc/wpsl-functions.php:265
2422
  msgid "Terrain"
2423
  msgstr "Terrein"
2424
 
2425
+ #: inc/wpsl-functions.php:280
2426
  msgid "(city) (state) (zip code)"
2427
  msgstr "(stad) (provincie) (postcode)"
2428
 
2429
+ #: inc/wpsl-functions.php:281
2430
  msgid "(city), (state) (zip code)"
2431
  msgstr "(stad), (provincie), (postcode)"
2432
 
2433
+ #: inc/wpsl-functions.php:282
2434
  msgid "(city) (zip code)"
2435
  msgstr "(stad) (postcode)"
2436
 
2437
+ #: inc/wpsl-functions.php:283
2438
  msgid "(city), (zip code)"
2439
  msgstr "(stad), (postcode)"
2440
 
2441
+ #: inc/wpsl-functions.php:284
2442
  msgid "(zip code) (city) (state)"
2443
  msgstr "(postcode) (stad) (provincie)"
2444
 
2445
+ #: inc/wpsl-functions.php:285
2446
  msgid "(zip code) (city)"
2447
  msgstr "(postcode) (stad)"
2448
 
2449
+ #~ msgid ""
2450
+ #~ "This will bias the geocoding results towards the selected region. %s If "
2451
+ #~ "no region is selected the bias is set to the United States."
2452
+ #~ msgstr ""
2453
+ #~ "Dit zorgt er voor dat de geocode resultaten uit de geselecteerde regio "
2454
+ #~ "voorkeur krijgen over resultaten uit andere regio's . %s Als er geen "
2455
+ #~ "regio is geselecteerd dan gaat de voorkeur uit naar de Verenigde Staten."
2456
+
2457
+ #~ msgid ""
2458
+ #~ "If you use the [wpsl_map] shortcode outside a store page you need to set "
2459
+ #~ "the ID attribute."
2460
+ #~ msgstr ""
2461
+ #~ "Als je de [wpsl_map] shortcode op een pagina gebruikt die geen winkel "
2462
+ #~ "pagina is dan is de ID attribute verplicht."
2463
+
2464
  #~ msgid "Show the pan controls?"
2465
  #~ msgstr "Toon de pan controls?"
2466
 
languages/wpsl.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: WP Store Locator v2.0\n"
5
  "Report-Msgid-Bugs-To: \n"
6
- "POT-Creation-Date: 2015-11-23 12:03+0100\n"
7
  "PO-Revision-Date: 2015-09-01 13:49+0100\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
@@ -20,70 +20,94 @@ msgstr ""
20
  "X-Textdomain-Support: yes\n"
21
  "X-Poedit-SearchPath-0: .\n"
22
 
23
- #: admin/class-admin.php:118
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  #, php-format
25
  msgid ""
26
  "Before adding the [wpsl] shortcode to a page, please don't forget to define "
27
  "a %sstart point%s. %sDismiss%s"
28
  msgstr ""
29
 
30
- #: admin/class-admin.php:120
31
  #, php-format
32
  msgid ""
33
  "Before adding the [wpsl] shortcode to a page, please don't forget to define "
34
  "a start point on the %ssettings%s page. %sDismiss%s"
35
  msgstr ""
36
 
37
- #: admin/class-admin.php:150 admin/templates/map-settings.php:8
 
38
  msgid "Settings"
39
  msgstr ""
40
 
41
- #: admin/class-admin.php:264
42
  msgid "Cannot determine the address at this location."
43
  msgstr ""
44
 
45
- #: admin/class-admin.php:265
46
  msgid "Geocode was not successful for the following reason"
47
  msgstr ""
48
 
49
- #: admin/class-admin.php:266 admin/upgrade.php:406
50
  msgid "Security check failed, reload the page and try again."
51
  msgstr ""
52
 
53
- #: admin/class-admin.php:267
54
  msgid "Please fill in all the required store details."
55
  msgstr ""
56
 
57
- #: admin/class-admin.php:268
58
  msgid "The map preview requires all the location details."
59
  msgstr ""
60
 
61
- #: admin/class-admin.php:269 admin/class-metaboxes.php:505
62
  #: frontend/class-frontend.php:493
63
  msgid "Closed"
64
  msgstr ""
65
 
66
- #: admin/class-admin.php:270
67
  msgid "The code for the map style is invalid."
68
  msgstr ""
69
 
70
- #: admin/class-admin.php:361
71
  msgid "Welcome to WP Store Locator"
72
  msgstr ""
73
 
74
- #: admin/class-admin.php:362
75
  msgid "Sign up for the latest plugin updates and announcements."
76
  msgstr ""
77
 
78
- #: admin/class-admin.php:406
79
  msgid "Documentation"
80
  msgstr ""
81
 
82
- #: admin/class-admin.php:409
83
  msgid "General Settings"
84
  msgstr ""
85
 
86
- #: admin/class-admin.php:429
87
  #, php-format
88
  msgid "If you like this plugin please leave us a %s5 star%s rating."
89
  msgstr ""
@@ -101,11 +125,61 @@ msgid ""
101
  "%s."
102
  msgstr ""
103
 
104
- #: admin/class-geocode.php:79 admin/class-geocode.php:105
 
 
 
 
 
105
  msgid ""
106
  "The Google Geocoding API failed to return valid data, please try again later."
107
  msgstr ""
108
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  #: admin/class-metaboxes.php:33
110
  msgid "Store Details"
111
  msgstr ""
@@ -155,9 +229,9 @@ msgstr ""
155
  msgid "Opening Hours"
156
  msgstr ""
157
 
158
- #: admin/class-metaboxes.php:82 admin/templates/map-settings.php:421
159
- #: admin/templates/map-settings.php:422 frontend/underscore-functions.php:133
160
- #: inc/wpsl-functions.php:116
161
  msgid "Hours"
162
  msgstr ""
163
 
@@ -169,23 +243,23 @@ msgstr ""
169
  msgid "Tel"
170
  msgstr ""
171
 
172
- #: admin/class-metaboxes.php:91 admin/templates/map-settings.php:409
173
- #: admin/templates/map-settings.php:410 frontend/class-frontend.php:677
174
  #: frontend/underscore-functions.php:32 frontend/underscore-functions.php:124
175
- #: inc/wpsl-functions.php:113
176
  msgid "Fax"
177
  msgstr ""
178
 
179
- #: admin/class-metaboxes.php:94 admin/templates/map-settings.php:413
180
- #: admin/templates/map-settings.php:414 admin/upgrade.php:210
181
  #: frontend/class-frontend.php:681 frontend/underscore-functions.php:35
182
- #: frontend/underscore-functions.php:127 inc/wpsl-functions.php:114
183
  msgid "Email"
184
  msgstr ""
185
 
186
- #: admin/class-metaboxes.php:97 admin/templates/map-settings.php:417
187
- #: admin/templates/map-settings.php:418 admin/upgrade.php:214
188
- #: frontend/class-frontend.php:686 inc/wpsl-functions.php:115
189
  msgid "Url"
190
  msgstr ""
191
 
@@ -270,21 +344,21 @@ msgstr ""
270
  msgid "Preview store"
271
  msgstr ""
272
 
273
- #: admin/class-settings.php:38
274
  msgid "WP Store Locator Transients Cleared"
275
  msgstr ""
276
 
277
- #: admin/class-settings.php:371
278
  msgid ""
279
  "The max results field cannot be empty, the default value has been restored."
280
  msgstr ""
281
 
282
- #: admin/class-settings.php:374
283
  msgid ""
284
  "The search radius field cannot be empty, the default value has been restored."
285
  msgstr ""
286
 
287
- #: admin/class-settings.php:377
288
  #, php-format
289
  msgid ""
290
  "Please provide the name of a city or country that can be used as a starting "
@@ -292,1108 +366,1108 @@ msgid ""
292
  "user fails, or the option itself is disabled."
293
  msgstr ""
294
 
295
- #: admin/class-settings.php:398
296
  msgid "Select your language"
297
  msgstr ""
298
 
299
- #: admin/class-settings.php:399
300
  msgid "English"
301
  msgstr ""
302
 
303
- #: admin/class-settings.php:400
304
  msgid "Arabic"
305
  msgstr ""
306
 
307
- #: admin/class-settings.php:401
308
  msgid "Basque"
309
  msgstr ""
310
 
311
- #: admin/class-settings.php:402
312
  msgid "Bulgarian"
313
  msgstr ""
314
 
315
- #: admin/class-settings.php:403
316
  msgid "Bengali"
317
  msgstr ""
318
 
319
- #: admin/class-settings.php:404
320
  msgid "Catalan"
321
  msgstr ""
322
 
323
- #: admin/class-settings.php:405
324
  msgid "Czech"
325
  msgstr ""
326
 
327
- #: admin/class-settings.php:406
328
  msgid "Danish"
329
  msgstr ""
330
 
331
- #: admin/class-settings.php:407
332
  msgid "German"
333
  msgstr ""
334
 
335
- #: admin/class-settings.php:408
336
  msgid "Greek"
337
  msgstr ""
338
 
339
- #: admin/class-settings.php:409
340
  msgid "English (Australian)"
341
  msgstr ""
342
 
343
- #: admin/class-settings.php:410
344
  msgid "English (Great Britain)"
345
  msgstr ""
346
 
347
- #: admin/class-settings.php:411
348
  msgid "Spanish"
349
  msgstr ""
350
 
351
- #: admin/class-settings.php:412
352
  msgid "Farsi"
353
  msgstr ""
354
 
355
- #: admin/class-settings.php:413
356
  msgid "Finnish"
357
  msgstr ""
358
 
359
- #: admin/class-settings.php:414
360
  msgid "Filipino"
361
  msgstr ""
362
 
363
- #: admin/class-settings.php:415
364
  msgid "French"
365
  msgstr ""
366
 
367
- #: admin/class-settings.php:416
368
  msgid "Galician"
369
  msgstr ""
370
 
371
- #: admin/class-settings.php:417
372
  msgid "Gujarati"
373
  msgstr ""
374
 
375
- #: admin/class-settings.php:418
376
  msgid "Hindi"
377
  msgstr ""
378
 
379
- #: admin/class-settings.php:419
380
  msgid "Croatian"
381
  msgstr ""
382
 
383
- #: admin/class-settings.php:420
384
  msgid "Hungarian"
385
  msgstr ""
386
 
387
- #: admin/class-settings.php:421
388
  msgid "Indonesian"
389
  msgstr ""
390
 
391
- #: admin/class-settings.php:422
392
  msgid "Italian"
393
  msgstr ""
394
 
395
- #: admin/class-settings.php:423
396
  msgid "Hebrew"
397
  msgstr ""
398
 
399
- #: admin/class-settings.php:424
400
  msgid "Japanese"
401
  msgstr ""
402
 
403
- #: admin/class-settings.php:425
404
  msgid "Kannada"
405
  msgstr ""
406
 
407
- #: admin/class-settings.php:426
408
  msgid "Korean"
409
  msgstr ""
410
 
411
- #: admin/class-settings.php:427
412
  msgid "Lithuanian"
413
  msgstr ""
414
 
415
- #: admin/class-settings.php:428
416
  msgid "Latvian"
417
  msgstr ""
418
 
419
- #: admin/class-settings.php:429
420
  msgid "Malayalam"
421
  msgstr ""
422
 
423
- #: admin/class-settings.php:430
424
  msgid "Marathi"
425
  msgstr ""
426
 
427
- #: admin/class-settings.php:431
428
  msgid "Dutch"
429
  msgstr ""
430
 
431
- #: admin/class-settings.php:432
432
  msgid "Norwegian"
433
  msgstr ""
434
 
435
- #: admin/class-settings.php:433
436
  msgid "Norwegian Nynorsk"
437
  msgstr ""
438
 
439
- #: admin/class-settings.php:434
440
  msgid "Polish"
441
  msgstr ""
442
 
443
- #: admin/class-settings.php:435
444
  msgid "Portuguese"
445
  msgstr ""
446
 
447
- #: admin/class-settings.php:436
448
  msgid "Portuguese (Brazil)"
449
  msgstr ""
450
 
451
- #: admin/class-settings.php:437
452
  msgid "Portuguese (Portugal)"
453
  msgstr ""
454
 
455
- #: admin/class-settings.php:438
456
  msgid "Romanian"
457
  msgstr ""
458
 
459
- #: admin/class-settings.php:439
460
  msgid "Russian"
461
  msgstr ""
462
 
463
- #: admin/class-settings.php:440
464
  msgid "Slovak"
465
  msgstr ""
466
 
467
- #: admin/class-settings.php:441
468
  msgid "Slovenian"
469
  msgstr ""
470
 
471
- #: admin/class-settings.php:442
472
  msgid "Serbian"
473
  msgstr ""
474
 
475
- #: admin/class-settings.php:443
476
  msgid "Swedish"
477
  msgstr ""
478
 
479
- #: admin/class-settings.php:444
480
  msgid "Tagalog"
481
  msgstr ""
482
 
483
- #: admin/class-settings.php:445
484
  msgid "Tamil"
485
  msgstr ""
486
 
487
- #: admin/class-settings.php:446
488
  msgid "Telugu"
489
  msgstr ""
490
 
491
- #: admin/class-settings.php:447
492
  msgid "Thai"
493
  msgstr ""
494
 
495
- #: admin/class-settings.php:448
496
  msgid "Turkish"
497
  msgstr ""
498
 
499
- #: admin/class-settings.php:449
500
  msgid "Ukrainian"
501
  msgstr ""
502
 
503
- #: admin/class-settings.php:450
504
  msgid "Vietnamese"
505
  msgstr ""
506
 
507
- #: admin/class-settings.php:451
508
  msgid "Chinese (Simplified)"
509
  msgstr ""
510
 
511
- #: admin/class-settings.php:452
512
  msgid "Chinese (Traditional)"
513
  msgstr ""
514
 
515
- #: admin/class-settings.php:457
516
  msgid "Select your region"
517
  msgstr ""
518
 
519
- #: admin/class-settings.php:458
520
  msgid "Afghanistan"
521
  msgstr ""
522
 
523
- #: admin/class-settings.php:459
524
  msgid "Albania"
525
  msgstr ""
526
 
527
- #: admin/class-settings.php:460
528
  msgid "Algeria"
529
  msgstr ""
530
 
531
- #: admin/class-settings.php:461
532
  msgid "American Samoa"
533
  msgstr ""
534
 
535
- #: admin/class-settings.php:462
536
  msgid "Andorra"
537
  msgstr ""
538
 
539
- #: admin/class-settings.php:463
540
  msgid "Anguilla"
541
  msgstr ""
542
 
543
- #: admin/class-settings.php:464
544
  msgid "Angola"
545
  msgstr ""
546
 
547
- #: admin/class-settings.php:465
548
  msgid "Antigua and Barbuda"
549
  msgstr ""
550
 
551
- #: admin/class-settings.php:466
552
  msgid "Argentina"
553
  msgstr ""
554
 
555
- #: admin/class-settings.php:467
556
  msgid "Armenia"
557
  msgstr ""
558
 
559
- #: admin/class-settings.php:468
560
  msgid "Aruba"
561
  msgstr ""
562
 
563
- #: admin/class-settings.php:469
564
  msgid "Australia"
565
  msgstr ""
566
 
567
- #: admin/class-settings.php:470
568
  msgid "Austria"
569
  msgstr ""
570
 
571
- #: admin/class-settings.php:471
572
  msgid "Azerbaijan"
573
  msgstr ""
574
 
575
- #: admin/class-settings.php:472
576
  msgid "Bahamas"
577
  msgstr ""
578
 
579
- #: admin/class-settings.php:473
580
  msgid "Bahrain"
581
  msgstr ""
582
 
583
- #: admin/class-settings.php:474
584
  msgid "Bangladesh"
585
  msgstr ""
586
 
587
- #: admin/class-settings.php:475
588
  msgid "Barbados"
589
  msgstr ""
590
 
591
- #: admin/class-settings.php:476
592
  msgid "Belarus"
593
  msgstr ""
594
 
595
- #: admin/class-settings.php:477
596
  msgid "Belgium"
597
  msgstr ""
598
 
599
- #: admin/class-settings.php:478
600
  msgid "Belize"
601
  msgstr ""
602
 
603
- #: admin/class-settings.php:479
604
  msgid "Benin"
605
  msgstr ""
606
 
607
- #: admin/class-settings.php:480
608
  msgid "Bermuda"
609
  msgstr ""
610
 
611
- #: admin/class-settings.php:481
612
  msgid "Bhutan"
613
  msgstr ""
614
 
615
- #: admin/class-settings.php:482
616
  msgid "Bolivia"
617
  msgstr ""
618
 
619
- #: admin/class-settings.php:483
620
  msgid "Bosnia and Herzegovina"
621
  msgstr ""
622
 
623
- #: admin/class-settings.php:484
624
  msgid "Botswana"
625
  msgstr ""
626
 
627
- #: admin/class-settings.php:485
628
  msgid "Brazil"
629
  msgstr ""
630
 
631
- #: admin/class-settings.php:486
632
  msgid "British Indian Ocean Territory"
633
  msgstr ""
634
 
635
- #: admin/class-settings.php:487
636
  msgid "Brunei"
637
  msgstr ""
638
 
639
- #: admin/class-settings.php:488
640
  msgid "Bulgaria"
641
  msgstr ""
642
 
643
- #: admin/class-settings.php:489
644
  msgid "Burkina Faso"
645
  msgstr ""
646
 
647
- #: admin/class-settings.php:490
648
  msgid "Burundi"
649
  msgstr ""
650
 
651
- #: admin/class-settings.php:491
652
  msgid "Cambodia"
653
  msgstr ""
654
 
655
- #: admin/class-settings.php:492
656
  msgid "Cameroon"
657
  msgstr ""
658
 
659
- #: admin/class-settings.php:493
660
  msgid "Canada"
661
  msgstr ""
662
 
663
- #: admin/class-settings.php:494
664
  msgid "Cape Verde"
665
  msgstr ""
666
 
667
- #: admin/class-settings.php:495
668
  msgid "Cayman Islands"
669
  msgstr ""
670
 
671
- #: admin/class-settings.php:496
672
  msgid "Central African Republic"
673
  msgstr ""
674
 
675
- #: admin/class-settings.php:497
676
  msgid "Chad"
677
  msgstr ""
678
 
679
- #: admin/class-settings.php:498
680
  msgid "Chile"
681
  msgstr ""
682
 
683
- #: admin/class-settings.php:499
684
  msgid "China"
685
  msgstr ""
686
 
687
- #: admin/class-settings.php:500
688
  msgid "Christmas Island"
689
  msgstr ""
690
 
691
- #: admin/class-settings.php:501
692
  msgid "Cocos Islands"
693
  msgstr ""
694
 
695
- #: admin/class-settings.php:502
696
  msgid "Colombia"
697
  msgstr ""
698
 
699
- #: admin/class-settings.php:503
700
  msgid "Comoros"
701
  msgstr ""
702
 
703
- #: admin/class-settings.php:504
704
  msgid "Congo"
705
  msgstr ""
706
 
707
- #: admin/class-settings.php:505
708
  msgid "Costa Rica"
709
  msgstr ""
710
 
711
- #: admin/class-settings.php:506
712
  msgid "Côte d'Ivoire"
713
  msgstr ""
714
 
715
- #: admin/class-settings.php:507
716
  msgid "Croatia"
717
  msgstr ""
718
 
719
- #: admin/class-settings.php:508
720
  msgid "Cuba"
721
  msgstr ""
722
 
723
- #: admin/class-settings.php:509
724
  msgid "Czech Republic"
725
  msgstr ""
726
 
727
- #: admin/class-settings.php:510
728
  msgid "Denmark"
729
  msgstr ""
730
 
731
- #: admin/class-settings.php:511
732
  msgid "Djibouti"
733
  msgstr ""
734
 
735
- #: admin/class-settings.php:512
736
  msgid "Democratic Republic of the Congo"
737
  msgstr ""
738
 
739
- #: admin/class-settings.php:513
740
  msgid "Dominica"
741
  msgstr ""
742
 
743
- #: admin/class-settings.php:514
744
  msgid "Dominican Republic"
745
  msgstr ""
746
 
747
- #: admin/class-settings.php:515
748
  msgid "Ecuador"
749
  msgstr ""
750
 
751
- #: admin/class-settings.php:516
752
  msgid "Egypt"
753
  msgstr ""
754
 
755
- #: admin/class-settings.php:517
756
  msgid "El Salvador"
757
  msgstr ""
758
 
759
- #: admin/class-settings.php:518
760
  msgid "Equatorial Guinea"
761
  msgstr ""
762
 
763
- #: admin/class-settings.php:519
764
  msgid "Eritrea"
765
  msgstr ""
766
 
767
- #: admin/class-settings.php:520
768
  msgid "Estonia"
769
  msgstr ""
770
 
771
- #: admin/class-settings.php:521
772
  msgid "Ethiopia"
773
  msgstr ""
774
 
775
- #: admin/class-settings.php:522
776
  msgid "Fiji"
777
  msgstr ""
778
 
779
- #: admin/class-settings.php:523
780
  msgid "Finland"
781
  msgstr ""
782
 
783
- #: admin/class-settings.php:524
784
  msgid "France"
785
  msgstr ""
786
 
787
- #: admin/class-settings.php:525
788
  msgid "French Guiana"
789
  msgstr ""
790
 
791
- #: admin/class-settings.php:526
792
  msgid "Gabon"
793
  msgstr ""
794
 
795
- #: admin/class-settings.php:527
796
  msgid "Gambia"
797
  msgstr ""
798
 
799
- #: admin/class-settings.php:528
800
  msgid "Germany"
801
  msgstr ""
802
 
803
- #: admin/class-settings.php:529
804
  msgid "Ghana"
805
  msgstr ""
806
 
807
- #: admin/class-settings.php:530
808
  msgid "Greenland"
809
  msgstr ""
810
 
811
- #: admin/class-settings.php:531
812
  msgid "Greece"
813
  msgstr ""
814
 
815
- #: admin/class-settings.php:532
816
  msgid "Grenada"
817
  msgstr ""
818
 
819
- #: admin/class-settings.php:533
820
  msgid "Guam"
821
  msgstr ""
822
 
823
- #: admin/class-settings.php:534
824
  msgid "Guadeloupe"
825
  msgstr ""
826
 
827
- #: admin/class-settings.php:535
828
  msgid "Guatemala"
829
  msgstr ""
830
 
831
- #: admin/class-settings.php:536
832
  msgid "Guinea"
833
  msgstr ""
834
 
835
- #: admin/class-settings.php:537
836
  msgid "Guinea-Bissau"
837
  msgstr ""
838
 
839
- #: admin/class-settings.php:538
840
  msgid "Haiti"
841
  msgstr ""
842
 
843
- #: admin/class-settings.php:539
844
  msgid "Honduras"
845
  msgstr ""
846
 
847
- #: admin/class-settings.php:540
848
  msgid "Hong Kong"
849
  msgstr ""
850
 
851
- #: admin/class-settings.php:541
852
  msgid "Hungary"
853
  msgstr ""
854
 
855
- #: admin/class-settings.php:542
856
  msgid "Iceland"
857
  msgstr ""
858
 
859
- #: admin/class-settings.php:543
860
  msgid "India"
861
  msgstr ""
862
 
863
- #: admin/class-settings.php:544
864
  msgid "Indonesia"
865
  msgstr ""
866
 
867
- #: admin/class-settings.php:545
868
  msgid "Iran"
869
  msgstr ""
870
 
871
- #: admin/class-settings.php:546
872
  msgid "Iraq"
873
  msgstr ""
874
 
875
- #: admin/class-settings.php:547
876
  msgid "Ireland"
877
  msgstr ""
878
 
879
- #: admin/class-settings.php:548
880
  msgid "Israel"
881
  msgstr ""
882
 
883
- #: admin/class-settings.php:549
884
  msgid "Italy"
885
  msgstr ""
886
 
887
- #: admin/class-settings.php:550
888
  msgid "Jamaica"
889
  msgstr ""
890
 
891
- #: admin/class-settings.php:551
892
  msgid "Japan"
893
  msgstr ""
894
 
895
- #: admin/class-settings.php:552
896
  msgid "Jordan"
897
  msgstr ""
898
 
899
- #: admin/class-settings.php:553
900
  msgid "Kazakhstan"
901
  msgstr ""
902
 
903
- #: admin/class-settings.php:554
904
  msgid "Kenya"
905
  msgstr ""
906
 
907
- #: admin/class-settings.php:555
908
  msgid "Kuwait"
909
  msgstr ""
910
 
911
- #: admin/class-settings.php:556
912
  msgid "Kyrgyzstan"
913
  msgstr ""
914
 
915
- #: admin/class-settings.php:557
916
  msgid "Laos"
917
  msgstr ""
918
 
919
- #: admin/class-settings.php:558
920
  msgid "Latvia"
921
  msgstr ""
922
 
923
- #: admin/class-settings.php:559
924
  msgid "Lebanon"
925
  msgstr ""
926
 
927
- #: admin/class-settings.php:560
928
  msgid "Lesotho"
929
  msgstr ""
930
 
931
- #: admin/class-settings.php:561
932
  msgid "Liberia"
933
  msgstr ""
934
 
935
- #: admin/class-settings.php:562
936
  msgid "Libya"
937
  msgstr ""
938
 
939
- #: admin/class-settings.php:563
940
  msgid "Liechtenstein"
941
  msgstr ""
942
 
943
- #: admin/class-settings.php:564
944
  msgid "Lithuania"
945
  msgstr ""
946
 
947
- #: admin/class-settings.php:565
948
  msgid "Luxembourg"
949
  msgstr ""
950
 
951
- #: admin/class-settings.php:566
952
  msgid "Macau"
953
  msgstr ""
954
 
955
- #: admin/class-settings.php:567
956
  msgid "Macedonia"
957
  msgstr ""
958
 
959
- #: admin/class-settings.php:568
960
  msgid "Madagascar"
961
  msgstr ""
962
 
963
- #: admin/class-settings.php:569
964
  msgid "Malawi"
965
  msgstr ""
966
 
967
- #: admin/class-settings.php:570
968
  msgid "Malaysia "
969
  msgstr ""
970
 
971
- #: admin/class-settings.php:571
972
  msgid "Mali"
973
  msgstr ""
974
 
975
- #: admin/class-settings.php:572
976
  msgid "Marshall Islands"
977
  msgstr ""
978
 
979
- #: admin/class-settings.php:573
980
  msgid "Martinique"
981
  msgstr ""
982
 
983
- #: admin/class-settings.php:574
984
  msgid "Mauritania"
985
  msgstr ""
986
 
987
- #: admin/class-settings.php:575
988
  msgid "Mauritius"
989
  msgstr ""
990
 
991
- #: admin/class-settings.php:576
992
  msgid "Mexico"
993
  msgstr ""
994
 
995
- #: admin/class-settings.php:577
996
  msgid "Micronesia"
997
  msgstr ""
998
 
999
- #: admin/class-settings.php:578
1000
  msgid "Moldova"
1001
  msgstr ""
1002
 
1003
- #: admin/class-settings.php:579
1004
  msgid "Monaco"
1005
  msgstr ""
1006
 
1007
- #: admin/class-settings.php:580
1008
  msgid "Mongolia"
1009
  msgstr ""
1010
 
1011
- #: admin/class-settings.php:581
1012
  msgid "Montenegro"
1013
  msgstr ""
1014
 
1015
- #: admin/class-settings.php:582
1016
  msgid "Montserrat"
1017
  msgstr ""
1018
 
1019
- #: admin/class-settings.php:583
1020
  msgid "Morocco"
1021
  msgstr ""
1022
 
1023
- #: admin/class-settings.php:584
1024
  msgid "Mozambique"
1025
  msgstr ""
1026
 
1027
- #: admin/class-settings.php:585
1028
  msgid "Myanmar"
1029
  msgstr ""
1030
 
1031
- #: admin/class-settings.php:586
1032
  msgid "Namibia"
1033
  msgstr ""
1034
 
1035
- #: admin/class-settings.php:587
1036
  msgid "Nauru"
1037
  msgstr ""
1038
 
1039
- #: admin/class-settings.php:588
1040
  msgid "Nepal"
1041
  msgstr ""
1042
 
1043
- #: admin/class-settings.php:589
1044
  msgid "Netherlands"
1045
  msgstr ""
1046
 
1047
- #: admin/class-settings.php:590
1048
  msgid "Netherlands Antilles"
1049
  msgstr ""
1050
 
1051
- #: admin/class-settings.php:591
1052
  msgid "New Zealand"
1053
  msgstr ""
1054
 
1055
- #: admin/class-settings.php:592
1056
  msgid "Nicaragua"
1057
  msgstr ""
1058
 
1059
- #: admin/class-settings.php:593
1060
  msgid "Niger"
1061
  msgstr ""
1062
 
1063
- #: admin/class-settings.php:594
1064
  msgid "Nigeria"
1065
  msgstr ""
1066
 
1067
- #: admin/class-settings.php:595
1068
  msgid "Niue"
1069
  msgstr ""
1070
 
1071
- #: admin/class-settings.php:596
1072
  msgid "Northern Mariana Islands"
1073
  msgstr ""
1074
 
1075
- #: admin/class-settings.php:597
1076
  msgid "Norway"
1077
  msgstr ""
1078
 
1079
- #: admin/class-settings.php:598
1080
  msgid "Oman"
1081
  msgstr ""
1082
 
1083
- #: admin/class-settings.php:599
1084
  msgid "Pakistan"
1085
  msgstr ""
1086
 
1087
- #: admin/class-settings.php:600
1088
  msgid "Panama"
1089
  msgstr ""
1090
 
1091
- #: admin/class-settings.php:601
1092
  msgid "Papua New Guinea"
1093
  msgstr ""
1094
 
1095
- #: admin/class-settings.php:602
1096
  msgid "Paraguay"
1097
  msgstr ""
1098
 
1099
- #: admin/class-settings.php:603
1100
  msgid "Peru"
1101
  msgstr ""
1102
 
1103
- #: admin/class-settings.php:604
1104
  msgid "Philippines"
1105
  msgstr ""
1106
 
1107
- #: admin/class-settings.php:605
1108
  msgid "Pitcairn Islands"
1109
  msgstr ""
1110
 
1111
- #: admin/class-settings.php:606
1112
  msgid "Poland"
1113
  msgstr ""
1114
 
1115
- #: admin/class-settings.php:607
1116
  msgid "Portugal"
1117
  msgstr ""
1118
 
1119
- #: admin/class-settings.php:608
1120
  msgid "Qatar"
1121
  msgstr ""
1122
 
1123
- #: admin/class-settings.php:609
1124
  msgid "Reunion"
1125
  msgstr ""
1126
 
1127
- #: admin/class-settings.php:610
1128
  msgid "Romania"
1129
  msgstr ""
1130
 
1131
- #: admin/class-settings.php:611
1132
  msgid "Russia"
1133
  msgstr ""
1134
 
1135
- #: admin/class-settings.php:612
1136
  msgid "Rwanda"
1137
  msgstr ""
1138
 
1139
- #: admin/class-settings.php:613
1140
  msgid "Saint Helena"
1141
  msgstr ""
1142
 
1143
- #: admin/class-settings.php:614
1144
  msgid "Saint Kitts and Nevis"
1145
  msgstr ""
1146
 
1147
- #: admin/class-settings.php:615
1148
  msgid "Saint Vincent and the Grenadines"
1149
  msgstr ""
1150
 
1151
- #: admin/class-settings.php:616
1152
  msgid "Saint Lucia"
1153
  msgstr ""
1154
 
1155
- #: admin/class-settings.php:617
1156
  msgid "Samoa"
1157
  msgstr ""
1158
 
1159
- #: admin/class-settings.php:618
1160
  msgid "San Marino"
1161
  msgstr ""
1162
 
1163
- #: admin/class-settings.php:619
1164
  msgid "São Tomé and Príncipe"
1165
  msgstr ""
1166
 
1167
- #: admin/class-settings.php:620
1168
  msgid "Saudi Arabia"
1169
  msgstr ""
1170
 
1171
- #: admin/class-settings.php:621
1172
  msgid "Senegal"
1173
  msgstr ""
1174
 
1175
- #: admin/class-settings.php:622
1176
  msgid "Serbia"
1177
  msgstr ""
1178
 
1179
- #: admin/class-settings.php:623
1180
  msgid "Seychelles"
1181
  msgstr ""
1182
 
1183
- #: admin/class-settings.php:624
1184
  msgid "Sierra Leone"
1185
  msgstr ""
1186
 
1187
- #: admin/class-settings.php:625
1188
  msgid "Singapore"
1189
  msgstr ""
1190
 
1191
- #: admin/class-settings.php:626
1192
  msgid "Slovakia"
1193
  msgstr ""
1194
 
1195
- #: admin/class-settings.php:627
1196
  msgid "Solomon Islands"
1197
  msgstr ""
1198
 
1199
- #: admin/class-settings.php:628
1200
  msgid "Somalia"
1201
  msgstr ""
1202
 
1203
- #: admin/class-settings.php:629
1204
  msgid "South Africa"
1205
  msgstr ""
1206
 
1207
- #: admin/class-settings.php:630
1208
  msgid "South Korea"
1209
  msgstr ""
1210
 
1211
- #: admin/class-settings.php:631
1212
  msgid "Spain"
1213
  msgstr ""
1214
 
1215
- #: admin/class-settings.php:632
1216
  msgid "Sri Lanka"
1217
  msgstr ""
1218
 
1219
- #: admin/class-settings.php:633
1220
  msgid "Sudan"
1221
  msgstr ""
1222
 
1223
- #: admin/class-settings.php:634
1224
  msgid "Swaziland"
1225
  msgstr ""
1226
 
1227
- #: admin/class-settings.php:635
1228
  msgid "Sweden"
1229
  msgstr ""
1230
 
1231
- #: admin/class-settings.php:636
1232
  msgid "Switzerland"
1233
  msgstr ""
1234
 
1235
- #: admin/class-settings.php:637
1236
  msgid "Syria"
1237
  msgstr ""
1238
 
1239
- #: admin/class-settings.php:638
1240
  msgid "Taiwan"
1241
  msgstr ""
1242
 
1243
- #: admin/class-settings.php:639
1244
  msgid "Tajikistan"
1245
  msgstr ""
1246
 
1247
- #: admin/class-settings.php:640
1248
  msgid "Tanzania"
1249
  msgstr ""
1250
 
1251
- #: admin/class-settings.php:641
1252
  msgid "Thailand"
1253
  msgstr ""
1254
 
1255
- #: admin/class-settings.php:642
1256
  msgid "Timor-Leste"
1257
  msgstr ""
1258
 
1259
- #: admin/class-settings.php:643
1260
  msgid "Tokelau"
1261
  msgstr ""
1262
 
1263
- #: admin/class-settings.php:644
1264
  msgid "Togo"
1265
  msgstr ""
1266
 
1267
- #: admin/class-settings.php:645
1268
  msgid "Tonga"
1269
  msgstr ""
1270
 
1271
- #: admin/class-settings.php:646
1272
  msgid "Trinidad and Tobago"
1273
  msgstr ""
1274
 
1275
- #: admin/class-settings.php:647
1276
  msgid "Tunisia"
1277
  msgstr ""
1278
 
1279
- #: admin/class-settings.php:648
1280
  msgid "Turkey"
1281
  msgstr ""
1282
 
1283
- #: admin/class-settings.php:649
1284
  msgid "Turkmenistan"
1285
  msgstr ""
1286
 
1287
- #: admin/class-settings.php:650
1288
  msgid "Tuvalu"
1289
  msgstr ""
1290
 
1291
- #: admin/class-settings.php:651
1292
  msgid "Uganda"
1293
  msgstr ""
1294
 
1295
- #: admin/class-settings.php:652
1296
  msgid "Ukraine"
1297
  msgstr ""
1298
 
1299
- #: admin/class-settings.php:653
1300
  msgid "United Arab Emirates"
1301
  msgstr ""
1302
 
1303
- #: admin/class-settings.php:654
1304
  msgid "United Kingdom"
1305
  msgstr ""
1306
 
1307
- #: admin/class-settings.php:655
1308
  msgid "United States"
1309
  msgstr ""
1310
 
1311
- #: admin/class-settings.php:656
1312
  msgid "Uruguay"
1313
  msgstr ""
1314
 
1315
- #: admin/class-settings.php:657
1316
  msgid "Uzbekistan"
1317
  msgstr ""
1318
 
1319
- #: admin/class-settings.php:658
1320
  msgid "Wallis Futuna"
1321
  msgstr ""
1322
 
1323
- #: admin/class-settings.php:659
1324
  msgid "Venezuela"
1325
  msgstr ""
1326
 
1327
- #: admin/class-settings.php:660
1328
  msgid "Vietnam"
1329
  msgstr ""
1330
 
1331
- #: admin/class-settings.php:661
1332
  msgid "Yemen"
1333
  msgstr ""
1334
 
1335
- #: admin/class-settings.php:662
1336
  msgid "Zambia"
1337
  msgstr ""
1338
 
1339
- #: admin/class-settings.php:663
1340
  msgid "Zimbabwe"
1341
  msgstr ""
1342
 
1343
- #: admin/class-settings.php:706
1344
  msgid "World view"
1345
  msgstr ""
1346
 
1347
- #: admin/class-settings.php:709 admin/class-settings.php:822
1348
- #: inc/wpsl-functions.php:181
1349
  msgid "Default"
1350
  msgstr ""
1351
 
1352
- #: admin/class-settings.php:712 inc/wpsl-functions.php:254
1353
  msgid "Roadmap"
1354
  msgstr ""
1355
 
1356
- #: admin/class-settings.php:852
1357
  msgid "Start location marker"
1358
  msgstr ""
1359
 
1360
- #: admin/class-settings.php:854
1361
  msgid "Store location marker"
1362
  msgstr ""
1363
 
1364
- #: admin/class-settings.php:935
1365
  msgid "Textarea"
1366
  msgstr ""
1367
 
1368
- #: admin/class-settings.php:936
1369
  msgid "Dropdowns (recommended)"
1370
  msgstr ""
1371
 
1372
- #: admin/class-settings.php:944
1373
  msgid "Bounces up and down"
1374
  msgstr ""
1375
 
1376
- #: admin/class-settings.php:945
1377
  msgid "Will open the info window"
1378
  msgstr ""
1379
 
1380
- #: admin/class-settings.php:946
1381
  msgid "Does not respond"
1382
  msgstr ""
1383
 
1384
- #: admin/class-settings.php:954
1385
  msgid "In the store listings"
1386
  msgstr ""
1387
 
1388
- #: admin/class-settings.php:955
1389
  msgid "In the info window on the map"
1390
  msgstr ""
1391
 
1392
- #: admin/class-settings.php:1011
1393
  msgid "12 Hours"
1394
  msgstr ""
1395
 
1396
- #: admin/class-settings.php:1012
1397
  msgid "24 Hours"
1398
  msgstr ""
1399
 
@@ -1401,111 +1475,141 @@ msgstr ""
1401
  msgid "Store Locator Manager"
1402
  msgstr ""
1403
 
1404
- #: admin/templates/map-settings.php:16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1405
  msgid "Google Maps API"
1406
  msgstr ""
1407
 
1408
- #: admin/templates/map-settings.php:19
1409
  msgid "API key"
1410
  msgstr ""
1411
 
1412
- #: admin/templates/map-settings.php:19
1413
  #, php-format
1414
  msgid ""
1415
  "A valid %sAPI key%s allows you to monitor the API usage and is required if "
1416
  "you need to purchase additional quota."
1417
  msgstr ""
1418
 
1419
- #: admin/templates/map-settings.php:20
1420
  msgid "Optional"
1421
  msgstr ""
1422
 
1423
- #: admin/templates/map-settings.php:23
1424
  msgid "Map language"
1425
  msgstr ""
1426
 
1427
- #: admin/templates/map-settings.php:23
1428
  msgid "If no map language is selected the browser's prefered language is used."
1429
  msgstr ""
1430
 
1431
- #: admin/templates/map-settings.php:29
1432
  msgid "Map region"
1433
  msgstr ""
1434
 
1435
- #: admin/templates/map-settings.php:29
1436
  #, php-format
1437
  msgid ""
1438
- "This will bias the geocoding results towards the selected region. %s If no "
1439
- "region is selected the bias is set to the United States."
1440
  msgstr ""
1441
 
1442
- #: admin/templates/map-settings.php:35 admin/templates/map-settings.php:77
1443
- #: admin/templates/map-settings.php:154 admin/templates/map-settings.php:247
1444
- #: admin/templates/map-settings.php:273 admin/templates/map-settings.php:323
1445
- #: admin/templates/map-settings.php:349 admin/templates/map-settings.php:457
1446
- #: admin/templates/map-settings.php:478
1447
- msgid "Save Changes"
 
 
 
 
 
 
1448
  msgstr ""
1449
 
1450
- #: admin/templates/map-settings.php:45 admin/templates/map-settings.php:385
1451
- #: admin/templates/map-settings.php:386 frontend/templates/default.php:43
1452
- #: frontend/templates/store-listings-below.php:43 inc/wpsl-functions.php:99
1453
  msgid "Search"
1454
  msgstr ""
1455
 
1456
- #: admin/templates/map-settings.php:48
1457
  msgid "Show the max results dropdown?"
1458
  msgstr ""
1459
 
1460
- #: admin/templates/map-settings.php:52
1461
  msgid "Show the search radius dropdown?"
1462
  msgstr ""
1463
 
1464
- #: admin/templates/map-settings.php:56
1465
  msgid "Show the category dropdown?"
1466
  msgstr ""
1467
 
1468
- #: admin/templates/map-settings.php:60
1469
  msgid "Distance unit"
1470
  msgstr ""
1471
 
1472
- #: admin/templates/map-settings.php:63
1473
  msgid "km"
1474
  msgstr ""
1475
 
1476
- #: admin/templates/map-settings.php:65
1477
  msgid "mi"
1478
  msgstr ""
1479
 
1480
- #: admin/templates/map-settings.php:69
1481
  msgid "Max search results"
1482
  msgstr ""
1483
 
1484
- #: admin/templates/map-settings.php:69 admin/templates/map-settings.php:73
1485
  msgid "The default value is set between the [ ]."
1486
  msgstr ""
1487
 
1488
- #: admin/templates/map-settings.php:73
1489
  msgid "Search radius options"
1490
  msgstr ""
1491
 
1492
- #: admin/templates/map-settings.php:87
1493
  msgid "Map"
1494
  msgstr ""
1495
 
1496
- #: admin/templates/map-settings.php:90
1497
  msgid "Attempt to auto-locate the user"
1498
  msgstr ""
1499
 
1500
- #: admin/templates/map-settings.php:94
1501
  msgid "Load locations on page load"
1502
  msgstr ""
1503
 
1504
- #: admin/templates/map-settings.php:98
1505
  msgid "Number of locations to show"
1506
  msgstr ""
1507
 
1508
- #: admin/templates/map-settings.php:98
1509
  #, php-format
1510
  msgid ""
1511
  "Although the location data is cached after the first load, a lower number "
@@ -1513,11 +1617,11 @@ msgid ""
1513
  "or set to 0, then all locations are loaded."
1514
  msgstr ""
1515
 
1516
- #: admin/templates/map-settings.php:102
1517
  msgid "Start point"
1518
  msgstr ""
1519
 
1520
- #: admin/templates/map-settings.php:102
1521
  #, php-format
1522
  msgid ""
1523
  "%sRequired field.%s %s If auto-locating the user is disabled or fails, the "
@@ -1525,15 +1629,15 @@ msgid ""
1525
  "point for the user."
1526
  msgstr ""
1527
 
1528
- #: admin/templates/map-settings.php:107
1529
  msgid "Initial zoom level"
1530
  msgstr ""
1531
 
1532
- #: admin/templates/map-settings.php:111
1533
  msgid "Max auto zoom level"
1534
  msgstr ""
1535
 
1536
- #: admin/templates/map-settings.php:111
1537
  #, php-format
1538
  msgid ""
1539
  "This value sets the zoom level for the \"Zoom here\" link in the info "
@@ -1541,45 +1645,45 @@ msgid ""
1541
  "is changed to make all the markers fit on the screen."
1542
  msgstr ""
1543
 
1544
- #: admin/templates/map-settings.php:115
1545
  msgid "Show the street view controls?"
1546
  msgstr ""
1547
 
1548
- #: admin/templates/map-settings.php:119
1549
  msgid "Show the map type control?"
1550
  msgstr ""
1551
 
1552
- #: admin/templates/map-settings.php:123
1553
  msgid "Enable scroll wheel zooming?"
1554
  msgstr ""
1555
 
1556
- #: admin/templates/map-settings.php:127
1557
  msgid "Zoom control position"
1558
  msgstr ""
1559
 
1560
- #: admin/templates/map-settings.php:130
1561
  msgid "Left"
1562
  msgstr ""
1563
 
1564
- #: admin/templates/map-settings.php:132
1565
  msgid "Right"
1566
  msgstr ""
1567
 
1568
- #: admin/templates/map-settings.php:136
1569
  msgid "Map type"
1570
  msgstr ""
1571
 
1572
- #: admin/templates/map-settings.php:140
1573
  msgid "Map style"
1574
  msgstr ""
1575
 
1576
- #: admin/templates/map-settings.php:140
1577
  msgid ""
1578
  "Custom map styles only work if the map type is set to \"Roadmap\" or "
1579
  "\"Terrain\"."
1580
  msgstr ""
1581
 
1582
- #: admin/templates/map-settings.php:143
1583
  #, php-format
1584
  msgid ""
1585
  "You can use existing map styles from %sSnazzy Maps%s or %sMap Stylr%s and "
@@ -1587,81 +1691,81 @@ msgid ""
1587
  "through the %sMap Style Editor%s or %sStyled Maps Wizard%s."
1588
  msgstr ""
1589
 
1590
- #: admin/templates/map-settings.php:144
1591
  #, php-format
1592
  msgid ""
1593
  "If you like to write the style code yourself, then you can find the "
1594
  "documentation from Google %shere%s."
1595
  msgstr ""
1596
 
1597
- #: admin/templates/map-settings.php:146
1598
  msgid "Preview Map Style"
1599
  msgstr ""
1600
 
1601
- #: admin/templates/map-settings.php:150
1602
  msgid "Show credits?"
1603
  msgstr ""
1604
 
1605
- #: admin/templates/map-settings.php:150
1606
  msgid ""
1607
  "This will place a \"Search provided by WP Store Locator\" backlink below the "
1608
  "map."
1609
  msgstr ""
1610
 
1611
- #: admin/templates/map-settings.php:164
1612
  msgid "User Experience"
1613
  msgstr ""
1614
 
1615
- #: admin/templates/map-settings.php:167
1616
  msgid "Store Locator height"
1617
  msgstr ""
1618
 
1619
- #: admin/templates/map-settings.php:171
1620
  msgid "Max width for the info window content"
1621
  msgstr ""
1622
 
1623
- #: admin/templates/map-settings.php:175
1624
  msgid "Search field width"
1625
  msgstr ""
1626
 
1627
- #: admin/templates/map-settings.php:179
1628
  msgid "Search and radius label width"
1629
  msgstr ""
1630
 
1631
- #: admin/templates/map-settings.php:183
1632
  msgid "Store Locator template"
1633
  msgstr ""
1634
 
1635
- #: admin/templates/map-settings.php:183
1636
  #, php-format
1637
  msgid ""
1638
  "The selected template is used with the [wpsl] shortcode. %s You can add a "
1639
  "custom template with the %swpsl_templates%s filter."
1640
  msgstr ""
1641
 
1642
- #: admin/templates/map-settings.php:187
1643
  msgid "Hide the scrollbar?"
1644
  msgstr ""
1645
 
1646
- #: admin/templates/map-settings.php:191
1647
  msgid "Open links in a new window?"
1648
  msgstr ""
1649
 
1650
- #: admin/templates/map-settings.php:195
1651
  msgid "Show a reset map button?"
1652
  msgstr ""
1653
 
1654
- #: admin/templates/map-settings.php:199
1655
  msgid ""
1656
  "When a user clicks on \"Directions\", open a new window, and show the route "
1657
  "on google.com/maps ?"
1658
  msgstr ""
1659
 
1660
- #: admin/templates/map-settings.php:203
1661
  msgid "Show a \"More info\" link in the store listings?"
1662
  msgstr ""
1663
 
1664
- #: admin/templates/map-settings.php:203
1665
  #, php-format
1666
  msgid ""
1667
  "This places a \"More Info\" link below the address and will show the phone, "
@@ -1670,32 +1774,32 @@ msgid ""
1670
  "follow the instructions on %sthis%s page."
1671
  msgstr ""
1672
 
1673
- #: admin/templates/map-settings.php:207
1674
  msgid "Where do you want to show the \"More info\" details?"
1675
  msgstr ""
1676
 
1677
- #: admin/templates/map-settings.php:211
1678
  msgid "Make the store name clickable if a store URL exists?"
1679
  msgstr ""
1680
 
1681
- #: admin/templates/map-settings.php:211
1682
  #, php-format
1683
  msgid ""
1684
  "If %spermalinks%s are enabled, the store name will always link to the store "
1685
  "page."
1686
  msgstr ""
1687
 
1688
- #: admin/templates/map-settings.php:215
1689
  msgid "Make the phone number clickable on mobile devices?"
1690
  msgstr ""
1691
 
1692
- #: admin/templates/map-settings.php:219
1693
  msgid ""
1694
  "If street view is available for the current location, then show a \"Street "
1695
  "view\" link in the info window?"
1696
  msgstr ""
1697
 
1698
- #: admin/templates/map-settings.php:219
1699
  #, php-format
1700
  msgid ""
1701
  "Enabling this option can sometimes result in a small delay in the opening of "
@@ -1703,22 +1807,22 @@ msgid ""
1703
  "Maps to check if street view is available for the current location."
1704
  msgstr ""
1705
 
1706
- #: admin/templates/map-settings.php:223
1707
  msgid "Show a \"Zoom here\" link in the info window?"
1708
  msgstr ""
1709
 
1710
- #: admin/templates/map-settings.php:223
1711
  #, php-format
1712
  msgid ""
1713
  "Clicking this link will make the map zoom in to the %s max auto zoom level "
1714
  "%s."
1715
  msgstr ""
1716
 
1717
- #: admin/templates/map-settings.php:227
1718
  msgid "On page load move the mouse cursor to the search field?"
1719
  msgstr ""
1720
 
1721
- #: admin/templates/map-settings.php:227
1722
  #, php-format
1723
  msgid ""
1724
  "If the store locator is not placed at the top of the page, enabling this "
@@ -1726,11 +1830,11 @@ msgid ""
1726
  "on mobile devices.%s"
1727
  msgstr ""
1728
 
1729
- #: admin/templates/map-settings.php:231
1730
  msgid "Use the default style for the info window?"
1731
  msgstr ""
1732
 
1733
- #: admin/templates/map-settings.php:231
1734
  #, php-format
1735
  msgid ""
1736
  "If the default style is disabled the %sInfoBox%s library will be used "
@@ -1738,15 +1842,15 @@ msgid ""
1738
  "window through the .wpsl-infobox css class."
1739
  msgstr ""
1740
 
1741
- #: admin/templates/map-settings.php:235
1742
  msgid "Hide the distance in the search results?"
1743
  msgstr ""
1744
 
1745
- #: admin/templates/map-settings.php:239
1746
  msgid "If a user hovers over the search results the store marker"
1747
  msgstr ""
1748
 
1749
- #: admin/templates/map-settings.php:239
1750
  #, php-format
1751
  msgid ""
1752
  "If marker clusters are enabled this option will not work as expected as long "
@@ -1756,268 +1860,268 @@ msgid ""
1756
  "it won't be clear to which marker it belongs to. "
1757
  msgstr ""
1758
 
1759
- #: admin/templates/map-settings.php:243
1760
  msgid "Address format"
1761
  msgstr ""
1762
 
1763
- #: admin/templates/map-settings.php:243
1764
  #, php-format
1765
  msgid ""
1766
  "You can add custom address formats with the %swpsl_address_formats%s filter."
1767
  msgstr ""
1768
 
1769
- #: admin/templates/map-settings.php:257
1770
  msgid "Markers"
1771
  msgstr ""
1772
 
1773
- #: admin/templates/map-settings.php:261
1774
  msgid "Enable marker clusters?"
1775
  msgstr ""
1776
 
1777
- #: admin/templates/map-settings.php:261
1778
  msgid "Recommended for maps with a large amount of markers."
1779
  msgstr ""
1780
 
1781
- #: admin/templates/map-settings.php:265
1782
  msgid "Max zoom level"
1783
  msgstr ""
1784
 
1785
- #: admin/templates/map-settings.php:265
1786
  msgid ""
1787
  "If this zoom level is reached or exceeded, then all markers are moved out of "
1788
  "the marker cluster and shown as individual markers."
1789
  msgstr ""
1790
 
1791
- #: admin/templates/map-settings.php:269
1792
  msgid "Cluster size"
1793
  msgstr ""
1794
 
1795
- #: admin/templates/map-settings.php:269
1796
  #, php-format
1797
  msgid ""
1798
  "The grid size of a cluster in pixels. %s A larger number will result in a "
1799
  "lower amount of clusters and also make the algorithm run faster."
1800
  msgstr ""
1801
 
1802
- #: admin/templates/map-settings.php:283
1803
  msgid "Store Editor"
1804
  msgstr ""
1805
 
1806
- #: admin/templates/map-settings.php:286
1807
  msgid "Default country"
1808
  msgstr ""
1809
 
1810
- #: admin/templates/map-settings.php:290
1811
  msgid "Map type for the location preview"
1812
  msgstr ""
1813
 
1814
- #: admin/templates/map-settings.php:294
1815
  msgid "Hide the opening hours?"
1816
  msgstr ""
1817
 
1818
- #: admin/templates/map-settings.php:300
1819
  msgid "Opening hours input type"
1820
  msgstr ""
1821
 
1822
- #: admin/templates/map-settings.php:304
1823
  #, php-format
1824
  msgid ""
1825
  "Opening hours created in version 1.x %sare not%s automatically converted to "
1826
  "the new dropdown format."
1827
  msgstr ""
1828
 
1829
- #: admin/templates/map-settings.php:307 admin/templates/map-settings.php:316
1830
  msgid "The default opening hours"
1831
  msgstr ""
1832
 
1833
- #: admin/templates/map-settings.php:313
1834
  msgid "Opening hours format"
1835
  msgstr ""
1836
 
1837
- #: admin/templates/map-settings.php:320
1838
  msgid ""
1839
  "The default country and opening hours are only used when a new store is "
1840
  "created. So changing the default values will have no effect on existing "
1841
  "store locations."
1842
  msgstr ""
1843
 
1844
- #: admin/templates/map-settings.php:333
1845
  msgid "Permalink"
1846
  msgstr ""
1847
 
1848
- #: admin/templates/map-settings.php:336
1849
  msgid "Enable permalink?"
1850
  msgstr ""
1851
 
1852
- #: admin/templates/map-settings.php:340
1853
  msgid "Store slug"
1854
  msgstr ""
1855
 
1856
- #: admin/templates/map-settings.php:344
1857
  msgid "Category slug"
1858
  msgstr ""
1859
 
1860
- #: admin/templates/map-settings.php:347
1861
  #, php-format
1862
  msgid "The permalink slugs %smust be unique%s on your site."
1863
  msgstr ""
1864
 
1865
- #: admin/templates/map-settings.php:359
1866
  msgid "Labels"
1867
  msgstr ""
1868
 
1869
- #: admin/templates/map-settings.php:368
1870
  #, php-format
1871
  msgid "%sWarning!%s %sWPML%s, or a plugin using the WPML API is active."
1872
  msgstr ""
1873
 
1874
- #: admin/templates/map-settings.php:369
1875
  msgid ""
1876
  "Please use the \"String Translations\" section in the used multilingual "
1877
  "plugin to change the labels. Changing them here will have no effect as long "
1878
  "as the multilingual plugin remains active."
1879
  msgstr ""
1880
 
1881
- #: admin/templates/map-settings.php:373 admin/templates/map-settings.php:374
1882
  #: frontend/templates/default.php:11
1883
- #: frontend/templates/store-listings-below.php:11 inc/wpsl-functions.php:98
1884
  msgid "Your location"
1885
  msgstr ""
1886
 
1887
- #: admin/templates/map-settings.php:377 admin/templates/map-settings.php:378
1888
  #: frontend/templates/default.php:20
1889
- #: frontend/templates/store-listings-below.php:20 inc/wpsl-functions.php:101
1890
  msgid "Search radius"
1891
  msgstr ""
1892
 
1893
- #: admin/templates/map-settings.php:381 admin/templates/map-settings.php:382
1894
- #: frontend/class-frontend.php:1332 inc/wpsl-functions.php:102
1895
  msgid "No results found"
1896
  msgstr ""
1897
 
1898
- #: admin/templates/map-settings.php:389
1899
  msgid "Searching (preloader text)"
1900
  msgstr ""
1901
 
1902
- #: admin/templates/map-settings.php:390 frontend/class-frontend.php:1331
1903
- #: inc/wpsl-functions.php:100
1904
  msgid "Searching..."
1905
  msgstr ""
1906
 
1907
- #: admin/templates/map-settings.php:393 admin/templates/map-settings.php:394
1908
  #: frontend/templates/default.php:29
1909
- #: frontend/templates/store-listings-below.php:29 inc/wpsl-functions.php:103
1910
  msgid "Results"
1911
  msgstr ""
1912
 
1913
- #: admin/templates/map-settings.php:397 admin/upgrade.php:218
1914
- #: inc/wpsl-functions.php:117
1915
  msgid "Category filter"
1916
  msgstr ""
1917
 
1918
- #: admin/templates/map-settings.php:398 frontend/class-frontend.php:1107
1919
  msgid "Category"
1920
  msgstr ""
1921
 
1922
- #: admin/templates/map-settings.php:401 admin/templates/map-settings.php:402
1923
- #: admin/upgrade.php:66 frontend/class-frontend.php:1333
1924
  #: frontend/underscore-functions.php:114 frontend/underscore-functions.php:141
1925
- #: inc/wpsl-functions.php:104
1926
  msgid "More info"
1927
  msgstr ""
1928
 
1929
- #: admin/templates/map-settings.php:405 admin/templates/map-settings.php:406
1930
  #: frontend/class-frontend.php:673 frontend/underscore-functions.php:29
1931
- #: frontend/underscore-functions.php:121 inc/wpsl-functions.php:112
1932
  msgid "Phone"
1933
  msgstr ""
1934
 
1935
- #: admin/templates/map-settings.php:425 admin/templates/map-settings.php:426
1936
- #: frontend/class-frontend.php:1338 inc/wpsl-functions.php:97
1937
  msgid "Start location"
1938
  msgstr ""
1939
 
1940
- #: admin/templates/map-settings.php:429
1941
  msgid "Get directions"
1942
  msgstr ""
1943
 
1944
- #: admin/templates/map-settings.php:430 frontend/class-frontend.php:1336
1945
- #: inc/wpsl-functions.php:105
1946
  msgid "Directions"
1947
  msgstr ""
1948
 
1949
- #: admin/templates/map-settings.php:433
1950
  msgid "No directions found"
1951
  msgstr ""
1952
 
1953
- #: admin/templates/map-settings.php:434 admin/upgrade.php:163
1954
- #: frontend/class-frontend.php:1337 inc/wpsl-functions.php:106
1955
  msgid "No route could be found between the origin and destination"
1956
  msgstr ""
1957
 
1958
- #: admin/templates/map-settings.php:437 admin/templates/map-settings.php:438
1959
- #: admin/upgrade.php:87 frontend/class-frontend.php:1339
1960
- #: inc/wpsl-functions.php:107
1961
  msgid "Back"
1962
  msgstr ""
1963
 
1964
- #: admin/templates/map-settings.php:441 admin/templates/map-settings.php:442
1965
- #: admin/upgrade.php:155 frontend/class-frontend.php:1340
1966
- #: inc/wpsl-functions.php:108
1967
  msgid "Street view"
1968
  msgstr ""
1969
 
1970
- #: admin/templates/map-settings.php:445 admin/templates/map-settings.php:446
1971
- #: admin/upgrade.php:159 frontend/class-frontend.php:1341
1972
- #: inc/wpsl-functions.php:109
1973
  msgid "Zoom here"
1974
  msgstr ""
1975
 
1976
- #: admin/templates/map-settings.php:449
1977
  msgid "General error"
1978
  msgstr ""
1979
 
1980
- #: admin/templates/map-settings.php:450 frontend/class-frontend.php:1334
1981
- #: inc/wpsl-functions.php:110
1982
  msgid "Something went wrong, please try again!"
1983
  msgstr ""
1984
 
1985
- #: admin/templates/map-settings.php:453
1986
  msgid "Query limit error"
1987
  msgstr ""
1988
 
1989
- #: admin/templates/map-settings.php:453
1990
  #, php-format
1991
  msgid ""
1992
  "You can raise the %susage limit%s by obtaining an API %skey%s, and fill in "
1993
  "the \"API key\" field at the top of this page."
1994
  msgstr ""
1995
 
1996
- #: admin/templates/map-settings.php:454 frontend/class-frontend.php:1335
1997
- #: inc/wpsl-functions.php:111
1998
  msgid "API usage limit reached"
1999
  msgstr ""
2000
 
2001
- #: admin/templates/map-settings.php:467
2002
  msgid "Tools"
2003
  msgstr ""
2004
 
2005
- #: admin/templates/map-settings.php:470
2006
  msgid "Enable store locator debug?"
2007
  msgstr ""
2008
 
2009
- #: admin/templates/map-settings.php:470
2010
  #, php-format
2011
  msgid ""
2012
  "This disables the WPSL transient cache. %sThe transient cache is only used "
2013
  "if the %sLoad locations on page load%s option is enabled."
2014
  msgstr ""
2015
 
2016
- #: admin/templates/map-settings.php:474
2017
  msgid "WPSL transients"
2018
  msgstr ""
2019
 
2020
- #: admin/templates/map-settings.php:475
2021
  msgid "Clear store locator transient cache"
2022
  msgstr ""
2023
 
@@ -2029,22 +2133,22 @@ msgstr ""
2029
  msgid "Reset"
2030
  msgstr ""
2031
 
2032
- #: admin/upgrade.php:186 inc/wpsl-functions.php:92
2033
  msgid "stores"
2034
  msgstr ""
2035
 
2036
- #: admin/upgrade.php:190 inc/wpsl-functions.php:93
2037
  msgid "store-category"
2038
  msgstr ""
2039
 
2040
- #: admin/upgrade.php:384
2041
  #, php-format
2042
  msgid ""
2043
  "Because you updated WP Store Locator from version 1.x, the %s current store "
2044
  "locations need to be %sconverted%s to custom post types."
2045
  msgstr ""
2046
 
2047
- #: admin/upgrade.php:405
2048
  #, php-format
2049
  msgid ""
2050
  "The script converting the locations timed out. %s You can click the \"Start "
@@ -2055,15 +2159,15 @@ msgid ""
2055
  "but if you are reading this then that failed."
2056
  msgstr ""
2057
 
2058
- #: admin/upgrade.php:426
2059
  msgid "Store locations to convert:"
2060
  msgstr ""
2061
 
2062
- #: admin/upgrade.php:428
2063
  msgid "Start Converting"
2064
  msgstr ""
2065
 
2066
- #: admin/upgrade.php:550
2067
  #, php-format
2068
  msgid ""
2069
  "All the store locations are now converted to custom post types. %s You can "
@@ -2082,29 +2186,29 @@ msgid ""
2082
  "the ID attribute."
2083
  msgstr ""
2084
 
2085
- #: frontend/class-frontend.php:790
2086
  msgid ""
2087
- "If you use the [wpsl_map] shortcode outside a store page you need to set the "
2088
- "ID attribute."
2089
  msgstr ""
2090
 
2091
- #: frontend/class-frontend.php:1109
2092
  msgid "Any"
2093
  msgstr ""
2094
 
2095
- #: frontend/class-frontend.php:1234
2096
  msgid "The application does not have permission to use the Geolocation API."
2097
  msgstr ""
2098
 
2099
- #: frontend/class-frontend.php:1235
2100
  msgid "Location information is unavailable."
2101
  msgstr ""
2102
 
2103
- #: frontend/class-frontend.php:1236
2104
  msgid "The geolocation request timed out."
2105
  msgstr ""
2106
 
2107
- #: frontend/class-frontend.php:1237
2108
  msgid "An unknown error occurred."
2109
  msgstr ""
2110
 
@@ -2214,75 +2318,75 @@ msgstr ""
2214
  msgid "Zip"
2215
  msgstr ""
2216
 
2217
- #: inc/wpsl-functions.php:186
2218
  msgid "Show the store list below the map"
2219
  msgstr ""
2220
 
2221
- #: inc/wpsl-functions.php:203
2222
  msgid "Monday"
2223
  msgstr ""
2224
 
2225
- #: inc/wpsl-functions.php:204
2226
  msgid "Tuesday"
2227
  msgstr ""
2228
 
2229
- #: inc/wpsl-functions.php:205
2230
  msgid "Wednesday"
2231
  msgstr ""
2232
 
2233
- #: inc/wpsl-functions.php:206
2234
  msgid "Thursday"
2235
  msgstr ""
2236
 
2237
- #: inc/wpsl-functions.php:207
2238
  msgid "Friday"
2239
  msgstr ""
2240
 
2241
- #: inc/wpsl-functions.php:208
2242
  msgid "Saturday"
2243
  msgstr ""
2244
 
2245
- #: inc/wpsl-functions.php:209
2246
  msgid "Sunday"
2247
  msgstr ""
2248
 
2249
- #: inc/wpsl-functions.php:239
2250
  #, php-format
2251
  msgid "Mon %sTue %sWed %sThu %sFri %sSat Closed %sSun Closed"
2252
  msgstr ""
2253
 
2254
- #: inc/wpsl-functions.php:255
2255
  msgid "Satellite"
2256
  msgstr ""
2257
 
2258
- #: inc/wpsl-functions.php:256
2259
  msgid "Hybrid"
2260
  msgstr ""
2261
 
2262
- #: inc/wpsl-functions.php:257
2263
  msgid "Terrain"
2264
  msgstr ""
2265
 
2266
- #: inc/wpsl-functions.php:272
2267
  msgid "(city) (state) (zip code)"
2268
  msgstr ""
2269
 
2270
- #: inc/wpsl-functions.php:273
2271
  msgid "(city), (state) (zip code)"
2272
  msgstr ""
2273
 
2274
- #: inc/wpsl-functions.php:274
2275
  msgid "(city) (zip code)"
2276
  msgstr ""
2277
 
2278
- #: inc/wpsl-functions.php:275
2279
  msgid "(city), (zip code)"
2280
  msgstr ""
2281
 
2282
- #: inc/wpsl-functions.php:276
2283
  msgid "(zip code) (city) (state)"
2284
  msgstr ""
2285
 
2286
- #: inc/wpsl-functions.php:277
2287
  msgid "(zip code) (city)"
2288
  msgstr ""
3
  msgstr ""
4
  "Project-Id-Version: WP Store Locator v2.0\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2015-12-23 11:09+0100\n"
7
  "PO-Revision-Date: 2015-09-01 13:49+0100\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
20
  "X-Textdomain-Support: yes\n"
21
  "X-Poedit-SearchPath-0: .\n"
22
 
23
+ #: admin/EDD_SL_Plugin_Updater.php:181
24
+ #, php-format
25
+ msgid ""
26
+ "There is a new version of %1$s available. <a target=\"_blank\" class="
27
+ "\"thickbox\" href=\"%2$s\">View version %3$s details</a>."
28
+ msgstr ""
29
+
30
+ #: admin/EDD_SL_Plugin_Updater.php:188
31
+ #, php-format
32
+ msgid ""
33
+ "There is a new version of %1$s available. <a target=\"_blank\" class="
34
+ "\"thickbox\" href=\"%2$s\">View version %3$s details</a> or <a href=\"%4$s"
35
+ "\">update now</a>."
36
+ msgstr ""
37
+
38
+ #: admin/EDD_SL_Plugin_Updater.php:326
39
+ msgid "You do not have permission to install plugin updates"
40
+ msgstr ""
41
+
42
+ #: admin/EDD_SL_Plugin_Updater.php:326
43
+ msgid "Error"
44
+ msgstr ""
45
+
46
+ #: admin/class-admin.php:119
47
  #, php-format
48
  msgid ""
49
  "Before adding the [wpsl] shortcode to a page, please don't forget to define "
50
  "a %sstart point%s. %sDismiss%s"
51
  msgstr ""
52
 
53
+ #: admin/class-admin.php:121
54
  #, php-format
55
  msgid ""
56
  "Before adding the [wpsl] shortcode to a page, please don't forget to define "
57
  "a start point on the %ssettings%s page. %sDismiss%s"
58
  msgstr ""
59
 
60
+ #: admin/class-admin.php:154 admin/class-admin.php:155
61
+ #: admin/templates/map-settings.php:11
62
  msgid "Settings"
63
  msgstr ""
64
 
65
+ #: admin/class-admin.php:281
66
  msgid "Cannot determine the address at this location."
67
  msgstr ""
68
 
69
+ #: admin/class-admin.php:282
70
  msgid "Geocode was not successful for the following reason"
71
  msgstr ""
72
 
73
+ #: admin/class-admin.php:283 admin/upgrade.php:414
74
  msgid "Security check failed, reload the page and try again."
75
  msgstr ""
76
 
77
+ #: admin/class-admin.php:284
78
  msgid "Please fill in all the required store details."
79
  msgstr ""
80
 
81
+ #: admin/class-admin.php:285
82
  msgid "The map preview requires all the location details."
83
  msgstr ""
84
 
85
+ #: admin/class-admin.php:286 admin/class-metaboxes.php:505
86
  #: frontend/class-frontend.php:493
87
  msgid "Closed"
88
  msgstr ""
89
 
90
+ #: admin/class-admin.php:287
91
  msgid "The code for the map style is invalid."
92
  msgstr ""
93
 
94
+ #: admin/class-admin.php:378
95
  msgid "Welcome to WP Store Locator"
96
  msgstr ""
97
 
98
+ #: admin/class-admin.php:379
99
  msgid "Sign up for the latest plugin updates and announcements."
100
  msgstr ""
101
 
102
+ #: admin/class-admin.php:423
103
  msgid "Documentation"
104
  msgstr ""
105
 
106
+ #: admin/class-admin.php:426
107
  msgid "General Settings"
108
  msgstr ""
109
 
110
+ #: admin/class-admin.php:446
111
  #, php-format
112
  msgid "If you like this plugin please leave us a %s5 star%s rating."
113
  msgstr ""
125
  "%s."
126
  msgstr ""
127
 
128
+ #: admin/class-geocode.php:79
129
+ #, php-format
130
+ msgid "The Google Geocoding API returned REQUEST_DENIED. %s"
131
+ msgstr ""
132
+
133
+ #: admin/class-geocode.php:82
134
  msgid ""
135
  "The Google Geocoding API failed to return valid data, please try again later."
136
  msgstr ""
137
 
138
+ #: admin/class-geocode.php:107
139
+ #, php-format
140
+ msgid "%sError message: %s"
141
+ msgstr ""
142
+
143
+ #: admin/class-geocode.php:129
144
+ #, php-format
145
+ msgid ""
146
+ "Something went wrong connecting to the Google Geocode API: %s %s Please try "
147
+ "again later."
148
+ msgstr ""
149
+
150
+ #: admin/class-license-manager.php:183
151
+ #, php-format
152
+ msgid ""
153
+ "The %s license failed to deactivate, please try again later or contact "
154
+ "support!"
155
+ msgstr ""
156
+
157
+ #: admin/class-license-manager.php:209
158
+ msgid "Please try again later!"
159
+ msgstr ""
160
+
161
+ #: admin/class-license-manager.php:257
162
+ #, php-format
163
+ msgid "The %s license key does not belong to this add-on."
164
+ msgstr ""
165
+
166
+ #: admin/class-license-manager.php:260
167
+ #, php-format
168
+ msgid "The %s license key does not have any activations left."
169
+ msgstr ""
170
+
171
+ #: admin/class-license-manager.php:263
172
+ #, php-format
173
+ msgid "The %s license key is expired. Please renew it."
174
+ msgstr ""
175
+
176
+ #: admin/class-license-manager.php:266
177
+ #, php-format
178
+ msgid ""
179
+ "There was a problem activating the license key for the %s, please try again "
180
+ "or contact support. Error code: %s"
181
+ msgstr ""
182
+
183
  #: admin/class-metaboxes.php:33
184
  msgid "Store Details"
185
  msgstr ""
229
  msgid "Opening Hours"
230
  msgstr ""
231
 
232
+ #: admin/class-metaboxes.php:82 admin/templates/map-settings.php:500
233
+ #: admin/templates/map-settings.php:501 frontend/underscore-functions.php:133
234
+ #: inc/wpsl-functions.php:124
235
  msgid "Hours"
236
  msgstr ""
237
 
243
  msgid "Tel"
244
  msgstr ""
245
 
246
+ #: admin/class-metaboxes.php:91 admin/templates/map-settings.php:488
247
+ #: admin/templates/map-settings.php:489 frontend/class-frontend.php:677
248
  #: frontend/underscore-functions.php:32 frontend/underscore-functions.php:124
249
+ #: inc/wpsl-functions.php:121
250
  msgid "Fax"
251
  msgstr ""
252
 
253
+ #: admin/class-metaboxes.php:94 admin/templates/map-settings.php:492
254
+ #: admin/templates/map-settings.php:493 admin/upgrade.php:210
255
  #: frontend/class-frontend.php:681 frontend/underscore-functions.php:35
256
+ #: frontend/underscore-functions.php:127 inc/wpsl-functions.php:122
257
  msgid "Email"
258
  msgstr ""
259
 
260
+ #: admin/class-metaboxes.php:97 admin/templates/map-settings.php:496
261
+ #: admin/templates/map-settings.php:497 admin/upgrade.php:214
262
+ #: frontend/class-frontend.php:686 inc/wpsl-functions.php:123
263
  msgid "Url"
264
  msgstr ""
265
 
344
  msgid "Preview store"
345
  msgstr ""
346
 
347
+ #: admin/class-settings.php:39
348
  msgid "WP Store Locator Transients Cleared"
349
  msgstr ""
350
 
351
+ #: admin/class-settings.php:373
352
  msgid ""
353
  "The max results field cannot be empty, the default value has been restored."
354
  msgstr ""
355
 
356
+ #: admin/class-settings.php:376
357
  msgid ""
358
  "The search radius field cannot be empty, the default value has been restored."
359
  msgstr ""
360
 
361
+ #: admin/class-settings.php:379
362
  #, php-format
363
  msgid ""
364
  "Please provide the name of a city or country that can be used as a starting "
366
  "user fails, or the option itself is disabled."
367
  msgstr ""
368
 
369
+ #: admin/class-settings.php:400
370
  msgid "Select your language"
371
  msgstr ""
372
 
373
+ #: admin/class-settings.php:401
374
  msgid "English"
375
  msgstr ""
376
 
377
+ #: admin/class-settings.php:402
378
  msgid "Arabic"
379
  msgstr ""
380
 
381
+ #: admin/class-settings.php:403
382
  msgid "Basque"
383
  msgstr ""
384
 
385
+ #: admin/class-settings.php:404
386
  msgid "Bulgarian"
387
  msgstr ""
388
 
389
+ #: admin/class-settings.php:405
390
  msgid "Bengali"
391
  msgstr ""
392
 
393
+ #: admin/class-settings.php:406
394
  msgid "Catalan"
395
  msgstr ""
396
 
397
+ #: admin/class-settings.php:407
398
  msgid "Czech"
399
  msgstr ""
400
 
401
+ #: admin/class-settings.php:408
402
  msgid "Danish"
403
  msgstr ""
404
 
405
+ #: admin/class-settings.php:409
406
  msgid "German"
407
  msgstr ""
408
 
409
+ #: admin/class-settings.php:410
410
  msgid "Greek"
411
  msgstr ""
412
 
413
+ #: admin/class-settings.php:411
414
  msgid "English (Australian)"
415
  msgstr ""
416
 
417
+ #: admin/class-settings.php:412
418
  msgid "English (Great Britain)"
419
  msgstr ""
420
 
421
+ #: admin/class-settings.php:413
422
  msgid "Spanish"
423
  msgstr ""
424
 
425
+ #: admin/class-settings.php:414
426
  msgid "Farsi"
427
  msgstr ""
428
 
429
+ #: admin/class-settings.php:415
430
  msgid "Finnish"
431
  msgstr ""
432
 
433
+ #: admin/class-settings.php:416
434
  msgid "Filipino"
435
  msgstr ""
436
 
437
+ #: admin/class-settings.php:417
438
  msgid "French"
439
  msgstr ""
440
 
441
+ #: admin/class-settings.php:418
442
  msgid "Galician"
443
  msgstr ""
444
 
445
+ #: admin/class-settings.php:419
446
  msgid "Gujarati"
447
  msgstr ""
448
 
449
+ #: admin/class-settings.php:420
450
  msgid "Hindi"
451
  msgstr ""
452
 
453
+ #: admin/class-settings.php:421
454
  msgid "Croatian"
455
  msgstr ""
456
 
457
+ #: admin/class-settings.php:422
458
  msgid "Hungarian"
459
  msgstr ""
460
 
461
+ #: admin/class-settings.php:423
462
  msgid "Indonesian"
463
  msgstr ""
464
 
465
+ #: admin/class-settings.php:424
466
  msgid "Italian"
467
  msgstr ""
468
 
469
+ #: admin/class-settings.php:425
470
  msgid "Hebrew"
471
  msgstr ""
472
 
473
+ #: admin/class-settings.php:426
474
  msgid "Japanese"
475
  msgstr ""
476
 
477
+ #: admin/class-settings.php:427
478
  msgid "Kannada"
479
  msgstr ""
480
 
481
+ #: admin/class-settings.php:428
482
  msgid "Korean"
483
  msgstr ""
484
 
485
+ #: admin/class-settings.php:429
486
  msgid "Lithuanian"
487
  msgstr ""
488
 
489
+ #: admin/class-settings.php:430
490
  msgid "Latvian"
491
  msgstr ""
492
 
493
+ #: admin/class-settings.php:431
494
  msgid "Malayalam"
495
  msgstr ""
496
 
497
+ #: admin/class-settings.php:432
498
  msgid "Marathi"
499
  msgstr ""
500
 
501
+ #: admin/class-settings.php:433
502
  msgid "Dutch"
503
  msgstr ""
504
 
505
+ #: admin/class-settings.php:434
506
  msgid "Norwegian"
507
  msgstr ""
508
 
509
+ #: admin/class-settings.php:435
510
  msgid "Norwegian Nynorsk"
511
  msgstr ""
512
 
513
+ #: admin/class-settings.php:436
514
  msgid "Polish"
515
  msgstr ""
516
 
517
+ #: admin/class-settings.php:437
518
  msgid "Portuguese"
519
  msgstr ""
520
 
521
+ #: admin/class-settings.php:438
522
  msgid "Portuguese (Brazil)"
523
  msgstr ""
524
 
525
+ #: admin/class-settings.php:439
526
  msgid "Portuguese (Portugal)"
527
  msgstr ""
528
 
529
+ #: admin/class-settings.php:440
530
  msgid "Romanian"
531
  msgstr ""
532
 
533
+ #: admin/class-settings.php:441
534
  msgid "Russian"
535
  msgstr ""
536
 
537
+ #: admin/class-settings.php:442
538
  msgid "Slovak"
539
  msgstr ""
540
 
541
+ #: admin/class-settings.php:443
542
  msgid "Slovenian"
543
  msgstr ""
544
 
545
+ #: admin/class-settings.php:444
546
  msgid "Serbian"
547
  msgstr ""
548
 
549
+ #: admin/class-settings.php:445
550
  msgid "Swedish"
551
  msgstr ""
552
 
553
+ #: admin/class-settings.php:446
554
  msgid "Tagalog"
555
  msgstr ""
556
 
557
+ #: admin/class-settings.php:447
558
  msgid "Tamil"
559
  msgstr ""
560
 
561
+ #: admin/class-settings.php:448
562
  msgid "Telugu"
563
  msgstr ""
564
 
565
+ #: admin/class-settings.php:449
566
  msgid "Thai"
567
  msgstr ""
568
 
569
+ #: admin/class-settings.php:450
570
  msgid "Turkish"
571
  msgstr ""
572
 
573
+ #: admin/class-settings.php:451
574
  msgid "Ukrainian"
575
  msgstr ""
576
 
577
+ #: admin/class-settings.php:452
578
  msgid "Vietnamese"
579
  msgstr ""
580
 
581
+ #: admin/class-settings.php:453
582
  msgid "Chinese (Simplified)"
583
  msgstr ""
584
 
585
+ #: admin/class-settings.php:454
586
  msgid "Chinese (Traditional)"
587
  msgstr ""
588
 
589
+ #: admin/class-settings.php:459
590
  msgid "Select your region"
591
  msgstr ""
592
 
593
+ #: admin/class-settings.php:460
594
  msgid "Afghanistan"
595
  msgstr ""
596
 
597
+ #: admin/class-settings.php:461
598
  msgid "Albania"
599
  msgstr ""
600
 
601
+ #: admin/class-settings.php:462
602
  msgid "Algeria"
603
  msgstr ""
604
 
605
+ #: admin/class-settings.php:463
606
  msgid "American Samoa"
607
  msgstr ""
608
 
609
+ #: admin/class-settings.php:464
610
  msgid "Andorra"
611
  msgstr ""
612
 
613
+ #: admin/class-settings.php:465
614
  msgid "Anguilla"
615
  msgstr ""
616
 
617
+ #: admin/class-settings.php:466
618
  msgid "Angola"
619
  msgstr ""
620
 
621
+ #: admin/class-settings.php:467
622
  msgid "Antigua and Barbuda"
623
  msgstr ""
624
 
625
+ #: admin/class-settings.php:468
626
  msgid "Argentina"
627
  msgstr ""
628
 
629
+ #: admin/class-settings.php:469
630
  msgid "Armenia"
631
  msgstr ""
632
 
633
+ #: admin/class-settings.php:470
634
  msgid "Aruba"
635
  msgstr ""
636
 
637
+ #: admin/class-settings.php:471
638
  msgid "Australia"
639
  msgstr ""
640
 
641
+ #: admin/class-settings.php:472
642
  msgid "Austria"
643
  msgstr ""
644
 
645
+ #: admin/class-settings.php:473
646
  msgid "Azerbaijan"
647
  msgstr ""
648
 
649
+ #: admin/class-settings.php:474
650
  msgid "Bahamas"
651
  msgstr ""
652
 
653
+ #: admin/class-settings.php:475
654
  msgid "Bahrain"
655
  msgstr ""
656
 
657
+ #: admin/class-settings.php:476
658
  msgid "Bangladesh"
659
  msgstr ""
660
 
661
+ #: admin/class-settings.php:477
662
  msgid "Barbados"
663
  msgstr ""
664
 
665
+ #: admin/class-settings.php:478
666
  msgid "Belarus"
667
  msgstr ""
668
 
669
+ #: admin/class-settings.php:479
670
  msgid "Belgium"
671
  msgstr ""
672
 
673
+ #: admin/class-settings.php:480
674
  msgid "Belize"
675
  msgstr ""
676
 
677
+ #: admin/class-settings.php:481
678
  msgid "Benin"
679
  msgstr ""
680
 
681
+ #: admin/class-settings.php:482
682
  msgid "Bermuda"
683
  msgstr ""
684
 
685
+ #: admin/class-settings.php:483
686
  msgid "Bhutan"
687
  msgstr ""
688
 
689
+ #: admin/class-settings.php:484
690
  msgid "Bolivia"
691
  msgstr ""
692
 
693
+ #: admin/class-settings.php:485
694
  msgid "Bosnia and Herzegovina"
695
  msgstr ""
696
 
697
+ #: admin/class-settings.php:486
698
  msgid "Botswana"
699
  msgstr ""
700
 
701
+ #: admin/class-settings.php:487
702
  msgid "Brazil"
703
  msgstr ""
704
 
705
+ #: admin/class-settings.php:488
706
  msgid "British Indian Ocean Territory"
707
  msgstr ""
708
 
709
+ #: admin/class-settings.php:489
710
  msgid "Brunei"
711
  msgstr ""
712
 
713
+ #: admin/class-settings.php:490
714
  msgid "Bulgaria"
715
  msgstr ""
716
 
717
+ #: admin/class-settings.php:491
718
  msgid "Burkina Faso"
719
  msgstr ""
720
 
721
+ #: admin/class-settings.php:492
722
  msgid "Burundi"
723
  msgstr ""
724
 
725
+ #: admin/class-settings.php:493
726
  msgid "Cambodia"
727
  msgstr ""
728
 
729
+ #: admin/class-settings.php:494
730
  msgid "Cameroon"
731
  msgstr ""
732
 
733
+ #: admin/class-settings.php:495
734
  msgid "Canada"
735
  msgstr ""
736
 
737
+ #: admin/class-settings.php:496
738
  msgid "Cape Verde"
739
  msgstr ""
740
 
741
+ #: admin/class-settings.php:497
742
  msgid "Cayman Islands"
743
  msgstr ""
744
 
745
+ #: admin/class-settings.php:498
746
  msgid "Central African Republic"
747
  msgstr ""
748
 
749
+ #: admin/class-settings.php:499
750
  msgid "Chad"
751
  msgstr ""
752
 
753
+ #: admin/class-settings.php:500
754
  msgid "Chile"
755
  msgstr ""
756
 
757
+ #: admin/class-settings.php:501
758
  msgid "China"
759
  msgstr ""
760
 
761
+ #: admin/class-settings.php:502
762
  msgid "Christmas Island"
763
  msgstr ""
764
 
765
+ #: admin/class-settings.php:503
766
  msgid "Cocos Islands"
767
  msgstr ""
768
 
769
+ #: admin/class-settings.php:504
770
  msgid "Colombia"
771
  msgstr ""
772
 
773
+ #: admin/class-settings.php:505
774
  msgid "Comoros"
775
  msgstr ""
776
 
777
+ #: admin/class-settings.php:506
778
  msgid "Congo"
779
  msgstr ""
780
 
781
+ #: admin/class-settings.php:507
782
  msgid "Costa Rica"
783
  msgstr ""
784
 
785
+ #: admin/class-settings.php:508
786
  msgid "Côte d'Ivoire"
787
  msgstr ""
788
 
789
+ #: admin/class-settings.php:509
790
  msgid "Croatia"
791
  msgstr ""
792
 
793
+ #: admin/class-settings.php:510
794
  msgid "Cuba"
795
  msgstr ""
796
 
797
+ #: admin/class-settings.php:511
798
  msgid "Czech Republic"
799
  msgstr ""
800
 
801
+ #: admin/class-settings.php:512
802
  msgid "Denmark"
803
  msgstr ""
804
 
805
+ #: admin/class-settings.php:513
806
  msgid "Djibouti"
807
  msgstr ""
808
 
809
+ #: admin/class-settings.php:514
810
  msgid "Democratic Republic of the Congo"
811
  msgstr ""
812
 
813
+ #: admin/class-settings.php:515
814
  msgid "Dominica"
815
  msgstr ""
816
 
817
+ #: admin/class-settings.php:516
818
  msgid "Dominican Republic"
819
  msgstr ""
820
 
821
+ #: admin/class-settings.php:517
822
  msgid "Ecuador"
823
  msgstr ""
824
 
825
+ #: admin/class-settings.php:518
826
  msgid "Egypt"
827
  msgstr ""
828
 
829
+ #: admin/class-settings.php:519
830
  msgid "El Salvador"
831
  msgstr ""
832
 
833
+ #: admin/class-settings.php:520
834
  msgid "Equatorial Guinea"
835
  msgstr ""
836
 
837
+ #: admin/class-settings.php:521
838
  msgid "Eritrea"
839
  msgstr ""
840
 
841
+ #: admin/class-settings.php:522
842
  msgid "Estonia"
843
  msgstr ""
844
 
845
+ #: admin/class-settings.php:523
846
  msgid "Ethiopia"
847
  msgstr ""
848
 
849
+ #: admin/class-settings.php:524
850
  msgid "Fiji"
851
  msgstr ""
852
 
853
+ #: admin/class-settings.php:525
854
  msgid "Finland"
855
  msgstr ""
856
 
857
+ #: admin/class-settings.php:526
858
  msgid "France"
859
  msgstr ""
860
 
861
+ #: admin/class-settings.php:527
862
  msgid "French Guiana"
863
  msgstr ""
864
 
865
+ #: admin/class-settings.php:528
866
  msgid "Gabon"
867
  msgstr ""
868
 
869
+ #: admin/class-settings.php:529
870
  msgid "Gambia"
871
  msgstr ""
872
 
873
+ #: admin/class-settings.php:530
874
  msgid "Germany"
875
  msgstr ""
876
 
877
+ #: admin/class-settings.php:531
878
  msgid "Ghana"
879
  msgstr ""
880
 
881
+ #: admin/class-settings.php:532
882
  msgid "Greenland"
883
  msgstr ""
884
 
885
+ #: admin/class-settings.php:533
886
  msgid "Greece"
887
  msgstr ""
888
 
889
+ #: admin/class-settings.php:534
890
  msgid "Grenada"
891
  msgstr ""
892
 
893
+ #: admin/class-settings.php:535
894
  msgid "Guam"
895
  msgstr ""
896
 
897
+ #: admin/class-settings.php:536
898
  msgid "Guadeloupe"
899
  msgstr ""
900
 
901
+ #: admin/class-settings.php:537
902
  msgid "Guatemala"
903
  msgstr ""
904
 
905
+ #: admin/class-settings.php:538
906
  msgid "Guinea"
907
  msgstr ""
908
 
909
+ #: admin/class-settings.php:539
910
  msgid "Guinea-Bissau"
911
  msgstr ""
912
 
913
+ #: admin/class-settings.php:540
914
  msgid "Haiti"
915
  msgstr ""
916
 
917
+ #: admin/class-settings.php:541
918
  msgid "Honduras"
919
  msgstr ""
920
 
921
+ #: admin/class-settings.php:542
922
  msgid "Hong Kong"
923
  msgstr ""
924
 
925
+ #: admin/class-settings.php:543
926
  msgid "Hungary"
927
  msgstr ""
928
 
929
+ #: admin/class-settings.php:544
930
  msgid "Iceland"
931
  msgstr ""
932
 
933
+ #: admin/class-settings.php:545
934
  msgid "India"
935
  msgstr ""
936
 
937
+ #: admin/class-settings.php:546
938
  msgid "Indonesia"
939
  msgstr ""
940
 
941
+ #: admin/class-settings.php:547
942
  msgid "Iran"
943
  msgstr ""
944
 
945
+ #: admin/class-settings.php:548
946
  msgid "Iraq"
947
  msgstr ""
948
 
949
+ #: admin/class-settings.php:549
950
  msgid "Ireland"
951
  msgstr ""
952
 
953
+ #: admin/class-settings.php:550
954
  msgid "Israel"
955
  msgstr ""
956
 
957
+ #: admin/class-settings.php:551
958
  msgid "Italy"
959
  msgstr ""
960
 
961
+ #: admin/class-settings.php:552
962
  msgid "Jamaica"
963
  msgstr ""
964
 
965
+ #: admin/class-settings.php:553
966
  msgid "Japan"
967
  msgstr ""
968
 
969
+ #: admin/class-settings.php:554
970
  msgid "Jordan"
971
  msgstr ""
972
 
973
+ #: admin/class-settings.php:555
974
  msgid "Kazakhstan"
975
  msgstr ""
976
 
977
+ #: admin/class-settings.php:556
978
  msgid "Kenya"
979
  msgstr ""
980
 
981
+ #: admin/class-settings.php:557
982
  msgid "Kuwait"
983
  msgstr ""
984
 
985
+ #: admin/class-settings.php:558
986
  msgid "Kyrgyzstan"
987
  msgstr ""
988
 
989
+ #: admin/class-settings.php:559
990
  msgid "Laos"
991
  msgstr ""
992
 
993
+ #: admin/class-settings.php:560
994
  msgid "Latvia"
995
  msgstr ""
996
 
997
+ #: admin/class-settings.php:561
998
  msgid "Lebanon"
999
  msgstr ""
1000
 
1001
+ #: admin/class-settings.php:562
1002
  msgid "Lesotho"
1003
  msgstr ""
1004
 
1005
+ #: admin/class-settings.php:563
1006
  msgid "Liberia"
1007
  msgstr ""
1008
 
1009
+ #: admin/class-settings.php:564
1010
  msgid "Libya"
1011
  msgstr ""
1012
 
1013
+ #: admin/class-settings.php:565
1014
  msgid "Liechtenstein"
1015
  msgstr ""
1016
 
1017
+ #: admin/class-settings.php:566
1018
  msgid "Lithuania"
1019
  msgstr ""
1020
 
1021
+ #: admin/class-settings.php:567
1022
  msgid "Luxembourg"
1023
  msgstr ""
1024
 
1025
+ #: admin/class-settings.php:568
1026
  msgid "Macau"
1027
  msgstr ""
1028
 
1029
+ #: admin/class-settings.php:569
1030
  msgid "Macedonia"
1031
  msgstr ""
1032
 
1033
+ #: admin/class-settings.php:570
1034
  msgid "Madagascar"
1035
  msgstr ""
1036
 
1037
+ #: admin/class-settings.php:571
1038
  msgid "Malawi"
1039
  msgstr ""
1040
 
1041
+ #: admin/class-settings.php:572
1042
  msgid "Malaysia "
1043
  msgstr ""
1044
 
1045
+ #: admin/class-settings.php:573
1046
  msgid "Mali"
1047
  msgstr ""
1048
 
1049
+ #: admin/class-settings.php:574
1050
  msgid "Marshall Islands"
1051
  msgstr ""
1052
 
1053
+ #: admin/class-settings.php:575
1054
  msgid "Martinique"
1055
  msgstr ""
1056
 
1057
+ #: admin/class-settings.php:576
1058
  msgid "Mauritania"
1059
  msgstr ""
1060
 
1061
+ #: admin/class-settings.php:577
1062
  msgid "Mauritius"
1063
  msgstr ""
1064
 
1065
+ #: admin/class-settings.php:578
1066
  msgid "Mexico"
1067
  msgstr ""
1068
 
1069
+ #: admin/class-settings.php:579
1070
  msgid "Micronesia"
1071
  msgstr ""
1072
 
1073
+ #: admin/class-settings.php:580
1074
  msgid "Moldova"
1075
  msgstr ""
1076
 
1077
+ #: admin/class-settings.php:581
1078
  msgid "Monaco"
1079
  msgstr ""
1080
 
1081
+ #: admin/class-settings.php:582
1082
  msgid "Mongolia"
1083
  msgstr ""
1084
 
1085
+ #: admin/class-settings.php:583
1086
  msgid "Montenegro"
1087
  msgstr ""
1088
 
1089
+ #: admin/class-settings.php:584
1090
  msgid "Montserrat"
1091
  msgstr ""
1092
 
1093
+ #: admin/class-settings.php:585
1094
  msgid "Morocco"
1095
  msgstr ""
1096
 
1097
+ #: admin/class-settings.php:586
1098
  msgid "Mozambique"
1099
  msgstr ""
1100
 
1101
+ #: admin/class-settings.php:587
1102
  msgid "Myanmar"
1103
  msgstr ""
1104
 
1105
+ #: admin/class-settings.php:588
1106
  msgid "Namibia"
1107
  msgstr ""
1108
 
1109
+ #: admin/class-settings.php:589
1110
  msgid "Nauru"
1111
  msgstr ""
1112
 
1113
+ #: admin/class-settings.php:590
1114
  msgid "Nepal"
1115
  msgstr ""
1116
 
1117
+ #: admin/class-settings.php:591
1118
  msgid "Netherlands"
1119
  msgstr ""
1120
 
1121
+ #: admin/class-settings.php:592
1122
  msgid "Netherlands Antilles"
1123
  msgstr ""
1124
 
1125
+ #: admin/class-settings.php:593
1126
  msgid "New Zealand"
1127
  msgstr ""
1128
 
1129
+ #: admin/class-settings.php:594
1130
  msgid "Nicaragua"
1131
  msgstr ""
1132
 
1133
+ #: admin/class-settings.php:595
1134
  msgid "Niger"
1135
  msgstr ""
1136
 
1137
+ #: admin/class-settings.php:596
1138
  msgid "Nigeria"
1139
  msgstr ""
1140
 
1141
+ #: admin/class-settings.php:597
1142
  msgid "Niue"
1143
  msgstr ""
1144
 
1145
+ #: admin/class-settings.php:598
1146
  msgid "Northern Mariana Islands"
1147
  msgstr ""
1148
 
1149
+ #: admin/class-settings.php:599
1150
  msgid "Norway"
1151
  msgstr ""
1152
 
1153
+ #: admin/class-settings.php:600
1154
  msgid "Oman"
1155
  msgstr ""
1156
 
1157
+ #: admin/class-settings.php:601
1158
  msgid "Pakistan"
1159
  msgstr ""
1160
 
1161
+ #: admin/class-settings.php:602
1162
  msgid "Panama"
1163
  msgstr ""
1164
 
1165
+ #: admin/class-settings.php:603
1166
  msgid "Papua New Guinea"
1167
  msgstr ""
1168
 
1169
+ #: admin/class-settings.php:604
1170
  msgid "Paraguay"
1171
  msgstr ""
1172
 
1173
+ #: admin/class-settings.php:605
1174
  msgid "Peru"
1175
  msgstr ""
1176
 
1177
+ #: admin/class-settings.php:606
1178
  msgid "Philippines"
1179
  msgstr ""
1180
 
1181
+ #: admin/class-settings.php:607
1182
  msgid "Pitcairn Islands"
1183
  msgstr ""
1184
 
1185
+ #: admin/class-settings.php:608
1186
  msgid "Poland"
1187
  msgstr ""
1188
 
1189
+ #: admin/class-settings.php:609
1190
  msgid "Portugal"
1191
  msgstr ""
1192
 
1193
+ #: admin/class-settings.php:610
1194
  msgid "Qatar"
1195
  msgstr ""
1196
 
1197
+ #: admin/class-settings.php:611
1198
  msgid "Reunion"
1199
  msgstr ""
1200
 
1201
+ #: admin/class-settings.php:612
1202
  msgid "Romania"
1203
  msgstr ""
1204
 
1205
+ #: admin/class-settings.php:613
1206
  msgid "Russia"
1207
  msgstr ""
1208
 
1209
+ #: admin/class-settings.php:614
1210
  msgid "Rwanda"
1211
  msgstr ""
1212
 
1213
+ #: admin/class-settings.php:615
1214
  msgid "Saint Helena"
1215
  msgstr ""
1216
 
1217
+ #: admin/class-settings.php:616
1218
  msgid "Saint Kitts and Nevis"
1219
  msgstr ""
1220
 
1221
+ #: admin/class-settings.php:617
1222
  msgid "Saint Vincent and the Grenadines"
1223
  msgstr ""
1224
 
1225
+ #: admin/class-settings.php:618
1226
  msgid "Saint Lucia"
1227
  msgstr ""
1228
 
1229
+ #: admin/class-settings.php:619
1230
  msgid "Samoa"
1231
  msgstr ""
1232
 
1233
+ #: admin/class-settings.php:620
1234
  msgid "San Marino"
1235
  msgstr ""
1236
 
1237
+ #: admin/class-settings.php:621
1238
  msgid "São Tomé and Príncipe"
1239
  msgstr ""
1240
 
1241
+ #: admin/class-settings.php:622
1242
  msgid "Saudi Arabia"
1243
  msgstr ""
1244
 
1245
+ #: admin/class-settings.php:623
1246
  msgid "Senegal"
1247
  msgstr ""
1248
 
1249
+ #: admin/class-settings.php:624
1250
  msgid "Serbia"
1251
  msgstr ""
1252
 
1253
+ #: admin/class-settings.php:625
1254
  msgid "Seychelles"
1255
  msgstr ""
1256
 
1257
+ #: admin/class-settings.php:626
1258
  msgid "Sierra Leone"
1259
  msgstr ""
1260
 
1261
+ #: admin/class-settings.php:627
1262
  msgid "Singapore"
1263
  msgstr ""
1264
 
1265
+ #: admin/class-settings.php:628
1266
  msgid "Slovakia"
1267
  msgstr ""
1268
 
1269
+ #: admin/class-settings.php:629
1270
  msgid "Solomon Islands"
1271
  msgstr ""
1272
 
1273
+ #: admin/class-settings.php:630
1274
  msgid "Somalia"
1275
  msgstr ""
1276
 
1277
+ #: admin/class-settings.php:631
1278
  msgid "South Africa"
1279
  msgstr ""
1280
 
1281
+ #: admin/class-settings.php:632
1282
  msgid "South Korea"
1283
  msgstr ""
1284
 
1285
+ #: admin/class-settings.php:633
1286
  msgid "Spain"
1287
  msgstr ""
1288
 
1289
+ #: admin/class-settings.php:634
1290
  msgid "Sri Lanka"
1291
  msgstr ""
1292
 
1293
+ #: admin/class-settings.php:635
1294
  msgid "Sudan"
1295
  msgstr ""
1296
 
1297
+ #: admin/class-settings.php:636
1298
  msgid "Swaziland"
1299
  msgstr ""
1300
 
1301
+ #: admin/class-settings.php:637
1302
  msgid "Sweden"
1303
  msgstr ""
1304
 
1305
+ #: admin/class-settings.php:638
1306
  msgid "Switzerland"
1307
  msgstr ""
1308
 
1309
+ #: admin/class-settings.php:639
1310
  msgid "Syria"
1311
  msgstr ""
1312
 
1313
+ #: admin/class-settings.php:640
1314
  msgid "Taiwan"
1315
  msgstr ""
1316
 
1317
+ #: admin/class-settings.php:641
1318
  msgid "Tajikistan"
1319
  msgstr ""
1320
 
1321
+ #: admin/class-settings.php:642
1322
  msgid "Tanzania"
1323
  msgstr ""
1324
 
1325
+ #: admin/class-settings.php:643
1326
  msgid "Thailand"
1327
  msgstr ""
1328
 
1329
+ #: admin/class-settings.php:644
1330
  msgid "Timor-Leste"
1331
  msgstr ""
1332
 
1333
+ #: admin/class-settings.php:645
1334
  msgid "Tokelau"
1335
  msgstr ""
1336
 
1337
+ #: admin/class-settings.php:646
1338
  msgid "Togo"
1339
  msgstr ""
1340
 
1341
+ #: admin/class-settings.php:647
1342
  msgid "Tonga"
1343
  msgstr ""
1344
 
1345
+ #: admin/class-settings.php:648
1346
  msgid "Trinidad and Tobago"
1347
  msgstr ""
1348
 
1349
+ #: admin/class-settings.php:649
1350
  msgid "Tunisia"
1351
  msgstr ""
1352
 
1353
+ #: admin/class-settings.php:650
1354
  msgid "Turkey"
1355
  msgstr ""
1356
 
1357
+ #: admin/class-settings.php:651
1358
  msgid "Turkmenistan"
1359
  msgstr ""
1360
 
1361
+ #: admin/class-settings.php:652
1362
  msgid "Tuvalu"
1363
  msgstr ""
1364
 
1365
+ #: admin/class-settings.php:653
1366
  msgid "Uganda"
1367
  msgstr ""
1368
 
1369
+ #: admin/class-settings.php:654
1370
  msgid "Ukraine"
1371
  msgstr ""
1372
 
1373
+ #: admin/class-settings.php:655
1374
  msgid "United Arab Emirates"
1375
  msgstr ""
1376
 
1377
+ #: admin/class-settings.php:656
1378
  msgid "United Kingdom"
1379
  msgstr ""
1380
 
1381
+ #: admin/class-settings.php:657
1382
  msgid "United States"
1383
  msgstr ""
1384
 
1385
+ #: admin/class-settings.php:658
1386
  msgid "Uruguay"
1387
  msgstr ""
1388
 
1389
+ #: admin/class-settings.php:659
1390
  msgid "Uzbekistan"
1391
  msgstr ""
1392
 
1393
+ #: admin/class-settings.php:660
1394
  msgid "Wallis Futuna"
1395
  msgstr ""
1396
 
1397
+ #: admin/class-settings.php:661
1398
  msgid "Venezuela"
1399
  msgstr ""
1400
 
1401
+ #: admin/class-settings.php:662
1402
  msgid "Vietnam"
1403
  msgstr ""
1404
 
1405
+ #: admin/class-settings.php:663
1406
  msgid "Yemen"
1407
  msgstr ""
1408
 
1409
+ #: admin/class-settings.php:664
1410
  msgid "Zambia"
1411
  msgstr ""
1412
 
1413
+ #: admin/class-settings.php:665
1414
  msgid "Zimbabwe"
1415
  msgstr ""
1416
 
1417
+ #: admin/class-settings.php:708
1418
  msgid "World view"
1419
  msgstr ""
1420
 
1421
+ #: admin/class-settings.php:711 admin/class-settings.php:825
1422
+ #: inc/wpsl-functions.php:189
1423
  msgid "Default"
1424
  msgstr ""
1425
 
1426
+ #: admin/class-settings.php:714 inc/wpsl-functions.php:262
1427
  msgid "Roadmap"
1428
  msgstr ""
1429
 
1430
+ #: admin/class-settings.php:855
1431
  msgid "Start location marker"
1432
  msgstr ""
1433
 
1434
+ #: admin/class-settings.php:857
1435
  msgid "Store location marker"
1436
  msgstr ""
1437
 
1438
+ #: admin/class-settings.php:939
1439
  msgid "Textarea"
1440
  msgstr ""
1441
 
1442
+ #: admin/class-settings.php:940
1443
  msgid "Dropdowns (recommended)"
1444
  msgstr ""
1445
 
1446
+ #: admin/class-settings.php:948
1447
  msgid "Bounces up and down"
1448
  msgstr ""
1449
 
1450
+ #: admin/class-settings.php:949
1451
  msgid "Will open the info window"
1452
  msgstr ""
1453
 
1454
+ #: admin/class-settings.php:950
1455
  msgid "Does not respond"
1456
  msgstr ""
1457
 
1458
+ #: admin/class-settings.php:958
1459
  msgid "In the store listings"
1460
  msgstr ""
1461
 
1462
+ #: admin/class-settings.php:959
1463
  msgid "In the info window on the map"
1464
  msgstr ""
1465
 
1466
+ #: admin/class-settings.php:1015
1467
  msgid "12 Hours"
1468
  msgstr ""
1469
 
1470
+ #: admin/class-settings.php:1016
1471
  msgid "24 Hours"
1472
  msgstr ""
1473
 
1475
  msgid "Store Locator Manager"
1476
  msgstr ""
1477
 
1478
+ #: admin/templates/map-settings.php:43
1479
+ msgid "Add-On"
1480
+ msgstr ""
1481
+
1482
+ #: admin/templates/map-settings.php:44
1483
+ msgid "License Key"
1484
+ msgstr ""
1485
+
1486
+ #: admin/templates/map-settings.php:45
1487
+ msgid "License Expiry Date"
1488
+ msgstr ""
1489
+
1490
+ #: admin/templates/map-settings.php:59
1491
+ msgid "Deactivate License"
1492
+ msgstr ""
1493
+
1494
+ #: admin/templates/map-settings.php:79 admin/templates/map-settings.php:114
1495
+ #: admin/templates/map-settings.php:156 admin/templates/map-settings.php:233
1496
+ #: admin/templates/map-settings.php:326 admin/templates/map-settings.php:352
1497
+ #: admin/templates/map-settings.php:402 admin/templates/map-settings.php:428
1498
+ #: admin/templates/map-settings.php:536 admin/templates/map-settings.php:557
1499
+ msgid "Save Changes"
1500
+ msgstr ""
1501
+
1502
+ #: admin/templates/map-settings.php:91
1503
  msgid "Google Maps API"
1504
  msgstr ""
1505
 
1506
+ #: admin/templates/map-settings.php:94
1507
  msgid "API key"
1508
  msgstr ""
1509
 
1510
+ #: admin/templates/map-settings.php:94
1511
  #, php-format
1512
  msgid ""
1513
  "A valid %sAPI key%s allows you to monitor the API usage and is required if "
1514
  "you need to purchase additional quota."
1515
  msgstr ""
1516
 
1517
+ #: admin/templates/map-settings.php:95
1518
  msgid "Optional"
1519
  msgstr ""
1520
 
1521
+ #: admin/templates/map-settings.php:98
1522
  msgid "Map language"
1523
  msgstr ""
1524
 
1525
+ #: admin/templates/map-settings.php:98
1526
  msgid "If no map language is selected the browser's prefered language is used."
1527
  msgstr ""
1528
 
1529
+ #: admin/templates/map-settings.php:104
1530
  msgid "Map region"
1531
  msgstr ""
1532
 
1533
+ #: admin/templates/map-settings.php:104
1534
  #, php-format
1535
  msgid ""
1536
+ "This will bias the %sgeocoding%s results towards the selected region. %s If "
1537
+ "no region is selected the bias is set to the United States."
1538
  msgstr ""
1539
 
1540
+ #: admin/templates/map-settings.php:110
1541
+ msgid "Restrict the geocoding results to the selected map region?"
1542
+ msgstr ""
1543
+
1544
+ #: admin/templates/map-settings.php:110
1545
+ #, php-format
1546
+ msgid ""
1547
+ "If the %sgeocoding%s API finds more relevant results outside of the set map "
1548
+ "region ( some location names exist in multiple regions ), the user will "
1549
+ "likely see a \"No results found\" message. %s To rule this out you can "
1550
+ "restrict the results to the set map region. %s You can modify the used "
1551
+ "restrictions with %sthis%s filter."
1552
  msgstr ""
1553
 
1554
+ #: admin/templates/map-settings.php:124 admin/templates/map-settings.php:464
1555
+ #: admin/templates/map-settings.php:465 frontend/templates/default.php:43
1556
+ #: frontend/templates/store-listings-below.php:43 inc/wpsl-functions.php:107
1557
  msgid "Search"
1558
  msgstr ""
1559
 
1560
+ #: admin/templates/map-settings.php:127
1561
  msgid "Show the max results dropdown?"
1562
  msgstr ""
1563
 
1564
+ #: admin/templates/map-settings.php:131
1565
  msgid "Show the search radius dropdown?"
1566
  msgstr ""
1567
 
1568
+ #: admin/templates/map-settings.php:135
1569
  msgid "Show the category dropdown?"
1570
  msgstr ""
1571
 
1572
+ #: admin/templates/map-settings.php:139
1573
  msgid "Distance unit"
1574
  msgstr ""
1575
 
1576
+ #: admin/templates/map-settings.php:142
1577
  msgid "km"
1578
  msgstr ""
1579
 
1580
+ #: admin/templates/map-settings.php:144
1581
  msgid "mi"
1582
  msgstr ""
1583
 
1584
+ #: admin/templates/map-settings.php:148
1585
  msgid "Max search results"
1586
  msgstr ""
1587
 
1588
+ #: admin/templates/map-settings.php:148 admin/templates/map-settings.php:152
1589
  msgid "The default value is set between the [ ]."
1590
  msgstr ""
1591
 
1592
+ #: admin/templates/map-settings.php:152
1593
  msgid "Search radius options"
1594
  msgstr ""
1595
 
1596
+ #: admin/templates/map-settings.php:166
1597
  msgid "Map"
1598
  msgstr ""
1599
 
1600
+ #: admin/templates/map-settings.php:169
1601
  msgid "Attempt to auto-locate the user"
1602
  msgstr ""
1603
 
1604
+ #: admin/templates/map-settings.php:173
1605
  msgid "Load locations on page load"
1606
  msgstr ""
1607
 
1608
+ #: admin/templates/map-settings.php:177
1609
  msgid "Number of locations to show"
1610
  msgstr ""
1611
 
1612
+ #: admin/templates/map-settings.php:177
1613
  #, php-format
1614
  msgid ""
1615
  "Although the location data is cached after the first load, a lower number "
1617
  "or set to 0, then all locations are loaded."
1618
  msgstr ""
1619
 
1620
+ #: admin/templates/map-settings.php:181
1621
  msgid "Start point"
1622
  msgstr ""
1623
 
1624
+ #: admin/templates/map-settings.php:181
1625
  #, php-format
1626
  msgid ""
1627
  "%sRequired field.%s %s If auto-locating the user is disabled or fails, the "
1629
  "point for the user."
1630
  msgstr ""
1631
 
1632
+ #: admin/templates/map-settings.php:186
1633
  msgid "Initial zoom level"
1634
  msgstr ""
1635
 
1636
+ #: admin/templates/map-settings.php:190
1637
  msgid "Max auto zoom level"
1638
  msgstr ""
1639
 
1640
+ #: admin/templates/map-settings.php:190
1641
  #, php-format
1642
  msgid ""
1643
  "This value sets the zoom level for the \"Zoom here\" link in the info "
1645
  "is changed to make all the markers fit on the screen."
1646
  msgstr ""
1647
 
1648
+ #: admin/templates/map-settings.php:194
1649
  msgid "Show the street view controls?"
1650
  msgstr ""
1651
 
1652
+ #: admin/templates/map-settings.php:198
1653
  msgid "Show the map type control?"
1654
  msgstr ""
1655
 
1656
+ #: admin/templates/map-settings.php:202
1657
  msgid "Enable scroll wheel zooming?"
1658
  msgstr ""
1659
 
1660
+ #: admin/templates/map-settings.php:206
1661
  msgid "Zoom control position"
1662
  msgstr ""
1663
 
1664
+ #: admin/templates/map-settings.php:209
1665
  msgid "Left"
1666
  msgstr ""
1667
 
1668
+ #: admin/templates/map-settings.php:211
1669
  msgid "Right"
1670
  msgstr ""
1671
 
1672
+ #: admin/templates/map-settings.php:215
1673
  msgid "Map type"
1674
  msgstr ""
1675
 
1676
+ #: admin/templates/map-settings.php:219
1677
  msgid "Map style"
1678
  msgstr ""
1679
 
1680
+ #: admin/templates/map-settings.php:219
1681
  msgid ""
1682
  "Custom map styles only work if the map type is set to \"Roadmap\" or "
1683
  "\"Terrain\"."
1684
  msgstr ""
1685
 
1686
+ #: admin/templates/map-settings.php:222
1687
  #, php-format
1688
  msgid ""
1689
  "You can use existing map styles from %sSnazzy Maps%s or %sMap Stylr%s and "
1691
  "through the %sMap Style Editor%s or %sStyled Maps Wizard%s."
1692
  msgstr ""
1693
 
1694
+ #: admin/templates/map-settings.php:223
1695
  #, php-format
1696
  msgid ""
1697
  "If you like to write the style code yourself, then you can find the "
1698
  "documentation from Google %shere%s."
1699
  msgstr ""
1700
 
1701
+ #: admin/templates/map-settings.php:225
1702
  msgid "Preview Map Style"
1703
  msgstr ""
1704
 
1705
+ #: admin/templates/map-settings.php:229
1706
  msgid "Show credits?"
1707
  msgstr ""
1708
 
1709
+ #: admin/templates/map-settings.php:229
1710
  msgid ""
1711
  "This will place a \"Search provided by WP Store Locator\" backlink below the "
1712
  "map."
1713
  msgstr ""
1714
 
1715
+ #: admin/templates/map-settings.php:243
1716
  msgid "User Experience"
1717
  msgstr ""
1718
 
1719
+ #: admin/templates/map-settings.php:246
1720
  msgid "Store Locator height"
1721
  msgstr ""
1722
 
1723
+ #: admin/templates/map-settings.php:250
1724
  msgid "Max width for the info window content"
1725
  msgstr ""
1726
 
1727
+ #: admin/templates/map-settings.php:254
1728
  msgid "Search field width"
1729
  msgstr ""
1730
 
1731
+ #: admin/templates/map-settings.php:258
1732
  msgid "Search and radius label width"
1733
  msgstr ""
1734
 
1735
+ #: admin/templates/map-settings.php:262
1736
  msgid "Store Locator template"
1737
  msgstr ""
1738
 
1739
+ #: admin/templates/map-settings.php:262
1740
  #, php-format
1741
  msgid ""
1742
  "The selected template is used with the [wpsl] shortcode. %s You can add a "
1743
  "custom template with the %swpsl_templates%s filter."
1744
  msgstr ""
1745
 
1746
+ #: admin/templates/map-settings.php:266
1747
  msgid "Hide the scrollbar?"
1748
  msgstr ""
1749
 
1750
+ #: admin/templates/map-settings.php:270
1751
  msgid "Open links in a new window?"
1752
  msgstr ""
1753
 
1754
+ #: admin/templates/map-settings.php:274
1755
  msgid "Show a reset map button?"
1756
  msgstr ""
1757
 
1758
+ #: admin/templates/map-settings.php:278
1759
  msgid ""
1760
  "When a user clicks on \"Directions\", open a new window, and show the route "
1761
  "on google.com/maps ?"
1762
  msgstr ""
1763
 
1764
+ #: admin/templates/map-settings.php:282
1765
  msgid "Show a \"More info\" link in the store listings?"
1766
  msgstr ""
1767
 
1768
+ #: admin/templates/map-settings.php:282
1769
  #, php-format
1770
  msgid ""
1771
  "This places a \"More Info\" link below the address and will show the phone, "
1774
  "follow the instructions on %sthis%s page."
1775
  msgstr ""
1776
 
1777
+ #: admin/templates/map-settings.php:286
1778
  msgid "Where do you want to show the \"More info\" details?"
1779
  msgstr ""
1780
 
1781
+ #: admin/templates/map-settings.php:290
1782
  msgid "Make the store name clickable if a store URL exists?"
1783
  msgstr ""
1784
 
1785
+ #: admin/templates/map-settings.php:290
1786
  #, php-format
1787
  msgid ""
1788
  "If %spermalinks%s are enabled, the store name will always link to the store "
1789
  "page."
1790
  msgstr ""
1791
 
1792
+ #: admin/templates/map-settings.php:294
1793
  msgid "Make the phone number clickable on mobile devices?"
1794
  msgstr ""
1795
 
1796
+ #: admin/templates/map-settings.php:298
1797
  msgid ""
1798
  "If street view is available for the current location, then show a \"Street "
1799
  "view\" link in the info window?"
1800
  msgstr ""
1801
 
1802
+ #: admin/templates/map-settings.php:298
1803
  #, php-format
1804
  msgid ""
1805
  "Enabling this option can sometimes result in a small delay in the opening of "
1807
  "Maps to check if street view is available for the current location."
1808
  msgstr ""
1809
 
1810
+ #: admin/templates/map-settings.php:302
1811
  msgid "Show a \"Zoom here\" link in the info window?"
1812
  msgstr ""
1813
 
1814
+ #: admin/templates/map-settings.php:302
1815
  #, php-format
1816
  msgid ""
1817
  "Clicking this link will make the map zoom in to the %s max auto zoom level "
1818
  "%s."
1819
  msgstr ""
1820
 
1821
+ #: admin/templates/map-settings.php:306
1822
  msgid "On page load move the mouse cursor to the search field?"
1823
  msgstr ""
1824
 
1825
+ #: admin/templates/map-settings.php:306
1826
  #, php-format
1827
  msgid ""
1828
  "If the store locator is not placed at the top of the page, enabling this "
1830
  "on mobile devices.%s"
1831
  msgstr ""
1832
 
1833
+ #: admin/templates/map-settings.php:310
1834
  msgid "Use the default style for the info window?"
1835
  msgstr ""
1836
 
1837
+ #: admin/templates/map-settings.php:310
1838
  #, php-format
1839
  msgid ""
1840
  "If the default style is disabled the %sInfoBox%s library will be used "
1842
  "window through the .wpsl-infobox css class."
1843
  msgstr ""
1844
 
1845
+ #: admin/templates/map-settings.php:314
1846
  msgid "Hide the distance in the search results?"
1847
  msgstr ""
1848
 
1849
+ #: admin/templates/map-settings.php:318
1850
  msgid "If a user hovers over the search results the store marker"
1851
  msgstr ""
1852
 
1853
+ #: admin/templates/map-settings.php:318
1854
  #, php-format
1855
  msgid ""
1856
  "If marker clusters are enabled this option will not work as expected as long "
1860
  "it won't be clear to which marker it belongs to. "
1861
  msgstr ""
1862
 
1863
+ #: admin/templates/map-settings.php:322
1864
  msgid "Address format"
1865
  msgstr ""
1866
 
1867
+ #: admin/templates/map-settings.php:322
1868
  #, php-format
1869
  msgid ""
1870
  "You can add custom address formats with the %swpsl_address_formats%s filter."
1871
  msgstr ""
1872
 
1873
+ #: admin/templates/map-settings.php:336
1874
  msgid "Markers"
1875
  msgstr ""
1876
 
1877
+ #: admin/templates/map-settings.php:340
1878
  msgid "Enable marker clusters?"
1879
  msgstr ""
1880
 
1881
+ #: admin/templates/map-settings.php:340
1882
  msgid "Recommended for maps with a large amount of markers."
1883
  msgstr ""
1884
 
1885
+ #: admin/templates/map-settings.php:344
1886
  msgid "Max zoom level"
1887
  msgstr ""
1888
 
1889
+ #: admin/templates/map-settings.php:344
1890
  msgid ""
1891
  "If this zoom level is reached or exceeded, then all markers are moved out of "
1892
  "the marker cluster and shown as individual markers."
1893
  msgstr ""
1894
 
1895
+ #: admin/templates/map-settings.php:348
1896
  msgid "Cluster size"
1897
  msgstr ""
1898
 
1899
+ #: admin/templates/map-settings.php:348
1900
  #, php-format
1901
  msgid ""
1902
  "The grid size of a cluster in pixels. %s A larger number will result in a "
1903
  "lower amount of clusters and also make the algorithm run faster."
1904
  msgstr ""
1905
 
1906
+ #: admin/templates/map-settings.php:362
1907
  msgid "Store Editor"
1908
  msgstr ""
1909
 
1910
+ #: admin/templates/map-settings.php:365
1911
  msgid "Default country"
1912
  msgstr ""
1913
 
1914
+ #: admin/templates/map-settings.php:369
1915
  msgid "Map type for the location preview"
1916
  msgstr ""
1917
 
1918
+ #: admin/templates/map-settings.php:373
1919
  msgid "Hide the opening hours?"
1920
  msgstr ""
1921
 
1922
+ #: admin/templates/map-settings.php:379
1923
  msgid "Opening hours input type"
1924
  msgstr ""
1925
 
1926
+ #: admin/templates/map-settings.php:383
1927
  #, php-format
1928
  msgid ""
1929
  "Opening hours created in version 1.x %sare not%s automatically converted to "
1930
  "the new dropdown format."
1931
  msgstr ""
1932
 
1933
+ #: admin/templates/map-settings.php:386 admin/templates/map-settings.php:395
1934
  msgid "The default opening hours"
1935
  msgstr ""
1936
 
1937
+ #: admin/templates/map-settings.php:392
1938
  msgid "Opening hours format"
1939
  msgstr ""
1940
 
1941
+ #: admin/templates/map-settings.php:399
1942
  msgid ""
1943
  "The default country and opening hours are only used when a new store is "
1944
  "created. So changing the default values will have no effect on existing "
1945
  "store locations."
1946
  msgstr ""
1947
 
1948
+ #: admin/templates/map-settings.php:412
1949
  msgid "Permalink"
1950
  msgstr ""
1951
 
1952
+ #: admin/templates/map-settings.php:415
1953
  msgid "Enable permalink?"
1954
  msgstr ""
1955
 
1956
+ #: admin/templates/map-settings.php:419
1957
  msgid "Store slug"
1958
  msgstr ""
1959
 
1960
+ #: admin/templates/map-settings.php:423
1961
  msgid "Category slug"
1962
  msgstr ""
1963
 
1964
+ #: admin/templates/map-settings.php:426
1965
  #, php-format
1966
  msgid "The permalink slugs %smust be unique%s on your site."
1967
  msgstr ""
1968
 
1969
+ #: admin/templates/map-settings.php:438
1970
  msgid "Labels"
1971
  msgstr ""
1972
 
1973
+ #: admin/templates/map-settings.php:447
1974
  #, php-format
1975
  msgid "%sWarning!%s %sWPML%s, or a plugin using the WPML API is active."
1976
  msgstr ""
1977
 
1978
+ #: admin/templates/map-settings.php:448
1979
  msgid ""
1980
  "Please use the \"String Translations\" section in the used multilingual "
1981
  "plugin to change the labels. Changing them here will have no effect as long "
1982
  "as the multilingual plugin remains active."
1983
  msgstr ""
1984
 
1985
+ #: admin/templates/map-settings.php:452 admin/templates/map-settings.php:453
1986
  #: frontend/templates/default.php:11
1987
+ #: frontend/templates/store-listings-below.php:11 inc/wpsl-functions.php:106
1988
  msgid "Your location"
1989
  msgstr ""
1990
 
1991
+ #: admin/templates/map-settings.php:456 admin/templates/map-settings.php:457
1992
  #: frontend/templates/default.php:20
1993
+ #: frontend/templates/store-listings-below.php:20 inc/wpsl-functions.php:109
1994
  msgid "Search radius"
1995
  msgstr ""
1996
 
1997
+ #: admin/templates/map-settings.php:460 admin/templates/map-settings.php:461
1998
+ #: frontend/class-frontend.php:1408 inc/wpsl-functions.php:110
1999
  msgid "No results found"
2000
  msgstr ""
2001
 
2002
+ #: admin/templates/map-settings.php:468
2003
  msgid "Searching (preloader text)"
2004
  msgstr ""
2005
 
2006
+ #: admin/templates/map-settings.php:469 frontend/class-frontend.php:1407
2007
+ #: inc/wpsl-functions.php:108
2008
  msgid "Searching..."
2009
  msgstr ""
2010
 
2011
+ #: admin/templates/map-settings.php:472 admin/templates/map-settings.php:473
2012
  #: frontend/templates/default.php:29
2013
+ #: frontend/templates/store-listings-below.php:29 inc/wpsl-functions.php:111
2014
  msgid "Results"
2015
  msgstr ""
2016
 
2017
+ #: admin/templates/map-settings.php:476 admin/upgrade.php:218
2018
+ #: inc/wpsl-functions.php:125
2019
  msgid "Category filter"
2020
  msgstr ""
2021
 
2022
+ #: admin/templates/map-settings.php:477 frontend/class-frontend.php:1127
2023
  msgid "Category"
2024
  msgstr ""
2025
 
2026
+ #: admin/templates/map-settings.php:480 admin/templates/map-settings.php:481
2027
+ #: admin/upgrade.php:66 frontend/class-frontend.php:1409
2028
  #: frontend/underscore-functions.php:114 frontend/underscore-functions.php:141
2029
+ #: inc/wpsl-functions.php:112
2030
  msgid "More info"
2031
  msgstr ""
2032
 
2033
+ #: admin/templates/map-settings.php:484 admin/templates/map-settings.php:485
2034
  #: frontend/class-frontend.php:673 frontend/underscore-functions.php:29
2035
+ #: frontend/underscore-functions.php:121 inc/wpsl-functions.php:120
2036
  msgid "Phone"
2037
  msgstr ""
2038
 
2039
+ #: admin/templates/map-settings.php:504 admin/templates/map-settings.php:505
2040
+ #: frontend/class-frontend.php:1414 inc/wpsl-functions.php:105
2041
  msgid "Start location"
2042
  msgstr ""
2043
 
2044
+ #: admin/templates/map-settings.php:508
2045
  msgid "Get directions"
2046
  msgstr ""
2047
 
2048
+ #: admin/templates/map-settings.php:509 frontend/class-frontend.php:1412
2049
+ #: inc/wpsl-functions.php:113
2050
  msgid "Directions"
2051
  msgstr ""
2052
 
2053
+ #: admin/templates/map-settings.php:512
2054
  msgid "No directions found"
2055
  msgstr ""
2056
 
2057
+ #: admin/templates/map-settings.php:513 admin/upgrade.php:163
2058
+ #: frontend/class-frontend.php:1413 inc/wpsl-functions.php:114
2059
  msgid "No route could be found between the origin and destination"
2060
  msgstr ""
2061
 
2062
+ #: admin/templates/map-settings.php:516 admin/templates/map-settings.php:517
2063
+ #: admin/upgrade.php:87 frontend/class-frontend.php:1415
2064
+ #: inc/wpsl-functions.php:115
2065
  msgid "Back"
2066
  msgstr ""
2067
 
2068
+ #: admin/templates/map-settings.php:520 admin/templates/map-settings.php:521
2069
+ #: admin/upgrade.php:155 frontend/class-frontend.php:1416
2070
+ #: inc/wpsl-functions.php:116
2071
  msgid "Street view"
2072
  msgstr ""
2073
 
2074
+ #: admin/templates/map-settings.php:524 admin/templates/map-settings.php:525
2075
+ #: admin/upgrade.php:159 frontend/class-frontend.php:1417
2076
+ #: inc/wpsl-functions.php:117
2077
  msgid "Zoom here"
2078
  msgstr ""
2079
 
2080
+ #: admin/templates/map-settings.php:528
2081
  msgid "General error"
2082
  msgstr ""
2083
 
2084
+ #: admin/templates/map-settings.php:529 frontend/class-frontend.php:1410
2085
+ #: inc/wpsl-functions.php:118
2086
  msgid "Something went wrong, please try again!"
2087
  msgstr ""
2088
 
2089
+ #: admin/templates/map-settings.php:532
2090
  msgid "Query limit error"
2091
  msgstr ""
2092
 
2093
+ #: admin/templates/map-settings.php:532
2094
  #, php-format
2095
  msgid ""
2096
  "You can raise the %susage limit%s by obtaining an API %skey%s, and fill in "
2097
  "the \"API key\" field at the top of this page."
2098
  msgstr ""
2099
 
2100
+ #: admin/templates/map-settings.php:533 frontend/class-frontend.php:1411
2101
+ #: inc/wpsl-functions.php:119
2102
  msgid "API usage limit reached"
2103
  msgstr ""
2104
 
2105
+ #: admin/templates/map-settings.php:546
2106
  msgid "Tools"
2107
  msgstr ""
2108
 
2109
+ #: admin/templates/map-settings.php:549
2110
  msgid "Enable store locator debug?"
2111
  msgstr ""
2112
 
2113
+ #: admin/templates/map-settings.php:549
2114
  #, php-format
2115
  msgid ""
2116
  "This disables the WPSL transient cache. %sThe transient cache is only used "
2117
  "if the %sLoad locations on page load%s option is enabled."
2118
  msgstr ""
2119
 
2120
+ #: admin/templates/map-settings.php:553
2121
  msgid "WPSL transients"
2122
  msgstr ""
2123
 
2124
+ #: admin/templates/map-settings.php:554
2125
  msgid "Clear store locator transient cache"
2126
  msgstr ""
2127
 
2133
  msgid "Reset"
2134
  msgstr ""
2135
 
2136
+ #: admin/upgrade.php:186 inc/wpsl-functions.php:100
2137
  msgid "stores"
2138
  msgstr ""
2139
 
2140
+ #: admin/upgrade.php:190 inc/wpsl-functions.php:101
2141
  msgid "store-category"
2142
  msgstr ""
2143
 
2144
+ #: admin/upgrade.php:392
2145
  #, php-format
2146
  msgid ""
2147
  "Because you updated WP Store Locator from version 1.x, the %s current store "
2148
  "locations need to be %sconverted%s to custom post types."
2149
  msgstr ""
2150
 
2151
+ #: admin/upgrade.php:413
2152
  #, php-format
2153
  msgid ""
2154
  "The script converting the locations timed out. %s You can click the \"Start "
2159
  "but if you are reading this then that failed."
2160
  msgstr ""
2161
 
2162
+ #: admin/upgrade.php:434
2163
  msgid "Store locations to convert:"
2164
  msgstr ""
2165
 
2166
+ #: admin/upgrade.php:436
2167
  msgid "Start Converting"
2168
  msgstr ""
2169
 
2170
+ #: admin/upgrade.php:558
2171
  #, php-format
2172
  msgid ""
2173
  "All the store locations are now converted to custom post types. %s You can "
2186
  "the ID attribute."
2187
  msgstr ""
2188
 
2189
+ #: frontend/class-frontend.php:791
2190
  msgid ""
2191
+ "If you use the [wpsl_map] shortcode outside a store page, then you need to "
2192
+ "set the ID or category attribute."
2193
  msgstr ""
2194
 
2195
+ #: frontend/class-frontend.php:1129
2196
  msgid "Any"
2197
  msgstr ""
2198
 
2199
+ #: frontend/class-frontend.php:1254
2200
  msgid "The application does not have permission to use the Geolocation API."
2201
  msgstr ""
2202
 
2203
+ #: frontend/class-frontend.php:1255
2204
  msgid "Location information is unavailable."
2205
  msgstr ""
2206
 
2207
+ #: frontend/class-frontend.php:1256
2208
  msgid "The geolocation request timed out."
2209
  msgstr ""
2210
 
2211
+ #: frontend/class-frontend.php:1257
2212
  msgid "An unknown error occurred."
2213
  msgstr ""
2214
 
2318
  msgid "Zip"
2319
  msgstr ""
2320
 
2321
+ #: inc/wpsl-functions.php:194
2322
  msgid "Show the store list below the map"
2323
  msgstr ""
2324
 
2325
+ #: inc/wpsl-functions.php:211
2326
  msgid "Monday"
2327
  msgstr ""
2328
 
2329
+ #: inc/wpsl-functions.php:212
2330
  msgid "Tuesday"
2331
  msgstr ""
2332
 
2333
+ #: inc/wpsl-functions.php:213
2334
  msgid "Wednesday"
2335
  msgstr ""
2336
 
2337
+ #: inc/wpsl-functions.php:214
2338
  msgid "Thursday"
2339
  msgstr ""
2340
 
2341
+ #: inc/wpsl-functions.php:215
2342
  msgid "Friday"
2343
  msgstr ""
2344
 
2345
+ #: inc/wpsl-functions.php:216
2346
  msgid "Saturday"
2347
  msgstr ""
2348
 
2349
+ #: inc/wpsl-functions.php:217
2350
  msgid "Sunday"
2351
  msgstr ""
2352
 
2353
+ #: inc/wpsl-functions.php:247
2354
  #, php-format
2355
  msgid "Mon %sTue %sWed %sThu %sFri %sSat Closed %sSun Closed"
2356
  msgstr ""
2357
 
2358
+ #: inc/wpsl-functions.php:263
2359
  msgid "Satellite"
2360
  msgstr ""
2361
 
2362
+ #: inc/wpsl-functions.php:264
2363
  msgid "Hybrid"
2364
  msgstr ""
2365
 
2366
+ #: inc/wpsl-functions.php:265
2367
  msgid "Terrain"
2368
  msgstr ""
2369
 
2370
+ #: inc/wpsl-functions.php:280
2371
  msgid "(city) (state) (zip code)"
2372
  msgstr ""
2373
 
2374
+ #: inc/wpsl-functions.php:281
2375
  msgid "(city), (state) (zip code)"
2376
  msgstr ""
2377
 
2378
+ #: inc/wpsl-functions.php:282
2379
  msgid "(city) (zip code)"
2380
  msgstr ""
2381
 
2382
+ #: inc/wpsl-functions.php:283
2383
  msgid "(city), (zip code)"
2384
  msgstr ""
2385
 
2386
+ #: inc/wpsl-functions.php:284
2387
  msgid "(zip code) (city) (state)"
2388
  msgstr ""
2389
 
2390
+ #: inc/wpsl-functions.php:285
2391
  msgid "(zip code) (city)"
2392
  msgstr ""
readme.txt CHANGED
@@ -1,11 +1,11 @@
1
  === WP Store Locator ===
2
- Plugin URI: http://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: 4.3
8
- Stable tag: 2.0.4
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses/gpl.html
11
 
@@ -36,32 +36,35 @@ the language that is set in the admin panel.
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](http://wpstorelocator.co/documentation/filters/) that help you change the look and feel of the store locator.
40
 
41
  = Documentation =
42
 
43
- Please take a look at the store locator [documentation](http://wpstorelocator.co/documentation/) before making a support request.
44
 
45
- * [Getting Started](http://wpstorelocator.co/documentation/getting-started/)
46
- * [Troubleshooting](http://wpstorelocator.co/documentation/troubleshooting/)
47
- * [Customisations](http://wpstorelocator.co/documentation/customisations/)
48
- * [Filters](http://wpstorelocator.co/documentation/filters/)
49
 
50
  = Premium Add-ons =
51
 
52
- The following store locator add-ons will be available soon.
53
 
54
- = CSV Import / Export =
55
- * Bulk import locations by importing a .CSV file.
56
 
57
- = Statistics =
58
- * Keep track where users are searching, and see where there is demand for a possible store.
59
 
60
- = Search Widget =
61
- * Enable users to search from a sidebar widget for nearby store locations.
62
 
63
- = Store Directory =
64
- * Generate a directory based on the store locations.
 
 
 
 
 
 
 
65
 
66
  == Installation ==
67
 
@@ -84,6 +87,10 @@ Make sure you have defined a start point for the map under settings -> Map Setti
84
 
85
  If you use a caching plugin, or a service like Cloudflare, then make sure to flush the cache.
86
 
 
 
 
 
87
  = Why does it show the location I searched for in the wrong country? =
88
 
89
  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.
@@ -96,7 +103,7 @@ If you don't use ajax navigation, but do see the number 1 it's probably a confli
96
 
97
  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).
98
 
99
- > You can find the full documentation [here](http://wpstorelocator.co/documentation/).
100
 
101
  == Screenshots ==
102
 
@@ -107,6 +114,18 @@ If you find a plugin or theme that causes a conflict, please report it on the [s
107
 
108
  == Changelog ==
109
 
 
 
 
 
 
 
 
 
 
 
 
 
110
  = 2.0.4, November 23, 2015 =
111
  * 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).
112
  * 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.
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: 4.4
8
+ Stable tag: 2.1.0
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses/gpl.html
11
 
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
  = Documentation =
42
 
43
+ Please take a look at the store locator [documentation](https://wpstorelocator.co/documentation/) before making a support request.
44
 
45
+ * [Getting Started](https://wpstorelocator.co/documentation/getting-started/)
46
+ * [Troubleshooting](https://wpstorelocator.co/documentation/troubleshooting/)
47
+ * [Customisations](https://wpstorelocator.co/documentation/customisations/)
48
+ * [Filters](https://wpstorelocator.co/documentation/filters/)
49
 
50
  = Premium Add-ons =
51
 
 
52
 
53
+ **CSV Manager**
 
54
 
55
+ The [CSV Manager](https://wpstorelocator.co/add-ons/csv-manager/) allows you to bulk import, export and update your locations using a CSV file.
 
56
 
57
+ **Search Widget**
 
58
 
59
+ 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.
60
+
61
+ **Statistics - Coming Soon**
62
+
63
+ Keep track where users are searching, and see where there is demand for a possible store.
64
+
65
+ **Store Directory - Coming Soon**
66
+
67
+ Generate a directory based on the store locations.
68
 
69
  == Installation ==
70
 
87
 
88
  If you use a caching plugin, or a service like Cloudflare, then make sure to flush the cache.
89
 
90
+ = I can't dismiss the pop up asking me to join the mailing list, how do I fix this? =
91
+
92
+ 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.
93
+
94
  = Why does it show the location I searched for in the wrong country? =
95
 
96
  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.
103
 
104
  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).
105
 
106
+ > You can find the full documentation [here](https://wpstorelocator.co/documentation/).
107
 
108
  == Screenshots ==
109
 
114
 
115
  == Changelog ==
116
 
117
+ = 2.1.0, December 23, 2015 =
118
+ * Added: 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.
119
+ * Added: Support to load the marker images from a [different folder](https://wpstorelocator.co/document/use-custom-markers/).
120
+ * Added: 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).
121
+ * Added: 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.
122
+ * Added: A [wpsl_draggable](https://wpstorelocator.co/document/wpsl_draggable_map) filter that enables you to enable/disable the dragging of the map.
123
+ * Added: Support for the upcoming [add-ons](https://wpstorelocator.co/add-ons/).
124
+ * Note: Read [this](https://wpstorelocator.co/version-2-1-released/#widget-support) if you're using a custom template!
125
+ * 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.
126
+ * Changed: If the Geocode API returns a REQUEST_DENIED status, then the returned error message is shown explaining why it failed.
127
+ * 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.
128
+
129
  = 2.0.4, November 23, 2015 =
130
  * 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).
131
  * 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.
uninstall.php CHANGED
@@ -21,11 +21,7 @@ if ( !is_multisite() ) {
21
  switch_to_blog( $original_blog_id );
22
  }
23
 
24
- /**
25
- * Delete the table ( users who upgraded from 1.x only ), options, store locations and taxonomies from the db.
26
- *
27
- * @todo Make the removal of db data optional through a checkbox on the settings page.
28
- */
29
  function wpsl_uninstall() {
30
 
31
  global $wpdb, $current_user;
21
  switch_to_blog( $original_blog_id );
22
  }
23
 
24
+ // Delete the table ( users who upgraded from 1.x only ), options, store locations and taxonomies from the db.
 
 
 
 
25
  function wpsl_uninstall() {
26
 
27
  global $wpdb, $current_user;
wp-store-locator.php CHANGED
@@ -3,8 +3,8 @@
3
  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: http://wpstorelocator.co/
7
- Version: 2.0.4
8
  Text Domain: wpsl
9
  Domain Path: /languages/
10
  License: GPL v3
@@ -30,7 +30,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
30
  @author Tijmen Smit
31
  */
32
 
33
- if ( !class_exists( 'WP_Store_locator' ) ) {
34
 
35
  class WP_Store_locator {
36
 
@@ -58,7 +58,7 @@ if ( !class_exists( 'WP_Store_locator' ) ) {
58
  public function define_constants() {
59
 
60
  if ( !defined( 'WPSL_VERSION_NUM' ) )
61
- define( 'WPSL_VERSION_NUM', '2.0.4' );
62
 
63
  if ( !defined( 'WPSL_URL' ) )
64
  define( 'WPSL_URL', plugin_dir_url( __FILE__ ) );
3
  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.1.0
8
  Text Domain: wpsl
9
  Domain Path: /languages/
10
  License: GPL v3
30
  @author Tijmen Smit
31
  */
32
 
33
+ if ( !class_exists( 'WP_Store_locator' ) ) {
34
 
35
  class WP_Store_locator {
36
 
58
  public function define_constants() {
59
 
60
  if ( !defined( 'WPSL_VERSION_NUM' ) )
61
+ define( 'WPSL_VERSION_NUM', '2.1.0' );
62
 
63
  if ( !defined( 'WPSL_URL' ) )
64
  define( 'WPSL_URL', plugin_dir_url( __FILE__ ) );