Version Description
Download this release
Release Info
Developer | tijmensmit |
Plugin | WP Store Locator |
Version | 2.0.4 |
Comparing to | |
See all releases |
Code changes from version 2.0.3 to 2.0.4
- admin/class-admin.php +30 -30
- admin/class-geocode.php +15 -15
- admin/class-metaboxes.php +52 -50
- admin/class-notices.php +11 -11
- admin/class-settings.php +42 -40
- admin/css/style.min.css +1 -1
- admin/roles.php +9 -8
- admin/templates/map-settings.php +17 -2
- css/styles.css +0 -2
- frontend/class-frontend.php +128 -95
- frontend/underscore-functions.php +8 -6
- inc/class-i18n.php +13 -13
- inc/class-post-types.php +15 -15
- inc/install.php +9 -9
- inc/wpsl-functions.php +20 -16
- js/wpsl-gmap.js +354 -296
- js/wpsl-gmap.min.js +1 -1
- languages/wpsl-nl_NL.mo +0 -0
- languages/wpsl-nl_NL.po +526 -513
- languages/wpsl.pot +513 -520
- readme.txt +11 -3
- uninstall.php +8 -9
- wp-store-locator.php +10 -11
admin/class-admin.php
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
/**
|
3 |
* Admin class
|
4 |
*
|
5 |
-
* @
|
6 |
-
* @since
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
@@ -13,30 +13,30 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
13 |
/**
|
14 |
* Handle the backend of the store locator
|
15 |
*
|
16 |
-
* @since 1.0
|
17 |
*/
|
18 |
class WPSL_Admin {
|
19 |
|
20 |
/**
|
21 |
-
* @since 2.0
|
22 |
* @var WPSL_Metaboxes
|
23 |
*/
|
24 |
public $metaboxes;
|
25 |
|
26 |
/**
|
27 |
-
* @since 2.0
|
28 |
* @var WPSL_Geocode
|
29 |
*/
|
30 |
public $geocode;
|
31 |
|
32 |
/**
|
33 |
-
* @since 2.0
|
34 |
* @var WPSL_Notices
|
35 |
*/
|
36 |
public $notices;
|
37 |
|
38 |
/**
|
39 |
-
* @since 2.0
|
40 |
* @var WPSL_Settings
|
41 |
*/
|
42 |
public $settings_page;
|
@@ -63,7 +63,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
63 |
/**
|
64 |
* Include all the required files.
|
65 |
*
|
66 |
-
* @since 2.0
|
67 |
* @return void
|
68 |
*/
|
69 |
public function includes() {
|
@@ -77,7 +77,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
77 |
/**
|
78 |
* Init the classes.
|
79 |
*
|
80 |
-
* @since 2.0
|
81 |
* @return void
|
82 |
*/
|
83 |
public function init() {
|
@@ -91,7 +91,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
91 |
* Register a callback function for the settings page
|
92 |
* and check if we need to show the "missing start point" warning.
|
93 |
*
|
94 |
-
* @since 1.0
|
95 |
* @return void
|
96 |
*/
|
97 |
public function admin_init() {
|
@@ -109,7 +109,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
109 |
/**
|
110 |
* Display an error message when no start location is defined.
|
111 |
*
|
112 |
-
* @since 1.2
|
113 |
* @return void
|
114 |
*/
|
115 |
public function show_location_warning() {
|
@@ -124,7 +124,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
124 |
/**
|
125 |
* Disable the missing start location warning.
|
126 |
*
|
127 |
-
* @since 1.2
|
128 |
* @return void
|
129 |
*/
|
130 |
public function disable_location_warning_ajax() {
|
@@ -143,7 +143,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
143 |
/**
|
144 |
* Add the menu pages.
|
145 |
*
|
146 |
-
* @since 1.0
|
147 |
* @return void
|
148 |
*/
|
149 |
public function create_admin_menu() {
|
@@ -153,7 +153,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
153 |
/**
|
154 |
* Show the settings page.
|
155 |
*
|
156 |
-
* @since 1.0
|
157 |
* @return void
|
158 |
*/
|
159 |
public function show_settings() {
|
@@ -165,7 +165,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
165 |
*
|
166 |
* This is called when a post it saved, deleted, trashed or untrashed.
|
167 |
*
|
168 |
-
* @since 2.0
|
169 |
* @return void
|
170 |
*/
|
171 |
public function maybe_delete_autoload_transient( $post_id ) {
|
@@ -192,7 +192,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
192 |
* Otherwise it can happen the user switches to Spanish,
|
193 |
* but ends up seeing the store data in the wrong language.
|
194 |
*
|
195 |
-
* @since 2.0
|
196 |
* @return void
|
197 |
*/
|
198 |
public function delete_autoload_transient() {
|
@@ -215,7 +215,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
215 |
*
|
216 |
* This is supported by WP 3.8 or higher
|
217 |
*
|
218 |
-
* @since 1.0
|
219 |
* @return void
|
220 |
*/
|
221 |
private function check_icon_font_usage() {
|
@@ -276,7 +276,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
276 |
/**
|
277 |
* Plugin settings that are used in the wpsl-admin.js.
|
278 |
*
|
279 |
-
* @since 2.0
|
280 |
* @return array $settings_js The settings used in the wpsl-admin.js
|
281 |
*/
|
282 |
public function js_settings() {
|
@@ -296,7 +296,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
296 |
/**
|
297 |
* Add the required admin script.
|
298 |
*
|
299 |
-
* @since 1.0
|
300 |
* @return void
|
301 |
*/
|
302 |
public function admin_scripts() {
|
@@ -305,16 +305,16 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
305 |
|
306 |
$min = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
|
307 |
|
308 |
-
|
309 |
wp_enqueue_script( 'wpsl-admin-js', plugins_url( '/js/wpsl-admin'. $min .'.js', __FILE__ ), array( 'jquery' ), WPSL_VERSION_NUM, true );
|
310 |
|
311 |
$this->maybe_show_pointer();
|
312 |
$this->check_icon_font_usage();
|
313 |
|
314 |
-
|
315 |
if ( ( get_post_type() == 'wpsl_stores' ) || ( isset( $_GET['post_type'] ) && ( $_GET['post_type'] == 'wpsl_stores' ) ) ) {
|
316 |
|
317 |
-
|
318 |
$this->deregister_other_gmaps();
|
319 |
|
320 |
wp_enqueue_style( 'jquery-style', '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/smoothness/jquery-ui.css' );
|
@@ -322,7 +322,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
322 |
|
323 |
wp_enqueue_media();
|
324 |
wp_enqueue_script( 'jquery-ui-dialog' );
|
325 |
-
wp_enqueue_script( 'wpsl-gmap', ( '//maps.google.com/maps/api/js?
|
326 |
wp_enqueue_script( 'wpsl-queue', plugins_url( '/js/ajax-queue'. $min .'.js', __FILE__ ), array( 'jquery' ), WPSL_VERSION_NUM, true );
|
327 |
wp_enqueue_script( 'wpsl-retina', plugins_url( '/js/retina'. $min .'.js', __FILE__ ), array( 'jquery' ), WPSL_VERSION_NUM, true );
|
328 |
|
@@ -334,14 +334,14 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
334 |
/**
|
335 |
* Check if we need to show the wpsl pointer.
|
336 |
*
|
337 |
-
* @since 2.0
|
338 |
* @return void
|
339 |
*/
|
340 |
public function maybe_show_pointer() {
|
341 |
|
342 |
$dismissed_pointers = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
|
343 |
|
344 |
-
|
345 |
if ( !in_array( 'wpsl_signup_pointer', $dismissed_pointers ) ) {
|
346 |
wp_enqueue_style( 'wp-pointer' );
|
347 |
wp_enqueue_script( 'wp-pointer' );
|
@@ -353,7 +353,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
353 |
/**
|
354 |
* Add the script for the welcome pointer.
|
355 |
*
|
356 |
-
* @since 2.0
|
357 |
* @return void
|
358 |
*/
|
359 |
public function welcome_pointer_script() {
|
@@ -381,7 +381,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
381 |
}
|
382 |
}).pointer( 'open' );
|
383 |
|
384 |
-
|
385 |
$( ".wpsl-mc-wrap #mc-embedded-subscribe" ).on( "click", function() {
|
386 |
$( ".wp-pointer .close" ).trigger( "click" );
|
387 |
});
|
@@ -395,7 +395,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
395 |
/**
|
396 |
* Add action links to the plugin row.
|
397 |
*
|
398 |
-
* @since 2.0
|
399 |
* @param array $links The existing action links
|
400 |
* @param string $file The file path of the current plugin
|
401 |
* @return array $links The modified links
|
@@ -416,7 +416,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
416 |
/**
|
417 |
* Change the footer text on the settings page.
|
418 |
*
|
419 |
-
* @since 2.0
|
420 |
* @param string $text The current footer text
|
421 |
* @return string $text Either the original or modified footer text
|
422 |
*/
|
@@ -424,7 +424,7 @@ if ( !class_exists( 'WPSL_Admin' ) ) {
|
|
424 |
|
425 |
$current_screen = get_current_screen();
|
426 |
|
427 |
-
|
428 |
if ( isset( $current_screen->id ) && $current_screen->id == 'wpsl_stores_page_wpsl_settings' ) {
|
429 |
$text = sprintf( __( 'If you like this plugin please leave us a %s5 star%s rating.', 'wpsl' ), '<a href="https://wordpress.org/support/view/plugin-reviews/wp-store-locator?filter=5#postform" target="_blank"><strong>', '</strong></a>' );
|
430 |
}
|
2 |
/**
|
3 |
* Admin class
|
4 |
*
|
5 |
+
* @author Tijmen Smit
|
6 |
+
* @since 1.0.0
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
13 |
/**
|
14 |
* Handle the backend of the store locator
|
15 |
*
|
16 |
+
* @since 1.0.0
|
17 |
*/
|
18 |
class WPSL_Admin {
|
19 |
|
20 |
/**
|
21 |
+
* @since 2.0.0
|
22 |
* @var WPSL_Metaboxes
|
23 |
*/
|
24 |
public $metaboxes;
|
25 |
|
26 |
/**
|
27 |
+
* @since 2.0.0
|
28 |
* @var WPSL_Geocode
|
29 |
*/
|
30 |
public $geocode;
|
31 |
|
32 |
/**
|
33 |
+
* @since 2.0.0
|
34 |
* @var WPSL_Notices
|
35 |
*/
|
36 |
public $notices;
|
37 |
|
38 |
/**
|
39 |
+
* @since 2.0.0
|
40 |
* @var WPSL_Settings
|
41 |
*/
|
42 |
public $settings_page;
|
63 |
/**
|
64 |
* Include all the required files.
|
65 |
*
|
66 |
+
* @since 2.0.0
|
67 |
* @return void
|
68 |
*/
|
69 |
public function includes() {
|
77 |
/**
|
78 |
* Init the classes.
|
79 |
*
|
80 |
+
* @since 2.0.0
|
81 |
* @return void
|
82 |
*/
|
83 |
public function init() {
|
91 |
* Register a callback function for the settings page
|
92 |
* and check if we need to show the "missing start point" warning.
|
93 |
*
|
94 |
+
* @since 1.0.0
|
95 |
* @return void
|
96 |
*/
|
97 |
public function admin_init() {
|
109 |
/**
|
110 |
* Display an error message when no start location is defined.
|
111 |
*
|
112 |
+
* @since 1.2.0
|
113 |
* @return void
|
114 |
*/
|
115 |
public function show_location_warning() {
|
124 |
/**
|
125 |
* Disable the missing start location warning.
|
126 |
*
|
127 |
+
* @since 1.2.0
|
128 |
* @return void
|
129 |
*/
|
130 |
public function disable_location_warning_ajax() {
|
143 |
/**
|
144 |
* Add the menu pages.
|
145 |
*
|
146 |
+
* @since 1.0.0
|
147 |
* @return void
|
148 |
*/
|
149 |
public function create_admin_menu() {
|
153 |
/**
|
154 |
* Show the settings page.
|
155 |
*
|
156 |
+
* @since 1.0.0
|
157 |
* @return void
|
158 |
*/
|
159 |
public function show_settings() {
|
165 |
*
|
166 |
* This is called when a post it saved, deleted, trashed or untrashed.
|
167 |
*
|
168 |
+
* @since 2.0.0
|
169 |
* @return void
|
170 |
*/
|
171 |
public function maybe_delete_autoload_transient( $post_id ) {
|
192 |
* Otherwise it can happen the user switches to Spanish,
|
193 |
* but ends up seeing the store data in the wrong language.
|
194 |
*
|
195 |
+
* @since 2.0.0
|
196 |
* @return void
|
197 |
*/
|
198 |
public function delete_autoload_transient() {
|
215 |
*
|
216 |
* This is supported by WP 3.8 or higher
|
217 |
*
|
218 |
+
* @since 1.0.0
|
219 |
* @return void
|
220 |
*/
|
221 |
private function check_icon_font_usage() {
|
276 |
/**
|
277 |
* Plugin settings that are used in the wpsl-admin.js.
|
278 |
*
|
279 |
+
* @since 2.0.0
|
280 |
* @return array $settings_js The settings used in the wpsl-admin.js
|
281 |
*/
|
282 |
public function js_settings() {
|
296 |
/**
|
297 |
* Add the required admin script.
|
298 |
*
|
299 |
+
* @since 1.0.0
|
300 |
* @return void
|
301 |
*/
|
302 |
public function admin_scripts() {
|
305 |
|
306 |
$min = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
|
307 |
|
308 |
+
// Always load the main js admin file to make sure the "dismiss" link in the location notice works.
|
309 |
wp_enqueue_script( 'wpsl-admin-js', plugins_url( '/js/wpsl-admin'. $min .'.js', __FILE__ ), array( 'jquery' ), WPSL_VERSION_NUM, true );
|
310 |
|
311 |
$this->maybe_show_pointer();
|
312 |
$this->check_icon_font_usage();
|
313 |
|
314 |
+
// Only enqueue the rest of the css/js files if we are on a page that belongs to the store locator.
|
315 |
if ( ( get_post_type() == 'wpsl_stores' ) || ( isset( $_GET['post_type'] ) && ( $_GET['post_type'] == 'wpsl_stores' ) ) ) {
|
316 |
|
317 |
+
// Make sure no other Google Map scripts can interfere with the one from the store locator.
|
318 |
$this->deregister_other_gmaps();
|
319 |
|
320 |
wp_enqueue_style( 'jquery-style', '//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/smoothness/jquery-ui.css' );
|
322 |
|
323 |
wp_enqueue_media();
|
324 |
wp_enqueue_script( 'jquery-ui-dialog' );
|
325 |
+
wp_enqueue_script( 'wpsl-gmap', ( '//maps.google.com/maps/api/js?libraries=places&language=' . $wpsl_settings['api_language'] ), false, '', true );
|
326 |
wp_enqueue_script( 'wpsl-queue', plugins_url( '/js/ajax-queue'. $min .'.js', __FILE__ ), array( 'jquery' ), WPSL_VERSION_NUM, true );
|
327 |
wp_enqueue_script( 'wpsl-retina', plugins_url( '/js/retina'. $min .'.js', __FILE__ ), array( 'jquery' ), WPSL_VERSION_NUM, true );
|
328 |
|
334 |
/**
|
335 |
* Check if we need to show the wpsl pointer.
|
336 |
*
|
337 |
+
* @since 2.0.0
|
338 |
* @return void
|
339 |
*/
|
340 |
public function maybe_show_pointer() {
|
341 |
|
342 |
$dismissed_pointers = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
|
343 |
|
344 |
+
// If the user hasn't dismissed the wpsl pointer, enqueue the script and style, and call the action hook.
|
345 |
if ( !in_array( 'wpsl_signup_pointer', $dismissed_pointers ) ) {
|
346 |
wp_enqueue_style( 'wp-pointer' );
|
347 |
wp_enqueue_script( 'wp-pointer' );
|
353 |
/**
|
354 |
* Add the script for the welcome pointer.
|
355 |
*
|
356 |
+
* @since 2.0.0
|
357 |
* @return void
|
358 |
*/
|
359 |
public function welcome_pointer_script() {
|
381 |
}
|
382 |
}).pointer( 'open' );
|
383 |
|
384 |
+
// If a user clicked the "subscribe" button trigger the close button for the pointer.
|
385 |
$( ".wpsl-mc-wrap #mc-embedded-subscribe" ).on( "click", function() {
|
386 |
$( ".wp-pointer .close" ).trigger( "click" );
|
387 |
});
|
395 |
/**
|
396 |
* Add action links to the plugin row.
|
397 |
*
|
398 |
+
* @since 2.0.0
|
399 |
* @param array $links The existing action links
|
400 |
* @param string $file The file path of the current plugin
|
401 |
* @return array $links The modified links
|
416 |
/**
|
417 |
* Change the footer text on the settings page.
|
418 |
*
|
419 |
+
* @since 2.0.0
|
420 |
* @param string $text The current footer text
|
421 |
* @return string $text Either the original or modified footer text
|
422 |
*/
|
424 |
|
425 |
$current_screen = get_current_screen();
|
426 |
|
427 |
+
// Only modify the footer text if we are on the settings page of the wp store locator.
|
428 |
if ( isset( $current_screen->id ) && $current_screen->id == 'wpsl_stores_page_wpsl_settings' ) {
|
429 |
$text = sprintf( __( 'If you like this plugin please leave us a %s5 star%s rating.', 'wpsl' ), '<a href="https://wordpress.org/support/view/plugin-reviews/wp-store-locator?filter=5#postform" target="_blank"><strong>', '</strong></a>' );
|
430 |
}
|
admin/class-geocode.php
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
/**
|
3 |
* Geocode store locations
|
4 |
*
|
5 |
-
* @
|
6 |
-
* @since
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
@@ -18,7 +18,7 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
|
|
18 |
* The latlng value is only present if the user provided it himself, or used the preview
|
19 |
* on the map. Otherwise the latlng will be missing and we need to geocode the supplied address.
|
20 |
*
|
21 |
-
* @since 2.0
|
22 |
* @param integer $post_id Store post ID
|
23 |
* @param array $store_data The store data
|
24 |
* @return void
|
@@ -27,10 +27,10 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
|
|
27 |
|
28 |
$location_data = array();
|
29 |
|
30 |
-
|
31 |
$latlng = $this->validate_latlng( $store_data['lat'], $store_data['lng'] );
|
32 |
|
33 |
-
|
34 |
if ( !$latlng ) {
|
35 |
$response = $this->geocode_location( $post_id, $store_data );
|
36 |
$location_data['country_iso'] = $response['country_iso'];
|
@@ -39,7 +39,7 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
|
|
39 |
$location_data['latlng'] = $latlng;
|
40 |
}
|
41 |
|
42 |
-
|
43 |
$location_data['latlng'] = $this->format_latlng( $location_data['latlng'] );
|
44 |
|
45 |
$location_data['lat'] = $location_data['latlng']['lat'];
|
@@ -51,7 +51,7 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
|
|
51 |
/**
|
52 |
* Geocode the store location.
|
53 |
*
|
54 |
-
* @since 1.0
|
55 |
* @param integer $post_id Store post ID
|
56 |
* @param array $store_data The submitted store data ( address, city, country etc )
|
57 |
* @return void
|
@@ -81,7 +81,7 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
|
|
81 |
}
|
82 |
}
|
83 |
|
84 |
-
|
85 |
if ( !empty( $msg ) ) {
|
86 |
$this->geocode_failed( $msg, $post_id );
|
87 |
}
|
@@ -90,7 +90,7 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
|
|
90 |
/**
|
91 |
* Make the API call to Google to geocode the address.
|
92 |
*
|
93 |
-
* @since 1.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
|
@@ -114,7 +114,7 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
|
|
114 |
/**
|
115 |
* If there is a problem with the geocoding then we save the notice and change the post status to pending.
|
116 |
*
|
117 |
-
* @since 2.0
|
118 |
* @param string $msg The geocode error message
|
119 |
* @param integer $post_id Store post ID
|
120 |
* @return void
|
@@ -130,7 +130,7 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
|
|
130 |
/**
|
131 |
* Save the store location data.
|
132 |
*
|
133 |
-
* @since 2.0
|
134 |
* @param integer $post_id Store post ID
|
135 |
* @param array $location_data The country code and latlng
|
136 |
* @return void
|
@@ -148,7 +148,7 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
|
|
148 |
/**
|
149 |
* Make sure the latlng value has a max of 6 decimals.
|
150 |
*
|
151 |
-
* @since 2.0
|
152 |
* @param array $latlng The latlng data
|
153 |
* @return array $latlng The formatted latlng
|
154 |
*/
|
@@ -166,7 +166,7 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
|
|
166 |
/**
|
167 |
* Filter out the two letter country code from the api respsonse.
|
168 |
*
|
169 |
-
* @since 1.0
|
170 |
* @param array $response The full API geocode response
|
171 |
* @return string $country_name The country code
|
172 |
*/
|
@@ -174,7 +174,7 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
|
|
174 |
|
175 |
$length = count( $response['results'][0]['address_components'] );
|
176 |
|
177 |
-
|
178 |
for ( $i = 0; $i < $length; $i++ ) {
|
179 |
$address_component = $response['results'][0]['address_components'][$i]['types'];
|
180 |
|
@@ -191,7 +191,7 @@ if ( !class_exists( 'WPSL_Geocode' ) ) {
|
|
191 |
/**
|
192 |
* Validate the latlng values.
|
193 |
*
|
194 |
-
* @since 1.0
|
195 |
* @param string $lat The latitude value
|
196 |
* @param string $lng The longitude value
|
197 |
* @return boolean|array $latlng The validated latlng values or false if it fails
|
2 |
/**
|
3 |
* Geocode store locations
|
4 |
*
|
5 |
+
* @author Tijmen Smit
|
6 |
+
* @since 2.0.0
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
18 |
* The latlng value is only present if the user provided it himself, or used the preview
|
19 |
* on the map. Otherwise the latlng will be missing and we need to geocode the supplied address.
|
20 |
*
|
21 |
+
* @since 2.0.0
|
22 |
* @param integer $post_id Store post ID
|
23 |
* @param array $store_data The store data
|
24 |
* @return void
|
27 |
|
28 |
$location_data = array();
|
29 |
|
30 |
+
// Check if the latlng data is valid.
|
31 |
$latlng = $this->validate_latlng( $store_data['lat'], $store_data['lng'] );
|
32 |
|
33 |
+
// If we don't have a valid latlng value, we geocode the supplied address to get one.
|
34 |
if ( !$latlng ) {
|
35 |
$response = $this->geocode_location( $post_id, $store_data );
|
36 |
$location_data['country_iso'] = $response['country_iso'];
|
39 |
$location_data['latlng'] = $latlng;
|
40 |
}
|
41 |
|
42 |
+
// Restrict the latlng to a max of 6 decimals.
|
43 |
$location_data['latlng'] = $this->format_latlng( $location_data['latlng'] );
|
44 |
|
45 |
$location_data['lat'] = $location_data['latlng']['lat'];
|
51 |
/**
|
52 |
* Geocode the store location.
|
53 |
*
|
54 |
+
* @since 1.0.0
|
55 |
* @param integer $post_id Store post ID
|
56 |
* @param array $store_data The submitted store data ( address, city, country etc )
|
57 |
* @return void
|
81 |
}
|
82 |
}
|
83 |
|
84 |
+
// Handle the geocode code errors messages.
|
85 |
if ( !empty( $msg ) ) {
|
86 |
$this->geocode_failed( $msg, $post_id );
|
87 |
}
|
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
|
114 |
/**
|
115 |
* If there is a problem with the geocoding then we save the notice and change the post status to pending.
|
116 |
*
|
117 |
+
* @since 2.0.0
|
118 |
* @param string $msg The geocode error message
|
119 |
* @param integer $post_id Store post ID
|
120 |
* @return void
|
130 |
/**
|
131 |
* Save the store location data.
|
132 |
*
|
133 |
+
* @since 2.0.0
|
134 |
* @param integer $post_id Store post ID
|
135 |
* @param array $location_data The country code and latlng
|
136 |
* @return void
|
148 |
/**
|
149 |
* Make sure the latlng value has a max of 6 decimals.
|
150 |
*
|
151 |
+
* @since 2.0.0
|
152 |
* @param array $latlng The latlng data
|
153 |
* @return array $latlng The formatted latlng
|
154 |
*/
|
166 |
/**
|
167 |
* Filter out the two letter country code from the api respsonse.
|
168 |
*
|
169 |
+
* @since 1.0.0
|
170 |
* @param array $response The full API geocode response
|
171 |
* @return string $country_name The country code
|
172 |
*/
|
174 |
|
175 |
$length = count( $response['results'][0]['address_components'] );
|
176 |
|
177 |
+
// Loop over the address components untill we find the country, political part.
|
178 |
for ( $i = 0; $i < $length; $i++ ) {
|
179 |
$address_component = $response['results'][0]['address_components'][$i]['types'];
|
180 |
|
191 |
/**
|
192 |
* Validate the latlng values.
|
193 |
*
|
194 |
+
* @since 1.0.0
|
195 |
* @param string $lat The latitude value
|
196 |
* @param string $lng The longitude value
|
197 |
* @return boolean|array $latlng The validated latlng values or false if it fails
|
admin/class-metaboxes.php
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
/**
|
3 |
* Handle the metaboxes
|
4 |
*
|
5 |
-
* @
|
6 |
-
* @since
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
@@ -13,7 +13,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
13 |
/**
|
14 |
* Handle the meta boxes
|
15 |
*
|
16 |
-
* @since 2.0
|
17 |
*/
|
18 |
class WPSL_Metaboxes {
|
19 |
|
@@ -26,7 +26,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
26 |
/**
|
27 |
* Add the meta boxes.
|
28 |
*
|
29 |
-
* @since 2.0
|
30 |
* @return void
|
31 |
*/
|
32 |
public function add_meta_boxes() {
|
@@ -37,7 +37,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
37 |
/**
|
38 |
* The store locator meta box fields.
|
39 |
*
|
40 |
-
* @since 2.0
|
41 |
* @return array $meta_fields The meta box fields used for the store details
|
42 |
*/
|
43 |
public function meta_box_fields() {
|
@@ -105,7 +105,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
105 |
/**
|
106 |
* Create the store locator metabox input fields.
|
107 |
*
|
108 |
-
* @since 2.0
|
109 |
* @return void
|
110 |
*/
|
111 |
function create_meta_fields() {
|
@@ -122,7 +122,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
122 |
<div class="wpsl-store-meta <?php if ( floatval( $wp_version ) < 3.8 ) { echo 'wpsl-pre-38'; } // Fix CSS issue with < 3.8 versions ?>">
|
123 |
<?php
|
124 |
|
125 |
-
|
126 |
foreach ( $this->meta_box_fields() as $tab => $meta_fields ) {
|
127 |
$active_class = ( $i == 0 ) ? ' wpsl-active' : '';
|
128 |
|
@@ -137,7 +137,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
137 |
|
138 |
echo '<ul id="wpsl-meta-nav">' . $tab_items . '</ul>';
|
139 |
|
140 |
-
|
141 |
foreach ( $this->meta_box_fields() as $tab => $meta_fields ) {
|
142 |
$active_class = ( $j == 0 ) ? ' wpsl-active' : '';
|
143 |
|
@@ -148,14 +148,14 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
148 |
|
149 |
foreach ( $meta_fields as $field_key => $field_data ) {
|
150 |
|
151 |
-
|
152 |
$field_type = ( empty( $field_data['type'] ) ) ? 'text' : $field_data['type'];
|
153 |
$args = array(
|
154 |
'key' => $field_key,
|
155 |
'data' => $field_data
|
156 |
);
|
157 |
|
158 |
-
|
159 |
if ( method_exists( $this, $field_type . '_input' ) ) {
|
160 |
call_user_func( array( $this, $field_type . '_input' ), $args );
|
161 |
} else {
|
@@ -176,7 +176,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
176 |
/**
|
177 |
* Create the li elements that are used in the tabs above the store meta fields.
|
178 |
*
|
179 |
-
* @since 2.0
|
180 |
* @param string $tab The name of the tab
|
181 |
* @param string $active_class Either the class name or empty
|
182 |
* @return string $nav_item The HTML for the nav list
|
@@ -192,7 +192,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
192 |
/**
|
193 |
* Set the CSS class that tells JS it's an required input field.
|
194 |
*
|
195 |
-
* @since 2.0
|
196 |
* @param array $args The css classes
|
197 |
* @param string $single Whether to return just the class name, or also include the class=""
|
198 |
* @return string|void $response The required CSS class or nothing
|
@@ -213,7 +213,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
213 |
/**
|
214 |
* Check if the current field is required.
|
215 |
*
|
216 |
-
* @since 2.0
|
217 |
* @param array $args The CSS classes
|
218 |
* @return string|void The HTML for the required element or nothing
|
219 |
*/
|
@@ -229,7 +229,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
229 |
/**
|
230 |
* Get the prefilled field data.
|
231 |
*
|
232 |
-
* @since 2.0
|
233 |
* @param string $field_name The name of the field to get the data for
|
234 |
* @return string $field_data The field data
|
235 |
*/
|
@@ -239,7 +239,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
239 |
|
240 |
$field_data = '';
|
241 |
|
242 |
-
|
243 |
if ( $pagenow == 'post.php' && isset( $_GET['action'] ) && $_GET['action'] == 'edit' ) {
|
244 |
return;
|
245 |
}
|
@@ -259,7 +259,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
259 |
/**
|
260 |
* Create a text input field.
|
261 |
*
|
262 |
-
* @since 2.0
|
263 |
* @param array $args The input name and label
|
264 |
* @return void
|
265 |
*/
|
@@ -267,7 +267,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
267 |
|
268 |
$saved_value = $this->get_store_meta( $args['key'] );
|
269 |
|
270 |
-
|
271 |
if ( !$saved_value ) {
|
272 |
$saved_value = $this->get_prefilled_field_data( $args['key'] );
|
273 |
}
|
@@ -284,7 +284,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
284 |
/**
|
285 |
* Create a hidden input field.
|
286 |
*
|
287 |
-
* @since 2.0
|
288 |
* @param array $args The name of the meta value
|
289 |
* @return void
|
290 |
*/
|
@@ -301,7 +301,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
301 |
/**
|
302 |
* Create a textarea field.
|
303 |
*
|
304 |
-
* @since 2.0
|
305 |
* @param array $args The textarea name and label
|
306 |
* @return void
|
307 |
*/
|
@@ -313,7 +313,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
313 |
$saved_value = '';
|
314 |
}
|
315 |
|
316 |
-
|
317 |
if ( !$saved_value ) {
|
318 |
$prefilled_value = $this->get_prefilled_field_data( $args['key'] );
|
319 |
|
@@ -334,7 +334,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
334 |
/**
|
335 |
* Create a checkbox field.
|
336 |
*
|
337 |
-
* @since 2.0
|
338 |
* @param array $args The checkbox name and label
|
339 |
* @return void
|
340 |
*/
|
@@ -354,13 +354,13 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
354 |
/**
|
355 |
* Create a dropdown field.
|
356 |
*
|
357 |
-
* @since 2.0
|
358 |
* @param array $args The dropdown name and label
|
359 |
* @return void
|
360 |
*/
|
361 |
public function dropdown_input( $args ) {
|
362 |
|
363 |
-
|
364 |
if ( $args['key'] == 'hours' ) {
|
365 |
$this->opening_hours();
|
366 |
} else {
|
@@ -384,7 +384,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
384 |
/**
|
385 |
* Create the openings hours table with the hours as dropdowns.
|
386 |
*
|
387 |
-
* @since 2.0
|
388 |
* @param string $location The location were the opening hours are shown.
|
389 |
* @return void
|
390 |
*/
|
@@ -401,14 +401,14 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
401 |
$opening_hours = get_post_meta( $post->ID, 'wpsl_hours' );
|
402 |
}
|
403 |
|
404 |
-
|
405 |
if ( !isset( $opening_hours[0]['monday'] ) ) {
|
406 |
$opening_hours = $wpsl_settings['editor_hours']['dropdown'];
|
407 |
} else {
|
408 |
$opening_hours = $opening_hours[0];
|
409 |
}
|
410 |
|
411 |
-
|
412 |
$hour_format = $this->find_hour_format( $opening_hours );
|
413 |
|
414 |
if ( $hour_format == 24 ) {
|
@@ -417,7 +417,8 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
417 |
$hour_class = 'wpsl-twelve-format';
|
418 |
}
|
419 |
|
420 |
-
/*
|
|
|
421 |
* otherwise just show the table with the opening hour dropdowns.
|
422 |
*/
|
423 |
if ( $location == 'store_page' ) {
|
@@ -444,7 +445,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
444 |
<td id="wpsl-hours-<?php echo esc_attr( $index ); ?>" class="wpsl-opening-hours" data-day="<?php echo esc_attr( $index ); ?>">
|
445 |
<?php
|
446 |
if ( $hour_count > 0 ) {
|
447 |
-
|
448 |
while ( $i < $hour_count ) {
|
449 |
if ( isset( $opening_hours[$index][$i] ) ) {
|
450 |
$hours = explode( ',', $opening_hours[$index][$i] );
|
@@ -452,7 +453,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
452 |
$hours = '';
|
453 |
}
|
454 |
|
455 |
-
|
456 |
if ( ( count( $hours ) == 2 ) && ( !empty( $hours[0] ) ) && ( !empty( $hours[1] ) ) ) {
|
457 |
$args = array(
|
458 |
'day' => $index,
|
@@ -495,7 +496,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
495 |
/**
|
496 |
* Show the 'store closed' message.
|
497 |
*
|
498 |
-
* @since 2.0
|
499 |
* @param string $name The name for the input field
|
500 |
* @param string $day The day the store is closed
|
501 |
* @return void
|
@@ -510,7 +511,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
510 |
* We use this to determine the selected value for the dropdown in the store editor.
|
511 |
* So a user can decide to change the opening hour format.
|
512 |
*
|
513 |
-
* @since 2.0
|
514 |
* @param array $opening_hours The opening hours for the whole week
|
515 |
* @return string The hour format used in the opening hours
|
516 |
*/
|
@@ -534,7 +535,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
534 |
/**
|
535 |
* Create the opening hours dropdown.
|
536 |
*
|
537 |
-
* @since 2.0
|
538 |
* @param array $args The data to create the opening hours dropdown
|
539 |
* @param string $period Either set to open or close
|
540 |
* @return string $select The html for the dropdown
|
@@ -558,7 +559,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
558 |
|
559 |
for ( $i = $open; $i <= $close; $i += $hour_interval ) {
|
560 |
|
561 |
-
|
562 |
if ( $selected_time == date( $format, $i ) ) {
|
563 |
$selected = 'selected="selected"';
|
564 |
} else {
|
@@ -576,7 +577,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
576 |
/**
|
577 |
* Get the store post meta.
|
578 |
*
|
579 |
-
* @since 2.0
|
580 |
* @param string $key The name of the meta value
|
581 |
* @return mixed|void $store_meta Meta value for the store field
|
582 |
*/
|
@@ -596,7 +597,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
596 |
/**
|
597 |
* Save the custom post data.
|
598 |
*
|
599 |
-
* @since 2.0
|
600 |
* @param integer $post_id store post ID
|
601 |
* @return void
|
602 |
*/
|
@@ -621,16 +622,16 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
621 |
|
622 |
$this->store_data = $_POST['wpsl'];
|
623 |
|
624 |
-
|
625 |
if ( isset( $this->store_data['hours'] ) && is_array( $this->store_data['hours'] ) && ( !empty( $this->store_data['hours'] ) ) ) {
|
626 |
$this->store_data['hours'] = $this->format_opening_hours();
|
627 |
}
|
628 |
|
629 |
-
|
630 |
foreach ( $this->meta_box_fields() as $tab => $meta_fields ) {
|
631 |
foreach ( $meta_fields as $field_key => $field_data ) {
|
632 |
|
633 |
-
|
634 |
if ( isset( $this->store_data[ $field_key ] ) && ( $this->store_data[ $field_key ] != "" ) ) {
|
635 |
if ( isset( $field_data['type'] ) && $field_data['type'] ) {
|
636 |
$field_type = $field_data['type'];
|
@@ -668,9 +669,9 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
668 |
}
|
669 |
}
|
670 |
|
671 |
-
/*
|
672 |
-
*
|
673 |
-
* and if we should delete the autoload transient.
|
674 |
*
|
675 |
* Otherwise show a notice for 'missing data' and set the post status to pending.
|
676 |
*/
|
@@ -686,14 +687,14 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
686 |
/**
|
687 |
* Loop through the opening hours and structure the data in a new array.
|
688 |
*
|
689 |
-
* @since 2.0
|
690 |
* @return array $opening_hours The formatted opening hours
|
691 |
*/
|
692 |
public function format_opening_hours() {
|
693 |
|
694 |
$week_days = wpsl_get_weekdays();
|
695 |
|
696 |
-
|
697 |
if ( isset( $_POST['wpsl_editor']['dropdown'] ) ) {
|
698 |
$store_hours = $_POST['wpsl_editor']['dropdown'];
|
699 |
} else if ( isset( $this->store_data['hours'] ) ) {
|
@@ -721,7 +722,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
721 |
/*
|
722 |
* Validate the 12 or 24 hr time format.
|
723 |
*
|
724 |
-
* @since 2.0
|
725 |
* @param string $hour The opening hour
|
726 |
* @return boolean true if the $hour format is valid
|
727 |
*/
|
@@ -729,7 +730,8 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
729 |
|
730 |
global $wpsl_settings;
|
731 |
|
732 |
-
/*
|
|
|
733 |
* But if validate_hour is called from the settings page then we
|
734 |
* should use the $_POST value to make sure we have the correct value.
|
735 |
*/
|
@@ -753,7 +755,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
753 |
/**
|
754 |
* Set the post status to pending instead of publish.
|
755 |
*
|
756 |
-
* @since 2.0
|
757 |
* @param integer $post_id store post ID
|
758 |
* @return void
|
759 |
*/
|
@@ -772,7 +774,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
772 |
* If one or more of the required fields are empty, we show a custom msg.
|
773 |
* So no need for the normal post update messages arg.
|
774 |
*
|
775 |
-
* @since 2.0
|
776 |
* @param string $location The destination url
|
777 |
* @return void
|
778 |
*/
|
@@ -783,7 +785,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
783 |
/**
|
784 |
* Make sure all the required post meta fields contain data.
|
785 |
*
|
786 |
-
* @since 2.0
|
787 |
* @param integer $post_id store post ID
|
788 |
* @return boolean
|
789 |
*/
|
@@ -806,7 +808,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
806 |
/**
|
807 |
* The html for the map preview in the sidebar.
|
808 |
*
|
809 |
-
* @since 2.0
|
810 |
* @return void
|
811 |
*/
|
812 |
public function map_preview() {
|
@@ -823,7 +825,7 @@ if ( !class_exists( 'WPSL_Metaboxes' ) ) {
|
|
823 |
/**
|
824 |
* Store update messages.
|
825 |
*
|
826 |
-
* @since 2.0
|
827 |
* @param array $messages Existing post update messages.
|
828 |
* @return array $messages Amended post update messages with new CPT update messages.
|
829 |
*/
|
2 |
/**
|
3 |
* Handle the metaboxes
|
4 |
*
|
5 |
+
* @author Tijmen Smit
|
6 |
+
* @since 2.0.0
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
13 |
/**
|
14 |
* Handle the meta boxes
|
15 |
*
|
16 |
+
* @since 2.0.0
|
17 |
*/
|
18 |
class WPSL_Metaboxes {
|
19 |
|
26 |
/**
|
27 |
* Add the meta boxes.
|
28 |
*
|
29 |
+
* @since 2.0.0
|
30 |
* @return void
|
31 |
*/
|
32 |
public function add_meta_boxes() {
|
37 |
/**
|
38 |
* The store locator meta box fields.
|
39 |
*
|
40 |
+
* @since 2.0.0
|
41 |
* @return array $meta_fields The meta box fields used for the store details
|
42 |
*/
|
43 |
public function meta_box_fields() {
|
105 |
/**
|
106 |
* Create the store locator metabox input fields.
|
107 |
*
|
108 |
+
* @since 2.0.0
|
109 |
* @return void
|
110 |
*/
|
111 |
function create_meta_fields() {
|
122 |
<div class="wpsl-store-meta <?php if ( floatval( $wp_version ) < 3.8 ) { echo 'wpsl-pre-38'; } // Fix CSS issue with < 3.8 versions ?>">
|
123 |
<?php
|
124 |
|
125 |
+
// Create the tab navigation for the meta boxes.
|
126 |
foreach ( $this->meta_box_fields() as $tab => $meta_fields ) {
|
127 |
$active_class = ( $i == 0 ) ? ' wpsl-active' : '';
|
128 |
|
137 |
|
138 |
echo '<ul id="wpsl-meta-nav">' . $tab_items . '</ul>';
|
139 |
|
140 |
+
// Create the input fields for the meta boxes.
|
141 |
foreach ( $this->meta_box_fields() as $tab => $meta_fields ) {
|
142 |
$active_class = ( $j == 0 ) ? ' wpsl-active' : '';
|
143 |
|
148 |
|
149 |
foreach ( $meta_fields as $field_key => $field_data ) {
|
150 |
|
151 |
+
// If no specific field type is set, we set it to text.
|
152 |
$field_type = ( empty( $field_data['type'] ) ) ? 'text' : $field_data['type'];
|
153 |
$args = array(
|
154 |
'key' => $field_key,
|
155 |
'data' => $field_data
|
156 |
);
|
157 |
|
158 |
+
// Check for a class method, otherwise enable a plugin hook.
|
159 |
if ( method_exists( $this, $field_type . '_input' ) ) {
|
160 |
call_user_func( array( $this, $field_type . '_input' ), $args );
|
161 |
} else {
|
176 |
/**
|
177 |
* Create the li elements that are used in the tabs above the store meta fields.
|
178 |
*
|
179 |
+
* @since 2.0.0
|
180 |
* @param string $tab The name of the tab
|
181 |
* @param string $active_class Either the class name or empty
|
182 |
* @return string $nav_item The HTML for the nav list
|
192 |
/**
|
193 |
* Set the CSS class that tells JS it's an required input field.
|
194 |
*
|
195 |
+
* @since 2.0.0
|
196 |
* @param array $args The css classes
|
197 |
* @param string $single Whether to return just the class name, or also include the class=""
|
198 |
* @return string|void $response The required CSS class or nothing
|
213 |
/**
|
214 |
* Check if the current field is required.
|
215 |
*
|
216 |
+
* @since 2.0.0
|
217 |
* @param array $args The CSS classes
|
218 |
* @return string|void The HTML for the required element or nothing
|
219 |
*/
|
229 |
/**
|
230 |
* Get the prefilled field data.
|
231 |
*
|
232 |
+
* @since 2.0.0
|
233 |
* @param string $field_name The name of the field to get the data for
|
234 |
* @return string $field_data The field data
|
235 |
*/
|
239 |
|
240 |
$field_data = '';
|
241 |
|
242 |
+
// Prefilled values are only used for new pages, not when a user edits an existing page.
|
243 |
if ( $pagenow == 'post.php' && isset( $_GET['action'] ) && $_GET['action'] == 'edit' ) {
|
244 |
return;
|
245 |
}
|
259 |
/**
|
260 |
* Create a text input field.
|
261 |
*
|
262 |
+
* @since 2.0.0
|
263 |
* @param array $args The input name and label
|
264 |
* @return void
|
265 |
*/
|
267 |
|
268 |
$saved_value = $this->get_store_meta( $args['key'] );
|
269 |
|
270 |
+
// If there is no existing meta value, check if a prefilled value exists for the input field.
|
271 |
if ( !$saved_value ) {
|
272 |
$saved_value = $this->get_prefilled_field_data( $args['key'] );
|
273 |
}
|
284 |
/**
|
285 |
* Create a hidden input field.
|
286 |
*
|
287 |
+
* @since 2.0.0
|
288 |
* @param array $args The name of the meta value
|
289 |
* @return void
|
290 |
*/
|
301 |
/**
|
302 |
* Create a textarea field.
|
303 |
*
|
304 |
+
* @since 2.0.0
|
305 |
* @param array $args The textarea name and label
|
306 |
* @return void
|
307 |
*/
|
313 |
$saved_value = '';
|
314 |
}
|
315 |
|
316 |
+
// If there is no existing meta value, check if a prefilled value exists for the textarea.
|
317 |
if ( !$saved_value ) {
|
318 |
$prefilled_value = $this->get_prefilled_field_data( $args['key'] );
|
319 |
|
334 |
/**
|
335 |
* Create a checkbox field.
|
336 |
*
|
337 |
+
* @since 2.0.0
|
338 |
* @param array $args The checkbox name and label
|
339 |
* @return void
|
340 |
*/
|
354 |
/**
|
355 |
* Create a dropdown field.
|
356 |
*
|
357 |
+
* @since 2.0.0
|
358 |
* @param array $args The dropdown name and label
|
359 |
* @return void
|
360 |
*/
|
361 |
public function dropdown_input( $args ) {
|
362 |
|
363 |
+
// The hour dropdown requires a different structure with multiple dropdowns.
|
364 |
if ( $args['key'] == 'hours' ) {
|
365 |
$this->opening_hours();
|
366 |
} else {
|
384 |
/**
|
385 |
* Create the openings hours table with the hours as dropdowns.
|
386 |
*
|
387 |
+
* @since 2.0.0
|
388 |
* @param string $location The location were the opening hours are shown.
|
389 |
* @return void
|
390 |
*/
|
401 |
$opening_hours = get_post_meta( $post->ID, 'wpsl_hours' );
|
402 |
}
|
403 |
|
404 |
+
// If we don't have any opening hours, we use the defaults.
|
405 |
if ( !isset( $opening_hours[0]['monday'] ) ) {
|
406 |
$opening_hours = $wpsl_settings['editor_hours']['dropdown'];
|
407 |
} else {
|
408 |
$opening_hours = $opening_hours[0];
|
409 |
}
|
410 |
|
411 |
+
// Find out whether we have a 12 or 24hr format.
|
412 |
$hour_format = $this->find_hour_format( $opening_hours );
|
413 |
|
414 |
if ( $hour_format == 24 ) {
|
417 |
$hour_class = 'wpsl-twelve-format';
|
418 |
}
|
419 |
|
420 |
+
/*
|
421 |
+
* Only include the 12 / 24hr dropdown switch if we are on store page,
|
422 |
* otherwise just show the table with the opening hour dropdowns.
|
423 |
*/
|
424 |
if ( $location == 'store_page' ) {
|
445 |
<td id="wpsl-hours-<?php echo esc_attr( $index ); ?>" class="wpsl-opening-hours" data-day="<?php echo esc_attr( $index ); ?>">
|
446 |
<?php
|
447 |
if ( $hour_count > 0 ) {
|
448 |
+
// Loop over the opening periods.
|
449 |
while ( $i < $hour_count ) {
|
450 |
if ( isset( $opening_hours[$index][$i] ) ) {
|
451 |
$hours = explode( ',', $opening_hours[$index][$i] );
|
453 |
$hours = '';
|
454 |
}
|
455 |
|
456 |
+
// If we don't have two parts or one of them is empty, then we set the store to closed.
|
457 |
if ( ( count( $hours ) == 2 ) && ( !empty( $hours[0] ) ) && ( !empty( $hours[1] ) ) ) {
|
458 |
$args = array(
|
459 |
'day' => $index,
|
496 |
/**
|
497 |
* Show the 'store closed' message.
|
498 |
*
|
499 |
+
* @since 2.0.0
|
500 |
* @param string $name The name for the input field
|
501 |
* @param string $day The day the store is closed
|
502 |
* @return void
|
511 |
* We use this to determine the selected value for the dropdown in the store editor.
|
512 |
* So a user can decide to change the opening hour format.
|
513 |
*
|
514 |
+
* @since 2.0.0
|
515 |
* @param array $opening_hours The opening hours for the whole week
|
516 |
* @return string The hour format used in the opening hours
|
517 |
*/
|
535 |
/**
|
536 |
* Create the opening hours dropdown.
|
537 |
*
|
538 |
+
* @since 2.0.0
|
539 |
* @param array $args The data to create the opening hours dropdown
|
540 |
* @param string $period Either set to open or close
|
541 |
* @return string $select The html for the dropdown
|
559 |
|
560 |
for ( $i = $open; $i <= $close; $i += $hour_interval ) {
|
561 |
|
562 |
+
// If the selected time matches the current time then we set it to active.
|
563 |
if ( $selected_time == date( $format, $i ) ) {
|
564 |
$selected = 'selected="selected"';
|
565 |
} else {
|
577 |
/**
|
578 |
* Get the store post meta.
|
579 |
*
|
580 |
+
* @since 2.0.0
|
581 |
* @param string $key The name of the meta value
|
582 |
* @return mixed|void $store_meta Meta value for the store field
|
583 |
*/
|
597 |
/**
|
598 |
* Save the custom post data.
|
599 |
*
|
600 |
+
* @since 2.0.0
|
601 |
* @param integer $post_id store post ID
|
602 |
* @return void
|
603 |
*/
|
622 |
|
623 |
$this->store_data = $_POST['wpsl'];
|
624 |
|
625 |
+
// Check if the hours are set through dropdowns.
|
626 |
if ( isset( $this->store_data['hours'] ) && is_array( $this->store_data['hours'] ) && ( !empty( $this->store_data['hours'] ) ) ) {
|
627 |
$this->store_data['hours'] = $this->format_opening_hours();
|
628 |
}
|
629 |
|
630 |
+
// Loop over the meta fields defined in the meta_box_fields and update the post meta data.
|
631 |
foreach ( $this->meta_box_fields() as $tab => $meta_fields ) {
|
632 |
foreach ( $meta_fields as $field_key => $field_data ) {
|
633 |
|
634 |
+
// Either update or delete the post meta.
|
635 |
if ( isset( $this->store_data[ $field_key ] ) && ( $this->store_data[ $field_key ] != "" ) ) {
|
636 |
if ( isset( $field_data['type'] ) && $field_data['type'] ) {
|
637 |
$field_type = $field_data['type'];
|
669 |
}
|
670 |
}
|
671 |
|
672 |
+
/*
|
673 |
+
* If all the required fields contain data, then check if we need to
|
674 |
+
* geocode the address and if we should delete the autoload transient.
|
675 |
*
|
676 |
* Otherwise show a notice for 'missing data' and set the post status to pending.
|
677 |
*/
|
687 |
/**
|
688 |
* Loop through the opening hours and structure the data in a new array.
|
689 |
*
|
690 |
+
* @since 2.0.0
|
691 |
* @return array $opening_hours The formatted opening hours
|
692 |
*/
|
693 |
public function format_opening_hours() {
|
694 |
|
695 |
$week_days = wpsl_get_weekdays();
|
696 |
|
697 |
+
// Use the opening hours from the editor page or the add/edit store page.
|
698 |
if ( isset( $_POST['wpsl_editor']['dropdown'] ) ) {
|
699 |
$store_hours = $_POST['wpsl_editor']['dropdown'];
|
700 |
} else if ( isset( $this->store_data['hours'] ) ) {
|
722 |
/*
|
723 |
* Validate the 12 or 24 hr time format.
|
724 |
*
|
725 |
+
* @since 2.0.0
|
726 |
* @param string $hour The opening hour
|
727 |
* @return boolean true if the $hour format is valid
|
728 |
*/
|
730 |
|
731 |
global $wpsl_settings;
|
732 |
|
733 |
+
/*
|
734 |
+
* On the add/edit store we can always use the $wpsl_settings value.
|
735 |
* But if validate_hour is called from the settings page then we
|
736 |
* should use the $_POST value to make sure we have the correct value.
|
737 |
*/
|
755 |
/**
|
756 |
* Set the post status to pending instead of publish.
|
757 |
*
|
758 |
+
* @since 2.0.0
|
759 |
* @param integer $post_id store post ID
|
760 |
* @return void
|
761 |
*/
|
774 |
* If one or more of the required fields are empty, we show a custom msg.
|
775 |
* So no need for the normal post update messages arg.
|
776 |
*
|
777 |
+
* @since 2.0.0
|
778 |
* @param string $location The destination url
|
779 |
* @return void
|
780 |
*/
|
785 |
/**
|
786 |
* Make sure all the required post meta fields contain data.
|
787 |
*
|
788 |
+
* @since 2.0.0
|
789 |
* @param integer $post_id store post ID
|
790 |
* @return boolean
|
791 |
*/
|
808 |
/**
|
809 |
* The html for the map preview in the sidebar.
|
810 |
*
|
811 |
+
* @since 2.0.0
|
812 |
* @return void
|
813 |
*/
|
814 |
public function map_preview() {
|
825 |
/**
|
826 |
* Store update messages.
|
827 |
*
|
828 |
+
* @since 2.0.0
|
829 |
* @param array $messages Existing post update messages.
|
830 |
* @return array $messages Amended post update messages with new CPT update messages.
|
831 |
*/
|
admin/class-notices.php
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
/**
|
3 |
* Admin Notices
|
4 |
*
|
5 |
-
* @
|
6 |
-
* @since
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
@@ -11,15 +11,15 @@ if ( !defined( 'ABSPATH' ) ) exit;
|
|
11 |
if ( !class_exists( 'WPSL_Notices' ) ) {
|
12 |
|
13 |
/**
|
14 |
-
* Handle the meta boxes
|
15 |
*
|
16 |
-
* @since 2.0
|
17 |
*/
|
18 |
class WPSL_Notices {
|
19 |
|
20 |
/**
|
21 |
-
* Holds the notices
|
22 |
-
* @since 2.0
|
23 |
* @var array
|
24 |
*/
|
25 |
private $notices = array();
|
@@ -32,9 +32,9 @@ if ( !class_exists( 'WPSL_Notices' ) ) {
|
|
32 |
}
|
33 |
|
34 |
/**
|
35 |
-
* Show the notice
|
36 |
*
|
37 |
-
* @since 2.0
|
38 |
* @return void
|
39 |
*/
|
40 |
public function show() {
|
@@ -62,16 +62,16 @@ if ( !class_exists( 'WPSL_Notices' ) ) {
|
|
62 |
|
63 |
echo '<div class="' . esc_attr( $class ) . '"><p>' . wp_kses( $this->notices['message'], $allowed_html ) . '</p></div>';
|
64 |
|
65 |
-
|
66 |
$this->notices = array();
|
67 |
update_option( 'wpsl_notices', $this->notices );
|
68 |
}
|
69 |
}
|
70 |
|
71 |
/**
|
72 |
-
* Save the notice
|
73 |
*
|
74 |
-
* @since 2.0
|
75 |
* @param string $type The type of notice, either 'update' or 'error'
|
76 |
* @param string $message The user message
|
77 |
* @return void
|
2 |
/**
|
3 |
* Admin Notices
|
4 |
*
|
5 |
+
* @author Tijmen Smit
|
6 |
+
* @since 2.0.0
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
11 |
if ( !class_exists( 'WPSL_Notices' ) ) {
|
12 |
|
13 |
/**
|
14 |
+
* Handle the meta boxes.
|
15 |
*
|
16 |
+
* @since 2.0.0
|
17 |
*/
|
18 |
class WPSL_Notices {
|
19 |
|
20 |
/**
|
21 |
+
* Holds the notices.
|
22 |
+
* @since 2.0.0
|
23 |
* @var array
|
24 |
*/
|
25 |
private $notices = array();
|
32 |
}
|
33 |
|
34 |
/**
|
35 |
+
* Show the notice.
|
36 |
*
|
37 |
+
* @since 2.0.0
|
38 |
* @return void
|
39 |
*/
|
40 |
public function show() {
|
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
|
admin/class-settings.php
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
/**
|
3 |
* Handle the plugin settings
|
4 |
*
|
5 |
-
* @
|
6 |
-
* @since
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
@@ -25,7 +25,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
25 |
*
|
26 |
* User can do this manually from the 'Tools' section on the settings page.
|
27 |
*
|
28 |
-
* @since 2.0
|
29 |
* @return void
|
30 |
*/
|
31 |
public function manually_clear_transient() {
|
@@ -38,7 +38,8 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
38 |
$msg = __( 'WP Store Locator Transients Cleared', 'wpsl' );
|
39 |
$wpsl_admin->notices->save( 'update', $msg );
|
40 |
|
41 |
-
/*
|
|
|
42 |
*
|
43 |
* Otherwise if the user later clicks the 'Save Changes' button,
|
44 |
* and the &action=clear_wpsl_transients param is still there it
|
@@ -52,7 +53,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
52 |
/**
|
53 |
* Register the settings.
|
54 |
*
|
55 |
-
* @since 2.0
|
56 |
* @return void
|
57 |
*/
|
58 |
public function register_settings() {
|
@@ -62,7 +63,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
62 |
/**
|
63 |
* Sanitize the submitted plugin settings.
|
64 |
*
|
65 |
-
* @since 1.0
|
66 |
* @return array $output The setting values
|
67 |
*/
|
68 |
public function sanitize_settings() {
|
@@ -101,14 +102,14 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
101 |
$output['api_language'] = wp_filter_nohtml_kses( $_POST['wpsl_api']['language'] );
|
102 |
$output['api_region'] = wp_filter_nohtml_kses( $_POST['wpsl_api']['region'] );
|
103 |
|
104 |
-
|
105 |
$output['results_dropdown'] = isset( $_POST['wpsl_search']['results_dropdown'] ) ? 1 : 0;
|
106 |
$output['radius_dropdown'] = isset( $_POST['wpsl_search']['radius_dropdown'] ) ? 1 : 0;
|
107 |
$output['category_dropdown'] = isset( $_POST['wpsl_search']['category_dropdown'] ) ? 1 : 0;
|
108 |
|
109 |
$output['distance_unit'] = ( $_POST['wpsl_search']['distance_unit'] == 'km' ) ? 'km' : 'mi';
|
110 |
|
111 |
-
|
112 |
if ( !empty( $_POST['wpsl_search']['max_results'] ) ) {
|
113 |
$output['max_results'] = sanitize_text_field( $_POST['wpsl_search']['max_results'] );
|
114 |
} else {
|
@@ -116,7 +117,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
116 |
$output['max_results'] = wpsl_get_default_setting( 'max_results' );
|
117 |
}
|
118 |
|
119 |
-
|
120 |
if ( !empty( $_POST['wpsl_search']['radius'] ) ) {
|
121 |
$output['search_radius'] = sanitize_text_field( $_POST['wpsl_search']['radius'] );
|
122 |
} else {
|
@@ -124,11 +125,11 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
124 |
$output['search_radius'] = wpsl_get_default_setting( 'search_radius' );
|
125 |
}
|
126 |
|
127 |
-
|
128 |
$output['zoom_level'] = wpsl_valid_zoom_level( $_POST['wpsl_map']['zoom_level'] );
|
129 |
$output['zoom_name'] = sanitize_text_field( $_POST['wpsl_map']['zoom_name'] );
|
130 |
|
131 |
-
|
132 |
$max_zoom_levels = wpsl_get_max_zoom_levels();
|
133 |
|
134 |
if ( in_array( absint( $_POST['wpsl_map']['max_auto_zoom'] ), $max_zoom_levels ) ) {
|
@@ -137,7 +138,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
137 |
$output['auto_zoom_level'] = wpsl_get_default_setting( 'auto_zoom_level' );
|
138 |
}
|
139 |
|
140 |
-
|
141 |
if ( empty( $output['zoom_name'] ) ) {
|
142 |
$this->settings_error( 'start_point' );
|
143 |
$output['zoom_latlng'] = '';
|
@@ -145,12 +146,12 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
145 |
$output['zoom_latlng'] = sanitize_text_field( $_POST['wpsl_map']['zoom_latlng'] );
|
146 |
}
|
147 |
|
148 |
-
|
149 |
$output['map_type'] = wpsl_valid_map_type( $_POST['wpsl_map']['type'] );
|
150 |
$output['auto_locate'] = isset( $_POST['wpsl_map']['auto_locate'] ) ? 1 : 0;
|
151 |
$output['autoload'] = isset( $_POST['wpsl_map']['autoload'] ) ? 1 : 0;
|
152 |
|
153 |
-
|
154 |
if ( empty( $_POST['wpsl_map']['autoload_limit'] ) ) {
|
155 |
$output['autoload_limit'] = '';
|
156 |
} else {
|
@@ -164,7 +165,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
164 |
|
165 |
$output['map_style'] = json_encode( strip_tags( trim( $_POST['wpsl_map']['map_style'] ) ) );
|
166 |
|
167 |
-
|
168 |
if ( isset( $_POST['wpsl_ux']['template_id'] ) && ( $_POST['wpsl_ux']['template_id'] ) ) {
|
169 |
$output['template_id'] = sanitize_text_field( $_POST['wpsl_ux']['template_id'] );
|
170 |
} else {
|
@@ -173,21 +174,22 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
173 |
|
174 |
$output['marker_clusters'] = isset( $_POST['wpsl_map']['marker_clusters'] ) ? 1 : 0;
|
175 |
|
176 |
-
|
177 |
if ( in_array( $_POST['wpsl_map']['cluster_zoom'], $this->get_default_cluster_option( 'cluster_zoom' ) ) ) {
|
178 |
$output['cluster_zoom'] = $_POST['wpsl_map']['cluster_zoom'];
|
179 |
} else {
|
180 |
$output['cluster_zoom'] = wpsl_get_default_setting( 'cluster_zoom' );
|
181 |
}
|
182 |
|
183 |
-
|
184 |
if ( in_array( $_POST['wpsl_map']['cluster_size'], $this->get_default_cluster_option( 'cluster_size' ) ) ) {
|
185 |
$output['cluster_size'] = $_POST['wpsl_map']['cluster_size'];
|
186 |
} else {
|
187 |
$output['cluster_size'] = wpsl_get_default_setting( 'cluster_size' );
|
188 |
}
|
189 |
|
190 |
-
/*
|
|
|
191 |
* Otherwise we use the default value.
|
192 |
*/
|
193 |
foreach ( $ux_absints as $ux_key ) {
|
@@ -198,19 +200,19 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
198 |
}
|
199 |
}
|
200 |
|
201 |
-
|
202 |
foreach ( $ux_checkboxes as $ux_key ) {
|
203 |
$output[$ux_key] = isset( $_POST['wpsl_ux'][$ux_key] ) ? 1 : 0;
|
204 |
}
|
205 |
|
206 |
-
|
207 |
if ( in_array( $_POST['wpsl_ux']['marker_effect'], $marker_effects ) ) {
|
208 |
$output['marker_effect'] = $_POST['wpsl_ux']['marker_effect'];
|
209 |
} else {
|
210 |
$output['marker_effect'] = wpsl_get_default_setting( 'marker_effect' );
|
211 |
}
|
212 |
|
213 |
-
|
214 |
if ( array_key_exists( $_POST['wpsl_ux']['address_format'], wpsl_get_address_formats() ) ) {
|
215 |
$output['address_format'] = $_POST['wpsl_ux']['address_format'];
|
216 |
} else {
|
@@ -233,7 +235,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
233 |
|
234 |
$output['editor_hour_format'] = ( $_POST['wpsl_editor']['hour_format'] == 12 ) ? 12 : 24;
|
235 |
|
236 |
-
|
237 |
if ( isset( $_POST['wpsl_editor']['textarea'] ) ) {
|
238 |
$output['editor_hours']['textarea'] = wp_kses_post( trim( stripslashes( $_POST['wpsl_editor']['textarea'] ) ) );
|
239 |
}
|
@@ -241,7 +243,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
241 |
$output['editor_hours']['dropdown'] = $wpsl_admin->metaboxes->format_opening_hours();
|
242 |
array_walk_recursive( $output['editor_hours']['dropdown'], 'wpsl_sanitize_multi_array' );
|
243 |
|
244 |
-
|
245 |
$output['permalinks'] = isset( $_POST['wpsl_permalinks']['active'] ) ? 1 : 0;
|
246 |
|
247 |
if ( !empty( $_POST['wpsl_permalinks']['slug'] ) ) {
|
@@ -258,7 +260,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
258 |
|
259 |
$required_labels = wpsl_labels();
|
260 |
|
261 |
-
|
262 |
foreach ( $required_labels as $label ) {
|
263 |
$output[$label.'_label'] = sanitize_text_field( $_POST['wpsl_label'][$label] );
|
264 |
}
|
@@ -266,10 +268,10 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
266 |
$output['show_credits'] = isset( $_POST['wpsl_credits'] ) ? 1 : 0;
|
267 |
$output['debug'] = isset( $_POST['wpsl_tools']['debug'] ) ? 1 : 0;
|
268 |
|
269 |
-
|
270 |
$this->set_flush_rewrite_option( $output );
|
271 |
|
272 |
-
|
273 |
if ( $wpsl_settings['autoload'] ) {
|
274 |
$this->set_delete_transient_option( $output );
|
275 |
}
|
@@ -281,7 +283,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
281 |
* Check if we need set the option that will be used to determine
|
282 |
* if we need to flush the permalinks once the setting page reloads.
|
283 |
*
|
284 |
-
* @since 2.0
|
285 |
* @param array $new_settings The submitted plugin settings
|
286 |
* @return void
|
287 |
*/
|
@@ -298,7 +300,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
298 |
* Check if we need set the option that is used to determine
|
299 |
* if we need to delete the autoload transient once the settings page reloads.
|
300 |
*
|
301 |
-
* @since 2.0
|
302 |
* @param array $new_settings The submitted plugin settings
|
303 |
* @return void
|
304 |
*/
|
@@ -306,7 +308,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
306 |
|
307 |
global $wpsl_settings;
|
308 |
|
309 |
-
|
310 |
$options = array(
|
311 |
'zoom_name',
|
312 |
'debug',
|
@@ -329,7 +331,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
329 |
/**
|
330 |
* Check if the permalinks settings changed.
|
331 |
*
|
332 |
-
* @since 2.0
|
333 |
* @return void
|
334 |
*/
|
335 |
public function maybe_flush_rewrite_and_transient() {
|
@@ -358,7 +360,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
358 |
/**
|
359 |
* Handle the different validation errors for the plugin settings.
|
360 |
*
|
361 |
-
* @since 1.0
|
362 |
* @param string $error_type Contains the type of validation error that occured
|
363 |
* @return void
|
364 |
*/
|
@@ -382,7 +384,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
382 |
/**
|
383 |
* Options for the language and region list.
|
384 |
*
|
385 |
-
* @since 1.0
|
386 |
* @param string $list The request list type
|
387 |
* @return string|void $option_list The html for the selected list, or nothing if the $list contains invalud values
|
388 |
*/
|
@@ -662,14 +664,14 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
662 |
);
|
663 |
}
|
664 |
|
665 |
-
|
666 |
if ( !empty( $api_option_list ) && ( is_array( $api_option_list ) ) ) {
|
667 |
$option_list = '';
|
668 |
$i = 0;
|
669 |
|
670 |
foreach ( $api_option_list as $api_option_key => $api_option_value ) {
|
671 |
|
672 |
-
|
673 |
if ( ( $i == 0 ) && ( empty( $wpsl_settings['api_'.$list] ) ) ) {
|
674 |
$selected = 'selected="selected"';
|
675 |
} else {
|
@@ -687,7 +689,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
687 |
/**
|
688 |
* Create the dropdown to select the zoom level.
|
689 |
*
|
690 |
-
* @since 1.0
|
691 |
* @return string $dropdown The html for the zoom level list
|
692 |
*/
|
693 |
public function show_zoom_levels() {
|
@@ -728,7 +730,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
728 |
* and one were a marker can be set for the store. We also check if the marker img is identical
|
729 |
* to the name in the option field. If so we set it to checked.
|
730 |
*
|
731 |
-
* @since 1.0
|
732 |
* @param string $marker_img The filename of the marker
|
733 |
* @param string $location Either contains "start" or "store"
|
734 |
* @return string $marker_list A list of all the available markers
|
@@ -833,7 +835,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
833 |
/**
|
834 |
* Show the options of the start and store markers.
|
835 |
*
|
836 |
-
* @since 1.0
|
837 |
* @return string $marker_list The complete list of available and selected markers
|
838 |
*/
|
839 |
public function show_marker_options() {
|
@@ -869,7 +871,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
869 |
/**
|
870 |
* Load the markers that can be used on the map.
|
871 |
*
|
872 |
-
* @since 1.0
|
873 |
* @return array $marker_images A list of all the available markers
|
874 |
*/
|
875 |
public function get_available_markers() {
|
@@ -919,7 +921,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
919 |
/**
|
920 |
* Create dropdown lists.
|
921 |
*
|
922 |
-
* @since 2.0
|
923 |
* @param string $type The type of dropdown
|
924 |
* @return string $dropdown The html output for the dropdown
|
925 |
*/
|
@@ -997,7 +999,7 @@ if ( !class_exists( 'WPSL_Settings' ) ) {
|
|
997 |
/**
|
998 |
* Create a dropdown for the 12/24 opening hours format.
|
999 |
*
|
1000 |
-
* @since 2.0
|
1001 |
* @param string $hour_format The hour format that should be set to selected
|
1002 |
* @return string $dropdown The html for the dropdown
|
1003 |
*/
|
2 |
/**
|
3 |
* Handle the plugin settings
|
4 |
*
|
5 |
+
* @author Tijmen Smit
|
6 |
+
* @since 2.0.0
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
25 |
*
|
26 |
* User can do this manually from the 'Tools' section on the settings page.
|
27 |
*
|
28 |
+
* @since 2.0.0
|
29 |
* @return void
|
30 |
*/
|
31 |
public function manually_clear_transient() {
|
38 |
$msg = __( 'WP Store Locator Transients Cleared', 'wpsl' );
|
39 |
$wpsl_admin->notices->save( 'update', $msg );
|
40 |
|
41 |
+
/*
|
42 |
+
* Make sure the &action=clear_wpsl_transients param is removed from the url.
|
43 |
*
|
44 |
* Otherwise if the user later clicks the 'Save Changes' button,
|
45 |
* and the &action=clear_wpsl_transients param is still there it
|
53 |
/**
|
54 |
* Register the settings.
|
55 |
*
|
56 |
+
* @since 2.0.0
|
57 |
* @return void
|
58 |
*/
|
59 |
public function register_settings() {
|
63 |
/**
|
64 |
* Sanitize the submitted plugin settings.
|
65 |
*
|
66 |
+
* @since 1.0.0
|
67 |
* @return array $output The setting values
|
68 |
*/
|
69 |
public function sanitize_settings() {
|
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;
|
107 |
$output['radius_dropdown'] = isset( $_POST['wpsl_search']['radius_dropdown'] ) ? 1 : 0;
|
108 |
$output['category_dropdown'] = isset( $_POST['wpsl_search']['category_dropdown'] ) ? 1 : 0;
|
109 |
|
110 |
$output['distance_unit'] = ( $_POST['wpsl_search']['distance_unit'] == 'km' ) ? 'km' : 'mi';
|
111 |
|
112 |
+
// Check for a valid max results value, otherwise we use the default.
|
113 |
if ( !empty( $_POST['wpsl_search']['max_results'] ) ) {
|
114 |
$output['max_results'] = sanitize_text_field( $_POST['wpsl_search']['max_results'] );
|
115 |
} else {
|
117 |
$output['max_results'] = wpsl_get_default_setting( 'max_results' );
|
118 |
}
|
119 |
|
120 |
+
// See if a search radius value exist, otherwise we use the default.
|
121 |
if ( !empty( $_POST['wpsl_search']['radius'] ) ) {
|
122 |
$output['search_radius'] = sanitize_text_field( $_POST['wpsl_search']['radius'] );
|
123 |
} else {
|
125 |
$output['search_radius'] = wpsl_get_default_setting( 'search_radius' );
|
126 |
}
|
127 |
|
128 |
+
// Check if we have a valid zoom level, it has to be between 1 or 12. If not set it to the default of 3.
|
129 |
$output['zoom_level'] = wpsl_valid_zoom_level( $_POST['wpsl_map']['zoom_level'] );
|
130 |
$output['zoom_name'] = sanitize_text_field( $_POST['wpsl_map']['zoom_name'] );
|
131 |
|
132 |
+
// Check for a valid max auto zoom level.
|
133 |
$max_zoom_levels = wpsl_get_max_zoom_levels();
|
134 |
|
135 |
if ( in_array( absint( $_POST['wpsl_map']['max_auto_zoom'] ), $max_zoom_levels ) ) {
|
138 |
$output['auto_zoom_level'] = wpsl_get_default_setting( 'auto_zoom_level' );
|
139 |
}
|
140 |
|
141 |
+
// If no location name is set to zoom to we also empty the latlng values from the hidden input field.
|
142 |
if ( empty( $output['zoom_name'] ) ) {
|
143 |
$this->settings_error( 'start_point' );
|
144 |
$output['zoom_latlng'] = '';
|
146 |
$output['zoom_latlng'] = sanitize_text_field( $_POST['wpsl_map']['zoom_latlng'] );
|
147 |
}
|
148 |
|
149 |
+
// Check if we have a valid map type.
|
150 |
$output['map_type'] = wpsl_valid_map_type( $_POST['wpsl_map']['type'] );
|
151 |
$output['auto_locate'] = isset( $_POST['wpsl_map']['auto_locate'] ) ? 1 : 0;
|
152 |
$output['autoload'] = isset( $_POST['wpsl_map']['autoload'] ) ? 1 : 0;
|
153 |
|
154 |
+
// Make sure the auto load limit is either empty or an int.
|
155 |
if ( empty( $_POST['wpsl_map']['autoload_limit'] ) ) {
|
156 |
$output['autoload_limit'] = '';
|
157 |
} else {
|
165 |
|
166 |
$output['map_style'] = json_encode( strip_tags( trim( $_POST['wpsl_map']['map_style'] ) ) );
|
167 |
|
168 |
+
// Make sure we have a valid template ID.
|
169 |
if ( isset( $_POST['wpsl_ux']['template_id'] ) && ( $_POST['wpsl_ux']['template_id'] ) ) {
|
170 |
$output['template_id'] = sanitize_text_field( $_POST['wpsl_ux']['template_id'] );
|
171 |
} else {
|
174 |
|
175 |
$output['marker_clusters'] = isset( $_POST['wpsl_map']['marker_clusters'] ) ? 1 : 0;
|
176 |
|
177 |
+
// Check for a valid cluster zoom value.
|
178 |
if ( in_array( $_POST['wpsl_map']['cluster_zoom'], $this->get_default_cluster_option( 'cluster_zoom' ) ) ) {
|
179 |
$output['cluster_zoom'] = $_POST['wpsl_map']['cluster_zoom'];
|
180 |
} else {
|
181 |
$output['cluster_zoom'] = wpsl_get_default_setting( 'cluster_zoom' );
|
182 |
}
|
183 |
|
184 |
+
// Check for a valid cluster size value.
|
185 |
if ( in_array( $_POST['wpsl_map']['cluster_size'], $this->get_default_cluster_option( 'cluster_size' ) ) ) {
|
186 |
$output['cluster_size'] = $_POST['wpsl_map']['cluster_size'];
|
187 |
} else {
|
188 |
$output['cluster_size'] = wpsl_get_default_setting( 'cluster_size' );
|
189 |
}
|
190 |
|
191 |
+
/*
|
192 |
+
* Make sure all the ux related fields that should contain an int, actually are an int.
|
193 |
* Otherwise we use the default value.
|
194 |
*/
|
195 |
foreach ( $ux_absints as $ux_key ) {
|
200 |
}
|
201 |
}
|
202 |
|
203 |
+
// Check if the ux checkboxes are checked.
|
204 |
foreach ( $ux_checkboxes as $ux_key ) {
|
205 |
$output[$ux_key] = isset( $_POST['wpsl_ux'][$ux_key] ) ? 1 : 0;
|
206 |
}
|
207 |
|
208 |
+
// Check if we have a valid marker effect.
|
209 |
if ( in_array( $_POST['wpsl_ux']['marker_effect'], $marker_effects ) ) {
|
210 |
$output['marker_effect'] = $_POST['wpsl_ux']['marker_effect'];
|
211 |
} else {
|
212 |
$output['marker_effect'] = wpsl_get_default_setting( 'marker_effect' );
|
213 |
}
|
214 |
|
215 |
+
// Check if we have a valid address format.
|
216 |
if ( array_key_exists( $_POST['wpsl_ux']['address_format'], wpsl_get_address_formats() ) ) {
|
217 |
$output['address_format'] = $_POST['wpsl_ux']['address_format'];
|
218 |
} else {
|
235 |
|
236 |
$output['editor_hour_format'] = ( $_POST['wpsl_editor']['hour_format'] == 12 ) ? 12 : 24;
|
237 |
|
238 |
+
// The default opening hours.
|
239 |
if ( isset( $_POST['wpsl_editor']['textarea'] ) ) {
|
240 |
$output['editor_hours']['textarea'] = wp_kses_post( trim( stripslashes( $_POST['wpsl_editor']['textarea'] ) ) );
|
241 |
}
|
243 |
$output['editor_hours']['dropdown'] = $wpsl_admin->metaboxes->format_opening_hours();
|
244 |
array_walk_recursive( $output['editor_hours']['dropdown'], 'wpsl_sanitize_multi_array' );
|
245 |
|
246 |
+
// Permalink and taxonomy slug.
|
247 |
$output['permalinks'] = isset( $_POST['wpsl_permalinks']['active'] ) ? 1 : 0;
|
248 |
|
249 |
if ( !empty( $_POST['wpsl_permalinks']['slug'] ) ) {
|
260 |
|
261 |
$required_labels = wpsl_labels();
|
262 |
|
263 |
+
// Sanitize the labels.
|
264 |
foreach ( $required_labels as $label ) {
|
265 |
$output[$label.'_label'] = sanitize_text_field( $_POST['wpsl_label'][$label] );
|
266 |
}
|
268 |
$output['show_credits'] = isset( $_POST['wpsl_credits'] ) ? 1 : 0;
|
269 |
$output['debug'] = isset( $_POST['wpsl_tools']['debug'] ) ? 1 : 0;
|
270 |
|
271 |
+
// Check if we need to flush the permalinks.
|
272 |
$this->set_flush_rewrite_option( $output );
|
273 |
|
274 |
+
// Check if there is a reason to delete the autoload transient.
|
275 |
if ( $wpsl_settings['autoload'] ) {
|
276 |
$this->set_delete_transient_option( $output );
|
277 |
}
|
283 |
* Check if we need set the option that will be used to determine
|
284 |
* if we need to flush the permalinks once the setting page reloads.
|
285 |
*
|
286 |
+
* @since 2.0.0
|
287 |
* @param array $new_settings The submitted plugin settings
|
288 |
* @return void
|
289 |
*/
|
300 |
* Check if we need set the option that is used to determine
|
301 |
* if we need to delete the autoload transient once the settings page reloads.
|
302 |
*
|
303 |
+
* @since 2.0.0
|
304 |
* @param array $new_settings The submitted plugin settings
|
305 |
* @return void
|
306 |
*/
|
308 |
|
309 |
global $wpsl_settings;
|
310 |
|
311 |
+
// The options we need to check for changes.
|
312 |
$options = array(
|
313 |
'zoom_name',
|
314 |
'debug',
|
331 |
/**
|
332 |
* Check if the permalinks settings changed.
|
333 |
*
|
334 |
+
* @since 2.0.0
|
335 |
* @return void
|
336 |
*/
|
337 |
public function maybe_flush_rewrite_and_transient() {
|
360 |
/**
|
361 |
* Handle the different validation errors for the plugin settings.
|
362 |
*
|
363 |
+
* @since 1.0.0
|
364 |
* @param string $error_type Contains the type of validation error that occured
|
365 |
* @return void
|
366 |
*/
|
384 |
/**
|
385 |
* Options for the language and region list.
|
386 |
*
|
387 |
+
* @since 1.0.0
|
388 |
* @param string $list The request list type
|
389 |
* @return string|void $option_list The html for the selected list, or nothing if the $list contains invalud values
|
390 |
*/
|
664 |
);
|
665 |
}
|
666 |
|
667 |
+
// Make sure we have an array with a value.
|
668 |
if ( !empty( $api_option_list ) && ( is_array( $api_option_list ) ) ) {
|
669 |
$option_list = '';
|
670 |
$i = 0;
|
671 |
|
672 |
foreach ( $api_option_list as $api_option_key => $api_option_value ) {
|
673 |
|
674 |
+
// If no option value exist, set the first one as selected.
|
675 |
if ( ( $i == 0 ) && ( empty( $wpsl_settings['api_'.$list] ) ) ) {
|
676 |
$selected = 'selected="selected"';
|
677 |
} else {
|
689 |
/**
|
690 |
* Create the dropdown to select the zoom level.
|
691 |
*
|
692 |
+
* @since 1.0.0
|
693 |
* @return string $dropdown The html for the zoom level list
|
694 |
*/
|
695 |
public function show_zoom_levels() {
|
730 |
* and one were a marker can be set for the store. We also check if the marker img is identical
|
731 |
* to the name in the option field. If so we set it to checked.
|
732 |
*
|
733 |
+
* @since 1.0.0
|
734 |
* @param string $marker_img The filename of the marker
|
735 |
* @param string $location Either contains "start" or "store"
|
736 |
* @return string $marker_list A list of all the available markers
|
835 |
/**
|
836 |
* Show the options of the start and store markers.
|
837 |
*
|
838 |
+
* @since 1.0.0
|
839 |
* @return string $marker_list The complete list of available and selected markers
|
840 |
*/
|
841 |
public function show_marker_options() {
|
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() {
|
921 |
/**
|
922 |
* Create dropdown lists.
|
923 |
*
|
924 |
+
* @since 2.0.0
|
925 |
* @param string $type The type of dropdown
|
926 |
* @return string $dropdown The html output for the dropdown
|
927 |
*/
|
999 |
/**
|
1000 |
* Create a dropdown for the 12/24 opening hours format.
|
1001 |
*
|
1002 |
+
* @since 2.0.0
|
1003 |
* @param string $hour_format The hour format that should be set to selected
|
1004 |
* @return string $dropdown The html for the dropdown
|
1005 |
*/
|
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;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;
|
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}
|
admin/roles.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
-
* Add WPSL Roles
|
5 |
*
|
6 |
-
* @since 2.0
|
7 |
* @return void
|
8 |
*/
|
9 |
function wpsl_add_roles() {
|
@@ -47,9 +47,9 @@ function wpsl_add_roles() {
|
|
47 |
}
|
48 |
|
49 |
/**
|
50 |
-
* Add WPSL user capabilities
|
51 |
*
|
52 |
-
* @since 2.0
|
53 |
* @return void
|
54 |
*/
|
55 |
function wpsl_add_caps() {
|
@@ -74,9 +74,10 @@ function wpsl_add_caps() {
|
|
74 |
}
|
75 |
}
|
76 |
|
77 |
-
|
|
|
78 |
*
|
79 |
-
* @since 2.0
|
80 |
* @return array $capabilities The post type capabilities
|
81 |
*/
|
82 |
function wpsl_get_post_caps() {
|
@@ -101,11 +102,11 @@ function wpsl_get_post_caps() {
|
|
101 |
}
|
102 |
|
103 |
/**
|
104 |
-
* Remove the WPSL caps and roles
|
105 |
*
|
106 |
* Only called from uninstall.php
|
107 |
*
|
108 |
-
* @since 2.0
|
109 |
* @return void
|
110 |
*/
|
111 |
function wpsl_remove_caps_and_roles() {
|
1 |
<?php
|
2 |
|
3 |
/**
|
4 |
+
* Add WPSL Roles.
|
5 |
*
|
6 |
+
* @since 2.0.0
|
7 |
* @return void
|
8 |
*/
|
9 |
function wpsl_add_roles() {
|
47 |
}
|
48 |
|
49 |
/**
|
50 |
+
* Add WPSL user capabilities.
|
51 |
*
|
52 |
+
* @since 2.0.0
|
53 |
* @return void
|
54 |
*/
|
55 |
function wpsl_add_caps() {
|
74 |
}
|
75 |
}
|
76 |
|
77 |
+
/**
|
78 |
+
* Get the WPSL post type capabilities.
|
79 |
*
|
80 |
+
* @since 2.0.0
|
81 |
* @return array $capabilities The post type capabilities
|
82 |
*/
|
83 |
function wpsl_get_post_caps() {
|
102 |
}
|
103 |
|
104 |
/**
|
105 |
+
* Remove the WPSL caps and roles.
|
106 |
*
|
107 |
* Only called from uninstall.php
|
108 |
*
|
109 |
+
* @since 2.0.0
|
110 |
* @return void
|
111 |
*/
|
112 |
function wpsl_remove_caps_and_roles() {
|
admin/templates/map-settings.php
CHANGED
@@ -1,4 +1,8 @@
|
|
1 |
-
<?php
|
|
|
|
|
|
|
|
|
2 |
|
3 |
<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 ?>">
|
4 |
<h2>WP Store Locator <?php _e( 'Settings', 'wpsl' ); ?></h2>
|
@@ -348,12 +352,23 @@
|
|
348 |
</div>
|
349 |
</div>
|
350 |
</div>
|
351 |
-
|
352 |
<div class="postbox-container">
|
353 |
<div class="metabox-holder">
|
354 |
<div id="wpsl-label-settings" class="postbox">
|
355 |
<h3 class="hndle"><span><?php _e( 'Labels', 'wpsl' ); ?></span></h3>
|
356 |
<div class="inside">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
357 |
<p>
|
358 |
<label for="wpsl-search"><?php _e( 'Your location', 'wpsl' ); ?>:</label>
|
359 |
<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">
|
1 |
+
<?php
|
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>
|
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">
|
css/styles.css
CHANGED
@@ -668,8 +668,6 @@ table.wpsl-opening-hours td {
|
|
668 |
text-align: left;
|
669 |
}
|
670 |
|
671 |
-
.wpsl_stores .wpsl-contact-details span,
|
672 |
-
#wpsl-stores .wpsl-contact-details span,
|
673 |
table.wpsl-opening-hours time {
|
674 |
display:block;
|
675 |
}
|
668 |
text-align: left;
|
669 |
}
|
670 |
|
|
|
|
|
671 |
table.wpsl-opening-hours time {
|
672 |
display:block;
|
673 |
}
|
frontend/class-frontend.php
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
/**
|
3 |
* Frontend class
|
4 |
*
|
5 |
-
* @
|
6 |
-
* @since
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
@@ -13,21 +13,21 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
13 |
/**
|
14 |
* Handle the frontend of the store locator
|
15 |
*
|
16 |
-
* @since 1.0
|
17 |
*/
|
18 |
class WPSL_Frontend {
|
19 |
|
20 |
/**
|
21 |
* Keep track which scripts we need to load
|
22 |
*
|
23 |
-
* @since 2.0
|
24 |
*/
|
25 |
private $load_scripts = array();
|
26 |
|
27 |
/**
|
28 |
* Keep track of the amount of maps on the page
|
29 |
*
|
30 |
-
* @since 2.0
|
31 |
*/
|
32 |
private static $map_count = 0;
|
33 |
|
@@ -56,7 +56,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
56 |
/**
|
57 |
* Include the required front-end files.
|
58 |
*
|
59 |
-
* @since 2.0
|
60 |
* @return void
|
61 |
*/
|
62 |
public function includes() {
|
@@ -66,14 +66,15 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
66 |
/**
|
67 |
* Handle the Ajax search on the frontend.
|
68 |
*
|
69 |
-
* @since 1.0
|
70 |
* @return json A list of store locations that are located within the selected search radius
|
71 |
*/
|
72 |
public function store_search() {
|
73 |
|
74 |
global $wpsl, $wpsl_settings;
|
75 |
|
76 |
-
/*
|
|
|
77 |
*
|
78 |
* If so then we save the store data in a transient to prevent a long loading time
|
79 |
* in case a large amount of locations need to be displayed.
|
@@ -84,7 +85,8 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
84 |
*/
|
85 |
if ( $wpsl_settings['autoload'] && isset( $_GET['autoload'] ) && $_GET['autoload'] && !$wpsl_settings['debug'] && !isset( $_GET['skip_cache'] ) ) {
|
86 |
|
87 |
-
/*
|
|
|
88 |
* to make sure each language has his own unique transient. We do this by
|
89 |
* including the lang code in the transient name.
|
90 |
*
|
@@ -118,7 +120,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
118 |
* latlng of the searched location, and the latlng from
|
119 |
* the stores in the db.
|
120 |
*
|
121 |
-
* @since 2.0
|
122 |
* @return void|array $store_data The list of stores that fall within the selected range.
|
123 |
*/
|
124 |
public function find_nearby_locations() {
|
@@ -127,12 +129,13 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
127 |
|
128 |
$store_data = array();
|
129 |
|
130 |
-
/*
|
|
|
131 |
* We need this to calculate the distance between two coordinates.
|
132 |
*/
|
133 |
$radius = ( $wpsl_settings['distance_unit'] == 'km' ) ? 6371 : 3959;
|
134 |
|
135 |
-
|
136 |
$placeholder_values = array(
|
137 |
$radius,
|
138 |
$_GET['lat'],
|
@@ -140,7 +143,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
140 |
$_GET['lat']
|
141 |
);
|
142 |
|
143 |
-
|
144 |
if ( isset( $_GET['filter'] ) && $_GET['filter'] ) {
|
145 |
$placeholder_values[] = $_GET['filter'];
|
146 |
|
@@ -152,7 +155,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
152 |
$cat_filter = '';
|
153 |
}
|
154 |
|
155 |
-
|
156 |
* If WPML is active we include 'GROUP BY lat' in the sql query
|
157 |
* to prevent duplicate locations from showing up in the results.
|
158 |
*
|
@@ -167,7 +170,8 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
167 |
$group_by = '';
|
168 |
}
|
169 |
|
170 |
-
/*
|
|
|
171 |
* amount of locations we need to show.
|
172 |
*
|
173 |
* Otherwise include the radius and max results limit in the sql query.
|
@@ -188,7 +192,8 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
188 |
|
189 |
$placeholder_values = apply_filters( 'wpsl_sql_placeholder_values', $placeholder_values );
|
190 |
|
191 |
-
/*
|
|
|
192 |
* the selected radius based on the lat and lng values.
|
193 |
*/
|
194 |
$sql = apply_filters( 'wpsl_sql',
|
@@ -207,7 +212,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
207 |
|
208 |
$stores = $wpdb->get_results( $wpdb->prepare( $sql, $placeholder_values ) );
|
209 |
|
210 |
-
if ( $stores
|
211 |
$store_data = apply_filters( 'wpsl_store_data', $this->get_store_meta_data( $stores ) );
|
212 |
}
|
213 |
|
@@ -217,7 +222,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
217 |
/**
|
218 |
* Get the post meta data for the selected stores.
|
219 |
*
|
220 |
-
* @since 2.0
|
221 |
* @param object $stores
|
222 |
* @return array $all_stores The stores that fall within the selected range with the post meta data.
|
223 |
*/
|
@@ -228,12 +233,12 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
228 |
$all_stores = array();
|
229 |
$include_post_content = apply_filters( 'wpsl_include_post_content', false );
|
230 |
|
231 |
-
|
232 |
$meta_field_map = $this->frontend_meta_fields();
|
233 |
|
234 |
foreach ( $stores as $store_key => $store ) {
|
235 |
|
236 |
-
|
237 |
if ( $wpsl->i18n->wpml_exists() ) {
|
238 |
$store->ID = $wpsl->i18n->maybe_get_wpml_id( $store->ID );
|
239 |
|
@@ -242,7 +247,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
242 |
}
|
243 |
}
|
244 |
|
245 |
-
|
246 |
$custom_fields = get_post_custom( $store->ID );
|
247 |
|
248 |
foreach ( $meta_field_map as $meta_key => $meta_value ) {
|
@@ -254,12 +259,12 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
254 |
$meta_type = '';
|
255 |
}
|
256 |
|
257 |
-
|
258 |
if ( $wpsl_settings['hide_hours'] && $meta_type == 'hours' ) {
|
259 |
continue;
|
260 |
}
|
261 |
|
262 |
-
|
263 |
switch ( $meta_type ) {
|
264 |
case 'numeric':
|
265 |
$meta_data = ( is_numeric( $custom_fields[$meta_key][0] ) ) ? $custom_fields[$meta_key][0] : 0 ;
|
@@ -287,7 +292,8 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
287 |
$store_meta[$meta_value['name']] = '';
|
288 |
}
|
289 |
|
290 |
-
/*
|
|
|
291 |
* or if $include_post_content is set to true through the 'wpsl_include_post_content' filter.
|
292 |
*/
|
293 |
if ( ( $wpsl_settings['more_info'] && $wpsl_settings['more_info_location'] == 'store listings' ) || $include_post_content ) {
|
@@ -324,7 +330,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
324 |
*
|
325 |
* If no type is set it will default to sanitize_text_field.
|
326 |
*
|
327 |
-
* @since 2.0
|
328 |
* @return array $store_fields The names of the meta fields used by the store
|
329 |
*/
|
330 |
public function frontend_meta_fields() {
|
@@ -382,7 +388,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
382 |
/**
|
383 |
* Get the store thumbnail.
|
384 |
*
|
385 |
-
* @since 2.0
|
386 |
* @param string $post_id The post id of the store
|
387 |
* @param string $store_name The name of the store
|
388 |
* @return void|string $thumb The html img tag
|
@@ -402,7 +408,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
402 |
/**
|
403 |
* Get the store thumbnail size.
|
404 |
*
|
405 |
-
* @since 2.0
|
406 |
* @return array $size The thumb format
|
407 |
*/
|
408 |
public function get_store_thumb_size() {
|
@@ -420,7 +426,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
420 |
*
|
421 |
* Note: The opening hours can only be set in the textarea format by users who upgraded from 1.x.
|
422 |
*
|
423 |
-
* @since 2.0
|
424 |
* @param array|string $hours The opening hours
|
425 |
* @param boolean $hide_closed Hide the days were the location is closed
|
426 |
* @return string $hours The formated opening hours
|
@@ -429,7 +435,8 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
429 |
|
430 |
$hours = maybe_unserialize( $hours );
|
431 |
|
432 |
-
/*
|
|
|
433 |
* Otherwise we output the data entered in the textarea.
|
434 |
*/
|
435 |
if ( is_array( $hours ) ) {
|
@@ -444,7 +451,8 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
444 |
/**
|
445 |
* Create a table for the opening hours.
|
446 |
*
|
447 |
-
* @since 2.0
|
|
|
448 |
* @param array $hours The opening hours
|
449 |
* @param boolean $hide_closed Hide the days where the location is closed
|
450 |
* @return string $hour_table The opening hours sorted in a table
|
@@ -453,7 +461,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
453 |
|
454 |
$opening_days = wpsl_get_weekdays();
|
455 |
|
456 |
-
|
457 |
if ( $this->not_always_closed( $hours ) ) {
|
458 |
$hour_table = '<table class="wpsl-opening-hours">';
|
459 |
|
@@ -461,7 +469,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
461 |
$i = 0;
|
462 |
$hour_count = count( $hours[$index] );
|
463 |
|
464 |
-
|
465 |
if ( $hide_closed && !$hour_count ) {
|
466 |
continue;
|
467 |
}
|
@@ -469,7 +477,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
469 |
$hour_table .= '<tr>';
|
470 |
$hour_table .= '<td>' . esc_html( $day ) . '</td>';
|
471 |
|
472 |
-
|
473 |
if ( $hour_count > 0 ) {
|
474 |
$hour_table .= '<td>';
|
475 |
|
@@ -501,7 +509,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
501 |
* create a single-wpsl_stores.php file in your theme folder.
|
502 |
* You can see an example here http://wpstorelocator.co/document/create-custom-store-page-template/
|
503 |
*
|
504 |
-
* @since 2.0
|
505 |
* @param string $content
|
506 |
* @return string $content
|
507 |
*/
|
@@ -526,7 +534,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
526 |
/**
|
527 |
* Handle the [wpsl] shortcode.
|
528 |
*
|
529 |
-
* @since 1.0
|
530 |
* @param array $atts Shortcode attributes
|
531 |
* @return string $output The wpsl template
|
532 |
*/
|
@@ -534,18 +542,18 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
534 |
|
535 |
global $wpsl_settings;
|
536 |
|
537 |
-
|
538 |
$atts = shortcode_atts( array(
|
539 |
'template' => $wpsl_settings['template_id']
|
540 |
), $atts );
|
541 |
|
542 |
-
|
543 |
array_push( $this->load_scripts, 'wpsl_store_locator' );
|
544 |
|
545 |
$template_list = wpsl_get_templates();
|
546 |
$template_path = '';
|
547 |
|
548 |
-
|
549 |
foreach ( $template_list as $template ) {
|
550 |
if ( $atts['template'] == $template['id'] ) {
|
551 |
$template_path = $template['path'];
|
@@ -553,7 +561,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
553 |
}
|
554 |
}
|
555 |
|
556 |
-
|
557 |
if ( !$template_path || ( !file_exists( $template_path ) ) ) {
|
558 |
$template_path = WPSL_PLUGIN_DIR . 'frontend/templates/default.php';
|
559 |
}
|
@@ -565,8 +573,9 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
565 |
|
566 |
/**
|
567 |
* Handle the [wpsl_address] shortcode.
|
568 |
-
*
|
569 |
-
* @since 2.0
|
|
|
570 |
* @param array $atts Shortcode attributes
|
571 |
* @return void|string $output The store address
|
572 |
*/
|
@@ -574,7 +583,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
574 |
|
575 |
global $post, $wpsl_settings, $wpsl;
|
576 |
|
577 |
-
$atts = shortcode_atts( apply_filters( 'wpsl_address_shortcode_defaults', array(
|
578 |
'id' => '',
|
579 |
'name' => true,
|
580 |
'address' => true,
|
@@ -587,7 +596,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
587 |
'fax' => true,
|
588 |
'email' => true,
|
589 |
'url' => true
|
590 |
-
) ), $atts );
|
591 |
|
592 |
if ( get_post_type() == 'wpsl_stores' ) {
|
593 |
if ( empty( $atts['id'] ) ) {
|
@@ -621,16 +630,17 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
621 |
$count = count( $address_format );
|
622 |
$i = 1;
|
623 |
|
624 |
-
|
625 |
foreach ( $address_format as $address_part ) {
|
626 |
|
627 |
-
|
628 |
if ( $address_part != 'comma' && $atts[$address_part] ) {
|
629 |
$post_meta = get_post_meta( $atts['id'], 'wpsl_' . $address_part, true );
|
630 |
|
631 |
if ( $post_meta ) {
|
632 |
|
633 |
-
/*
|
|
|
634 |
* If so add the, after the current address part, otherwise just show a space
|
635 |
*/
|
636 |
if ( isset( $address_format[$i] ) && ( $address_format[$i] == 'comma' ) ) {
|
@@ -639,7 +649,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
639 |
$punctuation = ' ';
|
640 |
}
|
641 |
|
642 |
-
|
643 |
$br = ( $count == $i ) ? '<br />' : '';
|
644 |
|
645 |
$content .= '<span>' . esc_html( $post_meta ) . $punctuation . '</span>' . $br;
|
@@ -655,25 +665,25 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
655 |
|
656 |
$content .= '</div>';
|
657 |
|
658 |
-
|
659 |
if ( $atts['phone'] || $atts['fax'] || $atts['email'] || $atts['url'] ) {
|
660 |
$content .= '<div class="wpsl-contact-details">';
|
661 |
|
662 |
if ( $atts['phone'] && $store_phone = get_post_meta( $atts['id'], 'wpsl_phone', true ) ) {
|
663 |
-
$content .=
|
664 |
}
|
665 |
|
666 |
if ( $atts['fax'] && $store_fax = get_post_meta( $atts['id'], 'wpsl_fax', true ) ) {
|
667 |
-
$content .=
|
668 |
}
|
669 |
|
670 |
if ( $atts['email'] && $store_email = get_post_meta( $atts['id'], 'wpsl_email', true ) ) {
|
671 |
-
$content .=
|
672 |
}
|
673 |
|
674 |
if ( $atts['url'] && $store_url = get_post_meta( $atts['id'], 'wpsl_url', true ) ) {
|
675 |
$new_window = ( $wpsl_settings['new_window'] ) ? 'target="_blank"' : '' ;
|
676 |
-
$content .=
|
677 |
}
|
678 |
|
679 |
$content .= '</div>';
|
@@ -687,7 +697,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
687 |
/**
|
688 |
* Handle the [wpsl_hours] shortcode.
|
689 |
*
|
690 |
-
* @since 2.0
|
691 |
* @param array $atts Shortcode attributes
|
692 |
* @return void|string $output The opening hours
|
693 |
*/
|
@@ -695,10 +705,10 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
695 |
|
696 |
global $post;
|
697 |
|
698 |
-
$atts = shortcode_atts( apply_filters( 'wpsl_hour_shortcode_defaults', array(
|
699 |
'id' => '',
|
700 |
'hide_closed' => false
|
701 |
-
) ), $atts );
|
702 |
|
703 |
if ( get_post_type() == 'wpsl_stores' ) {
|
704 |
if ( empty( $atts['id'] ) ) {
|
@@ -721,10 +731,31 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
721 |
}
|
722 |
}
|
723 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
724 |
/**
|
725 |
* Handle the [wpsl_map] shortcode.
|
726 |
*
|
727 |
-
* @since 2.0
|
728 |
* @param array $atts Shortcode attributes
|
729 |
* @return string $output The html for the map
|
730 |
*/
|
@@ -767,7 +798,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
767 |
$lat = get_post_meta( $store_id, 'wpsl_lat', true );
|
768 |
$lng = get_post_meta( $store_id, 'wpsl_lng', true );
|
769 |
|
770 |
-
|
771 |
if ( is_numeric( $lat ) && is_numeric( $lng ) ) {
|
772 |
$store_meta[$i] = apply_filters( 'wpsl_cpt_info_window_meta_fields', array(
|
773 |
'store' => get_the_title( $store_id ),
|
@@ -789,7 +820,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
789 |
|
790 |
$output = '<div id="wpsl-base-gmap_' . self::$map_count . '" class="wpsl-gmap-canvas"></div>' . "\r\n";
|
791 |
|
792 |
-
|
793 |
$map_styles = $this->check_map_shortcode_atts( $atts );
|
794 |
|
795 |
if ( $map_styles ) {
|
@@ -817,7 +848,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
817 |
*
|
818 |
* The values are send to wp_localize_script in add_frontend_scripts.
|
819 |
*
|
820 |
-
* @since 2.0
|
821 |
* @param array $atts The map style shortcode attributes
|
822 |
* @return array $map_atts Validated map style shortcode attributes
|
823 |
*/
|
@@ -875,7 +906,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
875 |
/**
|
876 |
* Set the shortcode attribute to either 1 or 0.
|
877 |
*
|
878 |
-
* @since 2.0
|
879 |
* @param string $att The shortcode attribute val
|
880 |
* @return int $att_val Either 1 or 0
|
881 |
*/
|
@@ -893,7 +924,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
893 |
/**
|
894 |
* Make sure the filter contains a valid value, otherwise use the default value.
|
895 |
*
|
896 |
-
* @since 2.0
|
897 |
* @return string $filter_value The filter value
|
898 |
*/
|
899 |
public function check_store_filter( $filter ) {
|
@@ -910,7 +941,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
910 |
/**
|
911 |
* Get the default selected value for a dropdown.
|
912 |
*
|
913 |
-
* @since 1.0
|
914 |
* @param string $type The request list type
|
915 |
* @return string $response The default list value
|
916 |
*/
|
@@ -921,7 +952,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
921 |
|
922 |
foreach ( $list_values as $k => $list_value ) {
|
923 |
|
924 |
-
|
925 |
if ( strpos( $list_value, '[' ) !== false ) {
|
926 |
$response = filter_var( $list_value, FILTER_SANITIZE_NUMBER_INT );
|
927 |
break;
|
@@ -934,7 +965,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
934 |
/**
|
935 |
* Check if we have a opening day that has an value, if not they are all set to closed.
|
936 |
*
|
937 |
-
* @since 2.0
|
938 |
* @param array $opening_hours The opening hours
|
939 |
* @return boolean True if a day is found that isn't empty
|
940 |
*/
|
@@ -950,7 +981,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
950 |
/**
|
951 |
* Create the css rules based on the height / max-width that is set on the settings page.
|
952 |
*
|
953 |
-
* @since 1.0
|
954 |
* @return string $css The custom css rules
|
955 |
*/
|
956 |
public function get_custom_css() {
|
@@ -972,8 +1003,10 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
972 |
$css .= "\t" . "#wpsl-stores, #wpsl-direction-details, #wpsl-gmap {height:" . esc_attr( $wpsl_settings['height'] ) . "px !important;}" . "\r\n";
|
973 |
}
|
974 |
|
975 |
-
/*
|
976 |
-
* the
|
|
|
|
|
977 |
if ( $wpsl_settings['category_dropdown'] ) {
|
978 |
$cat_elem = ',#wpsl-category .wpsl-dropdown';
|
979 |
} else {
|
@@ -991,7 +1024,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
991 |
/**
|
992 |
* Collect the CSS classes that are placed on the outer store locator div.
|
993 |
*
|
994 |
-
* @since 2.0
|
995 |
* @return string $classes The custom CSS rules
|
996 |
*/
|
997 |
public function get_css_classes() {
|
@@ -1023,7 +1056,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
1023 |
* Collect all the attributes (language, key, region)
|
1024 |
* we need before making a request to the Google Maps API.
|
1025 |
*
|
1026 |
-
* @since 1.0
|
1027 |
* @param string $list_type The name of the list we need to load data for
|
1028 |
* @return string $dropdown_list A list with the available options for the dropdown list
|
1029 |
*/
|
@@ -1034,7 +1067,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
1034 |
$dropdown_list = '';
|
1035 |
$settings = explode( ',', $wpsl_settings[$list_type] );
|
1036 |
|
1037 |
-
|
1038 |
if ( $list_type == 'search_radius' ) {
|
1039 |
$distance_unit = ' '. esc_attr( $wpsl_settings['distance_unit'] );
|
1040 |
} else {
|
@@ -1043,7 +1076,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
1043 |
|
1044 |
foreach ( $settings as $index => $setting_value ) {
|
1045 |
|
1046 |
-
|
1047 |
if ( strpos( $setting_value, '[' ) !== false ) {
|
1048 |
$setting_value = filter_var( $setting_value, FILTER_SANITIZE_NUMBER_INT );
|
1049 |
$selected = 'selected="selected" ';
|
@@ -1060,7 +1093,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
1060 |
/**
|
1061 |
* Create the category filter.
|
1062 |
*
|
1063 |
-
* @since 2.0
|
1064 |
* @return string|void $category The HTML for the category dropdown, or nothing if no terms exist.
|
1065 |
*/
|
1066 |
public function create_category_filter() {
|
@@ -1092,7 +1125,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
1092 |
* So when a user selected green.png in the admin panel. The JS on the front-end will end up
|
1093 |
* loading green@2x.png to provide support for retina compatible devices.
|
1094 |
*
|
1095 |
-
* @since 1.0
|
1096 |
* @param string $filename The name of the seleted marker
|
1097 |
* @return string $filename The filename with @2x added to the end
|
1098 |
*/
|
@@ -1119,7 +1152,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
1119 |
'search_radius'
|
1120 |
);
|
1121 |
|
1122 |
-
|
1123 |
foreach ( $required_defaults as $required_default ) {
|
1124 |
preg_match_all( '/\[([0-9]+?)\]/', $wpsl_settings[$required_default], $match, PREG_PATTERN_ORDER );
|
1125 |
$output[$required_default] = $match[1][0];
|
@@ -1131,7 +1164,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
1131 |
/**
|
1132 |
* Load the required css styles.
|
1133 |
*
|
1134 |
-
* @since 2.0
|
1135 |
* @return void
|
1136 |
*/
|
1137 |
public function add_frontend_styles() {
|
@@ -1146,7 +1179,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
1146 |
*
|
1147 |
* The '' and '' code is for the icon font from fontello.com
|
1148 |
*
|
1149 |
-
* @since 2.0
|
1150 |
* @return string The HTML for the map controls
|
1151 |
*/
|
1152 |
public function get_map_controls() {
|
@@ -1192,7 +1225,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
1192 |
*
|
1193 |
* They are shown when the HTML Geolocation API returns an error.
|
1194 |
*
|
1195 |
-
* @since 2.0
|
1196 |
* @return array $geolocation_errors
|
1197 |
*/
|
1198 |
public function geolocation_errors() {
|
@@ -1208,16 +1241,16 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
1208 |
}
|
1209 |
|
1210 |
/**
|
1211 |
-
* Load the required
|
1212 |
*
|
1213 |
-
* @since 1.0
|
1214 |
* @return void
|
1215 |
*/
|
1216 |
public function add_frontend_scripts() {
|
1217 |
|
1218 |
global $wpsl_settings, $wpsl;
|
1219 |
|
1220 |
-
|
1221 |
if ( empty( $this->load_scripts ) ) {
|
1222 |
return;
|
1223 |
}
|
@@ -1226,7 +1259,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
1226 |
|
1227 |
$dropdown_defaults = $this->get_dropdown_defaults();
|
1228 |
|
1229 |
-
wp_enqueue_script( 'wpsl-gmap', ( 'https://maps.google.com/maps/api/js
|
1230 |
|
1231 |
$base_settings = array(
|
1232 |
'storeMarker' => $this->create_retina_filename( $wpsl_settings['store_marker'] ),
|
@@ -1265,32 +1298,32 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
1265 |
'mapControls' => $this->get_map_controls(),
|
1266 |
'mapTabAnchor' => apply_filters( 'wpsl_map_tab_anchor', 'wpsl-map-tab' )
|
1267 |
);
|
1268 |
-
|
1269 |
-
|
1270 |
if ( $wpsl_settings['marker_clusters'] ) {
|
1271 |
wp_enqueue_script( 'wpsl-cluster', WPSL_URL . 'js/markerclusterer'. $min .'.js', '', WPSL_VERSION_NUM, true ); //not minified version is in the /js folder
|
1272 |
|
1273 |
$base_settings['clusterZoom'] = $wpsl_settings['cluster_zoom'];
|
1274 |
$base_settings['clusterSize'] = $wpsl_settings['cluster_size'];
|
1275 |
}
|
1276 |
-
|
1277 |
-
|
1278 |
if ( $wpsl_settings['infowindow_style'] == 'infobox' ) {
|
1279 |
wp_enqueue_script( 'wpsl-infobox', WPSL_URL . 'js/infobox'. $min .'.js', array( 'wpsl-gmap' ), WPSL_VERSION_NUM, true ); // Not minified version is in the /js folder
|
1280 |
|
1281 |
$base_settings['infoWindowStyle'] = $wpsl_settings['infowindow_style'];
|
1282 |
$base_settings = $this->get_infobox_settings( $base_settings );
|
1283 |
}
|
1284 |
-
|
1285 |
-
|
1286 |
if ( !empty( $wpsl_settings['map_style'] ) ) {
|
1287 |
$base_settings['mapStyle'] = strip_tags( stripslashes( json_decode( $wpsl_settings['map_style'] ) ) );
|
1288 |
}
|
1289 |
-
|
1290 |
wp_enqueue_script( 'wpsl-js', WPSL_URL . 'js/wpsl-gmap'. $min .'.js', array( 'jquery' ), WPSL_VERSION_NUM, true );
|
1291 |
wp_enqueue_script( 'underscore' );
|
1292 |
-
|
1293 |
-
|
1294 |
if ( in_array( 'wpsl_store_locator', $this->load_scripts ) ) {
|
1295 |
$settings = wp_parse_args( $base_settings, $locator_map_settings );
|
1296 |
$template = 'wpsl_store_locator';
|
@@ -1307,18 +1340,18 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
1307 |
'streetView' => $wpsl->i18n->get_translation( 'street_view_label', __( 'Street view', 'wpsl' ) ),
|
1308 |
'zoomHere' => $wpsl->i18n->get_translation( 'zoom_here_label', __( 'Zoom here', 'wpsl' ) )
|
1309 |
);
|
1310 |
-
|
1311 |
wp_localize_script( 'wpsl-js', 'wpslLabels', $labels );
|
1312 |
wp_localize_script( 'wpsl-js', 'wpslGeolocationErrors', $this->geolocation_errors() );
|
1313 |
} else {
|
1314 |
$template = '';
|
1315 |
$settings = $base_settings;
|
1316 |
}
|
1317 |
-
|
1318 |
wp_localize_script( 'wpsl-js', 'wpslSettings', $settings );
|
1319 |
-
|
1320 |
wpsl_create_underscore_templates( $template );
|
1321 |
-
|
1322 |
if ( !empty( $this->store_map_data ) ) {
|
1323 |
$i = 0;
|
1324 |
|
@@ -1333,7 +1366,7 @@ if ( !class_exists( 'WPSL_Frontend' ) ) {
|
|
1333 |
/**
|
1334 |
* Get the infobox settings.
|
1335 |
*
|
1336 |
-
* @since 2.0
|
1337 |
* @see http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/reference.html
|
1338 |
* @param array $settings The plugin settings used on the front-end in js
|
1339 |
* @return array $settings The plugin settings including the infobox settings
|
2 |
/**
|
3 |
* Frontend class
|
4 |
*
|
5 |
+
* @author Tijmen Smit
|
6 |
+
* @since 1.0.0
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
13 |
/**
|
14 |
* Handle the frontend of the store locator
|
15 |
*
|
16 |
+
* @since 1.0.0
|
17 |
*/
|
18 |
class WPSL_Frontend {
|
19 |
|
20 |
/**
|
21 |
* Keep track which scripts we need to load
|
22 |
*
|
23 |
+
* @since 2.0.0
|
24 |
*/
|
25 |
private $load_scripts = array();
|
26 |
|
27 |
/**
|
28 |
* Keep track of the amount of maps on the page
|
29 |
*
|
30 |
+
* @since 2.0.0
|
31 |
*/
|
32 |
private static $map_count = 0;
|
33 |
|
56 |
/**
|
57 |
* Include the required front-end files.
|
58 |
*
|
59 |
+
* @since 2.0.0
|
60 |
* @return void
|
61 |
*/
|
62 |
public function includes() {
|
66 |
/**
|
67 |
* Handle the Ajax search on the frontend.
|
68 |
*
|
69 |
+
* @since 1.0.0
|
70 |
* @return json A list of store locations that are located within the selected search radius
|
71 |
*/
|
72 |
public function store_search() {
|
73 |
|
74 |
global $wpsl, $wpsl_settings;
|
75 |
|
76 |
+
/*
|
77 |
+
* Check if auto loading the locations on page load is enabled.
|
78 |
*
|
79 |
* If so then we save the store data in a transient to prevent a long loading time
|
80 |
* in case a large amount of locations need to be displayed.
|
85 |
*/
|
86 |
if ( $wpsl_settings['autoload'] && isset( $_GET['autoload'] ) && $_GET['autoload'] && !$wpsl_settings['debug'] && !isset( $_GET['skip_cache'] ) ) {
|
87 |
|
88 |
+
/*
|
89 |
+
* If a multilingual plugin ( WPML or qTranslate X ) is active then we have
|
90 |
* to make sure each language has his own unique transient. We do this by
|
91 |
* including the lang code in the transient name.
|
92 |
*
|
120 |
* latlng of the searched location, and the latlng from
|
121 |
* the stores in the db.
|
122 |
*
|
123 |
+
* @since 2.0.0
|
124 |
* @return void|array $store_data The list of stores that fall within the selected range.
|
125 |
*/
|
126 |
public function find_nearby_locations() {
|
129 |
|
130 |
$store_data = array();
|
131 |
|
132 |
+
/*
|
133 |
+
* Set the correct earth radius in either km or miles.
|
134 |
* We need this to calculate the distance between two coordinates.
|
135 |
*/
|
136 |
$radius = ( $wpsl_settings['distance_unit'] == 'km' ) ? 6371 : 3959;
|
137 |
|
138 |
+
// The placeholder values for the prepared statement in the sql query.
|
139 |
$placeholder_values = array(
|
140 |
$radius,
|
141 |
$_GET['lat'],
|
143 |
$_GET['lat']
|
144 |
);
|
145 |
|
146 |
+
// Check if we need to filter the results by category.
|
147 |
if ( isset( $_GET['filter'] ) && $_GET['filter'] ) {
|
148 |
$placeholder_values[] = $_GET['filter'];
|
149 |
|
155 |
$cat_filter = '';
|
156 |
}
|
157 |
|
158 |
+
/*
|
159 |
* If WPML is active we include 'GROUP BY lat' in the sql query
|
160 |
* to prevent duplicate locations from showing up in the results.
|
161 |
*
|
170 |
$group_by = '';
|
171 |
}
|
172 |
|
173 |
+
/*
|
174 |
+
* If autoload is enabled we need to check if there is a limit to the
|
175 |
* amount of locations we need to show.
|
176 |
*
|
177 |
* Otherwise include the radius and max results limit in the sql query.
|
192 |
|
193 |
$placeholder_values = apply_filters( 'wpsl_sql_placeholder_values', $placeholder_values );
|
194 |
|
195 |
+
/*
|
196 |
+
* The sql that will check which store locations fall within
|
197 |
* the selected radius based on the lat and lng values.
|
198 |
*/
|
199 |
$sql = apply_filters( 'wpsl_sql',
|
212 |
|
213 |
$stores = $wpdb->get_results( $wpdb->prepare( $sql, $placeholder_values ) );
|
214 |
|
215 |
+
if ( $stores ) {
|
216 |
$store_data = apply_filters( 'wpsl_store_data', $this->get_store_meta_data( $stores ) );
|
217 |
}
|
218 |
|
222 |
/**
|
223 |
* Get the post meta data for the selected stores.
|
224 |
*
|
225 |
+
* @since 2.0.0
|
226 |
* @param object $stores
|
227 |
* @return array $all_stores The stores that fall within the selected range with the post meta data.
|
228 |
*/
|
233 |
$all_stores = array();
|
234 |
$include_post_content = apply_filters( 'wpsl_include_post_content', false );
|
235 |
|
236 |
+
// Get the list of store fields that we need to filter out of the post meta data.
|
237 |
$meta_field_map = $this->frontend_meta_fields();
|
238 |
|
239 |
foreach ( $stores as $store_key => $store ) {
|
240 |
|
241 |
+
// If WPML is active try to get the id of the translated page.
|
242 |
if ( $wpsl->i18n->wpml_exists() ) {
|
243 |
$store->ID = $wpsl->i18n->maybe_get_wpml_id( $store->ID );
|
244 |
|
247 |
}
|
248 |
}
|
249 |
|
250 |
+
// Get the post meta data for each store that was within the range of the search radius.
|
251 |
$custom_fields = get_post_custom( $store->ID );
|
252 |
|
253 |
foreach ( $meta_field_map as $meta_key => $meta_value ) {
|
259 |
$meta_type = '';
|
260 |
}
|
261 |
|
262 |
+
// If we need to hide the opening hours, and the current meta type is set to hours we skip it.
|
263 |
if ( $wpsl_settings['hide_hours'] && $meta_type == 'hours' ) {
|
264 |
continue;
|
265 |
}
|
266 |
|
267 |
+
// Make sure the data is safe to use on the frontend and in the format we expect it to be.
|
268 |
switch ( $meta_type ) {
|
269 |
case 'numeric':
|
270 |
$meta_data = ( is_numeric( $custom_fields[$meta_key][0] ) ) ? $custom_fields[$meta_key][0] : 0 ;
|
292 |
$store_meta[$meta_value['name']] = '';
|
293 |
}
|
294 |
|
295 |
+
/*
|
296 |
+
* Include the post content if the "More info" option is enabled on the settings page,
|
297 |
* or if $include_post_content is set to true through the 'wpsl_include_post_content' filter.
|
298 |
*/
|
299 |
if ( ( $wpsl_settings['more_info'] && $wpsl_settings['more_info_location'] == 'store listings' ) || $include_post_content ) {
|
330 |
*
|
331 |
* If no type is set it will default to sanitize_text_field.
|
332 |
*
|
333 |
+
* @since 2.0.0
|
334 |
* @return array $store_fields The names of the meta fields used by the store
|
335 |
*/
|
336 |
public function frontend_meta_fields() {
|
388 |
/**
|
389 |
* Get the store thumbnail.
|
390 |
*
|
391 |
+
* @since 2.0.0
|
392 |
* @param string $post_id The post id of the store
|
393 |
* @param string $store_name The name of the store
|
394 |
* @return void|string $thumb The html img tag
|
408 |
/**
|
409 |
* Get the store thumbnail size.
|
410 |
*
|
411 |
+
* @since 2.0.0
|
412 |
* @return array $size The thumb format
|
413 |
*/
|
414 |
public function get_store_thumb_size() {
|
426 |
*
|
427 |
* Note: The opening hours can only be set in the textarea format by users who upgraded from 1.x.
|
428 |
*
|
429 |
+
* @since 2.0.0
|
430 |
* @param array|string $hours The opening hours
|
431 |
* @param boolean $hide_closed Hide the days were the location is closed
|
432 |
* @return string $hours The formated opening hours
|
435 |
|
436 |
$hours = maybe_unserialize( $hours );
|
437 |
|
438 |
+
/*
|
439 |
+
* If the hours are set through the dropdown then we create a table for the opening hours.
|
440 |
* Otherwise we output the data entered in the textarea.
|
441 |
*/
|
442 |
if ( is_array( $hours ) ) {
|
451 |
/**
|
452 |
* Create a table for the opening hours.
|
453 |
*
|
454 |
+
* @since 2.0.0
|
455 |
+
* @todo add schema.org support.
|
456 |
* @param array $hours The opening hours
|
457 |
* @param boolean $hide_closed Hide the days where the location is closed
|
458 |
* @return string $hour_table The opening hours sorted in a table
|
461 |
|
462 |
$opening_days = wpsl_get_weekdays();
|
463 |
|
464 |
+
// Make sure that we have actual opening hours, and not every day is empty.
|
465 |
if ( $this->not_always_closed( $hours ) ) {
|
466 |
$hour_table = '<table class="wpsl-opening-hours">';
|
467 |
|
469 |
$i = 0;
|
470 |
$hour_count = count( $hours[$index] );
|
471 |
|
472 |
+
// If we need to hide days that are set to closed then skip them.
|
473 |
if ( $hide_closed && !$hour_count ) {
|
474 |
continue;
|
475 |
}
|
477 |
$hour_table .= '<tr>';
|
478 |
$hour_table .= '<td>' . esc_html( $day ) . '</td>';
|
479 |
|
480 |
+
// If we have opening hours we show them, otherwise just show 'Closed'.
|
481 |
if ( $hour_count > 0 ) {
|
482 |
$hour_table .= '<td>';
|
483 |
|
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
|
514 |
* @return string $content
|
515 |
*/
|
534 |
/**
|
535 |
* Handle the [wpsl] shortcode.
|
536 |
*
|
537 |
+
* @since 1.0.0
|
538 |
* @param array $atts Shortcode attributes
|
539 |
* @return string $output The wpsl template
|
540 |
*/
|
542 |
|
543 |
global $wpsl_settings;
|
544 |
|
545 |
+
// Accept a 'template' attribute to specify the template ID e.g. "default" or "below_map".
|
546 |
$atts = shortcode_atts( array(
|
547 |
'template' => $wpsl_settings['template_id']
|
548 |
), $atts );
|
549 |
|
550 |
+
// Make sure the required scripts are included for the wpsl shortcode.
|
551 |
array_push( $this->load_scripts, 'wpsl_store_locator' );
|
552 |
|
553 |
$template_list = wpsl_get_templates();
|
554 |
$template_path = '';
|
555 |
|
556 |
+
// Loop over the template list and look for a matching id with the one set on the settings page.
|
557 |
foreach ( $template_list as $template ) {
|
558 |
if ( $atts['template'] == $template['id'] ) {
|
559 |
$template_path = $template['path'];
|
561 |
}
|
562 |
}
|
563 |
|
564 |
+
// Check if we have a template path and the file exists, otherwise we use the default template.
|
565 |
if ( !$template_path || ( !file_exists( $template_path ) ) ) {
|
566 |
$template_path = WPSL_PLUGIN_DIR . 'frontend/templates/default.php';
|
567 |
}
|
573 |
|
574 |
/**
|
575 |
* Handle the [wpsl_address] shortcode.
|
576 |
+
*
|
577 |
+
* @since 2.0.0
|
578 |
+
* @todo add schema.org support.
|
579 |
* @param array $atts Shortcode attributes
|
580 |
* @return void|string $output The store address
|
581 |
*/
|
583 |
|
584 |
global $post, $wpsl_settings, $wpsl;
|
585 |
|
586 |
+
$atts = $this->bool_check( shortcode_atts( apply_filters( 'wpsl_address_shortcode_defaults', array(
|
587 |
'id' => '',
|
588 |
'name' => true,
|
589 |
'address' => true,
|
596 |
'fax' => true,
|
597 |
'email' => true,
|
598 |
'url' => true
|
599 |
+
) ), $atts ) );
|
600 |
|
601 |
if ( get_post_type() == 'wpsl_stores' ) {
|
602 |
if ( empty( $atts['id'] ) ) {
|
630 |
$count = count( $address_format );
|
631 |
$i = 1;
|
632 |
|
633 |
+
// Loop over the address parts to make sure they are shown in the right order.
|
634 |
foreach ( $address_format as $address_part ) {
|
635 |
|
636 |
+
// Make sure the shortcode attribute is set to true for the $address_part, and it's not the 'comma' part.
|
637 |
if ( $address_part != 'comma' && $atts[$address_part] ) {
|
638 |
$post_meta = get_post_meta( $atts['id'], 'wpsl_' . $address_part, true );
|
639 |
|
640 |
if ( $post_meta ) {
|
641 |
|
642 |
+
/*
|
643 |
+
* Check if the next part of the address is set to 'comma'.
|
644 |
* If so add the, after the current address part, otherwise just show a space
|
645 |
*/
|
646 |
if ( isset( $address_format[$i] ) && ( $address_format[$i] == 'comma' ) ) {
|
649 |
$punctuation = ' ';
|
650 |
}
|
651 |
|
652 |
+
// If we have reached the last item add a <br /> behind it.
|
653 |
$br = ( $count == $i ) ? '<br />' : '';
|
654 |
|
655 |
$content .= '<span>' . esc_html( $post_meta ) . $punctuation . '</span>' . $br;
|
665 |
|
666 |
$content .= '</div>';
|
667 |
|
668 |
+
// If either the phone, fax, email or url is set to true, then add the wrap div for the contact details.
|
669 |
if ( $atts['phone'] || $atts['fax'] || $atts['email'] || $atts['url'] ) {
|
670 |
$content .= '<div class="wpsl-contact-details">';
|
671 |
|
672 |
if ( $atts['phone'] && $store_phone = get_post_meta( $atts['id'], 'wpsl_phone', true ) ) {
|
673 |
+
$content .= esc_html( $wpsl->i18n->get_translation( 'phone_label', __( 'Phone', 'wpsl' ) ) ) . ': <span>' . esc_html( $store_phone ) . '</span><br/>';
|
674 |
}
|
675 |
|
676 |
if ( $atts['fax'] && $store_fax = get_post_meta( $atts['id'], 'wpsl_fax', true ) ) {
|
677 |
+
$content .= esc_html( $wpsl->i18n->get_translation( 'fax_label', __( 'Fax', 'wpsl' ) ) ) . ': <span>' . esc_html( $store_fax ) . '</span><br/>';
|
678 |
}
|
679 |
|
680 |
if ( $atts['email'] && $store_email = get_post_meta( $atts['id'], 'wpsl_email', true ) ) {
|
681 |
+
$content .= esc_html( $wpsl->i18n->get_translation( 'email_label', __( 'Email', 'wpsl' ) ) ) . ': <span>' . sanitize_email( $store_email ) . '</span><br/>';
|
682 |
}
|
683 |
|
684 |
if ( $atts['url'] && $store_url = get_post_meta( $atts['id'], 'wpsl_url', true ) ) {
|
685 |
$new_window = ( $wpsl_settings['new_window'] ) ? 'target="_blank"' : '' ;
|
686 |
+
$content .= esc_html( $wpsl->i18n->get_translation( 'url_label', __( 'Url', 'wpsl' ) ) ) . ': <a ' . $new_window . ' href="' . esc_url( $store_url ) . '">' . esc_url( $store_url ) . '</a><br/>';
|
687 |
}
|
688 |
|
689 |
$content .= '</div>';
|
697 |
/**
|
698 |
* Handle the [wpsl_hours] shortcode.
|
699 |
*
|
700 |
+
* @since 2.0.0
|
701 |
* @param array $atts Shortcode attributes
|
702 |
* @return void|string $output The opening hours
|
703 |
*/
|
705 |
|
706 |
global $post;
|
707 |
|
708 |
+
$atts = $this->bool_check( shortcode_atts( apply_filters( 'wpsl_hour_shortcode_defaults', array(
|
709 |
'id' => '',
|
710 |
'hide_closed' => false
|
711 |
+
) ), $atts ) );
|
712 |
|
713 |
if ( get_post_type() == 'wpsl_stores' ) {
|
714 |
if ( empty( $atts['id'] ) ) {
|
731 |
}
|
732 |
}
|
733 |
|
734 |
+
/**
|
735 |
+
* Make sure the shortcode attributes are booleans
|
736 |
+
* when they are expected to be.
|
737 |
+
*
|
738 |
+
* @since 2.0.4
|
739 |
+
* @param array $atts Shortcode attributes
|
740 |
+
* @return array $atts Shortcode attributes
|
741 |
+
*/
|
742 |
+
public function bool_check( $atts ) {
|
743 |
+
|
744 |
+
foreach ( $atts as $key => $val ) {
|
745 |
+
if ( in_array( $val, array( 'true', '1', 'yes', 'on' ) ) ) {
|
746 |
+
$atts[$key] = true;
|
747 |
+
} else if ( in_array( $val, array( 'false', '0', 'no', 'off' ) ) ) {
|
748 |
+
$atts[$key] = false;
|
749 |
+
}
|
750 |
+
}
|
751 |
+
|
752 |
+
return $atts;
|
753 |
+
}
|
754 |
+
|
755 |
/**
|
756 |
* Handle the [wpsl_map] shortcode.
|
757 |
*
|
758 |
+
* @since 2.0.0
|
759 |
* @param array $atts Shortcode attributes
|
760 |
* @return string $output The html for the map
|
761 |
*/
|
798 |
$lat = get_post_meta( $store_id, 'wpsl_lat', true );
|
799 |
$lng = get_post_meta( $store_id, 'wpsl_lng', true );
|
800 |
|
801 |
+
// Make sure the latlng is numeric before collecting the other meta data.
|
802 |
if ( is_numeric( $lat ) && is_numeric( $lng ) ) {
|
803 |
$store_meta[$i] = apply_filters( 'wpsl_cpt_info_window_meta_fields', array(
|
804 |
'store' => get_the_title( $store_id ),
|
820 |
|
821 |
$output = '<div id="wpsl-base-gmap_' . self::$map_count . '" class="wpsl-gmap-canvas"></div>' . "\r\n";
|
822 |
|
823 |
+
// Make sure the shortcode attributes are valid.
|
824 |
$map_styles = $this->check_map_shortcode_atts( $atts );
|
825 |
|
826 |
if ( $map_styles ) {
|
848 |
*
|
849 |
* The values are send to wp_localize_script in add_frontend_scripts.
|
850 |
*
|
851 |
+
* @since 2.0.0
|
852 |
* @param array $atts The map style shortcode attributes
|
853 |
* @return array $map_atts Validated map style shortcode attributes
|
854 |
*/
|
906 |
/**
|
907 |
* Set the shortcode attribute to either 1 or 0.
|
908 |
*
|
909 |
+
* @since 2.0.0
|
910 |
* @param string $att The shortcode attribute val
|
911 |
* @return int $att_val Either 1 or 0
|
912 |
*/
|
924 |
/**
|
925 |
* Make sure the filter contains a valid value, otherwise use the default value.
|
926 |
*
|
927 |
+
* @since 2.0.0
|
928 |
* @return string $filter_value The filter value
|
929 |
*/
|
930 |
public function check_store_filter( $filter ) {
|
941 |
/**
|
942 |
* Get the default selected value for a dropdown.
|
943 |
*
|
944 |
+
* @since 1.0.0
|
945 |
* @param string $type The request list type
|
946 |
* @return string $response The default list value
|
947 |
*/
|
952 |
|
953 |
foreach ( $list_values as $k => $list_value ) {
|
954 |
|
955 |
+
// The default radius has a [] wrapped around it, so we check for that and filter out the [].
|
956 |
if ( strpos( $list_value, '[' ) !== false ) {
|
957 |
$response = filter_var( $list_value, FILTER_SANITIZE_NUMBER_INT );
|
958 |
break;
|
965 |
/**
|
966 |
* Check if we have a opening day that has an value, if not they are all set to closed.
|
967 |
*
|
968 |
+
* @since 2.0.0
|
969 |
* @param array $opening_hours The opening hours
|
970 |
* @return boolean True if a day is found that isn't empty
|
971 |
*/
|
981 |
/**
|
982 |
* Create the css rules based on the height / max-width that is set on the settings page.
|
983 |
*
|
984 |
+
* @since 1.0.0
|
985 |
* @return string $css The custom css rules
|
986 |
*/
|
987 |
public function get_custom_css() {
|
1003 |
$css .= "\t" . "#wpsl-stores, #wpsl-direction-details, #wpsl-gmap {height:" . esc_attr( $wpsl_settings['height'] ) . "px !important;}" . "\r\n";
|
1004 |
}
|
1005 |
|
1006 |
+
/*
|
1007 |
+
* If the category dropdowns are enabled then we make it
|
1008 |
+
* the same width as the search input field.
|
1009 |
+
*/
|
1010 |
if ( $wpsl_settings['category_dropdown'] ) {
|
1011 |
$cat_elem = ',#wpsl-category .wpsl-dropdown';
|
1012 |
} else {
|
1024 |
/**
|
1025 |
* Collect the CSS classes that are placed on the outer store locator div.
|
1026 |
*
|
1027 |
+
* @since 2.0.0
|
1028 |
* @return string $classes The custom CSS rules
|
1029 |
*/
|
1030 |
public function get_css_classes() {
|
1056 |
* Collect all the attributes (language, key, region)
|
1057 |
* we need before making a request to the Google Maps API.
|
1058 |
*
|
1059 |
+
* @since 1.0.0
|
1060 |
* @param string $list_type The name of the list we need to load data for
|
1061 |
* @return string $dropdown_list A list with the available options for the dropdown list
|
1062 |
*/
|
1067 |
$dropdown_list = '';
|
1068 |
$settings = explode( ',', $wpsl_settings[$list_type] );
|
1069 |
|
1070 |
+
// Only show the distance unit if we are dealing with the search radius.
|
1071 |
if ( $list_type == 'search_radius' ) {
|
1072 |
$distance_unit = ' '. esc_attr( $wpsl_settings['distance_unit'] );
|
1073 |
} else {
|
1076 |
|
1077 |
foreach ( $settings as $index => $setting_value ) {
|
1078 |
|
1079 |
+
// The default radius has a [] wrapped around it, so we check for that and filter out the [].
|
1080 |
if ( strpos( $setting_value, '[' ) !== false ) {
|
1081 |
$setting_value = filter_var( $setting_value, FILTER_SANITIZE_NUMBER_INT );
|
1082 |
$selected = 'selected="selected" ';
|
1093 |
/**
|
1094 |
* Create the category filter.
|
1095 |
*
|
1096 |
+
* @since 2.0.0
|
1097 |
* @return string|void $category The HTML for the category dropdown, or nothing if no terms exist.
|
1098 |
*/
|
1099 |
public function create_category_filter() {
|
1125 |
* So when a user selected green.png in the admin panel. The JS on the front-end will end up
|
1126 |
* loading green@2x.png to provide support for retina compatible devices.
|
1127 |
*
|
1128 |
+
* @since 1.0.0
|
1129 |
* @param string $filename The name of the seleted marker
|
1130 |
* @return string $filename The filename with @2x added to the end
|
1131 |
*/
|
1152 |
'search_radius'
|
1153 |
);
|
1154 |
|
1155 |
+
// Strip out the default values that are wrapped in [].
|
1156 |
foreach ( $required_defaults as $required_default ) {
|
1157 |
preg_match_all( '/\[([0-9]+?)\]/', $wpsl_settings[$required_default], $match, PREG_PATTERN_ORDER );
|
1158 |
$output[$required_default] = $match[1][0];
|
1164 |
/**
|
1165 |
* Load the required css styles.
|
1166 |
*
|
1167 |
+
* @since 2.0.0
|
1168 |
* @return void
|
1169 |
*/
|
1170 |
public function add_frontend_styles() {
|
1179 |
*
|
1180 |
* The '' and '' code is for the icon font from fontello.com
|
1181 |
*
|
1182 |
+
* @since 2.0.0
|
1183 |
* @return string The HTML for the map controls
|
1184 |
*/
|
1185 |
public function get_map_controls() {
|
1225 |
*
|
1226 |
* They are shown when the HTML Geolocation API returns an error.
|
1227 |
*
|
1228 |
+
* @since 2.0.0
|
1229 |
* @return array $geolocation_errors
|
1230 |
*/
|
1231 |
public function geolocation_errors() {
|
1241 |
}
|
1242 |
|
1243 |
/**
|
1244 |
+
* Load the required JS scripts.
|
1245 |
*
|
1246 |
+
* @since 1.0.0
|
1247 |
* @return void
|
1248 |
*/
|
1249 |
public function add_frontend_scripts() {
|
1250 |
|
1251 |
global $wpsl_settings, $wpsl;
|
1252 |
|
1253 |
+
// Only load the required js files on the store locator page or individual store pages.
|
1254 |
if ( empty( $this->load_scripts ) ) {
|
1255 |
return;
|
1256 |
}
|
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(
|
1265 |
'storeMarker' => $this->create_retina_filename( $wpsl_settings['store_marker'] ),
|
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 |
}
|
1309 |
+
|
1310 |
+
// Check if we need to include the infobox script and settings.
|
1311 |
if ( $wpsl_settings['infowindow_style'] == 'infobox' ) {
|
1312 |
wp_enqueue_script( 'wpsl-infobox', WPSL_URL . 'js/infobox'. $min .'.js', array( 'wpsl-gmap' ), WPSL_VERSION_NUM, true ); // Not minified version is in the /js folder
|
1313 |
|
1314 |
$base_settings['infoWindowStyle'] = $wpsl_settings['infowindow_style'];
|
1315 |
$base_settings = $this->get_infobox_settings( $base_settings );
|
1316 |
}
|
1317 |
+
|
1318 |
+
// Include the map style.
|
1319 |
if ( !empty( $wpsl_settings['map_style'] ) ) {
|
1320 |
$base_settings['mapStyle'] = strip_tags( stripslashes( json_decode( $wpsl_settings['map_style'] ) ) );
|
1321 |
}
|
1322 |
+
|
1323 |
wp_enqueue_script( 'wpsl-js', WPSL_URL . 'js/wpsl-gmap'. $min .'.js', array( 'jquery' ), WPSL_VERSION_NUM, true );
|
1324 |
wp_enqueue_script( 'underscore' );
|
1325 |
+
|
1326 |
+
// Check if we need to include all the settings and labels or just a part of them.
|
1327 |
if ( in_array( 'wpsl_store_locator', $this->load_scripts ) ) {
|
1328 |
$settings = wp_parse_args( $base_settings, $locator_map_settings );
|
1329 |
$template = 'wpsl_store_locator';
|
1340 |
'streetView' => $wpsl->i18n->get_translation( 'street_view_label', __( 'Street view', 'wpsl' ) ),
|
1341 |
'zoomHere' => $wpsl->i18n->get_translation( 'zoom_here_label', __( 'Zoom here', 'wpsl' ) )
|
1342 |
);
|
1343 |
+
|
1344 |
wp_localize_script( 'wpsl-js', 'wpslLabels', $labels );
|
1345 |
wp_localize_script( 'wpsl-js', 'wpslGeolocationErrors', $this->geolocation_errors() );
|
1346 |
} else {
|
1347 |
$template = '';
|
1348 |
$settings = $base_settings;
|
1349 |
}
|
1350 |
+
|
1351 |
wp_localize_script( 'wpsl-js', 'wpslSettings', $settings );
|
1352 |
+
|
1353 |
wpsl_create_underscore_templates( $template );
|
1354 |
+
|
1355 |
if ( !empty( $this->store_map_data ) ) {
|
1356 |
$i = 0;
|
1357 |
|
1366 |
/**
|
1367 |
* Get the infobox settings.
|
1368 |
*
|
1369 |
+
* @since 2.0.0
|
1370 |
* @see http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/reference.html
|
1371 |
* @param array $settings The plugin settings used on the front-end in js
|
1372 |
* @return array $settings The plugin settings including the infobox settings
|
frontend/underscore-functions.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*
|
5 |
* The template is created in JS with _.template, see http://underscorejs.org/#template
|
6 |
*
|
7 |
-
* @since 2.0
|
8 |
* @param string $template The type of template we need to create
|
9 |
* @return void
|
10 |
*/
|
@@ -95,7 +95,7 @@ function wpsl_create_underscore_templates( $template ) {
|
|
95 |
/**
|
96 |
* Create the more info template.
|
97 |
*
|
98 |
-
* @since 2.0
|
99 |
* @return string $more_info_template The template that is used to show the "More info" content
|
100 |
*/
|
101 |
function wpsl_more_info_template() {
|
@@ -148,7 +148,7 @@ function wpsl_more_info_template() {
|
|
148 |
/**
|
149 |
* Create the store header template.
|
150 |
*
|
151 |
-
* @since 2.0
|
152 |
* @param string $location The location where the header is shown ( info_window or listing )
|
153 |
* @return string $header_template The template for the store header
|
154 |
*/
|
@@ -162,7 +162,8 @@ function wpsl_store_header_template( $location = 'info_window' ) {
|
|
162 |
$new_window = '';
|
163 |
}
|
164 |
|
165 |
-
/*
|
|
|
166 |
* amount of tabs in front of it based on the location were it is shown.
|
167 |
*/
|
168 |
if ( $location == 'listing') {
|
@@ -187,7 +188,7 @@ function wpsl_store_header_template( $location = 'info_window' ) {
|
|
187 |
/**
|
188 |
* Create the address placeholders based on the structure defined on the settings page.
|
189 |
*
|
190 |
-
* @since 2.0
|
191 |
* @return string $address_placeholders A list of address placeholders in the correct order
|
192 |
*/
|
193 |
function wpsl_address_format_placeholders() {
|
@@ -202,7 +203,8 @@ function wpsl_address_format_placeholders() {
|
|
202 |
foreach ( $address_format as $address_part ) {
|
203 |
if ( $address_part != 'comma' ) {
|
204 |
|
205 |
-
/*
|
|
|
206 |
* is going to be a comma or if it is the last part.
|
207 |
*/
|
208 |
if ( $i == $part_count || $address_format[$i + 1] == 'comma' ) {
|
4 |
*
|
5 |
* The template is created in JS with _.template, see http://underscorejs.org/#template
|
6 |
*
|
7 |
+
* @since 2.0.0
|
8 |
* @param string $template The type of template we need to create
|
9 |
* @return void
|
10 |
*/
|
95 |
/**
|
96 |
* Create the more info template.
|
97 |
*
|
98 |
+
* @since 2.0.0
|
99 |
* @return string $more_info_template The template that is used to show the "More info" content
|
100 |
*/
|
101 |
function wpsl_more_info_template() {
|
148 |
/**
|
149 |
* Create the store header template.
|
150 |
*
|
151 |
+
* @since 2.0.0
|
152 |
* @param string $location The location where the header is shown ( info_window or listing )
|
153 |
* @return string $header_template The template for the store header
|
154 |
*/
|
162 |
$new_window = '';
|
163 |
}
|
164 |
|
165 |
+
/*
|
166 |
+
* To keep the code readable in the HTML source we ( unfortunately ) need to adjust the
|
167 |
* amount of tabs in front of it based on the location were it is shown.
|
168 |
*/
|
169 |
if ( $location == 'listing') {
|
188 |
/**
|
189 |
* Create the address placeholders based on the structure defined on the settings page.
|
190 |
*
|
191 |
+
* @since 2.0.0
|
192 |
* @return string $address_placeholders A list of address placeholders in the correct order
|
193 |
*/
|
194 |
function wpsl_address_format_placeholders() {
|
203 |
foreach ( $address_format as $address_part ) {
|
204 |
if ( $address_part != 'comma' ) {
|
205 |
|
206 |
+
/*
|
207 |
+
* Don't add a space after the placeholder if the next part
|
208 |
* is going to be a comma or if it is the last part.
|
209 |
*/
|
210 |
if ( $i == $part_count || $address_format[$i + 1] == 'comma' ) {
|
inc/class-i18n.php
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
/**
|
3 |
* i18n class
|
4 |
*
|
5 |
-
* @
|
6 |
-
* @since
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
@@ -26,7 +26,7 @@ if ( !class_exists( 'WPSL_i18n' ) ) {
|
|
26 |
/**
|
27 |
* Load the translations from the language folder
|
28 |
*
|
29 |
-
* @since 2.0
|
30 |
* @return void
|
31 |
*/
|
32 |
public function load_plugin_textdomain() {
|
@@ -34,17 +34,17 @@ if ( !class_exists( 'WPSL_i18n' ) ) {
|
|
34 |
$domain = 'wpsl';
|
35 |
$locale = apply_filters( 'plugin_locale', get_locale(), $domain );
|
36 |
|
37 |
-
|
38 |
load_textdomain( $domain, WP_LANG_DIR . '/wp-store-locator/' . $domain . '-' . $locale . '.mo' );
|
39 |
|
40 |
-
|
41 |
load_plugin_textdomain( $domain, false, dirname( WPSL_BASENAME ) . '/languages/' );
|
42 |
}
|
43 |
|
44 |
/**
|
45 |
* Check if WPML is active
|
46 |
*
|
47 |
-
* @since 2.0
|
48 |
* @return boolean|null
|
49 |
*/
|
50 |
public function wpml_exists() {
|
@@ -59,7 +59,7 @@ if ( !class_exists( 'WPSL_i18n' ) ) {
|
|
59 |
/**
|
60 |
* Check if a qTranslate compatible plugin is active.
|
61 |
*
|
62 |
-
* @since 2.0
|
63 |
* @return boolean|null
|
64 |
*/
|
65 |
public function qtrans_exists() {
|
@@ -74,7 +74,7 @@ if ( !class_exists( 'WPSL_i18n' ) ) {
|
|
74 |
/**
|
75 |
* See if there is a translated page available for the provided store ID.
|
76 |
*
|
77 |
-
* @since 2.0
|
78 |
* @see https://wpml.org/documentation/support/creating-multilingual-wordpress-themes/language-dependent-ids/#2
|
79 |
* @param string $store_id
|
80 |
* @return string empty or the id of the translated store
|
@@ -84,7 +84,7 @@ if ( !class_exists( 'WPSL_i18n' ) ) {
|
|
84 |
$return_original_id = apply_filters( 'wpsl_return_original_wpml_id', true );
|
85 |
$translated_id = icl_object_id( $store_id, 'wpsl_stores', $return_original_id, ICL_LANGUAGE_CODE );
|
86 |
|
87 |
-
|
88 |
if ( is_null( $translated_id ) ) {
|
89 |
$translated_id = '';
|
90 |
}
|
@@ -95,7 +95,7 @@ if ( !class_exists( 'WPSL_i18n' ) ) {
|
|
95 |
/**
|
96 |
* Translate with a qTranslate compatible plugin.
|
97 |
*
|
98 |
-
* @since 2.0
|
99 |
* @param string $text The original text
|
100 |
* @return string $translation The translated text
|
101 |
*/
|
@@ -111,12 +111,12 @@ if ( !class_exists( 'WPSL_i18n' ) ) {
|
|
111 |
}
|
112 |
|
113 |
/**
|
114 |
-
* Get the correct translation
|
115 |
*
|
116 |
* Return the translated text from either WPML or qTranslate
|
117 |
* or the translation that was set on the settings page.
|
118 |
*
|
119 |
-
* @since 2.0
|
120 |
* @param string $name The name of the translated string
|
121 |
* @param string $text The text of the translated string
|
122 |
* @return string The translation
|
@@ -146,7 +146,7 @@ if ( !class_exists( 'WPSL_i18n' ) ) {
|
|
146 |
* If a multilingual plugin like WPML or qTranslate X is active
|
147 |
* we return the active language code.
|
148 |
*
|
149 |
-
* @since 2.0
|
150 |
* @return string Empty or the current language code
|
151 |
*/
|
152 |
public function check_multilingual_code() {
|
2 |
/**
|
3 |
* i18n class
|
4 |
*
|
5 |
+
* @author Tijmen Smit
|
6 |
+
* @since 2.0.0
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
26 |
/**
|
27 |
* Load the translations from the language folder
|
28 |
*
|
29 |
+
* @since 2.0.0
|
30 |
* @return void
|
31 |
*/
|
32 |
public function load_plugin_textdomain() {
|
34 |
$domain = 'wpsl';
|
35 |
$locale = apply_filters( 'plugin_locale', get_locale(), $domain );
|
36 |
|
37 |
+
// Load the language file from the /wp-content/languages/wp-store-locator folder, custom + update proof translations.
|
38 |
load_textdomain( $domain, WP_LANG_DIR . '/wp-store-locator/' . $domain . '-' . $locale . '.mo' );
|
39 |
|
40 |
+
// Load the language file from the /wp-content/plugins/wp-store-locator/languages/ folder.
|
41 |
load_plugin_textdomain( $domain, false, dirname( WPSL_BASENAME ) . '/languages/' );
|
42 |
}
|
43 |
|
44 |
/**
|
45 |
* Check if WPML is active
|
46 |
*
|
47 |
+
* @since 2.0.0
|
48 |
* @return boolean|null
|
49 |
*/
|
50 |
public function wpml_exists() {
|
59 |
/**
|
60 |
* Check if a qTranslate compatible plugin is active.
|
61 |
*
|
62 |
+
* @since 2.0.0
|
63 |
* @return boolean|null
|
64 |
*/
|
65 |
public function qtrans_exists() {
|
74 |
/**
|
75 |
* See if there is a translated page available for the provided store ID.
|
76 |
*
|
77 |
+
* @since 2.0.0
|
78 |
* @see https://wpml.org/documentation/support/creating-multilingual-wordpress-themes/language-dependent-ids/#2
|
79 |
* @param string $store_id
|
80 |
* @return string empty or the id of the translated store
|
84 |
$return_original_id = apply_filters( 'wpsl_return_original_wpml_id', true );
|
85 |
$translated_id = icl_object_id( $store_id, 'wpsl_stores', $return_original_id, ICL_LANGUAGE_CODE );
|
86 |
|
87 |
+
// If '$return_original_id' is set to false, NULL is returned if no translation exists.
|
88 |
if ( is_null( $translated_id ) ) {
|
89 |
$translated_id = '';
|
90 |
}
|
95 |
/**
|
96 |
* Translate with a qTranslate compatible plugin.
|
97 |
*
|
98 |
+
* @since 2.0.0
|
99 |
* @param string $text The original text
|
100 |
* @return string $translation The translated text
|
101 |
*/
|
111 |
}
|
112 |
|
113 |
/**
|
114 |
+
* Get the correct translation.
|
115 |
*
|
116 |
* Return the translated text from either WPML or qTranslate
|
117 |
* or the translation that was set on the settings page.
|
118 |
*
|
119 |
+
* @since 2.0.0
|
120 |
* @param string $name The name of the translated string
|
121 |
* @param string $text The text of the translated string
|
122 |
* @return string The translation
|
146 |
* If a multilingual plugin like WPML or qTranslate X is active
|
147 |
* we return the active language code.
|
148 |
*
|
149 |
+
* @since 2.0.0
|
150 |
* @return string Empty or the current language code
|
151 |
*/
|
152 |
public function check_multilingual_code() {
|
inc/class-post-types.php
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* Store Locator custom post type
|
4 |
*
|
5 |
-
* @
|
6 |
-
* @since
|
7 |
-
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
10 |
|
@@ -29,14 +29,14 @@ if ( !class_exists( 'WPSL_Post_Types' ) ) {
|
|
29 |
/**
|
30 |
* Register the WPSL post type.
|
31 |
*
|
32 |
-
* @since 2.0
|
33 |
* @return void
|
34 |
*/
|
35 |
public function register_post_types() {
|
36 |
|
37 |
global $wpsl_settings;
|
38 |
|
39 |
-
|
40 |
if ( isset( $wpsl_settings['permalinks'] ) && $wpsl_settings['permalinks'] ) {
|
41 |
$public = true;
|
42 |
$exclude_from_search = false;
|
@@ -50,7 +50,7 @@ if ( !class_exists( 'WPSL_Post_Types' ) ) {
|
|
50 |
$singular = __( 'Store', 'wpsl' );
|
51 |
$plural = __( 'Stores', 'wpsl' );
|
52 |
|
53 |
-
|
54 |
$labels = apply_filters( 'wpsl_post_type_labels', array(
|
55 |
'name' => __( 'Store Locator', 'wpsl' ),
|
56 |
'all_items' => sprintf( __( 'All %s', 'wpsl' ), $plural ),
|
@@ -66,7 +66,7 @@ if ( !class_exists( 'WPSL_Post_Types' ) ) {
|
|
66 |
)
|
67 |
);
|
68 |
|
69 |
-
|
70 |
$args = apply_filters( 'wpsl_post_type_args', array(
|
71 |
'labels' => $labels,
|
72 |
'public' => $public,
|
@@ -87,14 +87,14 @@ if ( !class_exists( 'WPSL_Post_Types' ) ) {
|
|
87 |
/**
|
88 |
* Register the WPSL custom taxonomy.
|
89 |
*
|
90 |
-
* @since 2.0
|
91 |
* @return void
|
92 |
*/
|
93 |
public function register_taxonomies() {
|
94 |
|
95 |
global $wpsl_settings;
|
96 |
|
97 |
-
|
98 |
if ( isset( $wpsl_settings['permalinks'] ) && $wpsl_settings['permalinks'] ) {
|
99 |
$public = true;
|
100 |
$rewrite = array( 'slug' => $wpsl_settings['category_slug'] );
|
@@ -135,7 +135,7 @@ if ( !class_exists( 'WPSL_Post_Types' ) ) {
|
|
135 |
/**
|
136 |
* Change the default "Enter title here" placeholder.
|
137 |
*
|
138 |
-
* @since 2.0
|
139 |
* @param string $title The default title placeholder
|
140 |
* @return string $title The new title placeholder
|
141 |
*/
|
@@ -153,7 +153,7 @@ if ( !class_exists( 'WPSL_Post_Types' ) ) {
|
|
153 |
/**
|
154 |
* Add new columns to the store list table.
|
155 |
*
|
156 |
-
* @since 2.0
|
157 |
* @param array $columns The default columns
|
158 |
* @return array $columns Updated column list
|
159 |
*/
|
@@ -170,7 +170,7 @@ if ( !class_exists( 'WPSL_Post_Types' ) ) {
|
|
170 |
/**
|
171 |
* Show the correct store content in the correct custom column.
|
172 |
*
|
173 |
-
* @since 2.0
|
174 |
* @param string $column The column name
|
175 |
* @param int $post_id The post id
|
176 |
* @return void
|
@@ -196,7 +196,7 @@ if ( !class_exists( 'WPSL_Post_Types' ) ) {
|
|
196 |
/**
|
197 |
* Define the columns that are sortable.
|
198 |
*
|
199 |
-
* @since 2.0
|
200 |
* @param array $columns List of sortable columns
|
201 |
* @return array
|
202 |
*/
|
@@ -215,7 +215,7 @@ if ( !class_exists( 'WPSL_Post_Types' ) ) {
|
|
215 |
/**
|
216 |
* Set the correct column sort parameters.
|
217 |
*
|
218 |
-
* @since 2.0
|
219 |
* @param array $vars Column sorting parameters
|
220 |
* @return array $vars The column sorting parameters inc the correct orderby and wpsl meta_key
|
221 |
*/
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Store Locator custom post type.
|
4 |
*
|
5 |
+
* @author Tijmen Smit
|
6 |
+
* @since 2.0.0
|
7 |
+
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
10 |
|
29 |
/**
|
30 |
* Register the WPSL post type.
|
31 |
*
|
32 |
+
* @since 2.0.0
|
33 |
* @return void
|
34 |
*/
|
35 |
public function register_post_types() {
|
36 |
|
37 |
global $wpsl_settings;
|
38 |
|
39 |
+
// Enable permalinks for the post type?
|
40 |
if ( isset( $wpsl_settings['permalinks'] ) && $wpsl_settings['permalinks'] ) {
|
41 |
$public = true;
|
42 |
$exclude_from_search = false;
|
50 |
$singular = __( 'Store', 'wpsl' );
|
51 |
$plural = __( 'Stores', 'wpsl' );
|
52 |
|
53 |
+
// The labels for the wpsl_stores post type.
|
54 |
$labels = apply_filters( 'wpsl_post_type_labels', array(
|
55 |
'name' => __( 'Store Locator', 'wpsl' ),
|
56 |
'all_items' => sprintf( __( 'All %s', 'wpsl' ), $plural ),
|
66 |
)
|
67 |
);
|
68 |
|
69 |
+
// The arguments for the wpsl_stores post type.
|
70 |
$args = apply_filters( 'wpsl_post_type_args', array(
|
71 |
'labels' => $labels,
|
72 |
'public' => $public,
|
87 |
/**
|
88 |
* Register the WPSL custom taxonomy.
|
89 |
*
|
90 |
+
* @since 2.0.0
|
91 |
* @return void
|
92 |
*/
|
93 |
public function register_taxonomies() {
|
94 |
|
95 |
global $wpsl_settings;
|
96 |
|
97 |
+
// Enable permalinks for the taxonomy?
|
98 |
if ( isset( $wpsl_settings['permalinks'] ) && $wpsl_settings['permalinks'] ) {
|
99 |
$public = true;
|
100 |
$rewrite = array( 'slug' => $wpsl_settings['category_slug'] );
|
135 |
/**
|
136 |
* Change the default "Enter title here" placeholder.
|
137 |
*
|
138 |
+
* @since 2.0.0
|
139 |
* @param string $title The default title placeholder
|
140 |
* @return string $title The new title placeholder
|
141 |
*/
|
153 |
/**
|
154 |
* Add new columns to the store list table.
|
155 |
*
|
156 |
+
* @since 2.0.0
|
157 |
* @param array $columns The default columns
|
158 |
* @return array $columns Updated column list
|
159 |
*/
|
170 |
/**
|
171 |
* Show the correct store content in the correct custom column.
|
172 |
*
|
173 |
+
* @since 2.0.0
|
174 |
* @param string $column The column name
|
175 |
* @param int $post_id The post id
|
176 |
* @return void
|
196 |
/**
|
197 |
* Define the columns that are sortable.
|
198 |
*
|
199 |
+
* @since 2.0.0
|
200 |
* @param array $columns List of sortable columns
|
201 |
* @return array
|
202 |
*/
|
215 |
/**
|
216 |
* Set the correct column sort parameters.
|
217 |
*
|
218 |
+
* @since 2.0.0
|
219 |
* @param array $vars Column sorting parameters
|
220 |
* @return array $vars The column sorting parameters inc the correct orderby and wpsl meta_key
|
221 |
*/
|
inc/install.php
CHANGED
@@ -2,14 +2,14 @@
|
|
2 |
/**
|
3 |
* WPSL Install
|
4 |
*
|
5 |
-
* @
|
6 |
-
* @since
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
10 |
|
11 |
/**
|
12 |
-
* Run the install
|
13 |
*
|
14 |
* @since 1.2.20
|
15 |
* @return void
|
@@ -38,7 +38,7 @@ function wpsl_install( $network_wide ) {
|
|
38 |
}
|
39 |
|
40 |
/**
|
41 |
-
* Install the required data
|
42 |
*
|
43 |
* @since 1.2.20
|
44 |
* @return void
|
@@ -47,19 +47,19 @@ function wpsl_install_data() {
|
|
47 |
|
48 |
global $wpsl;
|
49 |
|
50 |
-
|
51 |
$wpsl->post_types->register_post_types();
|
52 |
flush_rewrite_rules();
|
53 |
|
54 |
-
|
55 |
wpsl_set_default_settings();
|
56 |
|
57 |
-
|
58 |
update_option( 'wpsl_version', WPSL_VERSION_NUM );
|
59 |
|
60 |
-
|
61 |
wpsl_add_roles();
|
62 |
|
63 |
-
|
64 |
wpsl_add_caps();
|
65 |
}
|
2 |
/**
|
3 |
* WPSL Install
|
4 |
*
|
5 |
+
* @author Tijmen Smit
|
6 |
+
* @since 2.0.0
|
7 |
*/
|
8 |
|
9 |
if ( !defined( 'ABSPATH' ) ) exit;
|
10 |
|
11 |
/**
|
12 |
+
* Run the install.
|
13 |
*
|
14 |
* @since 1.2.20
|
15 |
* @return void
|
38 |
}
|
39 |
|
40 |
/**
|
41 |
+
* Install the required data.
|
42 |
*
|
43 |
* @since 1.2.20
|
44 |
* @return void
|
47 |
|
48 |
global $wpsl;
|
49 |
|
50 |
+
// Register the post type and flush the permalinks.
|
51 |
$wpsl->post_types->register_post_types();
|
52 |
flush_rewrite_rules();
|
53 |
|
54 |
+
// Create the default settings.
|
55 |
wpsl_set_default_settings();
|
56 |
|
57 |
+
// Set the correct version.
|
58 |
update_option( 'wpsl_version', WPSL_VERSION_NUM );
|
59 |
|
60 |
+
// Add user roles.
|
61 |
wpsl_add_roles();
|
62 |
|
63 |
+
// Add user capabilities.
|
64 |
wpsl_add_caps();
|
65 |
}
|
inc/wpsl-functions.php
CHANGED
@@ -4,7 +4,7 @@
|
|
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
|
8 |
* @return string $api_params The api parameters
|
9 |
*/
|
10 |
function wpsl_get_gmap_api_params() {
|
@@ -16,17 +16,21 @@ function wpsl_get_gmap_api_params() {
|
|
16 |
|
17 |
foreach ( $api_keys as $api_key ) {
|
18 |
if ( !empty( $wpsl_settings['api_'.$api_key] ) ) {
|
19 |
-
$api_params .=
|
20 |
}
|
21 |
}
|
22 |
|
|
|
|
|
|
|
|
|
23 |
return apply_filters( 'wpsl_gmap_api_params', $api_params );
|
24 |
}
|
25 |
|
26 |
/**
|
27 |
* Get the default plugin settings.
|
28 |
*
|
29 |
-
* @since 1.0
|
30 |
* @return void
|
31 |
*/
|
32 |
function wpsl_get_default_settings() {
|
@@ -119,7 +123,7 @@ function wpsl_get_default_settings() {
|
|
119 |
/**
|
120 |
* Get the current plugin settings.
|
121 |
*
|
122 |
-
* @since 1.0
|
123 |
* @return array $setting The current plugin settings
|
124 |
*/
|
125 |
function wpsl_get_settings() {
|
@@ -137,7 +141,7 @@ function wpsl_get_settings() {
|
|
137 |
/**
|
138 |
* Get a single value from the default settings.
|
139 |
*
|
140 |
-
* @since 1.0
|
141 |
* @param string $setting The value that should be restored
|
142 |
* @return string $wpsl_default_settings The default setting value
|
143 |
*/
|
@@ -151,7 +155,7 @@ function wpsl_get_default_setting( $setting ) {
|
|
151 |
/**
|
152 |
* Set the default plugin settings.
|
153 |
*
|
154 |
-
* @since 1.0
|
155 |
* @return void
|
156 |
*/
|
157 |
function wpsl_set_default_settings() {
|
@@ -190,7 +194,7 @@ function wpsl_get_templates() {
|
|
190 |
/**
|
191 |
* Return the days of the week.
|
192 |
*
|
193 |
-
* @since 2.0
|
194 |
* @return array $weekdays The days of the week
|
195 |
*/
|
196 |
function wpsl_get_weekdays() {
|
@@ -211,7 +215,7 @@ function wpsl_get_weekdays() {
|
|
211 |
/**
|
212 |
* Get the default opening hours.
|
213 |
*
|
214 |
-
* @since 2.0
|
215 |
* @return array $opening_hours The default opening hours
|
216 |
*/
|
217 |
function wpsl_default_opening_hours() {
|
@@ -241,7 +245,7 @@ function wpsl_default_opening_hours() {
|
|
241 |
/**
|
242 |
* Get the available map types.
|
243 |
*
|
244 |
-
* @since 2.0
|
245 |
* @return array $map_types The available map types
|
246 |
*/
|
247 |
function wpsl_get_map_types() {
|
@@ -259,7 +263,7 @@ function wpsl_get_map_types() {
|
|
259 |
/**
|
260 |
* Get the address formats.
|
261 |
*
|
262 |
-
* @since 2.0
|
263 |
* @return array $address_formats The address formats
|
264 |
*/
|
265 |
function wpsl_get_address_formats() {
|
@@ -281,7 +285,7 @@ function wpsl_get_address_formats() {
|
|
281 |
*
|
282 |
* If the map type is invalid the default is used ( roadmap ).
|
283 |
*
|
284 |
-
* @since 2.0
|
285 |
* @param string $map_type The provided map type
|
286 |
* @return string $map_type A valid map type
|
287 |
*/
|
@@ -301,7 +305,7 @@ function wpsl_valid_map_type( $map_type ) {
|
|
301 |
*
|
302 |
* If the zoom level is invalid the default is used ( 3 ).
|
303 |
*
|
304 |
-
* @since 2.0
|
305 |
* @param string $zoom_level The provided zoom level
|
306 |
* @return string $zoom_level A valid zoom level
|
307 |
*/
|
@@ -319,7 +323,7 @@ function wpsl_valid_zoom_level( $zoom_level ) {
|
|
319 |
/**
|
320 |
* Get the max auto zoom levels for the map.
|
321 |
*
|
322 |
-
* @since 2.0
|
323 |
* @return array $max_zoom_levels The array holding the min - max zoom levels
|
324 |
*/
|
325 |
function wpsl_get_max_zoom_levels() {
|
@@ -343,7 +347,7 @@ function wpsl_get_max_zoom_levels() {
|
|
343 |
/**
|
344 |
* The labels and the values that can be set through the settings page.
|
345 |
*
|
346 |
-
* @since 2.0
|
347 |
* @return array $labels The label names from the settings page.
|
348 |
*/
|
349 |
function wpsl_labels() {
|
@@ -378,7 +382,7 @@ function wpsl_labels() {
|
|
378 |
/**
|
379 |
* Callback for array_walk_recursive, sanitize items in a multidimensional array.
|
380 |
*
|
381 |
-
* @since 2.0
|
382 |
* @param string $item The value
|
383 |
* @param integer $key The key
|
384 |
*/
|
@@ -389,7 +393,7 @@ function wpsl_sanitize_multi_array( &$item, $key ) {
|
|
389 |
/**
|
390 |
* Check whether the array is multidimensional.
|
391 |
*
|
392 |
-
* @since 2.0
|
393 |
* @param array $array The array to check
|
394 |
* @return boolean
|
395 |
*/
|
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() {
|
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 |
|
30 |
/**
|
31 |
* Get the default plugin settings.
|
32 |
*
|
33 |
+
* @since 1.0.0
|
34 |
* @return void
|
35 |
*/
|
36 |
function wpsl_get_default_settings() {
|
123 |
/**
|
124 |
* Get the current plugin settings.
|
125 |
*
|
126 |
+
* @since 1.0.0
|
127 |
* @return array $setting The current plugin settings
|
128 |
*/
|
129 |
function wpsl_get_settings() {
|
141 |
/**
|
142 |
* Get a single value from the default settings.
|
143 |
*
|
144 |
+
* @since 1.0.0
|
145 |
* @param string $setting The value that should be restored
|
146 |
* @return string $wpsl_default_settings The default setting value
|
147 |
*/
|
155 |
/**
|
156 |
* Set the default plugin settings.
|
157 |
*
|
158 |
+
* @since 1.0.0
|
159 |
* @return void
|
160 |
*/
|
161 |
function wpsl_set_default_settings() {
|
194 |
/**
|
195 |
* Return the days of the week.
|
196 |
*
|
197 |
+
* @since 2.0.0
|
198 |
* @return array $weekdays The days of the week
|
199 |
*/
|
200 |
function wpsl_get_weekdays() {
|
215 |
/**
|
216 |
* Get the default opening hours.
|
217 |
*
|
218 |
+
* @since 2.0.0
|
219 |
* @return array $opening_hours The default opening hours
|
220 |
*/
|
221 |
function wpsl_default_opening_hours() {
|
245 |
/**
|
246 |
* Get the available map types.
|
247 |
*
|
248 |
+
* @since 2.0.0
|
249 |
* @return array $map_types The available map types
|
250 |
*/
|
251 |
function wpsl_get_map_types() {
|
263 |
/**
|
264 |
* Get the address formats.
|
265 |
*
|
266 |
+
* @since 2.0.0
|
267 |
* @return array $address_formats The address formats
|
268 |
*/
|
269 |
function wpsl_get_address_formats() {
|
285 |
*
|
286 |
* If the map type is invalid the default is used ( roadmap ).
|
287 |
*
|
288 |
+
* @since 2.0.0
|
289 |
* @param string $map_type The provided map type
|
290 |
* @return string $map_type A valid map type
|
291 |
*/
|
305 |
*
|
306 |
* If the zoom level is invalid the default is used ( 3 ).
|
307 |
*
|
308 |
+
* @since 2.0.0
|
309 |
* @param string $zoom_level The provided zoom level
|
310 |
* @return string $zoom_level A valid zoom level
|
311 |
*/
|
323 |
/**
|
324 |
* Get the max auto zoom levels for the map.
|
325 |
*
|
326 |
+
* @since 2.0.0
|
327 |
* @return array $max_zoom_levels The array holding the min - max zoom levels
|
328 |
*/
|
329 |
function wpsl_get_max_zoom_levels() {
|
347 |
/**
|
348 |
* The labels and the values that can be set through the settings page.
|
349 |
*
|
350 |
+
* @since 2.0.0
|
351 |
* @return array $labels The label names from the settings page.
|
352 |
*/
|
353 |
function wpsl_labels() {
|
382 |
/**
|
383 |
* Callback for array_walk_recursive, sanitize items in a multidimensional array.
|
384 |
*
|
385 |
+
* @since 2.0.0
|
386 |
* @param string $item The value
|
387 |
* @param integer $key The key
|
388 |
*/
|
393 |
/**
|
394 |
* Check whether the array is multidimensional.
|
395 |
*
|
396 |
+
* @since 2.0.0
|
397 |
* @param array $array The array to check
|
398 |
* @return boolean
|
399 |
*/
|
js/wpsl-gmap.js
CHANGED
@@ -10,14 +10,16 @@ var geocoder, map, directionsDisplay, directionsService, geolocationLatlng,
|
|
10 |
autoLoad = ( typeof wpslSettings !== "undefined" ) ? wpslSettings.autoLoad : "";
|
11 |
|
12 |
/**
|
13 |
-
* Set the underscore template settings
|
14 |
*
|
15 |
* Defining them here prevents other plugins
|
16 |
* that also use underscore / backbone, and defined a
|
17 |
* different _.templateSettings from breaking the
|
18 |
* rendering of the store locator template.
|
19 |
*
|
20 |
-
* @
|
|
|
|
|
21 |
*/
|
22 |
_.templateSettings = {
|
23 |
evaluate: /\<\%(.+?)\%\>/g,
|
@@ -25,11 +27,12 @@ _.templateSettings = {
|
|
25 |
escape: /\<\%-(.+?)\%\>/g
|
26 |
};
|
27 |
|
28 |
-
|
29 |
if ( $( ".wpsl-gmap-canvas" ).length ) {
|
30 |
$( "<img />" ).attr( "src", wpslSettings.path + "img/ajax-loader.gif" );
|
31 |
|
32 |
-
/*
|
|
|
33 |
* but the [wpsl_map] shortcode can exist multiple times.
|
34 |
*
|
35 |
* So to make sure we init all the maps we loop over them.
|
@@ -42,28 +45,28 @@ if ( $( ".wpsl-gmap-canvas" ).length ) {
|
|
42 |
}
|
43 |
|
44 |
/**
|
45 |
-
* Initialize the map with the correct settings
|
46 |
*
|
47 |
-
* @since
|
48 |
-
* @param
|
49 |
-
* @param
|
50 |
* @returns {void}
|
51 |
*/
|
52 |
function initializeGmap( mapId, mapIndex ) {
|
53 |
var mapOptions, settings, infoWindow, latLng, bounds, mapData, locationCount,
|
54 |
maxZoom = Number( wpslSettings.autoZoomLevel );
|
55 |
|
56 |
-
|
57 |
settings = getMapSettings( mapIndex );
|
58 |
|
59 |
-
|
60 |
infoWindow = newInfoWindow();
|
61 |
|
62 |
geocoder = new google.maps.Geocoder();
|
63 |
directionsDisplay = new google.maps.DirectionsRenderer();
|
64 |
directionsService = new google.maps.DirectionsService();
|
65 |
|
66 |
-
|
67 |
mapOptions = {
|
68 |
zoom: Number( settings.zoomLevel ),
|
69 |
center: settings.startLatLng,
|
@@ -78,7 +81,7 @@ function initializeGmap( mapId, mapIndex ) {
|
|
78 |
|
79 |
map = new google.maps.Map( document.getElementById( mapId ), mapOptions );
|
80 |
|
81 |
-
|
82 |
maybeApplyMapStyle( settings.mapStyle );
|
83 |
|
84 |
if ( ( typeof window[ "wpslMap_" + mapIndex ] !== "undefined" ) && ( typeof window[ "wpslMap_" + mapIndex ].locations !== "undefined" ) ) {
|
@@ -86,17 +89,17 @@ function initializeGmap( mapId, mapIndex ) {
|
|
86 |
mapData = window[ "wpslMap_" + mapIndex ].locations,
|
87 |
locationCount = mapData.length;
|
88 |
|
89 |
-
|
90 |
$.each( mapData, function( index ) {
|
91 |
latLng = new google.maps.LatLng( mapData[index].lat, mapData[index].lng );
|
92 |
addMarker( latLng, mapData[index].id, mapData[index], false, infoWindow );
|
93 |
bounds.extend( latLng );
|
94 |
});
|
95 |
|
96 |
-
|
97 |
map.fitBounds( bounds );
|
98 |
|
99 |
-
|
100 |
google.maps.event.addListenerOnce( map, "bounds_changed", ( function( currentMap ) {
|
101 |
return function() {
|
102 |
if ( currentMap.getZoom() > maxZoom ) {
|
@@ -106,10 +109,11 @@ function initializeGmap( mapId, mapIndex ) {
|
|
106 |
}( map ) ) );
|
107 |
}
|
108 |
|
109 |
-
|
110 |
if ( $( "#wpsl-gmap" ).length ) {
|
111 |
|
112 |
-
/*
|
|
|
113 |
*
|
114 |
* We do this because several people have reported issues with the styled dropdowns on
|
115 |
* iOS and Android devices. So on mobile devices the dropdowns will be styled according
|
@@ -122,26 +126,26 @@ function initializeGmap( mapId, mapIndex ) {
|
|
122 |
$( "#wpsl-wrap" ).addClass( "wpsl-mobile" );
|
123 |
}
|
124 |
|
125 |
-
|
126 |
if ( wpslSettings.autoLocate == 1 ) {
|
127 |
checkGeolocation( settings.startLatLng, infoWindow );
|
128 |
} else if ( wpslSettings.autoLoad == 1 ) {
|
129 |
showStores( settings.startLatLng, infoWindow );
|
130 |
}
|
131 |
|
132 |
-
|
133 |
if ( wpslSettings.mouseFocus == 1 && !checkMobileUserAgent() ) {
|
134 |
$( "#wpsl-search-input" ).focus();
|
135 |
}
|
136 |
|
137 |
-
|
138 |
searchLocationBtn( infoWindow );
|
139 |
|
140 |
-
|
141 |
mapControlIcons( settings, map, infoWindow );
|
142 |
}
|
143 |
|
144 |
-
|
145 |
zoomChangedListener();
|
146 |
}
|
147 |
|
@@ -151,7 +155,7 @@ function initializeGmap( mapId, mapIndex ) {
|
|
151 |
*
|
152 |
* The 'max auto zoom level' is set on the settings page.
|
153 |
*
|
154 |
-
* @since
|
155 |
* @returns {void}
|
156 |
*/
|
157 |
function zoomChangedListener() {
|
@@ -164,10 +168,10 @@ function zoomChangedListener() {
|
|
164 |
}
|
165 |
|
166 |
/**
|
167 |
-
* Get the correct map settings
|
168 |
*
|
169 |
-
* @since
|
170 |
-
* @param
|
171 |
* @returns {object} mapSettings The map settings either set through a shortcode or the default settings
|
172 |
*/
|
173 |
function getMapSettings( mapIndex ) {
|
@@ -183,12 +187,12 @@ function getMapSettings( mapIndex ) {
|
|
183 |
controlPosition: wpslSettings.controlPosition
|
184 |
};
|
185 |
|
186 |
-
|
187 |
if ( ( typeof window[ "wpslMap_" + mapIndex ] !== "undefined" ) && ( typeof window[ "wpslMap_" + mapIndex ].shortCode !== "undefined" ) ) {
|
188 |
for ( j = 0, len = settingOptions.length; j < len; j++ ) {
|
189 |
shortCodeVal = window[ "wpslMap_" + mapIndex ].shortCode[ settingOptions[j] ];
|
190 |
|
191 |
-
|
192 |
if ( typeof shortCodeVal !== "undefined" ) {
|
193 |
mapSettings[ settingOptions[j] ] = shortCodeVal;
|
194 |
}
|
@@ -201,24 +205,26 @@ function getMapSettings( mapIndex ) {
|
|
201 |
}
|
202 |
|
203 |
/**
|
204 |
-
* Get the latlng coordinates that are used to init the map
|
205 |
*
|
206 |
-
* @since
|
207 |
-
* @param
|
208 |
* @returns {object} startLatLng The latlng value where the map will initially focus on
|
209 |
*/
|
210 |
function getStartLatlng( mapIndex ) {
|
211 |
var startLatLng, latLng,
|
212 |
firstLocation = "";
|
213 |
|
214 |
-
/*
|
|
|
215 |
* If it exists we use the coordinates from the first location to center the map on.
|
216 |
*/
|
217 |
if ( ( typeof window[ "wpslMap_" + mapIndex ] !== "undefined" ) && ( typeof window[ "wpslMap_" + mapIndex ].locations !== "undefined" ) ) {
|
218 |
firstLocation = window[ "wpslMap_" + mapIndex ].locations[0];
|
219 |
}
|
220 |
|
221 |
-
/*
|
|
|
222 |
* or the default start point defined on the settings page.
|
223 |
*
|
224 |
* If both are not available we set it to 0,0
|
@@ -236,21 +242,21 @@ function getStartLatlng( mapIndex ) {
|
|
236 |
}
|
237 |
|
238 |
/**
|
239 |
-
* Create a new infoWindow object
|
240 |
*
|
241 |
-
* Either use the default infoWindow or use the infobox library
|
242 |
*
|
243 |
-
* @since
|
244 |
* @return {object} infoWindow The infoWindow object
|
245 |
*/
|
246 |
function newInfoWindow() {
|
247 |
var boxClearance, boxPixelOffset,
|
248 |
infoBoxOptions = {};
|
249 |
|
250 |
-
|
251 |
if ( ( typeof wpslSettings.infoWindowStyle !== "undefined" ) && ( wpslSettings.infoWindowStyle == "infobox" ) ) {
|
252 |
|
253 |
-
|
254 |
boxClearance = wpslSettings.infoBoxClearance.split( "," );
|
255 |
boxPixelOffset = wpslSettings.infoBoxPixelOffset.split( "," );
|
256 |
infoBoxOptions = {
|
@@ -275,15 +281,15 @@ function newInfoWindow() {
|
|
275 |
}
|
276 |
|
277 |
/**
|
278 |
-
* Check if we have a map style that we need to apply to the map
|
279 |
*
|
280 |
-
* @since
|
281 |
-
* @param
|
282 |
* @return {void}
|
283 |
*/
|
284 |
function maybeApplyMapStyle( mapStyle ) {
|
285 |
|
286 |
-
|
287 |
mapStyle = tryParseJSON( mapStyle );
|
288 |
|
289 |
if ( mapStyle ) {
|
@@ -294,20 +300,22 @@ function maybeApplyMapStyle( mapStyle ) {
|
|
294 |
/**
|
295 |
* Make sure the JSON is valid.
|
296 |
*
|
297 |
-
* @
|
298 |
-
* @
|
299 |
-
* @param
|
300 |
-
* @return {object|boolean}
|
301 |
*/
|
302 |
function tryParseJSON( jsonString ) {
|
303 |
|
304 |
try {
|
305 |
var o = JSON.parse( jsonString );
|
306 |
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
|
|
|
|
311 |
if ( o && typeof o === "object" && o !== null ) {
|
312 |
return o;
|
313 |
}
|
@@ -318,26 +326,22 @@ function tryParseJSON( jsonString ) {
|
|
318 |
}
|
319 |
|
320 |
/**
|
321 |
-
* Add the start marker and call the function that inits the store search
|
322 |
*
|
323 |
-
* @since
|
324 |
-
* @param
|
325 |
-
* @param
|
326 |
* @returns {void}
|
327 |
*/
|
328 |
function showStores( startLatLng, infoWindow ) {
|
329 |
-
|
330 |
-
store: wpslLabels.startPoint
|
331 |
-
};
|
332 |
-
|
333 |
-
addMarker( startLatLng, 0, startMarker, true, infoWindow ); // This marker is the 'start location' marker. With a storeId of 0, no name and is draggable
|
334 |
findStoreLocations( startLatLng, resetMap, autoLoad, infoWindow );
|
335 |
}
|
336 |
|
337 |
/**
|
338 |
-
* Compare the current useragent to a list of known mobile useragents ( not optimal, I know )
|
339 |
*
|
340 |
-
* @since
|
341 |
* @returns {boolean} Whether the useragent is from a known mobile useragent or not.
|
342 |
*/
|
343 |
function checkMobileUserAgent() {
|
@@ -348,11 +352,12 @@ function checkMobileUserAgent() {
|
|
348 |
* Check if Geolocation detection is supported.
|
349 |
*
|
350 |
* If there is an error / timeout with determining the users
|
351 |
-
* location we use the 'start point' value from the settings
|
|
|
352 |
*
|
353 |
-
* @since
|
354 |
-
* @param
|
355 |
-
* @param
|
356 |
* @returns {void}
|
357 |
*/
|
358 |
function checkGeolocation( startLatLng, infoWindow ) {
|
@@ -362,12 +367,13 @@ function checkGeolocation( startLatLng, infoWindow ) {
|
|
362 |
keepStartMarker = false,
|
363 |
timeout = Number( wpslSettings.geoLocationTimout );
|
364 |
|
365 |
-
|
366 |
geolocationInProgress = setInterval( function() {
|
367 |
$( ".wpsl-icon-direction" ).toggleClass( "wpsl-active-icon" );
|
368 |
}, 600 );
|
369 |
|
370 |
-
/*
|
|
|
371 |
* wpslSettings.geoLocationTimout, then the default map is loaded.
|
372 |
*
|
373 |
* You can increase the timeout value with the wpsl_geolocation_timeout filter.
|
@@ -381,7 +387,8 @@ function checkGeolocation( startLatLng, infoWindow ) {
|
|
381 |
geolocationFinished( geolocationInProgress );
|
382 |
clearTimeout( locationTimeout );
|
383 |
|
384 |
-
/*
|
|
|
385 |
* the geolocation detection again, it gets messy with multiple start markers.
|
386 |
*
|
387 |
* So we first clear the map before adding new ones.
|
@@ -390,13 +397,14 @@ function checkGeolocation( startLatLng, infoWindow ) {
|
|
390 |
handleGeolocationQuery( startLatLng, position, resetMap, infoWindow );
|
391 |
}, function( error ) {
|
392 |
|
393 |
-
/*
|
|
|
394 |
*
|
395 |
-
* Otherwise if the "Attempt to auto-locate the user" option is enabled on the settings page
|
396 |
* and the geolocation attempt fails for whatever reason ( blocked in browser, unavailable etc ).
|
397 |
* Then the first thing the visitor will see on pageload is an alert box, which isn't very userfriendly.
|
398 |
*
|
399 |
-
* If an error occurs on pageload without the user clicking on the direction icon
|
400 |
* the default map is shown without any alert boxes.
|
401 |
*/
|
402 |
if ( $( ".wpsl-icon-direction" ).hasClass( "wpsl-user-activated") ) {
|
@@ -428,48 +436,56 @@ function checkGeolocation( startLatLng, infoWindow ) {
|
|
428 |
}
|
429 |
}
|
430 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
431 |
function geolocationFinished( geolocationInProgress ) {
|
432 |
clearInterval( geolocationInProgress );
|
433 |
$( ".wpsl-icon-direction" ).removeClass( "wpsl-active-icon" );
|
434 |
}
|
435 |
|
436 |
/**
|
437 |
-
* Handle the data returned from the Geolocation API
|
438 |
*
|
439 |
* If there is an error / timeout determining the users location,
|
440 |
* then we use the 'start point' value from the settings as the start location through the showStores function.
|
441 |
*
|
442 |
-
* @since
|
443 |
-
* @param
|
444 |
-
* @param
|
445 |
-
* @param
|
446 |
-
* @param
|
447 |
* @returns {void}
|
448 |
*/
|
449 |
-
function handleGeolocationQuery( startLatLng, position, resetMap, infoWindow ) {
|
450 |
|
451 |
if ( typeof( position ) === "undefined" ) {
|
452 |
showStores( startLatLng, infoWindow );
|
453 |
} else {
|
454 |
var latLng = new google.maps.LatLng( position.coords.latitude, position.coords.longitude );
|
455 |
|
456 |
-
/*
|
|
|
457 |
* without having to ask for permission again.
|
458 |
*/
|
459 |
geolocationLatlng = position;
|
460 |
|
461 |
reverseGeocode( latLng ); // Set the zipcode that belongs to the latlng in the input field
|
462 |
map.setCenter( latLng );
|
463 |
-
addMarker( latLng, 0, '', true ); // This marker is the 'start location' marker. With a storeId of 0, no name and is draggable
|
464 |
findStoreLocations( latLng, resetMap, autoLoad, infoWindow );
|
465 |
}
|
466 |
}
|
467 |
|
468 |
/**
|
469 |
-
* Handle clicks on the store locator search button
|
470 |
*
|
471 |
-
* @since
|
472 |
-
* @param
|
473 |
* @returns {void}
|
474 |
*/
|
475 |
function searchLocationBtn( infoWindow ) {
|
@@ -488,7 +504,7 @@ function searchLocationBtn( infoWindow ) {
|
|
488 |
|
489 |
resetMap = false;
|
490 |
|
491 |
-
|
492 |
closeInfoBoxWindow();
|
493 |
|
494 |
deleteOverlays( keepStartMarker );
|
@@ -504,7 +520,7 @@ function searchLocationBtn( infoWindow ) {
|
|
504 |
* This is required if the user makes a new search,
|
505 |
* or clicks on the "Directions" link.
|
506 |
*
|
507 |
-
* @since
|
508 |
* @return {void}
|
509 |
*/
|
510 |
function closeInfoBoxWindow() {
|
@@ -514,34 +530,35 @@ function closeInfoBoxWindow() {
|
|
514 |
}
|
515 |
|
516 |
/**
|
517 |
-
* Add the 'reload' and 'find location' icon to the map
|
518 |
*
|
519 |
-
* @since
|
520 |
-
* @param
|
521 |
-
* @param
|
522 |
-
* @param
|
523 |
* @return {void}
|
524 |
*/
|
525 |
function mapControlIcons( settings, map, infoWindow ) {
|
526 |
|
527 |
-
|
528 |
google.maps.event.addListenerOnce( map, "tilesloaded", function() {
|
529 |
|
530 |
-
|
531 |
$( ".gm-style" ).append( wpslSettings.mapControls );
|
532 |
|
533 |
if ( $( ".wpsl-icon-reset, #wpsl-reset-map" ).length > 0 ) {
|
534 |
|
535 |
-
|
536 |
resetMapBtn( settings.startLatLng, infoWindow );
|
537 |
|
538 |
-
/*
|
|
|
539 |
* the store location are placed on the map.
|
540 |
*/
|
541 |
$( ".wpsl-icon-reset" ).hide();
|
542 |
}
|
543 |
|
544 |
-
|
545 |
$( ".wpsl-icon-direction" ).on( "click", function() {
|
546 |
$( this ).addClass( "wpsl-user-activated" );
|
547 |
checkGeolocation( settings.startLatLng, infoWindow );
|
@@ -550,11 +567,11 @@ function mapControlIcons( settings, map, infoWindow ) {
|
|
550 |
}
|
551 |
|
552 |
/**
|
553 |
-
* Handle clicks on the "Reset" button
|
554 |
*
|
555 |
-
* @since
|
556 |
-
* @param
|
557 |
-
* @param
|
558 |
* @returns {void}
|
559 |
*/
|
560 |
function resetMapBtn( startLatLng, infoWindow ) {
|
@@ -562,38 +579,41 @@ function resetMapBtn( startLatLng, infoWindow ) {
|
|
562 |
var keepStartMarker = false,
|
563 |
resetMap = true;
|
564 |
|
565 |
-
/*
|
|
|
566 |
* if so prevent another one from starting.
|
567 |
*/
|
568 |
if ( $( this ).hasClass( "wpsl-in-progress" ) ) {
|
569 |
return;
|
570 |
}
|
571 |
|
572 |
-
/*
|
573 |
-
*
|
|
|
|
|
574 |
*/
|
575 |
if ( wpslSettings.autoLoad == 1 ) {
|
576 |
autoLoad = 1;
|
577 |
}
|
578 |
|
579 |
-
|
580 |
if ( ( ( ( map.getCenter().lat() !== mapDefaults.centerLatlng.lat() ) || ( map.getCenter().lng() !== mapDefaults.centerLatlng.lng() ) || ( map.getZoom() !== mapDefaults.zoomLevel ) ) ) ) {
|
581 |
deleteOverlays( keepStartMarker );
|
582 |
|
583 |
$( "#wpsl-search-input" ).val( "" ).removeClass();
|
584 |
|
585 |
-
|
586 |
$( ".wpsl-icon-reset" ).addClass( "wpsl-in-progress" );
|
587 |
|
588 |
-
|
589 |
if ( markerClusterer ) {
|
590 |
markerClusterer.clearMarkers();
|
591 |
}
|
592 |
|
593 |
-
|
594 |
deleteStartMarker();
|
595 |
|
596 |
-
|
597 |
resetDropdowns();
|
598 |
|
599 |
if ( wpslSettings.autoLocate == 1 ) {
|
@@ -603,16 +623,16 @@ function resetMapBtn( startLatLng, infoWindow ) {
|
|
603 |
}
|
604 |
}
|
605 |
|
606 |
-
|
607 |
$( "#wpsl-stores" ).show();
|
608 |
$( "#wpsl-direction-details" ).hide();
|
609 |
});
|
610 |
}
|
611 |
|
612 |
/**
|
613 |
-
* Remove the start marker from the map
|
614 |
*
|
615 |
-
* @since
|
616 |
* @returns {void}
|
617 |
*/
|
618 |
function deleteStartMarker() {
|
@@ -626,7 +646,7 @@ function deleteStartMarker() {
|
|
626 |
* Reset the dropdown values for the max results,
|
627 |
* and search radius after the "reset" button is triggerd.
|
628 |
*
|
629 |
-
* @since
|
630 |
* @returns {void}
|
631 |
*/
|
632 |
function resetDropdowns() {
|
@@ -668,24 +688,24 @@ function resetDropdowns() {
|
|
668 |
}
|
669 |
}
|
670 |
|
671 |
-
|
672 |
$( "#wpsl-result-list" ).on( "click", ".wpsl-back", function() {
|
673 |
var i, len;
|
674 |
|
675 |
-
|
676 |
directionsDisplay.setMap( null );
|
677 |
|
678 |
-
|
679 |
for ( i = 0, len = markersArray.length; i < len; i++ ) {
|
680 |
markersArray[i].setMap( map );
|
681 |
}
|
682 |
|
683 |
-
|
684 |
if ( ( typeof( startMarkerData ) !== "undefined" ) && ( startMarkerData !== "" ) ) {
|
685 |
startMarkerData.setMap( map );
|
686 |
}
|
687 |
|
688 |
-
|
689 |
if ( markerClusterer ) {
|
690 |
checkMarkerClusters();
|
691 |
}
|
@@ -701,43 +721,43 @@ $( "#wpsl-result-list" ).on( "click", ".wpsl-back", function() {
|
|
701 |
});
|
702 |
|
703 |
/**
|
704 |
-
* Show the driving directions
|
705 |
*
|
706 |
-
* @since
|
707 |
-
* @param
|
708 |
* @returns {void}
|
709 |
*/
|
710 |
function renderDirections( e ) {
|
711 |
var i, start, end, len, storeId;
|
712 |
|
713 |
-
|
714 |
closeInfoBoxWindow();
|
715 |
|
716 |
/*
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
if ( e.parents( "li" ).length > 0 ) {
|
721 |
storeId = e.parents( "li" ).data( "store-id" );
|
722 |
} else {
|
723 |
storeId = e.parents( ".wpsl-info-window" ).data( "store-id" );
|
724 |
}
|
725 |
|
726 |
-
|
727 |
if ( ( typeof( startMarkerData ) !== "undefined" ) && ( startMarkerData !== "" ) ) {
|
728 |
start = startMarkerData.getPosition();
|
729 |
}
|
730 |
|
731 |
-
|
732 |
directionMarkerPosition = {
|
733 |
centerLatlng: map.getCenter(),
|
734 |
zoomLevel: map.getZoom()
|
735 |
};
|
736 |
|
737 |
-
|
738 |
for ( i = 0, len = markersArray.length; i < len; i++ ) {
|
739 |
|
740 |
-
|
741 |
if ( ( markersArray[i].storeId == 0 ) && ( ( typeof( start ) === "undefined" ) || ( start === "" ) ) ) {
|
742 |
start = markersArray[i].getPosition();
|
743 |
} else if ( markersArray[i].storeId == storeId ) {
|
@@ -782,17 +802,17 @@ if ( $( "#wpsl-gmap" ).length ) {
|
|
782 |
}
|
783 |
|
784 |
/**
|
785 |
-
* Let a single marker bounce
|
786 |
*
|
787 |
-
* @since
|
788 |
-
* @param
|
789 |
-
* @param
|
790 |
* @returns {void}
|
791 |
*/
|
792 |
function letsBounce( storeId, status ) {
|
793 |
var i, len, marker;
|
794 |
|
795 |
-
|
796 |
for ( i = 0, len = markersArray.length; i < len; i++ ) {
|
797 |
if ( markersArray[i].storeId == storeId ) {
|
798 |
marker = markersArray[i];
|
@@ -807,11 +827,11 @@ function letsBounce( storeId, status ) {
|
|
807 |
}
|
808 |
|
809 |
/**
|
810 |
-
* Calculate the route from the start to the end
|
811 |
*
|
812 |
-
* @since
|
813 |
-
* @param
|
814 |
-
* @param
|
815 |
* @returns {void}
|
816 |
*/
|
817 |
function calcRoute( start, end ) {
|
@@ -840,7 +860,7 @@ function calcRoute( start, end ) {
|
|
840 |
if ( response.routes.length > 0 ) {
|
841 |
direction = response.routes[0];
|
842 |
|
843 |
-
|
844 |
for ( i = 0; i < direction.legs.length; i++ ) {
|
845 |
legs = direction.legs[i];
|
846 |
|
@@ -854,24 +874,24 @@ function calcRoute( start, end ) {
|
|
854 |
$( "#wpsl-direction-details ul" ).append( directionStops ).before( "<div class='wpsl-direction-before'><a class='wpsl-back' id='wpsl-direction-start' href='#'>" + wpslLabels.back + "</a><div><span class='wpsl-total-distance'>" + direction.legs[0].distance.text + "</span> - <span class='wpsl-total-durations'>" + direction.legs[0].duration.text + "</span></div></div>" ).after( "<p class='wpsl-direction-after'>" + response.routes[0].copyrights + "</p>" );
|
855 |
$( "#wpsl-direction-details" ).show();
|
856 |
|
857 |
-
|
858 |
for ( i = 0, len = markersArray.length; i < len; i++ ) {
|
859 |
markersArray[i].setMap( null );
|
860 |
}
|
861 |
|
862 |
-
|
863 |
if ( markerClusterer ) {
|
864 |
markerClusterer.clearMarkers();
|
865 |
}
|
866 |
|
867 |
-
|
868 |
if ( ( typeof( startMarkerData ) !== "undefined" ) && ( startMarkerData !== "" ) ) {
|
869 |
startMarkerData.setMap( null );
|
870 |
}
|
871 |
|
872 |
$( "#wpsl-stores" ).hide();
|
873 |
|
874 |
-
|
875 |
if ( wpslSettings.templateId == 1 ) {
|
876 |
directionOffset = $( "#wpsl-gmap" ).offset();
|
877 |
$( window ).scrollTop( directionOffset.top );
|
@@ -884,10 +904,10 @@ function calcRoute( start, end ) {
|
|
884 |
}
|
885 |
|
886 |
/**
|
887 |
-
* Geocode the user input
|
888 |
*
|
889 |
-
* @since
|
890 |
-
* @param
|
891 |
* @returns {void}
|
892 |
*/
|
893 |
function codeAddress( infoWindow ) {
|
@@ -895,16 +915,16 @@ function codeAddress( infoWindow ) {
|
|
895 |
autoLoad = false,
|
896 |
keepStartMarker = false,
|
897 |
address = $( "#wpsl-search-input" ).val();
|
898 |
-
|
899 |
geocoder.geocode( { 'address': address}, function( response, status ) {
|
900 |
-
if ( status == google.maps.GeocoderStatus.OK ) {
|
901 |
latLng = response[0].geometry.location;
|
902 |
-
|
903 |
-
|
904 |
deleteOverlays( keepStartMarker );
|
905 |
-
addMarker( latLng, 0, '', true, infoWindow ); // This marker is the 'start location' marker.
|
906 |
|
907 |
-
|
908 |
findStoreLocations( latLng, resetMap, autoLoad, infoWindow );
|
909 |
} else {
|
910 |
geocodeErrors( status );
|
@@ -913,10 +933,10 @@ function codeAddress( infoWindow ) {
|
|
913 |
}
|
914 |
|
915 |
/**
|
916 |
-
* Geocode the user input and set the returned zipcode in the input field
|
917 |
*
|
918 |
-
* @since
|
919 |
-
* @param
|
920 |
* @returns {void}
|
921 |
*/
|
922 |
function reverseGeocode( latLng ) {
|
@@ -936,21 +956,21 @@ function reverseGeocode( latLng ) {
|
|
936 |
}
|
937 |
|
938 |
/**
|
939 |
-
* Filter out the zipcode from the response
|
940 |
*
|
941 |
-
* @since
|
942 |
-
* @param
|
943 |
-
* @returns {string} zipcode
|
944 |
*/
|
945 |
function filterApiResponse( response ) {
|
946 |
var zipcode, responseType, i,
|
947 |
addressLength = response[0].address_components.length;
|
948 |
|
949 |
-
|
950 |
for ( i = 0; i < addressLength; i++ ){
|
951 |
responseType = response[0].address_components[i].types;
|
952 |
|
953 |
-
|
954 |
if ( ( /^postal_code$/.test( responseType ) ) || ( /^postal_code_prefix,postal_code$/.test( responseType ) ) ) {
|
955 |
zipcode = response[0].address_components[i].long_name;
|
956 |
}
|
@@ -965,16 +985,16 @@ function filterApiResponse( response ) {
|
|
965 |
* If we need to show the driving directions on maps.google.com itself,
|
966 |
* we first need to geocode the start latlng into a formatted address.
|
967 |
*
|
968 |
-
* @since
|
969 |
-
* @param
|
970 |
-
* @param
|
971 |
-
* @param
|
972 |
-
* @param
|
973 |
* @returns {void}
|
974 |
*/
|
975 |
function findStoreLocations( startLatLng, resetMap, autoLoad, infoWindow ) {
|
976 |
|
977 |
-
|
978 |
if ( wpslSettings.directionRedirect == 1 ) {
|
979 |
findFormattedAddress( startLatLng, function() {
|
980 |
makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow );
|
@@ -985,11 +1005,11 @@ function findStoreLocations( startLatLng, resetMap, autoLoad, infoWindow ) {
|
|
985 |
}
|
986 |
|
987 |
/**
|
988 |
-
* Convert the latlng into a formatted address
|
989 |
*
|
990 |
-
* @since
|
991 |
-
* @param
|
992 |
-
* @param
|
993 |
* @returns {void}
|
994 |
*/
|
995 |
function findFormattedAddress( latLng, callback ) {
|
@@ -1004,13 +1024,13 @@ function findFormattedAddress( latLng, callback ) {
|
|
1004 |
}
|
1005 |
|
1006 |
/**
|
1007 |
-
* Make the Ajax request to load the store data
|
1008 |
*
|
1009 |
-
* @since
|
1010 |
-
* @param
|
1011 |
-
* @param
|
1012 |
-
* @param
|
1013 |
-
* @param
|
1014 |
* @returns {void}
|
1015 |
*/
|
1016 |
function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
|
@@ -1028,7 +1048,8 @@ function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
|
|
1028 |
lng: startLatLng.lng()
|
1029 |
};
|
1030 |
|
1031 |
-
/*
|
|
|
1032 |
* Otherwise we first make sure the filter val is valid before including the radius / max_results param
|
1033 |
*/
|
1034 |
if ( resetMap ) {
|
@@ -1043,7 +1064,7 @@ function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
|
|
1043 |
radius = parseInt( $( "#wpsl-radius .wpsl-selected-item" ).attr( "data-value" ) );
|
1044 |
}
|
1045 |
|
1046 |
-
|
1047 |
if ( isNaN( maxResult ) ) {
|
1048 |
ajaxData.max_results = wpslSettings.maxResults;
|
1049 |
} else {
|
@@ -1056,7 +1077,7 @@ function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
|
|
1056 |
ajaxData.radius = radius;
|
1057 |
}
|
1058 |
|
1059 |
-
|
1060 |
if ( $( "#wpsl-category" ).length > 0 ) {
|
1061 |
if ( isMobile ) {
|
1062 |
categoryId = parseInt( $( "#wpsl-category .wpsl-dropdown" ).val() );
|
@@ -1095,36 +1116,36 @@ function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
|
|
1095 |
}
|
1096 |
}
|
1097 |
|
1098 |
-
|
1099 |
$storeList.empty().append( "<li class='wpsl-preloader'><img src='" + preloader + "'/>" + wpslLabels.preloader + "</li>" );
|
1100 |
|
1101 |
$.get( wpslSettings.ajaxurl, ajaxData, function( response ) {
|
1102 |
|
1103 |
-
|
1104 |
$( ".wpsl-preloader, .no-results" ).remove();
|
1105 |
-
|
1106 |
if ( response.length > 0 ) {
|
1107 |
|
1108 |
-
|
1109 |
$.each( response, function( index ) {
|
1110 |
_.extend( response[index], templateHelpers );
|
1111 |
|
1112 |
-
|
1113 |
latLng = new google.maps.LatLng( response[index].lat, response[index].lng );
|
1114 |
addMarker( latLng, response[index].id, response[index], draggable, infoWindow );
|
1115 |
|
1116 |
-
|
1117 |
storeData = storeData + _.template( template, response[index] );
|
1118 |
});
|
1119 |
|
1120 |
$( "#wpsl-result-list" ).off( "click", ".wpsl-directions" );
|
1121 |
|
1122 |
-
|
1123 |
$storeList.append( storeData );
|
1124 |
|
1125 |
$( "#wpsl-result-list" ).on( "click", ".wpsl-directions", function() {
|
1126 |
|
1127 |
-
|
1128 |
if ( wpslSettings.directionRedirect != 1 ) {
|
1129 |
renderDirections( $( this ) );
|
1130 |
|
@@ -1132,10 +1153,10 @@ function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
|
|
1132 |
}
|
1133 |
});
|
1134 |
|
1135 |
-
|
1136 |
checkMarkerClusters();
|
1137 |
|
1138 |
-
|
1139 |
fitBounds();
|
1140 |
|
1141 |
$( "#wpsl-result-list p:empty" ).remove();
|
@@ -1143,7 +1164,8 @@ function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
|
|
1143 |
$storeList.html( "<li class='no-results'>" + wpslLabels.noResults + "</li>" );
|
1144 |
}
|
1145 |
|
1146 |
-
/*
|
|
|
1147 |
* all the stores are added to the map.
|
1148 |
*
|
1149 |
* This way when a user clicks the reset button we can check if the
|
@@ -1158,12 +1180,14 @@ function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
|
|
1158 |
zoomLevel: map.getZoom()
|
1159 |
};
|
1160 |
|
1161 |
-
/*
|
|
|
1162 |
* the styling of the direction icon.
|
1163 |
*/
|
1164 |
$( "#wpsl-map-controls" ).addClass( "wpsl-reset-exists" );
|
1165 |
|
1166 |
-
/*
|
|
|
1167 |
* users from clicking it before the map is loaded.
|
1168 |
*/
|
1169 |
$( ".wpsl-icon-reset, #wpsl-reset-map" ).show();
|
@@ -1174,7 +1198,7 @@ function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
|
|
1174 |
}
|
1175 |
});
|
1176 |
|
1177 |
-
|
1178 |
if ( wpslSettings.mouseFocus == 1 && !checkMobileUserAgent() ) {
|
1179 |
$( "#wpsl-search-input" ).focus();
|
1180 |
}
|
@@ -1209,21 +1233,25 @@ function checkMarkerClusters() {
|
|
1209 |
}
|
1210 |
|
1211 |
/**
|
1212 |
-
* Add a new marker to the map based on the provided location (latlng)
|
1213 |
*
|
1214 |
-
* @since
|
1215 |
-
* @param
|
1216 |
-
* @param
|
1217 |
-
* @param
|
1218 |
-
* @param
|
1219 |
-
* @param
|
1220 |
* @return {void}
|
1221 |
*/
|
1222 |
function addMarker( latLng, storeId, infoWindowData, draggable, infoWindow ) {
|
1223 |
-
var markerPath, mapIcon, marker,
|
1224 |
keepStartMarker = true;
|
1225 |
|
1226 |
if ( storeId === 0 ) {
|
|
|
|
|
|
|
|
|
1227 |
markerPath = wpslSettings.path + "img/markers/" + wpslSettings.startMarker;
|
1228 |
} else {
|
1229 |
markerPath = wpslSettings.path + "img/markers/" + wpslSettings.storeMarker;
|
@@ -1232,7 +1260,7 @@ function addMarker( latLng, storeId, infoWindowData, draggable, infoWindow ) {
|
|
1232 |
mapIcon = {
|
1233 |
url: markerPath,
|
1234 |
scaledSize: new google.maps.Size( 24,35 ), //retina format
|
1235 |
-
origin: new google.maps.Point( 0,0 ),
|
1236 |
anchor: new google.maps.Point( 12,35 )
|
1237 |
};
|
1238 |
|
@@ -1240,22 +1268,22 @@ function addMarker( latLng, storeId, infoWindowData, draggable, infoWindow ) {
|
|
1240 |
position: latLng,
|
1241 |
map: map,
|
1242 |
optimized: false, //fixes markers flashing while bouncing
|
1243 |
-
title: infoWindowData.store,
|
1244 |
draggable: draggable,
|
1245 |
storeId: storeId,
|
1246 |
icon: mapIcon
|
1247 |
});
|
1248 |
|
1249 |
-
|
1250 |
markersArray.push( marker );
|
1251 |
|
1252 |
google.maps.event.addListener( marker, "click",( function( currentMap ) {
|
1253 |
return function() {
|
1254 |
|
1255 |
-
|
1256 |
if ( storeId != 0 ) {
|
1257 |
|
1258 |
-
|
1259 |
if ( typeof wpslSettings.markerStreetView !== "undefined" && wpslSettings.markerStreetView == 1 ) {
|
1260 |
checkStreetViewStatus( latLng, function() {
|
1261 |
setInfoWindowContent( marker, createInfoWindowHtml( infoWindowData ), infoWindow, currentMap );
|
@@ -1276,7 +1304,7 @@ function addMarker( latLng, storeId, infoWindowData, draggable, infoWindow ) {
|
|
1276 |
};
|
1277 |
}( map ) ) );
|
1278 |
|
1279 |
-
|
1280 |
if ( draggable ) {
|
1281 |
google.maps.event.addListener( marker, "dragend", function( event ) {
|
1282 |
deleteOverlays( keepStartMarker );
|
@@ -1287,13 +1315,30 @@ function addMarker( latLng, storeId, infoWindowData, draggable, infoWindow ) {
|
|
1287 |
}
|
1288 |
}
|
1289 |
|
1290 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1291 |
if ( typeof wpslSettings.infoWindowStyle !== "undefined" && wpslSettings.infoWindowStyle == "infobox" && wpslSettings.markerClusters == 1 ) {
|
1292 |
var clusters, clusterLen, markerLen, i, j;
|
1293 |
|
1294 |
-
/*
|
|
|
1295 |
*
|
1296 |
-
* If the zoom level changes the marker clusters either merges nearby
|
1297 |
* markers, or changes into individual markers. Which is the moment we
|
1298 |
* either show or hide the opened info window.
|
1299 |
*
|
@@ -1310,10 +1355,14 @@ if ( typeof wpslSettings.infoWindowStyle !== "undefined" && wpslSettings.infoWin
|
|
1310 |
for ( i = 0, clusterLen = clusters.length; i < clusterLen; i++ ) {
|
1311 |
for ( j = 0, markerLen = clusters[i].markers_.length; j < markerLen; j++ ) {
|
1312 |
|
1313 |
-
/*
|
|
|
|
|
|
|
1314 |
if ( clusters[i].markers_[j].storeId == activeWindowMarkerId ) {
|
1315 |
|
1316 |
-
/*
|
|
|
1317 |
* it means the info window belongs to a marker that is part of a marker cluster.
|
1318 |
*
|
1319 |
* If that is the case then we hide the info window ( the individual marker isn't visible ).
|
@@ -1338,13 +1387,13 @@ if ( typeof wpslSettings.infoWindowStyle !== "undefined" && wpslSettings.infoWin
|
|
1338 |
}
|
1339 |
|
1340 |
/**
|
1341 |
-
* Set the correct info window content for the marker
|
1342 |
*
|
1343 |
-
* @since
|
1344 |
-
* @param
|
1345 |
-
* @param
|
1346 |
-
* @param
|
1347 |
-
* @param
|
1348 |
* @returns {void}
|
1349 |
*/
|
1350 |
function setInfoWindowContent( marker, infoWindowContent, infoWindow, currentMap ) {
|
@@ -1355,12 +1404,15 @@ function setInfoWindowContent( marker, infoWindowContent, infoWindow, currentMap
|
|
1355 |
|
1356 |
openInfoWindow.push( infoWindow );
|
1357 |
|
1358 |
-
/*
|
|
|
1359 |
*
|
1360 |
-
* With the normal info window script the info window is automatically closed
|
1361 |
-
* zooms out and the marker clusters are enabled,
|
|
|
1362 |
*
|
1363 |
-
* So we need to show/hide it manually when the user zooms out,
|
|
|
1364 |
*/
|
1365 |
if ( typeof wpslSettings.infoWindowStyle !== "undefined" && wpslSettings.infoWindowStyle == "infobox" && wpslSettings.markerClusters == 1 ) {
|
1366 |
activeWindowMarkerId = marker.storeId;
|
@@ -1372,9 +1424,9 @@ function setInfoWindowContent( marker, infoWindowContent, infoWindow, currentMap
|
|
1372 |
* Handle clicks for the different info window actions like,
|
1373 |
* direction, streetview and zoom here.
|
1374 |
*
|
1375 |
-
* @since
|
1376 |
-
* @param
|
1377 |
-
* @param
|
1378 |
* @returns {void}
|
1379 |
*/
|
1380 |
function infoWindowClickActions( marker, currentMap ) {
|
@@ -1385,7 +1437,8 @@ function infoWindowClickActions( marker, currentMap ) {
|
|
1385 |
|
1386 |
if ( $( this ).hasClass( "wpsl-directions" ) ) {
|
1387 |
|
1388 |
-
/*
|
|
|
1389 |
* or send the users to maps.google.com
|
1390 |
*/
|
1391 |
if ( wpslSettings.directionRedirect == 1 ) {
|
@@ -1410,7 +1463,7 @@ function infoWindowClickActions( marker, currentMap ) {
|
|
1410 |
* If so we hide the 'Zoom here' text in the info window,
|
1411 |
* otherwise we show it.
|
1412 |
*
|
1413 |
-
* @since
|
1414 |
* @returns {void}
|
1415 |
*/
|
1416 |
function checkMaxZoomLevel() {
|
@@ -1424,11 +1477,11 @@ function checkMaxZoomLevel() {
|
|
1424 |
}
|
1425 |
|
1426 |
/**
|
1427 |
-
* Activate streetview for the clicked location
|
1428 |
*
|
1429 |
-
* @since
|
1430 |
-
* @param
|
1431 |
-
* @param
|
1432 |
* @returns {void}
|
1433 |
*/
|
1434 |
function activateStreetView( marker, currentMap ) {
|
@@ -1442,15 +1495,15 @@ function activateStreetView( marker, currentMap ) {
|
|
1442 |
}
|
1443 |
|
1444 |
/**
|
1445 |
-
* Listen for changes in the streetview visibility
|
1446 |
*
|
1447 |
* Sometimes the infowindow offset is incorrect after switching back from streetview.
|
1448 |
* We fix this by zooming in and out. If someone has a better fix, then let me know at
|
1449 |
* info at tijmensmit.com
|
1450 |
*
|
1451 |
-
* @since
|
1452 |
-
* @param
|
1453 |
-
* @param
|
1454 |
* @returns {void}
|
1455 |
*/
|
1456 |
function StreetViewListener( panorama, currentMap ) {
|
@@ -1467,13 +1520,14 @@ function StreetViewListener( panorama, currentMap ) {
|
|
1467 |
}
|
1468 |
|
1469 |
/**
|
1470 |
-
* Check the streetview status
|
1471 |
*
|
1472 |
-
* Make sure that a streetview exists for
|
|
|
1473 |
*
|
1474 |
-
* @since
|
1475 |
-
* @param
|
1476 |
-
* @param
|
1477 |
* @returns {void}
|
1478 |
*/
|
1479 |
function checkStreetViewStatus( latLng, callback ) {
|
@@ -1486,16 +1540,18 @@ function checkStreetViewStatus( latLng, callback ) {
|
|
1486 |
}
|
1487 |
|
1488 |
/**
|
1489 |
-
* Helper methods for the underscore templates
|
1490 |
*
|
1491 |
-
* @
|
|
|
|
|
1492 |
*/
|
1493 |
var templateHelpers = {
|
1494 |
/**
|
1495 |
-
* Make the phone number clickable if we are dealing with a mobile useragent
|
1496 |
*
|
1497 |
-
* @since
|
1498 |
-
* @param
|
1499 |
* @returns {string} phoneNumber Either just the plain number, or with a link wrapped around it with tel:
|
1500 |
*/
|
1501 |
formatPhoneNumber: function( phoneNumber ) {
|
@@ -1509,8 +1565,8 @@ var templateHelpers = {
|
|
1509 |
* Replace spaces - . and () from phone numbers.
|
1510 |
* Also if the number starts with a + we check for a (0) and remove it.
|
1511 |
*
|
1512 |
-
* @since
|
1513 |
-
* @param
|
1514 |
* @returns {string} phoneNumber The 'cleaned' number
|
1515 |
*/
|
1516 |
formatClickablePhoneNumber: function( phoneNumber ) {
|
@@ -1521,10 +1577,10 @@ var templateHelpers = {
|
|
1521 |
return phoneNumber.replace( /(-| |\(|\)|\.|)/g, "" );
|
1522 |
},
|
1523 |
/**
|
1524 |
-
* Create the html for the info window action
|
1525 |
*
|
1526 |
-
* @since
|
1527 |
-
* @param
|
1528 |
* @returns {string} output The html for the info window actions
|
1529 |
*/
|
1530 |
createInfoWindowActions: function( id ) {
|
@@ -1550,8 +1606,8 @@ var templateHelpers = {
|
|
1550 |
* Create the url that takes the user to the maps.google.com page
|
1551 |
* and shows the correct driving directions.
|
1552 |
*
|
1553 |
-
* @since
|
1554 |
-
* @param
|
1555 |
* @returns {string} directionUrl The full maps.google.com url with the encoded start + end address
|
1556 |
*/
|
1557 |
createDirectionUrl: function( id ) {
|
@@ -1560,19 +1616,19 @@ var templateHelpers = {
|
|
1560 |
|
1561 |
if ( wpslSettings.directionRedirect == 1 ) {
|
1562 |
|
1563 |
-
|
1564 |
if ( typeof startAddress === "undefined" ) {
|
1565 |
startAddress = "";
|
1566 |
}
|
1567 |
|
1568 |
url.target = "target='_blank'";
|
1569 |
|
1570 |
-
|
1571 |
if ( typeof id !== "undefined" ) {
|
1572 |
url.src = $( "[data-store-id=" + id + "] .wpsl-directions" ).attr( "href" );
|
1573 |
} else {
|
1574 |
|
1575 |
-
|
1576 |
if ( this.zip ) {
|
1577 |
zip = this.zip + ", ";
|
1578 |
} else {
|
@@ -1595,12 +1651,12 @@ var templateHelpers = {
|
|
1595 |
return directionUrl;
|
1596 |
},
|
1597 |
/**
|
1598 |
-
* Make the URI encoding compatible with RFC 3986
|
1599 |
*
|
1600 |
-
* !, ', (, ), and * will be escaped, otherwise they break the string
|
1601 |
*
|
1602 |
-
* @since
|
1603 |
-
* @param
|
1604 |
* @returns {string} The encoded string
|
1605 |
*/
|
1606 |
rfc3986EncodeURIComponent: function( str ) {
|
@@ -1609,11 +1665,11 @@ var templateHelpers = {
|
|
1609 |
};
|
1610 |
|
1611 |
/**
|
1612 |
-
* Create the
|
1613 |
*
|
1614 |
-
* @since
|
1615 |
-
* @param
|
1616 |
-
* @returns {string} windowContent The
|
1617 |
*/
|
1618 |
function createInfoWindowHtml( infoWindowData ) {
|
1619 |
var windowContent, template;
|
@@ -1630,9 +1686,9 @@ function createInfoWindowHtml( infoWindowData ) {
|
|
1630 |
}
|
1631 |
|
1632 |
/**
|
1633 |
-
* Zoom the map so that all markers fit in the window
|
1634 |
*
|
1635 |
-
* @since
|
1636 |
* @returns {void}
|
1637 |
*/
|
1638 |
function fitBounds() {
|
@@ -1640,7 +1696,7 @@ function fitBounds() {
|
|
1640 |
maxZoom = Number( wpslSettings.autoZoomLevel ),
|
1641 |
bounds = new google.maps.LatLngBounds();
|
1642 |
|
1643 |
-
|
1644 |
google.maps.event.addListenerOnce( map, "bounds_changed", function( event ) {
|
1645 |
if ( this.getZoom() > maxZoom ) {
|
1646 |
this.setZoom( maxZoom );
|
@@ -1655,10 +1711,10 @@ function fitBounds() {
|
|
1655 |
}
|
1656 |
|
1657 |
/**
|
1658 |
-
* Remove all existing markers from the map
|
1659 |
*
|
1660 |
-
* @since
|
1661 |
-
* @param
|
1662 |
* @returns {void}
|
1663 |
*/
|
1664 |
function deleteOverlays( keepStartMarker ) {
|
@@ -1666,10 +1722,11 @@ function deleteOverlays( keepStartMarker ) {
|
|
1666 |
|
1667 |
directionsDisplay.setMap( null );
|
1668 |
|
1669 |
-
|
1670 |
if ( markersArray ) {
|
1671 |
-
for ( i = 0, markerLen = markersArray.length; i < markerLen; i++ ) {
|
1672 |
-
|
|
|
1673 |
if ( keepStartMarker ) {
|
1674 |
if ( markersArray[i].draggable != true ) {
|
1675 |
markersArray[i].setMap( null );
|
@@ -1684,7 +1741,7 @@ function deleteOverlays( keepStartMarker ) {
|
|
1684 |
markersArray.length = 0;
|
1685 |
}
|
1686 |
|
1687 |
-
|
1688 |
if ( markerClusterer ) {
|
1689 |
markerClusterer.clearMarkers();
|
1690 |
}
|
@@ -1693,9 +1750,9 @@ function deleteOverlays( keepStartMarker ) {
|
|
1693 |
/**
|
1694 |
* Handle the geocode errors.
|
1695 |
*
|
1696 |
-
* @since
|
1697 |
-
* @param
|
1698 |
-
* @returns void
|
1699 |
*/
|
1700 |
function geocodeErrors( status ) {
|
1701 |
var msg;
|
@@ -1718,9 +1775,9 @@ function geocodeErrors( status ) {
|
|
1718 |
/**
|
1719 |
* Handle the driving direction errors.
|
1720 |
*
|
1721 |
-
* @since
|
1722 |
-
* @param
|
1723 |
-
* @returns void
|
1724 |
*/
|
1725 |
function directionErrors( status ) {
|
1726 |
var msg;
|
@@ -1741,7 +1798,7 @@ function directionErrors( status ) {
|
|
1741 |
alert( msg );
|
1742 |
}
|
1743 |
|
1744 |
-
|
1745 |
$( "#wpsl-search-input" ).keydown( function ( event ) {
|
1746 |
var keypressed = event.keyCode || event.which;
|
1747 |
|
@@ -1755,7 +1812,7 @@ $( "#wpsl-stores" ).on( "click", ".wpsl-store-details", function() {
|
|
1755 |
$parentLi = $( this ).parents( "li" ),
|
1756 |
storeId = $parentLi.data( "store-id" );
|
1757 |
|
1758 |
-
|
1759 |
if ( wpslSettings.moreInfoLocation == "info window" ) {
|
1760 |
for ( i = 0, len = markersArray.length; i < len; i++ ) {
|
1761 |
if ( markersArray[i].storeId == storeId ) {
|
@@ -1764,7 +1821,7 @@ $( "#wpsl-stores" ).on( "click", ".wpsl-store-details", function() {
|
|
1764 |
}
|
1765 |
} else {
|
1766 |
|
1767 |
-
|
1768 |
if ( $parentLi.find( ".wpsl-more-info-listings" ).is( ":visible" ) ) {
|
1769 |
$( this ).removeClass( "wpsl-active-details" );
|
1770 |
} else {
|
@@ -1776,7 +1833,8 @@ $( "#wpsl-stores" ).on( "click", ".wpsl-store-details", function() {
|
|
1776 |
$parentLi.find( ".wpsl-more-info-listings" ).toggle();
|
1777 |
}
|
1778 |
|
1779 |
-
/*
|
|
|
1780 |
* top of the map to focus on the opened infowindow
|
1781 |
*/
|
1782 |
if ( wpslSettings.templateId != "default" || wpslSettings.moreInfoLocation == "store listings" ) {
|
@@ -1785,12 +1843,12 @@ $( "#wpsl-stores" ).on( "click", ".wpsl-store-details", function() {
|
|
1785 |
});
|
1786 |
|
1787 |
/**
|
1788 |
-
* Create the dropdown filters
|
1789 |
*
|
1790 |
* Inspired by https://github.com/patrickkunka/easydropdown
|
1791 |
*
|
1792 |
-
* @since
|
1793 |
-
* @returns void
|
1794 |
*/
|
1795 |
function createDropdowns() {
|
1796 |
|
@@ -1803,10 +1861,10 @@ function createDropdowns() {
|
|
1803 |
$this.$dropdown = $this.$dropdownElem.find( "ul" );
|
1804 |
$this.$options = $this.$dropdownWrap.find( "option" );
|
1805 |
|
1806 |
-
|
1807 |
$this.hide().removeClass( "wpsl-dropdown" );
|
1808 |
|
1809 |
-
|
1810 |
$.each( $this.$options, function() {
|
1811 |
if ( $( this ).val() == $this.$selectedVal ) {
|
1812 |
active = 'class="wpsl-selected-dropdown"';
|
@@ -1821,14 +1879,14 @@ function createDropdowns() {
|
|
1821 |
$this.$dropdownElem.before( "<span data-value=" + $this.find( ":selected" ).val() + " class='wpsl-selected-item'>" + $this.find( ":selected" ).text() + "</span>" );
|
1822 |
$this.$dropdownItem = $this.$dropdownElem.find( "li" );
|
1823 |
|
1824 |
-
|
1825 |
$this.$dropdownWrap.on( "click", function( e ) {
|
1826 |
closeDropdowns();
|
1827 |
|
1828 |
$( this ).toggleClass( "wpsl-active" );
|
1829 |
maxHeight = 0;
|
1830 |
|
1831 |
-
|
1832 |
if ( $( this ).hasClass( "wpsl-active" ) ) {
|
1833 |
$this.$dropdownItem.each( function( index ) {
|
1834 |
maxHeight += $( this ).outerHeight();
|
@@ -1842,13 +1900,13 @@ function createDropdowns() {
|
|
1842 |
e.stopPropagation();
|
1843 |
});
|
1844 |
|
1845 |
-
|
1846 |
$this.$dropdownItem.on( "click", function( e ) {
|
1847 |
|
1848 |
-
|
1849 |
$this.$dropdownWrap.find( $( ".wpsl-selected-item" ) ).html( $( this ).text() ).attr( "data-value", $( this ).attr( "data-value" ) );
|
1850 |
|
1851 |
-
|
1852 |
$this.$dropdownItem.removeClass( "wpsl-selected-dropdown" );
|
1853 |
$( this ).addClass( "wpsl-selected-dropdown" );
|
1854 |
|
@@ -1864,9 +1922,9 @@ function createDropdowns() {
|
|
1864 |
}
|
1865 |
|
1866 |
/**
|
1867 |
-
* Close all the dropdowns
|
1868 |
*
|
1869 |
-
* @since
|
1870 |
* @returns void
|
1871 |
*/
|
1872 |
function closeDropdowns() {
|
@@ -1889,8 +1947,8 @@ function closeDropdowns() {
|
|
1889 |
* is to simply disable the "Attempt to auto-locate the user" option if
|
1890 |
* you use the store locator in a tab.
|
1891 |
*
|
1892 |
-
* @
|
1893 |
-
* @since 2.0
|
1894 |
*/
|
1895 |
if ( $( "a[href='#" + wpslSettings.mapTabAnchor + "']" ).length ) {
|
1896 |
var mapZoom, mapCenter,
|
10 |
autoLoad = ( typeof wpslSettings !== "undefined" ) ? wpslSettings.autoLoad : "";
|
11 |
|
12 |
/**
|
13 |
+
* Set the underscore template settings.
|
14 |
*
|
15 |
* Defining them here prevents other plugins
|
16 |
* that also use underscore / backbone, and defined a
|
17 |
* different _.templateSettings from breaking the
|
18 |
* rendering of the store locator template.
|
19 |
*
|
20 |
+
* @link http://underscorejs.org/#template
|
21 |
+
* @requires underscore.js
|
22 |
+
* @since 2.0.0
|
23 |
*/
|
24 |
_.templateSettings = {
|
25 |
evaluate: /\<\%(.+?)\%\>/g,
|
27 |
escape: /\<\%-(.+?)\%\>/g
|
28 |
};
|
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.
|
37 |
*
|
38 |
* So to make sure we init all the maps we loop over them.
|
45 |
}
|
46 |
|
47 |
/**
|
48 |
+
* Initialize the map with the correct settings.
|
49 |
*
|
50 |
+
* @since 1.0.0
|
51 |
+
* @param {string} mapId The id of the map div
|
52 |
+
* @param {number} mapIndex Number of the map
|
53 |
* @returns {void}
|
54 |
*/
|
55 |
function initializeGmap( mapId, mapIndex ) {
|
56 |
var mapOptions, settings, infoWindow, latLng, bounds, mapData, locationCount,
|
57 |
maxZoom = Number( wpslSettings.autoZoomLevel );
|
58 |
|
59 |
+
// Get the settings that belong to the map.
|
60 |
settings = getMapSettings( mapIndex );
|
61 |
|
62 |
+
// Create a new infoWindow, either with the infobox libray or use the default one.
|
63 |
infoWindow = newInfoWindow();
|
64 |
|
65 |
geocoder = new google.maps.Geocoder();
|
66 |
directionsDisplay = new google.maps.DirectionsRenderer();
|
67 |
directionsService = new google.maps.DirectionsService();
|
68 |
|
69 |
+
// Set the map options.
|
70 |
mapOptions = {
|
71 |
zoom: Number( settings.zoomLevel ),
|
72 |
center: settings.startLatLng,
|
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 |
|
87 |
if ( ( typeof window[ "wpslMap_" + mapIndex ] !== "undefined" ) && ( typeof window[ "wpslMap_" + mapIndex ].locations !== "undefined" ) ) {
|
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() {
|
105 |
if ( currentMap.getZoom() > maxZoom ) {
|
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 |
*
|
118 |
* We do this because several people have reported issues with the styled dropdowns on
|
119 |
* iOS and Android devices. So on mobile devices the dropdowns will be styled according
|
126 |
$( "#wpsl-wrap" ).addClass( "wpsl-mobile" );
|
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.
|
137 |
if ( wpslSettings.mouseFocus == 1 && !checkMobileUserAgent() ) {
|
138 |
$( "#wpsl-search-input" ).focus();
|
139 |
}
|
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 |
}
|
151 |
|
155 |
*
|
156 |
* The 'max auto zoom level' is set on the settings page.
|
157 |
*
|
158 |
+
* @since 2.0.0
|
159 |
* @returns {void}
|
160 |
*/
|
161 |
function zoomChangedListener() {
|
168 |
}
|
169 |
|
170 |
/**
|
171 |
+
* Get the correct map settings.
|
172 |
*
|
173 |
+
* @since 2.0.0
|
174 |
+
* @param {number} mapIndex Number of the map
|
175 |
* @returns {object} mapSettings The map settings either set through a shortcode or the default settings
|
176 |
*/
|
177 |
function getMapSettings( mapIndex ) {
|
187 |
controlPosition: wpslSettings.controlPosition
|
188 |
};
|
189 |
|
190 |
+
// If there are settings that are set through the shortcode, then we use them instead of the default ones.
|
191 |
if ( ( typeof window[ "wpslMap_" + mapIndex ] !== "undefined" ) && ( typeof window[ "wpslMap_" + mapIndex ].shortCode !== "undefined" ) ) {
|
192 |
for ( j = 0, len = settingOptions.length; j < len; j++ ) {
|
193 |
shortCodeVal = window[ "wpslMap_" + mapIndex ].shortCode[ settingOptions[j] ];
|
194 |
|
195 |
+
// If the value is set through the shortcode, we overwrite the default value.
|
196 |
if ( typeof shortCodeVal !== "undefined" ) {
|
197 |
mapSettings[ settingOptions[j] ] = shortCodeVal;
|
198 |
}
|
205 |
}
|
206 |
|
207 |
/**
|
208 |
+
* Get the latlng coordinates that are used to init the map.
|
209 |
*
|
210 |
+
* @since 2.0.0
|
211 |
+
* @param {number} mapIndex Number of the map
|
212 |
* @returns {object} startLatLng The latlng value where the map will initially focus on
|
213 |
*/
|
214 |
function getStartLatlng( mapIndex ) {
|
215 |
var startLatLng, latLng,
|
216 |
firstLocation = "";
|
217 |
|
218 |
+
/*
|
219 |
+
* Maps that are added with the [wpsl_map] shortcode will have the locations key set.
|
220 |
* If it exists we use the coordinates from the first location to center the map on.
|
221 |
*/
|
222 |
if ( ( typeof window[ "wpslMap_" + mapIndex ] !== "undefined" ) && ( typeof window[ "wpslMap_" + mapIndex ].locations !== "undefined" ) ) {
|
223 |
firstLocation = window[ "wpslMap_" + mapIndex ].locations[0];
|
224 |
}
|
225 |
|
226 |
+
/*
|
227 |
+
* Either use the coordinates from the first location as the start coordinates
|
228 |
* or the default start point defined on the settings page.
|
229 |
*
|
230 |
* If both are not available we set it to 0,0
|
242 |
}
|
243 |
|
244 |
/**
|
245 |
+
* Create a new infoWindow object.
|
246 |
*
|
247 |
+
* Either use the default infoWindow or use the infobox library.
|
248 |
*
|
249 |
+
* @since 2.0.0
|
250 |
* @return {object} infoWindow The infoWindow object
|
251 |
*/
|
252 |
function newInfoWindow() {
|
253 |
var boxClearance, boxPixelOffset,
|
254 |
infoBoxOptions = {};
|
255 |
|
256 |
+
// Do we need to use the infobox script or use the default info windows?
|
257 |
if ( ( typeof wpslSettings.infoWindowStyle !== "undefined" ) && ( wpslSettings.infoWindowStyle == "infobox" ) ) {
|
258 |
|
259 |
+
// See http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/reference.html.
|
260 |
boxClearance = wpslSettings.infoBoxClearance.split( "," );
|
261 |
boxPixelOffset = wpslSettings.infoBoxPixelOffset.split( "," );
|
262 |
infoBoxOptions = {
|
281 |
}
|
282 |
|
283 |
/**
|
284 |
+
* Check if we have a map style that we need to apply to the map.
|
285 |
*
|
286 |
+
* @since 2.0.0
|
287 |
+
* @param {string} mapStyle The id of the map
|
288 |
* @return {void}
|
289 |
*/
|
290 |
function maybeApplyMapStyle( mapStyle ) {
|
291 |
|
292 |
+
// Make sure the JSON is valid before applying it as a map style.
|
293 |
mapStyle = tryParseJSON( mapStyle );
|
294 |
|
295 |
if ( mapStyle ) {
|
300 |
/**
|
301 |
* Make sure the JSON is valid.
|
302 |
*
|
303 |
+
* @link http://stackoverflow.com/a/20392392/1065294
|
304 |
+
* @since 2.0.0
|
305 |
+
* @param {string} jsonString The JSON data
|
306 |
+
* @return {object|boolean} The JSON string or false if it's invalid json.
|
307 |
*/
|
308 |
function tryParseJSON( jsonString ) {
|
309 |
|
310 |
try {
|
311 |
var o = JSON.parse( jsonString );
|
312 |
|
313 |
+
/*
|
314 |
+
* Handle non-exception-throwing cases:
|
315 |
+
* Neither JSON.parse(false) or JSON.parse(1234) throw errors, hence the type-checking,
|
316 |
+
* but... JSON.parse(null) returns 'null', and typeof null === "object",
|
317 |
+
* so we must check for that, too.
|
318 |
+
*/
|
319 |
if ( o && typeof o === "object" && o !== null ) {
|
320 |
return o;
|
321 |
}
|
326 |
}
|
327 |
|
328 |
/**
|
329 |
+
* Add the start marker and call the function that inits the store search.
|
330 |
*
|
331 |
+
* @since 1.1.0
|
332 |
+
* @param {object} startLatLng The start coordinates
|
333 |
+
* @param {object} infoWindow The infoWindow object
|
334 |
* @returns {void}
|
335 |
*/
|
336 |
function showStores( startLatLng, infoWindow ) {
|
337 |
+
addMarker( startLatLng, 0, '', true, infoWindow ); // This marker is the 'start location' marker. With a storeId of 0, no name and is draggable
|
|
|
|
|
|
|
|
|
338 |
findStoreLocations( startLatLng, resetMap, autoLoad, infoWindow );
|
339 |
}
|
340 |
|
341 |
/**
|
342 |
+
* Compare the current useragent to a list of known mobile useragents ( not optimal, I know ).
|
343 |
*
|
344 |
+
* @since 1.2.20
|
345 |
* @returns {boolean} Whether the useragent is from a known mobile useragent or not.
|
346 |
*/
|
347 |
function checkMobileUserAgent() {
|
352 |
* Check if Geolocation detection is supported.
|
353 |
*
|
354 |
* If there is an error / timeout with determining the users
|
355 |
+
* location, then we use the 'start point' value from the settings
|
356 |
+
* as the start location through the showStores function.
|
357 |
*
|
358 |
+
* @since 1.0.0
|
359 |
+
* @param {object} startLatLng The start coordinates
|
360 |
+
* @param {object} infoWindow The infoWindow object
|
361 |
* @returns {void}
|
362 |
*/
|
363 |
function checkGeolocation( startLatLng, infoWindow ) {
|
367 |
keepStartMarker = false,
|
368 |
timeout = Number( wpslSettings.geoLocationTimout );
|
369 |
|
370 |
+
// Make the direction icon flash every 600ms to indicate the geolocation attempt is in progress.
|
371 |
geolocationInProgress = setInterval( function() {
|
372 |
$( ".wpsl-icon-direction" ).toggleClass( "wpsl-active-icon" );
|
373 |
}, 600 );
|
374 |
|
375 |
+
/*
|
376 |
+
* If the user doesn't approve the geolocation request within the value set in
|
377 |
* wpslSettings.geoLocationTimout, then the default map is loaded.
|
378 |
*
|
379 |
* You can increase the timeout value with the wpsl_geolocation_timeout filter.
|
387 |
geolocationFinished( geolocationInProgress );
|
388 |
clearTimeout( locationTimeout );
|
389 |
|
390 |
+
/*
|
391 |
+
* If the timeout is triggerd and the user later decides to enable
|
392 |
* the geolocation detection again, it gets messy with multiple start markers.
|
393 |
*
|
394 |
* So we first clear the map before adding new ones.
|
397 |
handleGeolocationQuery( startLatLng, position, resetMap, infoWindow );
|
398 |
}, function( error ) {
|
399 |
|
400 |
+
/*
|
401 |
+
* Only show the geocode errors if the user actually clicked on the direction icon.
|
402 |
*
|
403 |
+
* Otherwise if the "Attempt to auto-locate the user" option is enabled on the settings page,
|
404 |
* and the geolocation attempt fails for whatever reason ( blocked in browser, unavailable etc ).
|
405 |
* Then the first thing the visitor will see on pageload is an alert box, which isn't very userfriendly.
|
406 |
*
|
407 |
+
* If an error occurs on pageload without the user clicking on the direction icon,
|
408 |
* the default map is shown without any alert boxes.
|
409 |
*/
|
410 |
if ( $( ".wpsl-icon-direction" ).hasClass( "wpsl-user-activated") ) {
|
436 |
}
|
437 |
}
|
438 |
|
439 |
+
/**
|
440 |
+
* Clean up after the geolocation attempt finished.
|
441 |
+
*
|
442 |
+
* @since 2.0.0
|
443 |
+
* @param {number} geolocationInProgress
|
444 |
+
* @returns {void}
|
445 |
+
*/
|
446 |
function geolocationFinished( geolocationInProgress ) {
|
447 |
clearInterval( geolocationInProgress );
|
448 |
$( ".wpsl-icon-direction" ).removeClass( "wpsl-active-icon" );
|
449 |
}
|
450 |
|
451 |
/**
|
452 |
+
* Handle the data returned from the Geolocation API.
|
453 |
*
|
454 |
* If there is an error / timeout determining the users location,
|
455 |
* then we use the 'start point' value from the settings as the start location through the showStores function.
|
456 |
*
|
457 |
+
* @since 1.0.0
|
458 |
+
* @param {object} startLatLng The start coordinates
|
459 |
+
* @param {object} position The latlng coordinates from the geolocation attempt
|
460 |
+
* @param {boolean} resetMap Whether we should reset the map or not
|
461 |
+
* @param {object} infoWindow The infoWindow object
|
462 |
* @returns {void}
|
463 |
*/
|
464 |
+
function handleGeolocationQuery( startLatLng, position, resetMap, infoWindow ) {
|
465 |
|
466 |
if ( typeof( position ) === "undefined" ) {
|
467 |
showStores( startLatLng, infoWindow );
|
468 |
} else {
|
469 |
var latLng = new google.maps.LatLng( position.coords.latitude, position.coords.longitude );
|
470 |
|
471 |
+
/*
|
472 |
+
* Store the latlng from the geolocation for when the user hits "reset" again
|
473 |
* without having to ask for permission again.
|
474 |
*/
|
475 |
geolocationLatlng = position;
|
476 |
|
477 |
reverseGeocode( latLng ); // Set the zipcode that belongs to the latlng in the input field
|
478 |
map.setCenter( latLng );
|
479 |
+
addMarker( latLng, 0, '', true, infoWindow ); // This marker is the 'start location' marker. With a storeId of 0, no name and is draggable
|
480 |
findStoreLocations( latLng, resetMap, autoLoad, infoWindow );
|
481 |
}
|
482 |
}
|
483 |
|
484 |
/**
|
485 |
+
* Handle clicks on the store locator search button.
|
486 |
*
|
487 |
+
* @since 1.0.0
|
488 |
+
* @param {object} infoWindow The infoWindow object
|
489 |
* @returns {void}
|
490 |
*/
|
491 |
function searchLocationBtn( infoWindow ) {
|
504 |
|
505 |
resetMap = false;
|
506 |
|
507 |
+
// Force the open InfoBox info window to close.
|
508 |
closeInfoBoxWindow();
|
509 |
|
510 |
deleteOverlays( keepStartMarker );
|
520 |
* This is required if the user makes a new search,
|
521 |
* or clicks on the "Directions" link.
|
522 |
*
|
523 |
+
* @since 2.0.0
|
524 |
* @return {void}
|
525 |
*/
|
526 |
function closeInfoBoxWindow() {
|
530 |
}
|
531 |
|
532 |
/**
|
533 |
+
* Add the 'reload' and 'find location' icon to the map.
|
534 |
*
|
535 |
+
* @since 2.0.0
|
536 |
+
* @param {object} settings Map settings
|
537 |
+
* @param {object} map The map object
|
538 |
+
* @param {object} infoWindow The info window object
|
539 |
* @return {void}
|
540 |
*/
|
541 |
function mapControlIcons( settings, map, infoWindow ) {
|
542 |
|
543 |
+
// Once the map has finished loading include the map control button(s).
|
544 |
google.maps.event.addListenerOnce( map, "tilesloaded", function() {
|
545 |
|
546 |
+
// Add the html for the map controls to the map.
|
547 |
$( ".gm-style" ).append( wpslSettings.mapControls );
|
548 |
|
549 |
if ( $( ".wpsl-icon-reset, #wpsl-reset-map" ).length > 0 ) {
|
550 |
|
551 |
+
// Bind the reset map button.
|
552 |
resetMapBtn( settings.startLatLng, infoWindow );
|
553 |
|
554 |
+
/*
|
555 |
+
* Hide it to prevent users from clicking it before
|
556 |
* the store location are placed on the map.
|
557 |
*/
|
558 |
$( ".wpsl-icon-reset" ).hide();
|
559 |
}
|
560 |
|
561 |
+
// Bind the direction button to trigger a new geolocation request.
|
562 |
$( ".wpsl-icon-direction" ).on( "click", function() {
|
563 |
$( this ).addClass( "wpsl-user-activated" );
|
564 |
checkGeolocation( settings.startLatLng, infoWindow );
|
567 |
}
|
568 |
|
569 |
/**
|
570 |
+
* Handle clicks on the "Reset" button.
|
571 |
*
|
572 |
+
* @since 1.0.0
|
573 |
+
* @param {object} startLatLng The start coordinates
|
574 |
+
* @param {object} infoWindow The infoWindow object
|
575 |
* @returns {void}
|
576 |
*/
|
577 |
function resetMapBtn( startLatLng, infoWindow ) {
|
579 |
var keepStartMarker = false,
|
580 |
resetMap = true;
|
581 |
|
582 |
+
/*
|
583 |
+
* Check if a map reset is already in progress,
|
584 |
* if so prevent another one from starting.
|
585 |
*/
|
586 |
if ( $( this ).hasClass( "wpsl-in-progress" ) ) {
|
587 |
return;
|
588 |
}
|
589 |
|
590 |
+
/*
|
591 |
+
* When the start marker is dragged the autoload value is set to false.
|
592 |
+
* So we need to check the correct value when the reset button is
|
593 |
+
* pushed before reloading the stores.
|
594 |
*/
|
595 |
if ( wpslSettings.autoLoad == 1 ) {
|
596 |
autoLoad = 1;
|
597 |
}
|
598 |
|
599 |
+
// Check if the latlng or zoom has changed since pageload, if so there is something to reset.
|
600 |
if ( ( ( ( map.getCenter().lat() !== mapDefaults.centerLatlng.lat() ) || ( map.getCenter().lng() !== mapDefaults.centerLatlng.lng() ) || ( map.getZoom() !== mapDefaults.zoomLevel ) ) ) ) {
|
601 |
deleteOverlays( keepStartMarker );
|
602 |
|
603 |
$( "#wpsl-search-input" ).val( "" ).removeClass();
|
604 |
|
605 |
+
// We use this to prevent multiple reset request.
|
606 |
$( ".wpsl-icon-reset" ).addClass( "wpsl-in-progress" );
|
607 |
|
608 |
+
// If marker clusters exist, remove them from the map.
|
609 |
if ( markerClusterer ) {
|
610 |
markerClusterer.clearMarkers();
|
611 |
}
|
612 |
|
613 |
+
// Remove the start marker.
|
614 |
deleteStartMarker();
|
615 |
|
616 |
+
// Reset the dropdown values.
|
617 |
resetDropdowns();
|
618 |
|
619 |
if ( wpslSettings.autoLocate == 1 ) {
|
623 |
}
|
624 |
}
|
625 |
|
626 |
+
// Make sure the stores are shown and the direction details are hidden.
|
627 |
$( "#wpsl-stores" ).show();
|
628 |
$( "#wpsl-direction-details" ).hide();
|
629 |
});
|
630 |
}
|
631 |
|
632 |
/**
|
633 |
+
* Remove the start marker from the map.
|
634 |
*
|
635 |
+
* @since 1.2.12
|
636 |
* @returns {void}
|
637 |
*/
|
638 |
function deleteStartMarker() {
|
646 |
* Reset the dropdown values for the max results,
|
647 |
* and search radius after the "reset" button is triggerd.
|
648 |
*
|
649 |
+
* @since 1.1.0
|
650 |
* @returns {void}
|
651 |
*/
|
652 |
function resetDropdowns() {
|
688 |
}
|
689 |
}
|
690 |
|
691 |
+
// Handle the click on the back button when the route directions are displayed.
|
692 |
$( "#wpsl-result-list" ).on( "click", ".wpsl-back", function() {
|
693 |
var i, len;
|
694 |
|
695 |
+
// Remove the directions from the map.
|
696 |
directionsDisplay.setMap( null );
|
697 |
|
698 |
+
// Restore the store markers on the map.
|
699 |
for ( i = 0, len = markersArray.length; i < len; i++ ) {
|
700 |
markersArray[i].setMap( map );
|
701 |
}
|
702 |
|
703 |
+
// Restore the start marker on the map.
|
704 |
if ( ( typeof( startMarkerData ) !== "undefined" ) && ( startMarkerData !== "" ) ) {
|
705 |
startMarkerData.setMap( map );
|
706 |
}
|
707 |
|
708 |
+
// If marker clusters are enabled, restore them.
|
709 |
if ( markerClusterer ) {
|
710 |
checkMarkerClusters();
|
711 |
}
|
721 |
});
|
722 |
|
723 |
/**
|
724 |
+
* Show the driving directions.
|
725 |
*
|
726 |
+
* @since 1.1.0
|
727 |
+
* @param {object} e The clicked elemennt
|
728 |
* @returns {void}
|
729 |
*/
|
730 |
function renderDirections( e ) {
|
731 |
var i, start, end, len, storeId;
|
732 |
|
733 |
+
// Force the open InfoBox info window to close.
|
734 |
closeInfoBoxWindow();
|
735 |
|
736 |
/*
|
737 |
+
* The storeId is placed on the li in the results list,
|
738 |
+
* but in the marker it will be on the wrapper div. So we check which one we need to target.
|
739 |
+
*/
|
740 |
if ( e.parents( "li" ).length > 0 ) {
|
741 |
storeId = e.parents( "li" ).data( "store-id" );
|
742 |
} else {
|
743 |
storeId = e.parents( ".wpsl-info-window" ).data( "store-id" );
|
744 |
}
|
745 |
|
746 |
+
// Check if we need to get the start point from a dragged marker.
|
747 |
if ( ( typeof( startMarkerData ) !== "undefined" ) && ( startMarkerData !== "" ) ) {
|
748 |
start = startMarkerData.getPosition();
|
749 |
}
|
750 |
|
751 |
+
// Used to restore the map back to the state it was in before the user clicked on 'directions'.
|
752 |
directionMarkerPosition = {
|
753 |
centerLatlng: map.getCenter(),
|
754 |
zoomLevel: map.getZoom()
|
755 |
};
|
756 |
|
757 |
+
// Find the latlng that belongs to the start and end point.
|
758 |
for ( i = 0, len = markersArray.length; i < len; i++ ) {
|
759 |
|
760 |
+
// Only continue if the start data is still empty or undefined.
|
761 |
if ( ( markersArray[i].storeId == 0 ) && ( ( typeof( start ) === "undefined" ) || ( start === "" ) ) ) {
|
762 |
start = markersArray[i].getPosition();
|
763 |
} else if ( markersArray[i].storeId == storeId ) {
|
802 |
}
|
803 |
|
804 |
/**
|
805 |
+
* Let a single marker bounce.
|
806 |
*
|
807 |
+
* @since 1.0.0
|
808 |
+
* @param {number} storeId The storeId of the marker that we need to bounce on the map
|
809 |
+
* @param {string} status Indicates whether we should stop or start the bouncing
|
810 |
* @returns {void}
|
811 |
*/
|
812 |
function letsBounce( storeId, status ) {
|
813 |
var i, len, marker;
|
814 |
|
815 |
+
// Find the correct marker to bounce based on the storeId.
|
816 |
for ( i = 0, len = markersArray.length; i < len; i++ ) {
|
817 |
if ( markersArray[i].storeId == storeId ) {
|
818 |
marker = markersArray[i];
|
827 |
}
|
828 |
|
829 |
/**
|
830 |
+
* Calculate the route from the start to the end.
|
831 |
*
|
832 |
+
* @since 1.0.0
|
833 |
+
* @param {object} start The latlng from the start point
|
834 |
+
* @param {object} end The latlng from the end point
|
835 |
* @returns {void}
|
836 |
*/
|
837 |
function calcRoute( start, end ) {
|
860 |
if ( response.routes.length > 0 ) {
|
861 |
direction = response.routes[0];
|
862 |
|
863 |
+
// Loop over the legs and steps of the directions.
|
864 |
for ( i = 0; i < direction.legs.length; i++ ) {
|
865 |
legs = direction.legs[i];
|
866 |
|
874 |
$( "#wpsl-direction-details ul" ).append( directionStops ).before( "<div class='wpsl-direction-before'><a class='wpsl-back' id='wpsl-direction-start' href='#'>" + wpslLabels.back + "</a><div><span class='wpsl-total-distance'>" + direction.legs[0].distance.text + "</span> - <span class='wpsl-total-durations'>" + direction.legs[0].duration.text + "</span></div></div>" ).after( "<p class='wpsl-direction-after'>" + response.routes[0].copyrights + "</p>" );
|
875 |
$( "#wpsl-direction-details" ).show();
|
876 |
|
877 |
+
// Remove all single markers from the map.
|
878 |
for ( i = 0, len = markersArray.length; i < len; i++ ) {
|
879 |
markersArray[i].setMap( null );
|
880 |
}
|
881 |
|
882 |
+
// Remove the marker clusters from the map.
|
883 |
if ( markerClusterer ) {
|
884 |
markerClusterer.clearMarkers();
|
885 |
}
|
886 |
|
887 |
+
// Remove the start marker from the map.
|
888 |
if ( ( typeof( startMarkerData ) !== "undefined" ) && ( startMarkerData !== "" ) ) {
|
889 |
startMarkerData.setMap( null );
|
890 |
}
|
891 |
|
892 |
$( "#wpsl-stores" ).hide();
|
893 |
|
894 |
+
// Make sure the start of the route directions are visible if the store listings are shown below the map.
|
895 |
if ( wpslSettings.templateId == 1 ) {
|
896 |
directionOffset = $( "#wpsl-gmap" ).offset();
|
897 |
$( window ).scrollTop( directionOffset.top );
|
904 |
}
|
905 |
|
906 |
/**
|
907 |
+
* Geocode the user input.
|
908 |
*
|
909 |
+
* @since 1.0.0
|
910 |
+
* @param {object} infoWindow The infoWindow object
|
911 |
* @returns {void}
|
912 |
*/
|
913 |
function codeAddress( infoWindow ) {
|
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 |
+
|
923 |
+
// Remove any previous markers and add a new one.
|
924 |
deleteOverlays( keepStartMarker );
|
925 |
+
addMarker( latLng, 0, '', true, infoWindow ); // This marker is the 'start location' marker.
|
926 |
|
927 |
+
// Try to find stores that match the radius, location criteria.
|
928 |
findStoreLocations( latLng, resetMap, autoLoad, infoWindow );
|
929 |
} else {
|
930 |
geocodeErrors( status );
|
933 |
}
|
934 |
|
935 |
/**
|
936 |
+
* Geocode the user input and set the returned zipcode in the input field.
|
937 |
*
|
938 |
+
* @since 1.0.0
|
939 |
+
* @param {object} latLng The coordinates of the location that should be reverse geocoded
|
940 |
* @returns {void}
|
941 |
*/
|
942 |
function reverseGeocode( latLng ) {
|
956 |
}
|
957 |
|
958 |
/**
|
959 |
+
* Filter out the zipcode from the response.
|
960 |
*
|
961 |
+
* @since 1.0.0
|
962 |
+
* @param {object} response The complete Google API response
|
963 |
+
* @returns {string} zipcode The zipcode
|
964 |
*/
|
965 |
function filterApiResponse( response ) {
|
966 |
var zipcode, responseType, i,
|
967 |
addressLength = response[0].address_components.length;
|
968 |
|
969 |
+
// Loop over the API response.
|
970 |
for ( i = 0; i < addressLength; i++ ){
|
971 |
responseType = response[0].address_components[i].types;
|
972 |
|
973 |
+
// filter out the postal code.
|
974 |
if ( ( /^postal_code$/.test( responseType ) ) || ( /^postal_code_prefix,postal_code$/.test( responseType ) ) ) {
|
975 |
zipcode = response[0].address_components[i].long_name;
|
976 |
}
|
985 |
* If we need to show the driving directions on maps.google.com itself,
|
986 |
* we first need to geocode the start latlng into a formatted address.
|
987 |
*
|
988 |
+
* @since 1.0.0
|
989 |
+
* @param {object} startLatLng The latlng used as the starting point
|
990 |
+
* @param {boolean} resetMap Whether we should reset the map or not
|
991 |
+
* @param {string} autoLoad Check if we need to autoload all the stores
|
992 |
+
* @param {object} infoWindow The infoWindow object
|
993 |
* @returns {void}
|
994 |
*/
|
995 |
function findStoreLocations( startLatLng, resetMap, autoLoad, infoWindow ) {
|
996 |
|
997 |
+
// Check if we need to open a new window and show the route on the Google Maps site itself.
|
998 |
if ( wpslSettings.directionRedirect == 1 ) {
|
999 |
findFormattedAddress( startLatLng, function() {
|
1000 |
makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow );
|
1005 |
}
|
1006 |
|
1007 |
/**
|
1008 |
+
* Convert the latlng into a formatted address.
|
1009 |
*
|
1010 |
+
* @since 1.0.0
|
1011 |
+
* @param {object} latLng The latlng to geocode
|
1012 |
+
* @param {callback} callback
|
1013 |
* @returns {void}
|
1014 |
*/
|
1015 |
function findFormattedAddress( latLng, callback ) {
|
1024 |
}
|
1025 |
|
1026 |
/**
|
1027 |
+
* Make the Ajax request to load the store data.
|
1028 |
*
|
1029 |
+
* @since 1.2.0
|
1030 |
+
* @param {object} startLatLng The latlng used as the starting point
|
1031 |
+
* @param {boolean} resetMap Whether we should reset the map or not
|
1032 |
+
* @param {string} autoLoad Check if we need to autoload all the stores
|
1033 |
+
* @param {object} infoWindow The infoWindow object
|
1034 |
* @returns {void}
|
1035 |
*/
|
1036 |
function makeAjaxRequest( startLatLng, resetMap, autoLoad, infoWindow ) {
|
1048 |
lng: startLatLng.lng()
|
1049 |
};
|
1050 |
|
1051 |
+
/*
|
1052 |
+
* If we reset the map we use the default dropdown values instead of the selected values.
|
1053 |
* Otherwise we first make sure the filter val is valid before including the radius / max_results param
|
1054 |
*/
|
1055 |
if ( resetMap ) {
|
1064 |
radius = parseInt( $( "#wpsl-radius .wpsl-selected-item" ).attr( "data-value" ) );
|
1065 |
}
|
1066 |
|
1067 |
+
// If the max resuls or radius filter values are NaN, then we use the default value.
|
1068 |
if ( isNaN( maxResult ) ) {
|
1069 |
ajaxData.max_results = wpslSettings.maxResults;
|
1070 |
} else {
|
1077 |
ajaxData.radius = radius;
|
1078 |
}
|
1079 |
|
1080 |
+
// If the category dropdown exist get the id.
|
1081 |
if ( $( "#wpsl-category" ).length > 0 ) {
|
1082 |
if ( isMobile ) {
|
1083 |
categoryId = parseInt( $( "#wpsl-category .wpsl-dropdown" ).val() );
|
1116 |
}
|
1117 |
}
|
1118 |
|
1119 |
+
// Add the preloader.
|
1120 |
$storeList.empty().append( "<li class='wpsl-preloader'><img src='" + preloader + "'/>" + wpslLabels.preloader + "</li>" );
|
1121 |
|
1122 |
$.get( wpslSettings.ajaxurl, ajaxData, function( response ) {
|
1123 |
|
1124 |
+
// Remove the preloaders and no results msg.
|
1125 |
$( ".wpsl-preloader, .no-results" ).remove();
|
1126 |
+
|
1127 |
if ( response.length > 0 ) {
|
1128 |
|
1129 |
+
// Loop over the returned locations.
|
1130 |
$.each( response, function( index ) {
|
1131 |
_.extend( response[index], templateHelpers );
|
1132 |
|
1133 |
+
// Add the location maker to the map.
|
1134 |
latLng = new google.maps.LatLng( response[index].lat, response[index].lng );
|
1135 |
addMarker( latLng, response[index].id, response[index], draggable, infoWindow );
|
1136 |
|
1137 |
+
// Create the html output with help from underscore js.
|
1138 |
storeData = storeData + _.template( template, response[index] );
|
1139 |
});
|
1140 |
|
1141 |
$( "#wpsl-result-list" ).off( "click", ".wpsl-directions" );
|
1142 |
|
1143 |
+
// Add the html for the store listing to the <ul>.
|
1144 |
$storeList.append( storeData );
|
1145 |
|
1146 |
$( "#wpsl-result-list" ).on( "click", ".wpsl-directions", function() {
|
1147 |
|
1148 |
+
// Check if we need to render the direction on the map.
|
1149 |
if ( wpslSettings.directionRedirect != 1 ) {
|
1150 |
renderDirections( $( this ) );
|
1151 |
|
1153 |
}
|
1154 |
});
|
1155 |
|
1156 |
+
// Do we need to create a marker cluster?
|
1157 |
checkMarkerClusters();
|
1158 |
|
1159 |
+
// Make sure everything fits on the screen.
|
1160 |
fitBounds();
|
1161 |
|
1162 |
$( "#wpsl-result-list p:empty" ).remove();
|
1164 |
$storeList.html( "<li class='no-results'>" + wpslLabels.noResults + "</li>" );
|
1165 |
}
|
1166 |
|
1167 |
+
/*
|
1168 |
+
* Store the default zoom and latlng values the first time
|
1169 |
* all the stores are added to the map.
|
1170 |
*
|
1171 |
* This way when a user clicks the reset button we can check if the
|
1180 |
zoomLevel: map.getZoom()
|
1181 |
};
|
1182 |
|
1183 |
+
/*
|
1184 |
+
* Because the reset icon exists, we need to adjust
|
1185 |
* the styling of the direction icon.
|
1186 |
*/
|
1187 |
$( "#wpsl-map-controls" ).addClass( "wpsl-reset-exists" );
|
1188 |
|
1189 |
+
/*
|
1190 |
+
* The reset initialy is set to hidden to prevent
|
1191 |
* users from clicking it before the map is loaded.
|
1192 |
*/
|
1193 |
$( ".wpsl-icon-reset, #wpsl-reset-map" ).show();
|
1198 |
}
|
1199 |
});
|
1200 |
|
1201 |
+
// Move the mousecursor to the store search field if the focus option is enabled.
|
1202 |
if ( wpslSettings.mouseFocus == 1 && !checkMobileUserAgent() ) {
|
1203 |
$( "#wpsl-search-input" ).focus();
|
1204 |
}
|
1233 |
}
|
1234 |
|
1235 |
/**
|
1236 |
+
* Add a new marker to the map based on the provided location (latlng).
|
1237 |
*
|
1238 |
+
* @since 1.0.0
|
1239 |
+
* @param {object} latLng The coordinates
|
1240 |
+
* @param {number} storeId The store id
|
1241 |
+
* @param {object} infoWindowData The data we need to show in the info window
|
1242 |
+
* @param {boolean} draggable Should the marker be draggable
|
1243 |
+
* @param {object} infoWindow The infoWindow object
|
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;
|
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 |
|
1268 |
position: latLng,
|
1269 |
map: map,
|
1270 |
optimized: false, //fixes markers flashing while bouncing
|
1271 |
+
title: decodeHtmlEntity( infoWindowData.store ),
|
1272 |
draggable: draggable,
|
1273 |
storeId: storeId,
|
1274 |
icon: mapIcon
|
1275 |
});
|
1276 |
|
1277 |
+
// Store the marker for later use.
|
1278 |
markersArray.push( marker );
|
1279 |
|
1280 |
google.maps.event.addListener( marker, "click",( function( currentMap ) {
|
1281 |
return function() {
|
1282 |
|
1283 |
+
// The start marker will have a store id of 0, all others won't.
|
1284 |
if ( storeId != 0 ) {
|
1285 |
|
1286 |
+
// Check if streetview is available at the clicked location.
|
1287 |
if ( typeof wpslSettings.markerStreetView !== "undefined" && wpslSettings.markerStreetView == 1 ) {
|
1288 |
checkStreetViewStatus( latLng, function() {
|
1289 |
setInfoWindowContent( marker, createInfoWindowHtml( infoWindowData ), infoWindow, currentMap );
|
1304 |
};
|
1305 |
}( map ) ) );
|
1306 |
|
1307 |
+
// Only the start marker will be draggable.
|
1308 |
if ( draggable ) {
|
1309 |
google.maps.event.addListener( marker, "dragend", function( event ) {
|
1310 |
deleteOverlays( keepStartMarker );
|
1315 |
}
|
1316 |
}
|
1317 |
|
1318 |
+
/**
|
1319 |
+
* Decode HTML entities.
|
1320 |
+
*
|
1321 |
+
* @link https://gist.github.com/CatTail/4174511
|
1322 |
+
* @since 2.0.4
|
1323 |
+
* @param {string} str The string to decode.
|
1324 |
+
* @returns {string} The string with the decoded HTML entities.
|
1325 |
+
*/
|
1326 |
+
function decodeHtmlEntity( str ) {
|
1327 |
+
if ( str ) {
|
1328 |
+
return str.replace( /&#(\d+);/g, function( match, dec) {
|
1329 |
+
return String.fromCharCode( dec );
|
1330 |
+
});
|
1331 |
+
}
|
1332 |
+
};
|
1333 |
+
|
1334 |
+
// Check if we are using both the infobox for the info windows and have marker clusters.
|
1335 |
if ( typeof wpslSettings.infoWindowStyle !== "undefined" && wpslSettings.infoWindowStyle == "infobox" && wpslSettings.markerClusters == 1 ) {
|
1336 |
var clusters, clusterLen, markerLen, i, j;
|
1337 |
|
1338 |
+
/*
|
1339 |
+
* We need to listen to both zoom_changed and idle.
|
1340 |
*
|
1341 |
+
* If the zoom level changes, then the marker clusters either merges nearby
|
1342 |
* markers, or changes into individual markers. Which is the moment we
|
1343 |
* either show or hide the opened info window.
|
1344 |
*
|
1355 |
for ( i = 0, clusterLen = clusters.length; i < clusterLen; i++ ) {
|
1356 |
for ( j = 0, markerLen = clusters[i].markers_.length; j < markerLen; j++ ) {
|
1357 |
|
1358 |
+
/*
|
1359 |
+
* Match the storeId from the cluster marker with the
|
1360 |
+
* marker id that was set when the info window was opened
|
1361 |
+
*/
|
1362 |
if ( clusters[i].markers_[j].storeId == activeWindowMarkerId ) {
|
1363 |
|
1364 |
+
/*
|
1365 |
+
* If there is a visible info window, but the markers_[j].map is null ( hidden )
|
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 ).
|
1387 |
}
|
1388 |
|
1389 |
/**
|
1390 |
+
* Set the correct info window content for the marker.
|
1391 |
*
|
1392 |
+
* @since 1.2.20
|
1393 |
+
* @param {object} marker Marker data
|
1394 |
+
* @param {string} infoWindowContent The infoWindow content
|
1395 |
+
* @param {object} infoWindow The infoWindow object
|
1396 |
+
* @param {object} currentMap The map object
|
1397 |
* @returns {void}
|
1398 |
*/
|
1399 |
function setInfoWindowContent( marker, infoWindowContent, infoWindow, currentMap ) {
|
1404 |
|
1405 |
openInfoWindow.push( infoWindow );
|
1406 |
|
1407 |
+
/*
|
1408 |
+
* Store the marker id if both the marker clusters and the infobox are enabled.
|
1409 |
*
|
1410 |
+
* With the normal info window script the info window is automatically closed
|
1411 |
+
* once a user zooms out, and the marker clusters are enabled,
|
1412 |
+
* but this doesn't happen with the infobox library.
|
1413 |
*
|
1414 |
+
* So we need to show/hide it manually when the user zooms out,
|
1415 |
+
* and for this to work we need to know which marker to target.
|
1416 |
*/
|
1417 |
if ( typeof wpslSettings.infoWindowStyle !== "undefined" && wpslSettings.infoWindowStyle == "infobox" && wpslSettings.markerClusters == 1 ) {
|
1418 |
activeWindowMarkerId = marker.storeId;
|
1424 |
* Handle clicks for the different info window actions like,
|
1425 |
* direction, streetview and zoom here.
|
1426 |
*
|
1427 |
+
* @since 1.2.20
|
1428 |
+
* @param {object} marker Holds the marker data
|
1429 |
+
* @param {object} currentMap The map object
|
1430 |
* @returns {void}
|
1431 |
*/
|
1432 |
function infoWindowClickActions( marker, currentMap ) {
|
1437 |
|
1438 |
if ( $( this ).hasClass( "wpsl-directions" ) ) {
|
1439 |
|
1440 |
+
/*
|
1441 |
+
* Check if we need to show the direction on the map
|
1442 |
* or send the users to maps.google.com
|
1443 |
*/
|
1444 |
if ( wpslSettings.directionRedirect == 1 ) {
|
1463 |
* If so we hide the 'Zoom here' text in the info window,
|
1464 |
* otherwise we show it.
|
1465 |
*
|
1466 |
+
* @since 2.0.0
|
1467 |
* @returns {void}
|
1468 |
*/
|
1469 |
function checkMaxZoomLevel() {
|
1477 |
}
|
1478 |
|
1479 |
/**
|
1480 |
+
* Activate streetview for the clicked location.
|
1481 |
*
|
1482 |
+
* @since 1.2.20
|
1483 |
+
* @param {object} marker The current marker
|
1484 |
+
* @param {object} currentMap The map object
|
1485 |
* @returns {void}
|
1486 |
*/
|
1487 |
function activateStreetView( marker, currentMap ) {
|
1495 |
}
|
1496 |
|
1497 |
/**
|
1498 |
+
* Listen for changes in the streetview visibility.
|
1499 |
*
|
1500 |
* Sometimes the infowindow offset is incorrect after switching back from streetview.
|
1501 |
* We fix this by zooming in and out. If someone has a better fix, then let me know at
|
1502 |
* info at tijmensmit.com
|
1503 |
*
|
1504 |
+
* @since 1.2.20
|
1505 |
+
* @param {object} panorama The streetview object
|
1506 |
+
* @param {object} currentMap The map object
|
1507 |
* @returns {void}
|
1508 |
*/
|
1509 |
function StreetViewListener( panorama, currentMap ) {
|
1520 |
}
|
1521 |
|
1522 |
/**
|
1523 |
+
* Check the streetview status.
|
1524 |
*
|
1525 |
+
* Make sure that a streetview exists for
|
1526 |
+
* the latlng for the open info window.
|
1527 |
*
|
1528 |
+
* @since 1.2.20
|
1529 |
+
* @param {object} latLng The latlng coordinates
|
1530 |
+
* @param {callback} callback
|
1531 |
* @returns {void}
|
1532 |
*/
|
1533 |
function checkStreetViewStatus( latLng, callback ) {
|
1540 |
}
|
1541 |
|
1542 |
/**
|
1543 |
+
* Helper methods for the underscore templates.
|
1544 |
*
|
1545 |
+
* @link http://underscorejs.org/#template
|
1546 |
+
* @requires underscore.js
|
1547 |
+
* @since 2.0.0
|
1548 |
*/
|
1549 |
var templateHelpers = {
|
1550 |
/**
|
1551 |
+
* Make the phone number clickable if we are dealing with a mobile useragent.
|
1552 |
*
|
1553 |
+
* @since 1.2.20
|
1554 |
+
* @param {string} phoneNumber The phone number
|
1555 |
* @returns {string} phoneNumber Either just the plain number, or with a link wrapped around it with tel:
|
1556 |
*/
|
1557 |
formatPhoneNumber: function( phoneNumber ) {
|
1565 |
* Replace spaces - . and () from phone numbers.
|
1566 |
* Also if the number starts with a + we check for a (0) and remove it.
|
1567 |
*
|
1568 |
+
* @since 1.2.20
|
1569 |
+
* @param {string} phoneNumber The phone number
|
1570 |
* @returns {string} phoneNumber The 'cleaned' number
|
1571 |
*/
|
1572 |
formatClickablePhoneNumber: function( phoneNumber ) {
|
1577 |
return phoneNumber.replace( /(-| |\(|\)|\.|)/g, "" );
|
1578 |
},
|
1579 |
/**
|
1580 |
+
* Create the html for the info window action.
|
1581 |
*
|
1582 |
+
* @since 2.0.0
|
1583 |
+
* @param {string} id The store id
|
1584 |
* @returns {string} output The html for the info window actions
|
1585 |
*/
|
1586 |
createInfoWindowActions: function( id ) {
|
1606 |
* Create the url that takes the user to the maps.google.com page
|
1607 |
* and shows the correct driving directions.
|
1608 |
*
|
1609 |
+
* @since 1.0.0
|
1610 |
+
* @param {string} id The store id
|
1611 |
* @returns {string} directionUrl The full maps.google.com url with the encoded start + end address
|
1612 |
*/
|
1613 |
createDirectionUrl: function( id ) {
|
1616 |
|
1617 |
if ( wpslSettings.directionRedirect == 1 ) {
|
1618 |
|
1619 |
+
// If we somehow failed to determine the start address, just set it to empty.
|
1620 |
if ( typeof startAddress === "undefined" ) {
|
1621 |
startAddress = "";
|
1622 |
}
|
1623 |
|
1624 |
url.target = "target='_blank'";
|
1625 |
|
1626 |
+
// If the id exists the user clicked on a marker we get the direction url from the search results.
|
1627 |
if ( typeof id !== "undefined" ) {
|
1628 |
url.src = $( "[data-store-id=" + id + "] .wpsl-directions" ).attr( "href" );
|
1629 |
} else {
|
1630 |
|
1631 |
+
// Only add a , after the zip if the zip value exists.
|
1632 |
if ( this.zip ) {
|
1633 |
zip = this.zip + ", ";
|
1634 |
} else {
|
1651 |
return directionUrl;
|
1652 |
},
|
1653 |
/**
|
1654 |
+
* Make the URI encoding compatible with RFC 3986.
|
1655 |
*
|
1656 |
+
* !, ', (, ), and * will be escaped, otherwise they break the string.
|
1657 |
*
|
1658 |
+
* @since 1.2.20
|
1659 |
+
* @param {string} str The string to encode
|
1660 |
* @returns {string} The encoded string
|
1661 |
*/
|
1662 |
rfc3986EncodeURIComponent: function( str ) {
|
1665 |
};
|
1666 |
|
1667 |
/**
|
1668 |
+
* Create the HTML template used in the info windows on the map.
|
1669 |
*
|
1670 |
+
* @since 1.0.0
|
1671 |
+
* @param {object} infoWindowData The data that is shown in the info window (address, url, phone etc)
|
1672 |
+
* @returns {string} windowContent The HTML content that is placed in the info window
|
1673 |
*/
|
1674 |
function createInfoWindowHtml( infoWindowData ) {
|
1675 |
var windowContent, template;
|
1686 |
}
|
1687 |
|
1688 |
/**
|
1689 |
+
* Zoom the map so that all markers fit in the window.
|
1690 |
*
|
1691 |
+
* @since 1.0.0
|
1692 |
* @returns {void}
|
1693 |
*/
|
1694 |
function fitBounds() {
|
1696 |
maxZoom = Number( wpslSettings.autoZoomLevel ),
|
1697 |
bounds = new google.maps.LatLngBounds();
|
1698 |
|
1699 |
+
// Make sure we don't zoom to far.
|
1700 |
google.maps.event.addListenerOnce( map, "bounds_changed", function( event ) {
|
1701 |
if ( this.getZoom() > maxZoom ) {
|
1702 |
this.setZoom( maxZoom );
|
1711 |
}
|
1712 |
|
1713 |
/**
|
1714 |
+
* Remove all existing markers from the map.
|
1715 |
*
|
1716 |
+
* @since 1.0.0
|
1717 |
+
* @param {boolean} keepStartMarker Whether or not to keep the start marker while removing all the other markers from the map
|
1718 |
* @returns {void}
|
1719 |
*/
|
1720 |
function deleteOverlays( keepStartMarker ) {
|
1722 |
|
1723 |
directionsDisplay.setMap( null );
|
1724 |
|
1725 |
+
// Remove all the markers from the map, and empty the array.
|
1726 |
if ( markersArray ) {
|
1727 |
+
for ( i = 0, markerLen = markersArray.length; i < markerLen; i++ ) {
|
1728 |
+
|
1729 |
+
// Check if we need to keep the start marker, or remove everything.
|
1730 |
if ( keepStartMarker ) {
|
1731 |
if ( markersArray[i].draggable != true ) {
|
1732 |
markersArray[i].setMap( null );
|
1741 |
markersArray.length = 0;
|
1742 |
}
|
1743 |
|
1744 |
+
// If marker clusters exist, remove them from the map.
|
1745 |
if ( markerClusterer ) {
|
1746 |
markerClusterer.clearMarkers();
|
1747 |
}
|
1750 |
/**
|
1751 |
* Handle the geocode errors.
|
1752 |
*
|
1753 |
+
* @since 1.0.0
|
1754 |
+
* @param {string} status Contains the error code
|
1755 |
+
* @returns {void}
|
1756 |
*/
|
1757 |
function geocodeErrors( status ) {
|
1758 |
var msg;
|
1775 |
/**
|
1776 |
* Handle the driving direction errors.
|
1777 |
*
|
1778 |
+
* @since 1.2.20
|
1779 |
+
* @param {string} status Contains the error code
|
1780 |
+
* @returns {void}
|
1781 |
*/
|
1782 |
function directionErrors( status ) {
|
1783 |
var msg;
|
1798 |
alert( msg );
|
1799 |
}
|
1800 |
|
1801 |
+
// Trigger the search when the user presses "enter" on the keyboard.
|
1802 |
$( "#wpsl-search-input" ).keydown( function ( event ) {
|
1803 |
var keypressed = event.keyCode || event.which;
|
1804 |
|
1812 |
$parentLi = $( this ).parents( "li" ),
|
1813 |
storeId = $parentLi.data( "store-id" );
|
1814 |
|
1815 |
+
// Check if we should show the 'more info' details.
|
1816 |
if ( wpslSettings.moreInfoLocation == "info window" ) {
|
1817 |
for ( i = 0, len = markersArray.length; i < len; i++ ) {
|
1818 |
if ( markersArray[i].storeId == storeId ) {
|
1821 |
}
|
1822 |
} else {
|
1823 |
|
1824 |
+
// Check if we should set the 'more info' item to active or not.
|
1825 |
if ( $parentLi.find( ".wpsl-more-info-listings" ).is( ":visible" ) ) {
|
1826 |
$( this ).removeClass( "wpsl-active-details" );
|
1827 |
} else {
|
1833 |
$parentLi.find( ".wpsl-more-info-listings" ).toggle();
|
1834 |
}
|
1835 |
|
1836 |
+
/*
|
1837 |
+
* If we show the store listings under the map, we do want to jump to the
|
1838 |
* top of the map to focus on the opened infowindow
|
1839 |
*/
|
1840 |
if ( wpslSettings.templateId != "default" || wpslSettings.moreInfoLocation == "store listings" ) {
|
1843 |
});
|
1844 |
|
1845 |
/**
|
1846 |
+
* Create the dropdown filters.
|
1847 |
*
|
1848 |
* Inspired by https://github.com/patrickkunka/easydropdown
|
1849 |
*
|
1850 |
+
* @since 1.2.24
|
1851 |
+
* @returns {void}
|
1852 |
*/
|
1853 |
function createDropdowns() {
|
1854 |
|
1861 |
$this.$dropdown = $this.$dropdownElem.find( "ul" );
|
1862 |
$this.$options = $this.$dropdownWrap.find( "option" );
|
1863 |
|
1864 |
+
// Hide the original <select> and remove the css class.
|
1865 |
$this.hide().removeClass( "wpsl-dropdown" );
|
1866 |
|
1867 |
+
// Loop over the options from the <select> and move them to a <li> instead.
|
1868 |
$.each( $this.$options, function() {
|
1869 |
if ( $( this ).val() == $this.$selectedVal ) {
|
1870 |
active = 'class="wpsl-selected-dropdown"';
|
1879 |
$this.$dropdownElem.before( "<span data-value=" + $this.find( ":selected" ).val() + " class='wpsl-selected-item'>" + $this.find( ":selected" ).text() + "</span>" );
|
1880 |
$this.$dropdownItem = $this.$dropdownElem.find( "li" );
|
1881 |
|
1882 |
+
// Listen for clicks on the 'wpsl-dropdown' div.
|
1883 |
$this.$dropdownWrap.on( "click", function( e ) {
|
1884 |
closeDropdowns();
|
1885 |
|
1886 |
$( this ).toggleClass( "wpsl-active" );
|
1887 |
maxHeight = 0;
|
1888 |
|
1889 |
+
// Either calculate the correct height for the <ul>, or set it to 0 to hide it.
|
1890 |
if ( $( this ).hasClass( "wpsl-active" ) ) {
|
1891 |
$this.$dropdownItem.each( function( index ) {
|
1892 |
maxHeight += $( this ).outerHeight();
|
1900 |
e.stopPropagation();
|
1901 |
});
|
1902 |
|
1903 |
+
// Listen for clicks on the individual dropdown items.
|
1904 |
$this.$dropdownItem.on( "click", function( e ) {
|
1905 |
|
1906 |
+
// Set the correct value as the selected item.
|
1907 |
$this.$dropdownWrap.find( $( ".wpsl-selected-item" ) ).html( $( this ).text() ).attr( "data-value", $( this ).attr( "data-value" ) );
|
1908 |
|
1909 |
+
// Apply the class to the correct item to make it bold.
|
1910 |
$this.$dropdownItem.removeClass( "wpsl-selected-dropdown" );
|
1911 |
$( this ).addClass( "wpsl-selected-dropdown" );
|
1912 |
|
1922 |
}
|
1923 |
|
1924 |
/**
|
1925 |
+
* Close all the dropdowns.
|
1926 |
*
|
1927 |
+
* @since 1.2.24
|
1928 |
* @returns void
|
1929 |
*/
|
1930 |
function closeDropdowns() {
|
1947 |
* is to simply disable the "Attempt to auto-locate the user" option if
|
1948 |
* you use the store locator in a tab.
|
1949 |
*
|
1950 |
+
* @link http://stackoverflow.com/questions/9458215/google-maps-not-working-in-jquery-tabs
|
1951 |
+
* @since 2.0.0
|
1952 |
*/
|
1953 |
if ( $( "a[href='#" + wpslSettings.mapTabAnchor + "']" ).length ) {
|
1954 |
var mapZoom, mapCenter,
|
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(),G=new google.maps.Geocoder,K=new google.maps.DirectionsRenderer,F=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"]}},j=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)}),j.fitBounds(m),google.maps.event.addListenerOnce(j,"bounds_changed",function(e){return function(){e.getZoom()>S&&e.setZoom(S)}}(j))),e("#wpsl-gmap").length&&(!p()&&e(".wpsl-dropdown").length?A():(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,j,w)),s()}function s(){"undefined"!=typeof wpslSettings.markerZoomTo&&1==wpslSettings.markerZoomTo&&google.maps.event.addListener(j,"zoom_changed",function(){O()})}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)},q=new InfoBox(s)):q=new google.maps.InfoWindow,q}function l(e){e=a(e),e&&j.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){var s={store:wpslLabels.startPoint};N(e,0,s,!0,t),I(e,ne,le,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),$(i),w(t,e,ne,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);H=t,C(n),j.setCenter(n),N(n,0,"",!0),I(n,s,le,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(),ne=!1,u(),$(s),h(),y(t)):e("#wpsl-search-input").addClass("wpsl-error").focus()})}function u(){"undefined"!=typeof wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&"undefined"!=typeof ee[0]&&ee[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&&(le=1),(j.getCenter().lat()!==oe.centerLatlng.lat()||j.getCenter().lng()!==oe.centerLatlng.lng()||j.getZoom()!==oe.zoomLevel)&&($(o),e("#wpsl-search-input").val("").removeClass(),e(".wpsl-icon-reset").addClass("wpsl-in-progress"),Y&&Y.clearMarkers(),h(),v(),1==wpslSettings.autoLocate?w(t,H,n,s):r(t,s)),e("#wpsl-stores").show(),e("#wpsl-direction-details").hide())})}function h(){"undefined"!=typeof J&&""!==J&&(J.setMap(null),J="")}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 J&&""!==J&&(o=J.getPosition()),se={centerLatlng:j.getCenter(),zoomLevel:j.getZoom()},s=0,i=te.length;i>s;s++)0!=te[s].storeId||"undefined"!=typeof o&&""!==o?te[s].storeId==l&&(n=te[s].getPosition()):o=te[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=te.length;o>s;s++)te[s].storeId==e&&(n=te[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]},F.route(g,function(t,s){if(s==google.maps.DirectionsStatus.OK){if(K.setMap(j),K.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=te.length;n>r;r++)te[r].setMap(null);Y&&Y.clearMarkers(),"undefined"!=typeof J&&""!==J&&J.setMap(null),e("#wpsl-stores").hide(),1==wpslSettings.templateId&&(c=e("#wpsl-gmap").offset(),e(window).scrollTop(c.top))}}else W(s)})}function y(t){var s,o=!1,n=!1,i=e("#wpsl-search-input").val();G.geocode({address:i},function(e,i){i==google.maps.GeocoderStatus.OK?(s=e[0].geometry.location,$(n),N(s,0,"",!0,t),I(s,ne,o,t)):U(i)})}function C(t){var s;G.geocode({latLng:t},function(t,o){o==google.maps.GeocoderStatus.OK?(s=k(t),""!==s&&e("#wpsl-search-input").val(s)):U(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){G.geocode({latLng:e},function(e,s){s==google.maps.GeocoderStatus.OK?(X=e[0].formatted_address,t()):U(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 H?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],we),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(),B(),e("#wpsl-result-list p:empty").remove()):u.html("<li class='no-results'>"+wpslLabels.noResults+"</li>"),1==wpslSettings.resetMap&&(e.isEmptyObject(oe)&&google.maps.event.addListenerOnce(j,"tilesloaded",function(){oe={centerLatlng:j.getCenter(),zoomLevel:j.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=""),Y=new MarkerClusterer(j,te,{gridSize:t,maxZoom:e})}}function N(e,t,s,o,n){var i,l,a,r=!0;i=0===t?wpslSettings.path+"img/markers/"+wpslSettings.startMarker: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:j,optimized:!1,title:s.store,draggable:o,storeId:t,icon:l}),te.push(a),google.maps.event.addListener(a,"click",function(o){return function(){0!=t?"undefined"!=typeof wpslSettings.markerStreetView&&1==wpslSettings.markerStreetView?Z(e,function(){P(a,V(s),n,o)}):P(a,V(s),n,o):P(a,wpslLabels.startPoint,n,o),google.maps.event.clearListeners(n,"domready"),google.maps.event.addListener(n,"domready",function(){T(a,o),O()})}}(j)),o&&google.maps.event.addListener(a,"dragend",function(e){$(r),j.setCenter(e.latLng),C(e.latLng),I(e.latLng,ne,le=!1,n)})}function P(e,t,s,o){ee.length=0,s.setContent(t),s.open(o,e),ee.push(s),"undefined"!=typeof wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&1==wpslSettings.markerClusters&&(Q=e.storeId,s.setVisible(!0))}function T(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")?R(t,s):e(this).hasClass("wpsl-zoom-here")&&(s.setCenter(t.getPosition()),s.setZoom(n));return!1})}function O(){var t=j.getZoom();t>=wpslSettings.autoZoomLevel?e(".wpsl-zoom-here").hide():e(".wpsl-zoom-here").show()}function R(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 Z(e,t){var s=new google.maps.StreetViewService;s.getPanoramaByLocation(e,50,function(e,s){ie=s==google.maps.StreetViewStatus.OK?!0:!1,t()})}function V(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 B(){var e,t,s=Number(wpslSettings.autoZoomLevel),o=new google.maps.LatLngBounds;for(google.maps.event.addListenerOnce(j,"bounds_changed",function(e){this.getZoom()>s&&this.setZoom(s)}),e=0,t=te.length;t>e;e++)o.extend(te[e].position);j.fitBounds(o)}function $(e){var t,s;if(K.setMap(null),te){for(s=0,t=te.length;t>s;s++)e?1!=te[s].draggable?te[s].setMap(null):J=te[s]:te[s].setMap(null);te.length=0}Y&&Y.clearMarkers()}function U(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 W(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 A(){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){D(),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"),D(),t.stopPropagation()})}),e(document).click(function(){D()})}function D(){e(".wpsl-dropdown").removeClass("wpsl-active"),e(".wpsl-dropdown div").css("height",0)}var G,j,K,F,H,Q,q,Y,J,X,ee=[],te=[],se={},oe={},ne=!1,ie=!1,le="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(K.setMap(null),t=0,s=te.length;s>t;t++)te[t].setMap(j);return"undefined"!=typeof J&&""!==J&&J.setMap(j),Y&&M(),j.setCenter(se.centerLatlng),j.setZoom(se.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=te.length;s>t;t++)te[t].storeId==e(this).data("store-id")&&(google.maps.event.trigger(te[t],"click"),j.setCenter(te[t].position))})),"undefined"!=typeof wpslSettings.infoWindowStyle&&"infobox"==wpslSettings.infoWindowStyle&&1==wpslSettings.markerClusters){var ae,re,pe,de,ce;google.maps.event.addListener(j,"zoom_changed",function(){google.maps.event.addListenerOnce(j,"idle",function(){if("undefined"!=typeof Y&&(ae=Y.clusters_,ae.length))for(de=0,re=ae.length;re>de;de++)for(ce=0,pe=ae[de].markers_.length;pe>ce;ce++)if(ae[de].markers_[ce].storeId==Q){q.getVisible()&&null===ae[de].markers_[ce].map?q.setVisible(!1):q.getVisible()||null===ae[de].markers_[ce].map||q.setVisible(!0);break}})})}var we={formatPhoneNumber:function(e){return 1==wpslSettings.phoneUrl&&p()&&(e="<a href='tel:"+we.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&&(ie&&(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'>"+we.createDirectionUrl(t)+o+n+"</div>"),s},createDirectionUrl:function(t){var s,o,n,i={};return 1==wpslSettings.directionRedirect?("undefined"==typeof X&&(X=""),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="+we.rfc3986EncodeURIComponent(X)+"&daddr="+we.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=te.length;s>t;t++)te[t].storeId==n&&google.maps.event.trigger(te[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 ge,ue,fe=e("a[href='#"+wpslSettings.mapTabAnchor+"']");fe.on("click",function(){return setTimeout(function(){ge=j.getZoom(),ue=j.getCenter(),google.maps.event.trigger(j,"resize"),j.setZoom(ge),j.setCenter(ue),B()},50),!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})}});
|
languages/wpsl-nl_NL.mo
CHANGED
Binary file
|
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-
|
6 |
-
"PO-Revision-Date: 2015-
|
7 |
"Last-Translator: \n"
|
8 |
"Language-Team: \n"
|
9 |
"Language: nl_NL\n"
|
@@ -11,11 +11,11 @@ msgstr ""
|
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
-
"X-Generator: Poedit 1.
|
15 |
"X-Poedit-SourceCharset: UTF-8\n"
|
16 |
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
|
17 |
"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
18 |
-
"X-Poedit-Basepath:
|
19 |
"X-Textdomain-Support: yes\n"
|
20 |
"X-Poedit-SearchPath-0: .\n"
|
21 |
|
@@ -37,7 +37,7 @@ 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:
|
41 |
msgid "Settings"
|
42 |
msgstr "Instellingen"
|
43 |
|
@@ -49,7 +49,7 @@ msgstr "Er kan geen adres gevonden worden voor deze locatie."
|
|
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:
|
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."
|
@@ -64,8 +64,8 @@ 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:
|
68 |
-
#: frontend/class-frontend.php:
|
69 |
msgid "Closed"
|
70 |
msgstr "gesloten"
|
71 |
|
@@ -166,9 +166,9 @@ msgstr "Lengtegraad"
|
|
166 |
msgid "Opening Hours"
|
167 |
msgstr "Openingstijden"
|
168 |
|
169 |
-
#: admin/class-metaboxes.php:82 admin/templates/map-settings.php:
|
170 |
-
#: admin/templates/map-settings.php:
|
171 |
-
#: inc/wpsl-functions.php:
|
172 |
msgid "Hours"
|
173 |
msgstr "Uren"
|
174 |
|
@@ -180,48 +180,48 @@ msgstr "Extra informatie"
|
|
180 |
msgid "Tel"
|
181 |
msgstr "Tel."
|
182 |
|
183 |
-
#: admin/class-metaboxes.php:91 admin/templates/map-settings.php:
|
184 |
-
#: admin/templates/map-settings.php:
|
185 |
#: frontend/underscore-functions.php:32 frontend/underscore-functions.php:124
|
186 |
-
#: inc/wpsl-functions.php:
|
187 |
msgid "Fax"
|
188 |
msgstr "Fax"
|
189 |
|
190 |
-
#: admin/class-metaboxes.php:94 admin/templates/map-settings.php:
|
191 |
-
#: admin/templates/map-settings.php:
|
192 |
-
#: frontend/class-frontend.php:
|
193 |
-
#: frontend/underscore-functions.php:127 inc/wpsl-functions.php:
|
194 |
msgid "Email"
|
195 |
msgstr "E-mail"
|
196 |
|
197 |
-
#: admin/class-metaboxes.php:97 admin/templates/map-settings.php:
|
198 |
-
#: admin/templates/map-settings.php:
|
199 |
-
#: frontend/class-frontend.php:
|
200 |
msgid "Url"
|
201 |
msgstr "Url"
|
202 |
|
203 |
-
#: admin/class-metaboxes.php:
|
204 |
msgid "Hour format"
|
205 |
msgstr "Uur formaat"
|
206 |
|
207 |
-
#: admin/class-metaboxes.php:
|
208 |
msgid "Days"
|
209 |
msgstr "Dagen"
|
210 |
|
211 |
-
#: admin/class-metaboxes.php:
|
212 |
msgid "Opening Periods"
|
213 |
msgstr "Openingstijden"
|
214 |
|
215 |
-
#: admin/class-metaboxes.php:
|
216 |
msgid "Failed to publish the store. Please fill in the required store details."
|
217 |
msgstr ""
|
218 |
"Het publiceren van de winkel is mislukt. Vul alle verplichte velden in."
|
219 |
|
220 |
-
#: admin/class-metaboxes.php:
|
221 |
msgid "Preview Location"
|
222 |
msgstr "Bekijk voorbeeld"
|
223 |
|
224 |
-
#: admin/class-metaboxes.php:
|
225 |
#, php-format
|
226 |
msgid ""
|
227 |
"The map preview is based on the provided address, city and country details. "
|
@@ -230,57 +230,57 @@ msgstr ""
|
|
230 |
"Het voorbeeld is gebaseerd op het adres, de stad en het opgegeven land. %s "
|
231 |
"De opgegeven lengte en breedtegraad worden niet gebruikt."
|
232 |
|
233 |
-
#: admin/class-metaboxes.php:
|
234 |
msgid "You can drag the marker to adjust the exact location of the marker."
|
235 |
msgstr "Je kunt de locatie aanpassen door de marker te verslepen."
|
236 |
|
237 |
-
#: admin/class-metaboxes.php:
|
238 |
msgid "Store updated."
|
239 |
msgstr "Winkel bijgewerkt."
|
240 |
|
241 |
-
#: admin/class-metaboxes.php:
|
242 |
msgid "Custom field updated."
|
243 |
msgstr "Custom veld bijgewerkt."
|
244 |
|
245 |
-
#: admin/class-metaboxes.php:
|
246 |
msgid "Custom field deleted."
|
247 |
msgstr "Custom veld verwijderd."
|
248 |
|
249 |
-
#: admin/class-metaboxes.php:
|
250 |
#, php-format
|
251 |
msgid "Store restored to revision from %s"
|
252 |
msgstr "Winkel hersteld naar revisie %s"
|
253 |
|
254 |
-
#: admin/class-metaboxes.php:
|
255 |
msgid "Store published."
|
256 |
msgstr "Winkel gepubliceerd."
|
257 |
|
258 |
-
#: admin/class-metaboxes.php:
|
259 |
msgid "Store saved."
|
260 |
msgstr "Winkel opgeslagen."
|
261 |
|
262 |
-
#: admin/class-metaboxes.php:
|
263 |
msgid "Store submitted."
|
264 |
msgstr "Winkel ingediend."
|
265 |
|
266 |
-
#: admin/class-metaboxes.php:
|
267 |
#, php-format
|
268 |
msgid "Store scheduled for: <strong>%1$s</strong>."
|
269 |
msgstr "Winkel ingepland voor: <strong>%1$s</strong>. "
|
270 |
|
271 |
-
#: admin/class-metaboxes.php:
|
272 |
msgid "M j, Y @ G:i"
|
273 |
msgstr "M j, Y @ G:i"
|
274 |
|
275 |
-
#: admin/class-metaboxes.php:
|
276 |
msgid "Store draft updated."
|
277 |
msgstr "Winkel concept bijgewerkt."
|
278 |
|
279 |
-
#: admin/class-metaboxes.php:
|
280 |
msgid "View store"
|
281 |
msgstr "Bekijk winkel"
|
282 |
|
283 |
-
#: admin/class-metaboxes.php:
|
284 |
msgid "Preview store"
|
285 |
msgstr "Winkel voorbeeld"
|
286 |
|
@@ -288,20 +288,20 @@ msgstr "Winkel voorbeeld"
|
|
288 |
msgid "WP Store Locator Transients Cleared"
|
289 |
msgstr "WP Store Locator transients verwijderd"
|
290 |
|
291 |
-
#: admin/class-settings.php:
|
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:
|
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:
|
305 |
#, php-format
|
306 |
msgid ""
|
307 |
"Please provide the name of a city or country that can be used as a starting "
|
@@ -313,1108 +313,1108 @@ msgstr ""
|
|
313 |
"automatische achterhalen van de gebruikers locatie mislukt, of het "
|
314 |
"automatische achterhalen is uitgeschakeld."
|
315 |
|
316 |
-
#: admin/class-settings.php:
|
317 |
msgid "Select your language"
|
318 |
msgstr "Kies uw taal"
|
319 |
|
320 |
-
#: admin/class-settings.php:
|
321 |
msgid "English"
|
322 |
msgstr "Engels"
|
323 |
|
324 |
-
#: admin/class-settings.php:
|
325 |
msgid "Arabic"
|
326 |
msgstr "Arabisch"
|
327 |
|
328 |
-
#: admin/class-settings.php:
|
329 |
msgid "Basque"
|
330 |
msgstr "Bask"
|
331 |
|
332 |
-
#: admin/class-settings.php:
|
333 |
msgid "Bulgarian"
|
334 |
msgstr "Bulgaars"
|
335 |
|
336 |
-
#: admin/class-settings.php:
|
337 |
msgid "Bengali"
|
338 |
msgstr "Bengali"
|
339 |
|
340 |
-
#: admin/class-settings.php:
|
341 |
msgid "Catalan"
|
342 |
msgstr "Catalaans"
|
343 |
|
344 |
-
#: admin/class-settings.php:
|
345 |
msgid "Czech"
|
346 |
msgstr "Tjechisch"
|
347 |
|
348 |
-
#: admin/class-settings.php:
|
349 |
msgid "Danish"
|
350 |
msgstr "Deens"
|
351 |
|
352 |
-
#: admin/class-settings.php:
|
353 |
msgid "German"
|
354 |
msgstr "Duits"
|
355 |
|
356 |
-
#: admin/class-settings.php:
|
357 |
msgid "Greek"
|
358 |
msgstr "Grieks"
|
359 |
|
360 |
-
#: admin/class-settings.php:
|
361 |
msgid "English (Australian)"
|
362 |
msgstr "Engels (Australisch)"
|
363 |
|
364 |
-
#: admin/class-settings.php:
|
365 |
msgid "English (Great Britain)"
|
366 |
msgstr "Engels (Verenigd Koninkrijk)"
|
367 |
|
368 |
-
#: admin/class-settings.php:
|
369 |
msgid "Spanish"
|
370 |
msgstr "Spaans"
|
371 |
|
372 |
-
#: admin/class-settings.php:
|
373 |
msgid "Farsi"
|
374 |
msgstr "Farsi"
|
375 |
|
376 |
-
#: admin/class-settings.php:
|
377 |
msgid "Finnish"
|
378 |
msgstr "Fins"
|
379 |
|
380 |
-
#: admin/class-settings.php:
|
381 |
msgid "Filipino"
|
382 |
msgstr "Filipijns"
|
383 |
|
384 |
-
#: admin/class-settings.php:
|
385 |
msgid "French"
|
386 |
msgstr "Frans"
|
387 |
|
388 |
-
#: admin/class-settings.php:
|
389 |
msgid "Galician"
|
390 |
msgstr "Gallisch"
|
391 |
|
392 |
-
#: admin/class-settings.php:
|
393 |
msgid "Gujarati"
|
394 |
msgstr "Gujurati"
|
395 |
|
396 |
-
#: admin/class-settings.php:
|
397 |
msgid "Hindi"
|
398 |
msgstr "Hindi"
|
399 |
|
400 |
-
#: admin/class-settings.php:
|
401 |
msgid "Croatian"
|
402 |
msgstr "Kroatisch"
|
403 |
|
404 |
-
#: admin/class-settings.php:
|
405 |
msgid "Hungarian"
|
406 |
msgstr "Hongaars"
|
407 |
|
408 |
-
#: admin/class-settings.php:
|
409 |
msgid "Indonesian"
|
410 |
msgstr "Indonesisch"
|
411 |
|
412 |
-
#: admin/class-settings.php:
|
413 |
msgid "Italian"
|
414 |
msgstr "Italiaans"
|
415 |
|
416 |
-
#: admin/class-settings.php:
|
417 |
msgid "Hebrew"
|
418 |
msgstr "Hebreeuws"
|
419 |
|
420 |
-
#: admin/class-settings.php:
|
421 |
msgid "Japanese"
|
422 |
msgstr "Japans"
|
423 |
|
424 |
-
#: admin/class-settings.php:
|
425 |
msgid "Kannada"
|
426 |
msgstr "Kannada"
|
427 |
|
428 |
-
#: admin/class-settings.php:
|
429 |
msgid "Korean"
|
430 |
msgstr "Koreaans"
|
431 |
|
432 |
-
#: admin/class-settings.php:
|
433 |
msgid "Lithuanian"
|
434 |
msgstr "Litouws"
|
435 |
|
436 |
-
#: admin/class-settings.php:
|
437 |
msgid "Latvian"
|
438 |
msgstr "Lets"
|
439 |
|
440 |
-
#: admin/class-settings.php:
|
441 |
msgid "Malayalam"
|
442 |
msgstr "Malayalam"
|
443 |
|
444 |
-
#: admin/class-settings.php:
|
445 |
msgid "Marathi"
|
446 |
msgstr "Marathi"
|
447 |
|
448 |
-
#: admin/class-settings.php:
|
449 |
msgid "Dutch"
|
450 |
msgstr "Nederlands"
|
451 |
|
452 |
-
#: admin/class-settings.php:
|
453 |
msgid "Norwegian"
|
454 |
msgstr "Noors"
|
455 |
|
456 |
-
#: admin/class-settings.php:
|
457 |
msgid "Norwegian Nynorsk"
|
458 |
msgstr "Noors Nynorsk"
|
459 |
|
460 |
-
#: admin/class-settings.php:
|
461 |
msgid "Polish"
|
462 |
msgstr "Pools"
|
463 |
|
464 |
-
#: admin/class-settings.php:
|
465 |
msgid "Portuguese"
|
466 |
msgstr "Portugees"
|
467 |
|
468 |
-
#: admin/class-settings.php:
|
469 |
msgid "Portuguese (Brazil)"
|
470 |
msgstr "Portugees (Brazilië)"
|
471 |
|
472 |
-
#: admin/class-settings.php:
|
473 |
msgid "Portuguese (Portugal)"
|
474 |
msgstr "Portugees (Portugal)"
|
475 |
|
476 |
-
#: admin/class-settings.php:
|
477 |
msgid "Romanian"
|
478 |
msgstr "Roemeens"
|
479 |
|
480 |
-
#: admin/class-settings.php:
|
481 |
msgid "Russian"
|
482 |
msgstr "Russisch"
|
483 |
|
484 |
-
#: admin/class-settings.php:
|
485 |
msgid "Slovak"
|
486 |
msgstr "Slowaaks"
|
487 |
|
488 |
-
#: admin/class-settings.php:
|
489 |
msgid "Slovenian"
|
490 |
msgstr "Sloveens"
|
491 |
|
492 |
-
#: admin/class-settings.php:
|
493 |
msgid "Serbian"
|
494 |
msgstr "Servisch"
|
495 |
|
496 |
-
#: admin/class-settings.php:
|
497 |
msgid "Swedish"
|
498 |
msgstr "Zweeds"
|
499 |
|
500 |
-
#: admin/class-settings.php:
|
501 |
msgid "Tagalog"
|
502 |
msgstr "Tagalog"
|
503 |
|
504 |
-
#: admin/class-settings.php:
|
505 |
msgid "Tamil"
|
506 |
msgstr "Tamil"
|
507 |
|
508 |
-
#: admin/class-settings.php:
|
509 |
msgid "Telugu"
|
510 |
msgstr "Telugu"
|
511 |
|
512 |
-
#: admin/class-settings.php:
|
513 |
msgid "Thai"
|
514 |
msgstr "Thai"
|
515 |
|
516 |
-
#: admin/class-settings.php:
|
517 |
msgid "Turkish"
|
518 |
msgstr "Turks"
|
519 |
|
520 |
-
#: admin/class-settings.php:
|
521 |
msgid "Ukrainian"
|
522 |
msgstr "Oekraïens"
|
523 |
|
524 |
-
#: admin/class-settings.php:
|
525 |
msgid "Vietnamese"
|
526 |
msgstr "Vietnamees"
|
527 |
|
528 |
-
#: admin/class-settings.php:
|
529 |
msgid "Chinese (Simplified)"
|
530 |
msgstr "Chinees (Vereenvoudigd)"
|
531 |
|
532 |
-
#: admin/class-settings.php:
|
533 |
msgid "Chinese (Traditional)"
|
534 |
msgstr "Chinees (Traditioneel)"
|
535 |
|
536 |
-
#: admin/class-settings.php:
|
537 |
msgid "Select your region"
|
538 |
msgstr "Kies uw regio"
|
539 |
|
540 |
-
#: admin/class-settings.php:
|
541 |
msgid "Afghanistan"
|
542 |
msgstr "Afghanistan"
|
543 |
|
544 |
-
#: admin/class-settings.php:
|
545 |
msgid "Albania"
|
546 |
msgstr "Albanië"
|
547 |
|
548 |
-
#: admin/class-settings.php:
|
549 |
msgid "Algeria"
|
550 |
msgstr "Algerije"
|
551 |
|
552 |
-
#: admin/class-settings.php:
|
553 |
msgid "American Samoa"
|
554 |
msgstr "Amerikaans Samoa"
|
555 |
|
556 |
-
#: admin/class-settings.php:
|
557 |
msgid "Andorra"
|
558 |
msgstr "Andorra"
|
559 |
|
560 |
-
#: admin/class-settings.php:
|
561 |
msgid "Anguilla"
|
562 |
msgstr "Anguilla"
|
563 |
|
564 |
-
#: admin/class-settings.php:
|
565 |
msgid "Angola"
|
566 |
msgstr "Angola"
|
567 |
|
568 |
-
#: admin/class-settings.php:
|
569 |
msgid "Antigua and Barbuda"
|
570 |
msgstr "Antigua en Barbuda"
|
571 |
|
572 |
-
#: admin/class-settings.php:
|
573 |
msgid "Argentina"
|
574 |
msgstr "Argentinië"
|
575 |
|
576 |
-
#: admin/class-settings.php:
|
577 |
msgid "Armenia"
|
578 |
msgstr "Armenia"
|
579 |
|
580 |
-
#: admin/class-settings.php:
|
581 |
msgid "Aruba"
|
582 |
msgstr "Aruba"
|
583 |
|
584 |
-
#: admin/class-settings.php:
|
585 |
msgid "Australia"
|
586 |
msgstr "Australië"
|
587 |
|
588 |
-
#: admin/class-settings.php:
|
589 |
msgid "Austria"
|
590 |
msgstr "Oostenrijk"
|
591 |
|
592 |
-
#: admin/class-settings.php:
|
593 |
msgid "Azerbaijan"
|
594 |
msgstr "Azerbeidzjan"
|
595 |
|
596 |
-
#: admin/class-settings.php:
|
597 |
msgid "Bahamas"
|
598 |
msgstr "Bahamas"
|
599 |
|
600 |
-
#: admin/class-settings.php:
|
601 |
msgid "Bahrain"
|
602 |
msgstr "Bahrein"
|
603 |
|
604 |
-
#: admin/class-settings.php:
|
605 |
msgid "Bangladesh"
|
606 |
msgstr "Bangladesh"
|
607 |
|
608 |
-
#: admin/class-settings.php:
|
609 |
msgid "Barbados"
|
610 |
msgstr "Barbados"
|
611 |
|
612 |
-
#: admin/class-settings.php:
|
613 |
msgid "Belarus"
|
614 |
msgstr "Wit-Rusland"
|
615 |
|
616 |
-
#: admin/class-settings.php:
|
617 |
msgid "Belgium"
|
618 |
msgstr "België"
|
619 |
|
620 |
-
#: admin/class-settings.php:
|
621 |
msgid "Belize"
|
622 |
msgstr "Belize"
|
623 |
|
624 |
-
#: admin/class-settings.php:
|
625 |
msgid "Benin"
|
626 |
msgstr "Benin"
|
627 |
|
628 |
-
#: admin/class-settings.php:
|
629 |
msgid "Bermuda"
|
630 |
msgstr "Bermuda"
|
631 |
|
632 |
-
#: admin/class-settings.php:
|
633 |
msgid "Bhutan"
|
634 |
msgstr "Bhutan"
|
635 |
|
636 |
-
#: admin/class-settings.php:
|
637 |
msgid "Bolivia"
|
638 |
msgstr "Bolivia"
|
639 |
|
640 |
-
#: admin/class-settings.php:
|
641 |
msgid "Bosnia and Herzegovina"
|
642 |
msgstr "Bosnia en Herzegovina"
|
643 |
|
644 |
-
#: admin/class-settings.php:
|
645 |
msgid "Botswana"
|
646 |
msgstr "Botswana"
|
647 |
|
648 |
-
#: admin/class-settings.php:
|
649 |
msgid "Brazil"
|
650 |
msgstr "Brazilië"
|
651 |
|
652 |
-
#: admin/class-settings.php:
|
653 |
msgid "British Indian Ocean Territory"
|
654 |
msgstr "Brits Indische Oceaanterritorium"
|
655 |
|
656 |
-
#: admin/class-settings.php:
|
657 |
msgid "Brunei"
|
658 |
msgstr "Brunei"
|
659 |
|
660 |
-
#: admin/class-settings.php:
|
661 |
msgid "Bulgaria"
|
662 |
msgstr "Bulgarije"
|
663 |
|
664 |
-
#: admin/class-settings.php:
|
665 |
msgid "Burkina Faso"
|
666 |
msgstr "Burkina Faso"
|
667 |
|
668 |
-
#: admin/class-settings.php:
|
669 |
msgid "Burundi"
|
670 |
msgstr "Burundi"
|
671 |
|
672 |
-
#: admin/class-settings.php:
|
673 |
msgid "Cambodia"
|
674 |
msgstr "Cambodja"
|
675 |
|
676 |
-
#: admin/class-settings.php:
|
677 |
msgid "Cameroon"
|
678 |
msgstr "Kameroen"
|
679 |
|
680 |
-
#: admin/class-settings.php:
|
681 |
msgid "Canada"
|
682 |
msgstr "Canada"
|
683 |
|
684 |
-
#: admin/class-settings.php:
|
685 |
msgid "Cape Verde"
|
686 |
msgstr "Kaapverdië"
|
687 |
|
688 |
-
#: admin/class-settings.php:
|
689 |
msgid "Cayman Islands"
|
690 |
msgstr "Kaaimaneilanden"
|
691 |
|
692 |
-
#: admin/class-settings.php:
|
693 |
msgid "Central African Republic"
|
694 |
msgstr "Centraal-Afrikaanse Republiek"
|
695 |
|
696 |
-
#: admin/class-settings.php:
|
697 |
msgid "Chad"
|
698 |
msgstr "Chad"
|
699 |
|
700 |
-
#: admin/class-settings.php:
|
701 |
msgid "Chile"
|
702 |
msgstr "Chili"
|
703 |
|
704 |
-
#: admin/class-settings.php:
|
705 |
msgid "China"
|
706 |
msgstr "China"
|
707 |
|
708 |
-
#: admin/class-settings.php:
|
709 |
msgid "Christmas Island"
|
710 |
msgstr "Christmaseiland"
|
711 |
|
712 |
-
#: admin/class-settings.php:
|
713 |
msgid "Cocos Islands"
|
714 |
msgstr "Cocoseilanden"
|
715 |
|
716 |
-
#: admin/class-settings.php:
|
717 |
msgid "Colombia"
|
718 |
msgstr "Colombia"
|
719 |
|
720 |
-
#: admin/class-settings.php:
|
721 |
msgid "Comoros"
|
722 |
msgstr "Comoren"
|
723 |
|
724 |
-
#: admin/class-settings.php:
|
725 |
msgid "Congo"
|
726 |
msgstr "Congo"
|
727 |
|
728 |
-
#: admin/class-settings.php:
|
729 |
msgid "Costa Rica"
|
730 |
msgstr "Costa Rica"
|
731 |
|
732 |
-
#: admin/class-settings.php:
|
733 |
msgid "Côte d'Ivoire"
|
734 |
msgstr "Ivoorkust"
|
735 |
|
736 |
-
#: admin/class-settings.php:
|
737 |
msgid "Croatia"
|
738 |
msgstr "Kroatië"
|
739 |
|
740 |
-
#: admin/class-settings.php:
|
741 |
msgid "Cuba"
|
742 |
msgstr "Cuba"
|
743 |
|
744 |
-
#: admin/class-settings.php:
|
745 |
msgid "Czech Republic"
|
746 |
msgstr "Tsjechië"
|
747 |
|
748 |
-
#: admin/class-settings.php:
|
749 |
msgid "Denmark"
|
750 |
msgstr "Denemarken"
|
751 |
|
752 |
-
#: admin/class-settings.php:
|
753 |
msgid "Djibouti"
|
754 |
msgstr "Djibouti"
|
755 |
|
756 |
-
#: admin/class-settings.php:
|
757 |
msgid "Democratic Republic of the Congo"
|
758 |
msgstr "Democratische Republiek Congo"
|
759 |
|
760 |
-
#: admin/class-settings.php:
|
761 |
msgid "Dominica"
|
762 |
msgstr "Dominica"
|
763 |
|
764 |
-
#: admin/class-settings.php:
|
765 |
msgid "Dominican Republic"
|
766 |
msgstr "Dominicaanse Republiek"
|
767 |
|
768 |
-
#: admin/class-settings.php:
|
769 |
msgid "Ecuador"
|
770 |
msgstr "Ecuador"
|
771 |
|
772 |
-
#: admin/class-settings.php:
|
773 |
msgid "Egypt"
|
774 |
msgstr "Egypte"
|
775 |
|
776 |
-
#: admin/class-settings.php:
|
777 |
msgid "El Salvador"
|
778 |
msgstr "El Salvador"
|
779 |
|
780 |
-
#: admin/class-settings.php:
|
781 |
msgid "Equatorial Guinea"
|
782 |
msgstr "Equatoriaal-Guinea"
|
783 |
|
784 |
-
#: admin/class-settings.php:
|
785 |
msgid "Eritrea"
|
786 |
msgstr "Eritrea"
|
787 |
|
788 |
-
#: admin/class-settings.php:
|
789 |
msgid "Estonia"
|
790 |
msgstr "Estland"
|
791 |
|
792 |
-
#: admin/class-settings.php:
|
793 |
msgid "Ethiopia"
|
794 |
msgstr "Ethiopië"
|
795 |
|
796 |
-
#: admin/class-settings.php:
|
797 |
msgid "Fiji"
|
798 |
msgstr "Fiji"
|
799 |
|
800 |
-
#: admin/class-settings.php:
|
801 |
msgid "Finland"
|
802 |
msgstr "Finland"
|
803 |
|
804 |
-
#: admin/class-settings.php:
|
805 |
msgid "France"
|
806 |
msgstr "Frankrijk"
|
807 |
|
808 |
-
#: admin/class-settings.php:
|
809 |
msgid "French Guiana"
|
810 |
msgstr "Frans Guyana"
|
811 |
|
812 |
-
#: admin/class-settings.php:
|
813 |
msgid "Gabon"
|
814 |
msgstr "Gabon"
|
815 |
|
816 |
-
#: admin/class-settings.php:
|
817 |
msgid "Gambia"
|
818 |
msgstr "Gambia"
|
819 |
|
820 |
-
#: admin/class-settings.php:
|
821 |
msgid "Germany"
|
822 |
msgstr "Duitsland"
|
823 |
|
824 |
-
#: admin/class-settings.php:
|
825 |
msgid "Ghana"
|
826 |
msgstr "Ghana"
|
827 |
|
828 |
-
#: admin/class-settings.php:
|
829 |
msgid "Greenland"
|
830 |
msgstr "Groenland"
|
831 |
|
832 |
-
#: admin/class-settings.php:
|
833 |
msgid "Greece"
|
834 |
msgstr "Griekenland"
|
835 |
|
836 |
-
#: admin/class-settings.php:
|
837 |
msgid "Grenada"
|
838 |
msgstr "Grenada"
|
839 |
|
840 |
-
#: admin/class-settings.php:
|
841 |
msgid "Guam"
|
842 |
msgstr "Guam"
|
843 |
|
844 |
-
#: admin/class-settings.php:
|
845 |
msgid "Guadeloupe"
|
846 |
msgstr "Guadeloupe"
|
847 |
|
848 |
-
#: admin/class-settings.php:
|
849 |
msgid "Guatemala"
|
850 |
msgstr "Guatemala"
|
851 |
|
852 |
-
#: admin/class-settings.php:
|
853 |
msgid "Guinea"
|
854 |
msgstr "Guinee"
|
855 |
|
856 |
-
#: admin/class-settings.php:
|
857 |
msgid "Guinea-Bissau"
|
858 |
msgstr "Guinee-Bissau"
|
859 |
|
860 |
-
#: admin/class-settings.php:
|
861 |
msgid "Haiti"
|
862 |
msgstr "Haïti"
|
863 |
|
864 |
-
#: admin/class-settings.php:
|
865 |
msgid "Honduras"
|
866 |
msgstr "Honduras"
|
867 |
|
868 |
-
#: admin/class-settings.php:
|
869 |
msgid "Hong Kong"
|
870 |
msgstr "Hong Kong"
|
871 |
|
872 |
-
#: admin/class-settings.php:
|
873 |
msgid "Hungary"
|
874 |
msgstr "Hongarije"
|
875 |
|
876 |
-
#: admin/class-settings.php:
|
877 |
msgid "Iceland"
|
878 |
msgstr "IJsland"
|
879 |
|
880 |
-
#: admin/class-settings.php:
|
881 |
msgid "India"
|
882 |
msgstr "India"
|
883 |
|
884 |
-
#: admin/class-settings.php:
|
885 |
msgid "Indonesia"
|
886 |
msgstr "Indonesië"
|
887 |
|
888 |
-
#: admin/class-settings.php:
|
889 |
msgid "Iran"
|
890 |
msgstr "Iran"
|
891 |
|
892 |
-
#: admin/class-settings.php:
|
893 |
msgid "Iraq"
|
894 |
msgstr "Irak"
|
895 |
|
896 |
-
#: admin/class-settings.php:
|
897 |
msgid "Ireland"
|
898 |
msgstr "Ierland"
|
899 |
|
900 |
-
#: admin/class-settings.php:
|
901 |
msgid "Israel"
|
902 |
msgstr "Israël"
|
903 |
|
904 |
-
#: admin/class-settings.php:
|
905 |
msgid "Italy"
|
906 |
msgstr "Italië"
|
907 |
|
908 |
-
#: admin/class-settings.php:
|
909 |
msgid "Jamaica"
|
910 |
msgstr "Jamaica"
|
911 |
|
912 |
-
#: admin/class-settings.php:
|
913 |
msgid "Japan"
|
914 |
msgstr "Japan"
|
915 |
|
916 |
-
#: admin/class-settings.php:
|
917 |
msgid "Jordan"
|
918 |
msgstr "Jordanië"
|
919 |
|
920 |
-
#: admin/class-settings.php:
|
921 |
msgid "Kazakhstan"
|
922 |
msgstr "Kazachstan"
|
923 |
|
924 |
-
#: admin/class-settings.php:
|
925 |
msgid "Kenya"
|
926 |
msgstr "Kenia"
|
927 |
|
928 |
-
#: admin/class-settings.php:
|
929 |
msgid "Kuwait"
|
930 |
msgstr "Koeweit"
|
931 |
|
932 |
-
#: admin/class-settings.php:
|
933 |
msgid "Kyrgyzstan"
|
934 |
msgstr "Kirgizië"
|
935 |
|
936 |
-
#: admin/class-settings.php:
|
937 |
msgid "Laos"
|
938 |
msgstr "Laos"
|
939 |
|
940 |
-
#: admin/class-settings.php:
|
941 |
msgid "Latvia"
|
942 |
msgstr "Letland"
|
943 |
|
944 |
-
#: admin/class-settings.php:
|
945 |
msgid "Lebanon"
|
946 |
msgstr "Libanon"
|
947 |
|
948 |
-
#: admin/class-settings.php:
|
949 |
msgid "Lesotho"
|
950 |
msgstr "Lesotho"
|
951 |
|
952 |
-
#: admin/class-settings.php:
|
953 |
msgid "Liberia"
|
954 |
msgstr "Liberia"
|
955 |
|
956 |
-
#: admin/class-settings.php:
|
957 |
msgid "Libya"
|
958 |
msgstr "Libië"
|
959 |
|
960 |
-
#: admin/class-settings.php:
|
961 |
msgid "Liechtenstein"
|
962 |
msgstr "Liechtenstein"
|
963 |
|
964 |
-
#: admin/class-settings.php:
|
965 |
msgid "Lithuania"
|
966 |
msgstr "Litouwen"
|
967 |
|
968 |
-
#: admin/class-settings.php:
|
969 |
msgid "Luxembourg"
|
970 |
msgstr "Luxemburg"
|
971 |
|
972 |
-
#: admin/class-settings.php:
|
973 |
msgid "Macau"
|
974 |
msgstr "Macau"
|
975 |
|
976 |
-
#: admin/class-settings.php:
|
977 |
msgid "Macedonia"
|
978 |
msgstr "Macedonië"
|
979 |
|
980 |
-
#: admin/class-settings.php:
|
981 |
msgid "Madagascar"
|
982 |
msgstr "Madagascar"
|
983 |
|
984 |
-
#: admin/class-settings.php:
|
985 |
msgid "Malawi"
|
986 |
msgstr "Malawi"
|
987 |
|
988 |
-
#: admin/class-settings.php:
|
989 |
msgid "Malaysia "
|
990 |
msgstr "Maleisie"
|
991 |
|
992 |
-
#: admin/class-settings.php:
|
993 |
msgid "Mali"
|
994 |
msgstr "Mali"
|
995 |
|
996 |
-
#: admin/class-settings.php:
|
997 |
msgid "Marshall Islands"
|
998 |
msgstr "Marshalleilanden"
|
999 |
|
1000 |
-
#: admin/class-settings.php:
|
1001 |
msgid "Martinique"
|
1002 |
msgstr "Martinique"
|
1003 |
|
1004 |
-
#: admin/class-settings.php:
|
1005 |
msgid "Mauritania"
|
1006 |
msgstr "Mauritanië"
|
1007 |
|
1008 |
-
#: admin/class-settings.php:
|
1009 |
msgid "Mauritius"
|
1010 |
msgstr "Mauritius"
|
1011 |
|
1012 |
-
#: admin/class-settings.php:
|
1013 |
msgid "Mexico"
|
1014 |
msgstr "Mexico"
|
1015 |
|
1016 |
-
#: admin/class-settings.php:
|
1017 |
msgid "Micronesia"
|
1018 |
msgstr "Micronesia"
|
1019 |
|
1020 |
-
#: admin/class-settings.php:
|
1021 |
msgid "Moldova"
|
1022 |
msgstr "Moldavië"
|
1023 |
|
1024 |
-
#: admin/class-settings.php:
|
1025 |
msgid "Monaco"
|
1026 |
msgstr "Monaco"
|
1027 |
|
1028 |
-
#: admin/class-settings.php:
|
1029 |
msgid "Mongolia"
|
1030 |
msgstr "Mongolië"
|
1031 |
|
1032 |
-
#: admin/class-settings.php:
|
1033 |
msgid "Montenegro"
|
1034 |
msgstr "Montenegro"
|
1035 |
|
1036 |
-
#: admin/class-settings.php:
|
1037 |
msgid "Montserrat"
|
1038 |
msgstr "Montserrat "
|
1039 |
|
1040 |
-
#: admin/class-settings.php:
|
1041 |
msgid "Morocco"
|
1042 |
msgstr "Marokko"
|
1043 |
|
1044 |
-
#: admin/class-settings.php:
|
1045 |
msgid "Mozambique"
|
1046 |
msgstr "Mozambique"
|
1047 |
|
1048 |
-
#: admin/class-settings.php:
|
1049 |
msgid "Myanmar"
|
1050 |
msgstr "Myanmar"
|
1051 |
|
1052 |
-
#: admin/class-settings.php:
|
1053 |
msgid "Namibia"
|
1054 |
msgstr "Namibië"
|
1055 |
|
1056 |
-
#: admin/class-settings.php:
|
1057 |
msgid "Nauru"
|
1058 |
msgstr "Nauru"
|
1059 |
|
1060 |
-
#: admin/class-settings.php:
|
1061 |
msgid "Nepal"
|
1062 |
msgstr "Nepal"
|
1063 |
|
1064 |
-
#: admin/class-settings.php:
|
1065 |
msgid "Netherlands"
|
1066 |
msgstr "Nederland"
|
1067 |
|
1068 |
-
#: admin/class-settings.php:
|
1069 |
msgid "Netherlands Antilles"
|
1070 |
msgstr "Nederlandse Antillen"
|
1071 |
|
1072 |
-
#: admin/class-settings.php:
|
1073 |
msgid "New Zealand"
|
1074 |
msgstr "Nieuw Zeeland"
|
1075 |
|
1076 |
-
#: admin/class-settings.php:
|
1077 |
msgid "Nicaragua"
|
1078 |
msgstr "Nicaragua"
|
1079 |
|
1080 |
-
#: admin/class-settings.php:
|
1081 |
msgid "Niger"
|
1082 |
msgstr "Niger"
|
1083 |
|
1084 |
-
#: admin/class-settings.php:
|
1085 |
msgid "Nigeria"
|
1086 |
msgstr "Nigeria"
|
1087 |
|
1088 |
-
#: admin/class-settings.php:
|
1089 |
msgid "Niue"
|
1090 |
msgstr "Niue"
|
1091 |
|
1092 |
-
#: admin/class-settings.php:
|
1093 |
msgid "Northern Mariana Islands"
|
1094 |
msgstr "Noordelijke Marianen"
|
1095 |
|
1096 |
-
#: admin/class-settings.php:
|
1097 |
msgid "Norway"
|
1098 |
msgstr "Noorwegen"
|
1099 |
|
1100 |
-
#: admin/class-settings.php:
|
1101 |
msgid "Oman"
|
1102 |
msgstr "Oman"
|
1103 |
|
1104 |
-
#: admin/class-settings.php:
|
1105 |
msgid "Pakistan"
|
1106 |
msgstr "Pakistan"
|
1107 |
|
1108 |
-
#: admin/class-settings.php:
|
1109 |
msgid "Panama"
|
1110 |
msgstr "Panama"
|
1111 |
|
1112 |
-
#: admin/class-settings.php:
|
1113 |
msgid "Papua New Guinea"
|
1114 |
msgstr "Papoea-Nieuw-Guinea"
|
1115 |
|
1116 |
-
#: admin/class-settings.php:
|
1117 |
msgid "Paraguay"
|
1118 |
msgstr "Paraguay"
|
1119 |
|
1120 |
-
#: admin/class-settings.php:
|
1121 |
msgid "Peru"
|
1122 |
msgstr "Peru"
|
1123 |
|
1124 |
-
#: admin/class-settings.php:
|
1125 |
msgid "Philippines"
|
1126 |
msgstr "Filipijnen"
|
1127 |
|
1128 |
-
#: admin/class-settings.php:
|
1129 |
msgid "Pitcairn Islands"
|
1130 |
msgstr "Pitcairneilanden"
|
1131 |
|
1132 |
-
#: admin/class-settings.php:
|
1133 |
msgid "Poland"
|
1134 |
msgstr "Polen"
|
1135 |
|
1136 |
-
#: admin/class-settings.php:
|
1137 |
msgid "Portugal"
|
1138 |
msgstr "Portugal"
|
1139 |
|
1140 |
-
#: admin/class-settings.php:
|
1141 |
msgid "Qatar"
|
1142 |
msgstr "Qatar"
|
1143 |
|
1144 |
-
#: admin/class-settings.php:
|
1145 |
msgid "Reunion"
|
1146 |
msgstr "Réunion"
|
1147 |
|
1148 |
-
#: admin/class-settings.php:
|
1149 |
msgid "Romania"
|
1150 |
msgstr "Roemenië"
|
1151 |
|
1152 |
-
#: admin/class-settings.php:
|
1153 |
msgid "Russia"
|
1154 |
msgstr "Rusland"
|
1155 |
|
1156 |
-
#: admin/class-settings.php:
|
1157 |
msgid "Rwanda"
|
1158 |
msgstr "Rwanda"
|
1159 |
|
1160 |
-
#: admin/class-settings.php:
|
1161 |
msgid "Saint Helena"
|
1162 |
msgstr "Sint-Helena"
|
1163 |
|
1164 |
-
#: admin/class-settings.php:
|
1165 |
msgid "Saint Kitts and Nevis"
|
1166 |
msgstr "Saint Kitts en Nevis"
|
1167 |
|
1168 |
-
#: admin/class-settings.php:
|
1169 |
msgid "Saint Vincent and the Grenadines"
|
1170 |
msgstr "Saint Vincent en de Grenadines"
|
1171 |
|
1172 |
-
#: admin/class-settings.php:
|
1173 |
msgid "Saint Lucia"
|
1174 |
msgstr "Saint Lucia"
|
1175 |
|
1176 |
-
#: admin/class-settings.php:
|
1177 |
msgid "Samoa"
|
1178 |
msgstr "Samoa"
|
1179 |
|
1180 |
-
#: admin/class-settings.php:
|
1181 |
msgid "San Marino"
|
1182 |
msgstr "San Marino"
|
1183 |
|
1184 |
-
#: admin/class-settings.php:
|
1185 |
msgid "São Tomé and Príncipe"
|
1186 |
msgstr "Sao Tomé en Principe"
|
1187 |
|
1188 |
-
#: admin/class-settings.php:
|
1189 |
msgid "Saudi Arabia"
|
1190 |
msgstr "Saoedi-Arabië"
|
1191 |
|
1192 |
-
#: admin/class-settings.php:
|
1193 |
msgid "Senegal"
|
1194 |
msgstr "Senegal"
|
1195 |
|
1196 |
-
#: admin/class-settings.php:
|
1197 |
msgid "Serbia"
|
1198 |
msgstr "Servië"
|
1199 |
|
1200 |
-
#: admin/class-settings.php:
|
1201 |
msgid "Seychelles"
|
1202 |
msgstr "Seychellen"
|
1203 |
|
1204 |
-
#: admin/class-settings.php:
|
1205 |
msgid "Sierra Leone"
|
1206 |
msgstr "Sierra Leone"
|
1207 |
|
1208 |
-
#: admin/class-settings.php:
|
1209 |
msgid "Singapore"
|
1210 |
msgstr "Singapore"
|
1211 |
|
1212 |
-
#: admin/class-settings.php:
|
1213 |
msgid "Slovakia"
|
1214 |
msgstr "Slowakije"
|
1215 |
|
1216 |
-
#: admin/class-settings.php:
|
1217 |
msgid "Solomon Islands"
|
1218 |
msgstr "Salomonseilanden"
|
1219 |
|
1220 |
-
#: admin/class-settings.php:
|
1221 |
msgid "Somalia"
|
1222 |
msgstr "Somalie"
|
1223 |
|
1224 |
-
#: admin/class-settings.php:
|
1225 |
msgid "South Africa"
|
1226 |
msgstr "Zuid Afrika"
|
1227 |
|
1228 |
-
#: admin/class-settings.php:
|
1229 |
msgid "South Korea"
|
1230 |
msgstr "Zuid Korea"
|
1231 |
|
1232 |
-
#: admin/class-settings.php:
|
1233 |
msgid "Spain"
|
1234 |
msgstr "Spanje"
|
1235 |
|
1236 |
-
#: admin/class-settings.php:
|
1237 |
msgid "Sri Lanka"
|
1238 |
msgstr "Sri Lanka"
|
1239 |
|
1240 |
-
#: admin/class-settings.php:
|
1241 |
msgid "Sudan"
|
1242 |
msgstr "Sudan"
|
1243 |
|
1244 |
-
#: admin/class-settings.php:
|
1245 |
msgid "Swaziland"
|
1246 |
msgstr "Swaziland "
|
1247 |
|
1248 |
-
#: admin/class-settings.php:
|
1249 |
msgid "Sweden"
|
1250 |
msgstr "Zweden"
|
1251 |
|
1252 |
-
#: admin/class-settings.php:
|
1253 |
msgid "Switzerland"
|
1254 |
msgstr "Zwitserland"
|
1255 |
|
1256 |
-
#: admin/class-settings.php:
|
1257 |
msgid "Syria"
|
1258 |
msgstr "Syrië"
|
1259 |
|
1260 |
-
#: admin/class-settings.php:
|
1261 |
msgid "Taiwan"
|
1262 |
msgstr "Taiwan"
|
1263 |
|
1264 |
-
#: admin/class-settings.php:
|
1265 |
msgid "Tajikistan"
|
1266 |
msgstr "Tajikistan"
|
1267 |
|
1268 |
-
#: admin/class-settings.php:
|
1269 |
msgid "Tanzania"
|
1270 |
msgstr "Tanzania"
|
1271 |
|
1272 |
-
#: admin/class-settings.php:
|
1273 |
msgid "Thailand"
|
1274 |
msgstr "Thailand"
|
1275 |
|
1276 |
-
#: admin/class-settings.php:
|
1277 |
msgid "Timor-Leste"
|
1278 |
msgstr "Oost-Timor"
|
1279 |
|
1280 |
-
#: admin/class-settings.php:
|
1281 |
msgid "Tokelau"
|
1282 |
msgstr "Tokelau"
|
1283 |
|
1284 |
-
#: admin/class-settings.php:
|
1285 |
msgid "Togo"
|
1286 |
msgstr "Togo"
|
1287 |
|
1288 |
-
#: admin/class-settings.php:
|
1289 |
msgid "Tonga"
|
1290 |
msgstr "Tonga"
|
1291 |
|
1292 |
-
#: admin/class-settings.php:
|
1293 |
msgid "Trinidad and Tobago"
|
1294 |
msgstr "Trinidad en Tobago"
|
1295 |
|
1296 |
-
#: admin/class-settings.php:
|
1297 |
msgid "Tunisia"
|
1298 |
msgstr "Tunesië"
|
1299 |
|
1300 |
-
#: admin/class-settings.php:
|
1301 |
msgid "Turkey"
|
1302 |
msgstr "Turkije"
|
1303 |
|
1304 |
-
#: admin/class-settings.php:
|
1305 |
msgid "Turkmenistan"
|
1306 |
msgstr "Turkmenistan"
|
1307 |
|
1308 |
-
#: admin/class-settings.php:
|
1309 |
msgid "Tuvalu"
|
1310 |
msgstr "Tuvalu"
|
1311 |
|
1312 |
-
#: admin/class-settings.php:
|
1313 |
msgid "Uganda"
|
1314 |
msgstr "Uganda"
|
1315 |
|
1316 |
-
#: admin/class-settings.php:
|
1317 |
msgid "Ukraine"
|
1318 |
msgstr "Oekraïne"
|
1319 |
|
1320 |
-
#: admin/class-settings.php:
|
1321 |
msgid "United Arab Emirates"
|
1322 |
msgstr "Verenigde Arabische Emiraten"
|
1323 |
|
1324 |
-
#: admin/class-settings.php:
|
1325 |
msgid "United Kingdom"
|
1326 |
msgstr "Verenigd Koninkrijk"
|
1327 |
|
1328 |
-
#: admin/class-settings.php:
|
1329 |
msgid "United States"
|
1330 |
msgstr "Verenigde Staten"
|
1331 |
|
1332 |
-
#: admin/class-settings.php:
|
1333 |
msgid "Uruguay"
|
1334 |
msgstr "Uruguay"
|
1335 |
|
1336 |
-
#: admin/class-settings.php:
|
1337 |
msgid "Uzbekistan"
|
1338 |
msgstr "Uzbekistan"
|
1339 |
|
1340 |
-
#: admin/class-settings.php:
|
1341 |
msgid "Wallis Futuna"
|
1342 |
msgstr "Wallis en Futuna"
|
1343 |
|
1344 |
-
#: admin/class-settings.php:
|
1345 |
msgid "Venezuela"
|
1346 |
msgstr "Venezuela"
|
1347 |
|
1348 |
-
#: admin/class-settings.php:
|
1349 |
msgid "Vietnam"
|
1350 |
msgstr "Vietnam"
|
1351 |
|
1352 |
-
#: admin/class-settings.php:
|
1353 |
msgid "Yemen"
|
1354 |
msgstr "Yemen"
|
1355 |
|
1356 |
-
#: admin/class-settings.php:
|
1357 |
msgid "Zambia"
|
1358 |
msgstr "Zambia"
|
1359 |
|
1360 |
-
#: admin/class-settings.php:
|
1361 |
msgid "Zimbabwe"
|
1362 |
msgstr "Zimbabwe"
|
1363 |
|
1364 |
-
#: admin/class-settings.php:
|
1365 |
msgid "World view"
|
1366 |
msgstr "wereldkaart"
|
1367 |
|
1368 |
-
#: admin/class-settings.php:
|
1369 |
-
#: inc/wpsl-functions.php:
|
1370 |
msgid "Default"
|
1371 |
msgstr "standaard"
|
1372 |
|
1373 |
-
#: admin/class-settings.php:
|
1374 |
msgid "Roadmap"
|
1375 |
msgstr "wegenkaart"
|
1376 |
|
1377 |
-
#: admin/class-settings.php:
|
1378 |
msgid "Start location marker"
|
1379 |
msgstr "Start locatie marker"
|
1380 |
|
1381 |
-
#: admin/class-settings.php:
|
1382 |
msgid "Store location marker"
|
1383 |
msgstr "Winkel locatie marker"
|
1384 |
|
1385 |
-
#: admin/class-settings.php:
|
1386 |
msgid "Textarea"
|
1387 |
msgstr "tekstvlak"
|
1388 |
|
1389 |
-
#: admin/class-settings.php:
|
1390 |
msgid "Dropdowns (recommended)"
|
1391 |
msgstr "dropdown (aangeraden)"
|
1392 |
|
1393 |
-
#: admin/class-settings.php:
|
1394 |
msgid "Bounces up and down"
|
1395 |
msgstr "beweegt op en neer"
|
1396 |
|
1397 |
-
#: admin/class-settings.php:
|
1398 |
msgid "Will open the info window"
|
1399 |
msgstr "opent de info window"
|
1400 |
|
1401 |
-
#: admin/class-settings.php:
|
1402 |
msgid "Does not respond"
|
1403 |
msgstr "reageert niet"
|
1404 |
|
1405 |
-
#: admin/class-settings.php:
|
1406 |
msgid "In the store listings"
|
1407 |
msgstr "In de locatie lijst"
|
1408 |
|
1409 |
-
#: admin/class-settings.php:
|
1410 |
msgid "In the info window on the map"
|
1411 |
msgstr "In de info window op de kaart"
|
1412 |
|
1413 |
-
#: admin/class-settings.php:
|
1414 |
msgid "12 Hours"
|
1415 |
msgstr "12 uur"
|
1416 |
|
1417 |
-
#: admin/class-settings.php:
|
1418 |
msgid "24 Hours"
|
1419 |
msgstr "24 uur"
|
1420 |
|
@@ -1422,15 +1422,15 @@ msgstr "24 uur"
|
|
1422 |
msgid "Store Locator Manager"
|
1423 |
msgstr "Store Locator Beheerder"
|
1424 |
|
1425 |
-
#: admin/templates/map-settings.php:
|
1426 |
msgid "Google Maps API"
|
1427 |
msgstr "Google Maps API"
|
1428 |
|
1429 |
-
#: admin/templates/map-settings.php:
|
1430 |
msgid "API key"
|
1431 |
msgstr "API sleutel"
|
1432 |
|
1433 |
-
#: admin/templates/map-settings.php:
|
1434 |
#, php-format
|
1435 |
msgid ""
|
1436 |
"A valid %sAPI key%s allows you to monitor the API usage and is required if "
|
@@ -1439,25 +1439,25 @@ msgstr ""
|
|
1439 |
"Een geldige %sAPI sleutel%s maakt het mogelijk om het gebruik van de API in "
|
1440 |
"de gaten te houden en is verplicht als je de API limiet wil verhogen."
|
1441 |
|
1442 |
-
#: admin/templates/map-settings.php:
|
1443 |
msgid "Optional"
|
1444 |
msgstr "Optioneel"
|
1445 |
|
1446 |
-
#: admin/templates/map-settings.php:
|
1447 |
msgid "Map language"
|
1448 |
msgstr "Kaart taal"
|
1449 |
|
1450 |
-
#: admin/templates/map-settings.php:
|
1451 |
msgid "If no map language is selected the browser's prefered language is used."
|
1452 |
msgstr ""
|
1453 |
"Als er geen kaart taal is geselecteerd, dan word de standaard browser taal "
|
1454 |
"gebruikt."
|
1455 |
|
1456 |
-
#: admin/templates/map-settings.php:
|
1457 |
msgid "Map region"
|
1458 |
msgstr "Kaart regio"
|
1459 |
|
1460 |
-
#: admin/templates/map-settings.php:
|
1461 |
#, php-format
|
1462 |
msgid ""
|
1463 |
"This will bias the geocoding results towards the selected region. %s If no "
|
@@ -1467,73 +1467,73 @@ msgstr ""
|
|
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:
|
1471 |
-
#: admin/templates/map-settings.php:
|
1472 |
-
#: admin/templates/map-settings.php:
|
1473 |
-
#: admin/templates/map-settings.php:
|
1474 |
-
#: admin/templates/map-settings.php:
|
1475 |
msgid "Save Changes"
|
1476 |
msgstr "Wijzigingen opslaan"
|
1477 |
|
1478 |
-
#: admin/templates/map-settings.php:
|
1479 |
-
#: admin/templates/map-settings.php:
|
1480 |
-
#: frontend/templates/store-listings-below.php:43 inc/wpsl-functions.php:
|
1481 |
msgid "Search"
|
1482 |
msgstr "Zoek"
|
1483 |
|
1484 |
-
#: admin/templates/map-settings.php:
|
1485 |
msgid "Show the max results dropdown?"
|
1486 |
msgstr "Toon de max resultaten dropdown?"
|
1487 |
|
1488 |
-
#: admin/templates/map-settings.php:
|
1489 |
msgid "Show the search radius dropdown?"
|
1490 |
msgstr "Toon de zoek radius dropdown?"
|
1491 |
|
1492 |
-
#: admin/templates/map-settings.php:
|
1493 |
msgid "Show the category dropdown?"
|
1494 |
msgstr "Toon de categorie dropdown?"
|
1495 |
|
1496 |
-
#: admin/templates/map-settings.php:
|
1497 |
msgid "Distance unit"
|
1498 |
msgstr "Afstands eenheid"
|
1499 |
|
1500 |
-
#: admin/templates/map-settings.php:
|
1501 |
msgid "km"
|
1502 |
msgstr "km"
|
1503 |
|
1504 |
-
#: admin/templates/map-settings.php:
|
1505 |
msgid "mi"
|
1506 |
msgstr "mi"
|
1507 |
|
1508 |
-
#: admin/templates/map-settings.php:
|
1509 |
msgid "Max search results"
|
1510 |
msgstr "Max zoek resultaten"
|
1511 |
|
1512 |
-
#: admin/templates/map-settings.php:
|
1513 |
msgid "The default value is set between the [ ]."
|
1514 |
msgstr "* De standaard waarde staat tussen de []."
|
1515 |
|
1516 |
-
#: admin/templates/map-settings.php:
|
1517 |
msgid "Search radius options"
|
1518 |
msgstr "Zoek radius opties"
|
1519 |
|
1520 |
-
#: admin/templates/map-settings.php:
|
1521 |
msgid "Map"
|
1522 |
msgstr "Kaart"
|
1523 |
|
1524 |
-
#: admin/templates/map-settings.php:
|
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:
|
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:
|
1533 |
msgid "Number of locations to show"
|
1534 |
msgstr "Aantal getoonde locaties"
|
1535 |
|
1536 |
-
#: admin/templates/map-settings.php:
|
1537 |
#, php-format
|
1538 |
msgid ""
|
1539 |
"Although the location data is cached after the first load, a lower number "
|
@@ -1546,11 +1546,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:
|
1550 |
msgid "Start point"
|
1551 |
msgstr "Start locatie"
|
1552 |
|
1553 |
-
#: admin/templates/map-settings.php:
|
1554 |
#, php-format
|
1555 |
msgid ""
|
1556 |
"%sRequired field.%s %s If auto-locating the user is disabled or fails, the "
|
@@ -1561,15 +1561,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:
|
1565 |
msgid "Initial zoom level"
|
1566 |
msgstr "Start zoom niveau"
|
1567 |
|
1568 |
-
#: admin/templates/map-settings.php:
|
1569 |
msgid "Max auto zoom level"
|
1570 |
msgstr "Max zoom niveau"
|
1571 |
|
1572 |
-
#: admin/templates/map-settings.php:
|
1573 |
#, php-format
|
1574 |
msgid ""
|
1575 |
"This value sets the zoom level for the \"Zoom here\" link in the info "
|
@@ -1581,14 +1581,10 @@ 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:
|
1585 |
msgid "Show the street view controls?"
|
1586 |
msgstr "Toon de street view controls?"
|
1587 |
|
1588 |
-
#: admin/templates/map-settings.php:115
|
1589 |
-
msgid "Show the pan controls?"
|
1590 |
-
msgstr "Toon de pan controls?"
|
1591 |
-
|
1592 |
#: admin/templates/map-settings.php:119
|
1593 |
msgid "Show the map type control?"
|
1594 |
msgstr "Toon de kaart type controls?"
|
@@ -1610,26 +1606,14 @@ msgid "Right"
|
|
1610 |
msgstr "rechts"
|
1611 |
|
1612 |
#: admin/templates/map-settings.php:136
|
1613 |
-
msgid "Zoom control style"
|
1614 |
-
msgstr "Zoom bediening stijl"
|
1615 |
-
|
1616 |
-
#: admin/templates/map-settings.php:139
|
1617 |
-
msgid "Small"
|
1618 |
-
msgstr "klein"
|
1619 |
-
|
1620 |
-
#: admin/templates/map-settings.php:141
|
1621 |
-
msgid "Large"
|
1622 |
-
msgstr "groot"
|
1623 |
-
|
1624 |
-
#: admin/templates/map-settings.php:145
|
1625 |
msgid "Map type"
|
1626 |
msgstr "Kaart soort"
|
1627 |
|
1628 |
-
#: admin/templates/map-settings.php:
|
1629 |
msgid "Map style"
|
1630 |
msgstr "Kaart stijl"
|
1631 |
|
1632 |
-
#: admin/templates/map-settings.php:
|
1633 |
msgid ""
|
1634 |
"Custom map styles only work if the map type is set to \"Roadmap\" or "
|
1635 |
"\"Terrain\"."
|
@@ -1637,7 +1621,7 @@ msgstr ""
|
|
1637 |
"Custom map stijlen werken alleen maar als de kaart soort op \"Wegenkaart\" "
|
1638 |
"of \"Terrein\" is gezet."
|
1639 |
|
1640 |
-
#: admin/templates/map-settings.php:
|
1641 |
#, php-format
|
1642 |
msgid ""
|
1643 |
"You can use existing map styles from %sSnazzy Maps%s or %sMap Stylr%s and "
|
@@ -1648,7 +1632,7 @@ msgstr ""
|
|
1648 |
"en in het onderstaande tekstvlak plaatsen. Of je kan de map stijl genereren "
|
1649 |
"via de %sMap Style Editor%s of de %sStyled Maps Wizard%s."
|
1650 |
|
1651 |
-
#: admin/templates/map-settings.php:
|
1652 |
#, php-format
|
1653 |
msgid ""
|
1654 |
"If you like to write the style code yourself, then you can find the "
|
@@ -1657,46 +1641,46 @@ msgstr ""
|
|
1657 |
"Als je zelf de stijl code wil schrijven dan kun je de documentatie %shier%s "
|
1658 |
"vinden."
|
1659 |
|
1660 |
-
#: admin/templates/map-settings.php:
|
1661 |
msgid "Preview Map Style"
|
1662 |
msgstr "Map stijl voorbeeld"
|
1663 |
|
1664 |
-
#: admin/templates/map-settings.php:
|
1665 |
msgid "Show credits?"
|
1666 |
msgstr "Toon credits?"
|
1667 |
|
1668 |
-
#: admin/templates/map-settings.php:
|
1669 |
msgid ""
|
1670 |
"This will place a \"Search provided by WP Store Locator\" backlink below the "
|
1671 |
"map."
|
1672 |
msgstr ""
|
1673 |
"Dit plaatst een \"Ondersteund door WP Store Locator\" link onder de kaart."
|
1674 |
|
1675 |
-
#: admin/templates/map-settings.php:
|
1676 |
msgid "User Experience"
|
1677 |
msgstr "Gebruikers ervaring"
|
1678 |
|
1679 |
-
#: admin/templates/map-settings.php:
|
1680 |
msgid "Store Locator height"
|
1681 |
msgstr "Store Locator hoogte"
|
1682 |
|
1683 |
-
#: admin/templates/map-settings.php:
|
1684 |
msgid "Max width for the info window content"
|
1685 |
msgstr "Max breedte voor de info window inhoud"
|
1686 |
|
1687 |
-
#: admin/templates/map-settings.php:
|
1688 |
msgid "Search field width"
|
1689 |
msgstr "Zoekveld breedte"
|
1690 |
|
1691 |
-
#: admin/templates/map-settings.php:
|
1692 |
msgid "Search and radius label width"
|
1693 |
msgstr "Zoek en radius label breedte"
|
1694 |
|
1695 |
-
#: admin/templates/map-settings.php:
|
1696 |
msgid "Store Locator template"
|
1697 |
msgstr "Store locator template"
|
1698 |
|
1699 |
-
#: admin/templates/map-settings.php:
|
1700 |
#, php-format
|
1701 |
msgid ""
|
1702 |
"The selected template is used with the [wpsl] shortcode. %s You can add a "
|
@@ -1705,19 +1689,19 @@ msgstr ""
|
|
1705 |
"De geselecteerde template wordt gebruikt bij de [wpsl] shortcode. %s Je kunt "
|
1706 |
"een custom template gebruiken met behulp van de %swpsl_templates%s filter."
|
1707 |
|
1708 |
-
#: admin/templates/map-settings.php:
|
1709 |
msgid "Hide the scrollbar?"
|
1710 |
msgstr "Verberg de scrollbar?"
|
1711 |
|
1712 |
-
#: admin/templates/map-settings.php:
|
1713 |
msgid "Open links in a new window?"
|
1714 |
msgstr "Open links in een nieuw venster?"
|
1715 |
|
1716 |
-
#: admin/templates/map-settings.php:
|
1717 |
msgid "Show a reset map button?"
|
1718 |
msgstr "Toon een knop om de kaart te resetten?"
|
1719 |
|
1720 |
-
#: admin/templates/map-settings.php:
|
1721 |
msgid ""
|
1722 |
"When a user clicks on \"Directions\", open a new window, and show the route "
|
1723 |
"on google.com/maps ?"
|
@@ -1725,11 +1709,11 @@ msgstr ""
|
|
1725 |
"Zodra een gebruiker op \"Route\" klikt, open een nieuwe venster en toon de "
|
1726 |
"route op google.com/maps?"
|
1727 |
|
1728 |
-
#: admin/templates/map-settings.php:
|
1729 |
msgid "Show a \"More info\" link in the store listings?"
|
1730 |
msgstr "Toon een \"Meer info\" link in de locatie lijst?"
|
1731 |
|
1732 |
-
#: admin/templates/map-settings.php:
|
1733 |
#, php-format
|
1734 |
msgid ""
|
1735 |
"This places a \"More Info\" link below the address and will show the phone, "
|
@@ -1742,15 +1726,15 @@ msgstr ""
|
|
1742 |
"omschrijving. %s Als je bijvoorbeeld de contact gegevens altijd wil tonen, "
|
1743 |
"volg dan de instructies op %sdeze%s pagina."
|
1744 |
|
1745 |
-
#: admin/templates/map-settings.php:
|
1746 |
msgid "Where do you want to show the \"More info\" details?"
|
1747 |
msgstr "Waar wil je de \"Meer info\" details tonen?"
|
1748 |
|
1749 |
-
#: admin/templates/map-settings.php:
|
1750 |
msgid "Make the store name clickable if a store URL exists?"
|
1751 |
msgstr "Als een winkel url bestaat, maak de winkel naam dan klikbaar?"
|
1752 |
|
1753 |
-
#: admin/templates/map-settings.php:
|
1754 |
#, php-format
|
1755 |
msgid ""
|
1756 |
"If %spermalinks%s are enabled, the store name will always link to the store "
|
@@ -1759,11 +1743,11 @@ msgstr ""
|
|
1759 |
"Als de %spermalinks%s zijn ingeschakeld dan zal de winkel naam altijd linken "
|
1760 |
"naar de winkel pagina."
|
1761 |
|
1762 |
-
#: admin/templates/map-settings.php:
|
1763 |
msgid "Make the phone number clickable on mobile devices?"
|
1764 |
msgstr "Maak het telefoonnummer klikbaar op mobiele apparaten?"
|
1765 |
|
1766 |
-
#: admin/templates/map-settings.php:
|
1767 |
msgid ""
|
1768 |
"If street view is available for the current location, then show a \"Street "
|
1769 |
"view\" link in the info window?"
|
@@ -1771,7 +1755,7 @@ msgstr ""
|
|
1771 |
"Als voor de huidge locatie street view beschikbaar is, toon dan een \"Street "
|
1772 |
"view\" link om vanuit de info window?"
|
1773 |
|
1774 |
-
#: admin/templates/map-settings.php:
|
1775 |
#, php-format
|
1776 |
msgid ""
|
1777 |
"Enabling this option can sometimes result in a small delay in the opening of "
|
@@ -1783,11 +1767,11 @@ msgstr ""
|
|
1783 |
"er een verzoek naar de Google Maps API word gemaakt om te controleren ofdat "
|
1784 |
"street view wel beschikbaar is voor de huidige locatie."
|
1785 |
|
1786 |
-
#: admin/templates/map-settings.php:
|
1787 |
msgid "Show a \"Zoom here\" link in the info window?"
|
1788 |
msgstr "Toon een \"zoom hier\" link in de info window?"
|
1789 |
|
1790 |
-
#: admin/templates/map-settings.php:
|
1791 |
#, php-format
|
1792 |
msgid ""
|
1793 |
"Clicking this link will make the map zoom in to the %s max auto zoom level "
|
@@ -1796,12 +1780,12 @@ msgstr ""
|
|
1796 |
"Als er op deze link geklikt word dan zoomt de kaart in totdat de %s max auto "
|
1797 |
"zoom level %s bereikt is."
|
1798 |
|
1799 |
-
#: admin/templates/map-settings.php:
|
1800 |
msgid "On page load move the mouse cursor to the search field?"
|
1801 |
msgstr ""
|
1802 |
"Als de pagina wordt geladen, verplaats de muiscursor dan naar het invulveld?"
|
1803 |
|
1804 |
-
#: admin/templates/map-settings.php:
|
1805 |
#, php-format
|
1806 |
msgid ""
|
1807 |
"If the store locator is not placed at the top of the page, enabling this "
|
@@ -1812,11 +1796,11 @@ msgstr ""
|
|
1812 |
"instelling ervoor zorgen dat de pagina naar benenden schuift tijden het "
|
1813 |
"laden. %s %sDeze optie staat uit op mobiele apparaten.%s"
|
1814 |
|
1815 |
-
#: admin/templates/map-settings.php:
|
1816 |
msgid "Use the default style for the info window?"
|
1817 |
msgstr "Gebruik de standaard style voor de info window?"
|
1818 |
|
1819 |
-
#: admin/templates/map-settings.php:
|
1820 |
#, php-format
|
1821 |
msgid ""
|
1822 |
"If the default style is disabled the %sInfoBox%s library will be used "
|
@@ -1827,17 +1811,17 @@ msgstr ""
|
|
1827 |
"gebruikt. %s Dit script maakt het mogelijk om makkelijk het ontwerp te "
|
1828 |
"wijzigen met behulp van de .wpsl-infobox css class."
|
1829 |
|
1830 |
-
#: admin/templates/map-settings.php:
|
1831 |
msgid "Hide the distance in the search results?"
|
1832 |
msgstr "Verberg de afstand in de zoek resultaten?"
|
1833 |
|
1834 |
-
#: admin/templates/map-settings.php:
|
1835 |
msgid "If a user hovers over the search results the store marker"
|
1836 |
msgstr ""
|
1837 |
"Als een gebruiker over de zoekresultaten beweegt met zijn muis de "
|
1838 |
"bijbehorende marker"
|
1839 |
|
1840 |
-
#: admin/templates/map-settings.php:
|
1841 |
#, php-format
|
1842 |
msgid ""
|
1843 |
"If marker clusters are enabled this option will not work as expected as long "
|
@@ -1852,11 +1836,11 @@ msgstr ""
|
|
1852 |
"de marker cluster wordt omgezet naar losse markers. %s De info window wordt "
|
1853 |
"wel geopend, maar het is niet duidelijk bij welke marker het hoort."
|
1854 |
|
1855 |
-
#: admin/templates/map-settings.php:
|
1856 |
msgid "Address format"
|
1857 |
msgstr "Adres formaat"
|
1858 |
|
1859 |
-
#: admin/templates/map-settings.php:
|
1860 |
#, php-format
|
1861 |
msgid ""
|
1862 |
"You can add custom address formats with the %swpsl_address_formats%s filter."
|
@@ -1864,23 +1848,23 @@ msgstr ""
|
|
1864 |
"Je kunt een nieuwe adres formaat toevoegen met de %swpsl_address_formats%s "
|
1865 |
"filter."
|
1866 |
|
1867 |
-
#: admin/templates/map-settings.php:
|
1868 |
msgid "Markers"
|
1869 |
msgstr "Markers"
|
1870 |
|
1871 |
-
#: admin/templates/map-settings.php:
|
1872 |
msgid "Enable marker clusters?"
|
1873 |
msgstr "Activeer marker clusters?"
|
1874 |
|
1875 |
-
#: admin/templates/map-settings.php:
|
1876 |
msgid "Recommended for maps with a large amount of markers."
|
1877 |
msgstr "Aan te raden voor kaarten met grote hoeveelheden markers."
|
1878 |
|
1879 |
-
#: admin/templates/map-settings.php:
|
1880 |
msgid "Max zoom level"
|
1881 |
msgstr "Max zoom niveau"
|
1882 |
|
1883 |
-
#: admin/templates/map-settings.php:
|
1884 |
msgid ""
|
1885 |
"If this zoom level is reached or exceeded, then all markers are moved out of "
|
1886 |
"the marker cluster and shown as individual markers."
|
@@ -1888,11 +1872,11 @@ msgstr ""
|
|
1888 |
"Als dit zoom niveau bereikt is of gepasseerd, dan worden alle markers uit de "
|
1889 |
"marker cluster gehaald en als losse markers getoond."
|
1890 |
|
1891 |
-
#: admin/templates/map-settings.php:
|
1892 |
msgid "Cluster size"
|
1893 |
msgstr "Cluster grote"
|
1894 |
|
1895 |
-
#: admin/templates/map-settings.php:
|
1896 |
#, php-format
|
1897 |
msgid ""
|
1898 |
"The grid size of a cluster in pixels. %s A larger number will result in a "
|
@@ -1902,27 +1886,27 @@ msgstr ""
|
|
1902 |
"voor dat er minder clusters zichtbaar zijn en het algoritme dus ook sneller "
|
1903 |
"klaar is."
|
1904 |
|
1905 |
-
#: admin/templates/map-settings.php:
|
1906 |
msgid "Store Editor"
|
1907 |
msgstr "Winkel editor"
|
1908 |
|
1909 |
-
#: admin/templates/map-settings.php:
|
1910 |
msgid "Default country"
|
1911 |
msgstr "Standaard land"
|
1912 |
|
1913 |
-
#: admin/templates/map-settings.php:
|
1914 |
msgid "Map type for the location preview"
|
1915 |
msgstr "Kaart type voor het lokatie voorbeeld"
|
1916 |
|
1917 |
-
#: admin/templates/map-settings.php:
|
1918 |
msgid "Hide the opening hours?"
|
1919 |
msgstr "Verberg de openingstijden?"
|
1920 |
|
1921 |
-
#: admin/templates/map-settings.php:
|
1922 |
msgid "Opening hours input type"
|
1923 |
msgstr "Openingstijden formaat"
|
1924 |
|
1925 |
-
#: admin/templates/map-settings.php:
|
1926 |
#, php-format
|
1927 |
msgid ""
|
1928 |
"Opening hours created in version 1.x %sare not%s automatically converted to "
|
@@ -1931,15 +1915,15 @@ msgstr ""
|
|
1931 |
"De openingstijden die zijn aangemaakt in versie 1.x %sworden niet%s "
|
1932 |
"automatische omgezet naar het dropdown formaat."
|
1933 |
|
1934 |
-
#: admin/templates/map-settings.php:
|
1935 |
msgid "The default opening hours"
|
1936 |
msgstr "De standaard openingstijden"
|
1937 |
|
1938 |
-
#: admin/templates/map-settings.php:
|
1939 |
msgid "Opening hours format"
|
1940 |
msgstr "Openingstijden formaat"
|
1941 |
|
1942 |
-
#: admin/templates/map-settings.php:
|
1943 |
msgid ""
|
1944 |
"The default country and opening hours are only used when a new store is "
|
1945 |
"created. So changing the default values will have no effect on existing "
|
@@ -1949,140 +1933,157 @@ msgstr ""
|
|
1949 |
"gebruikt als een nieuwe locatie wordt aangemaakt. Het wijzigen van deze "
|
1950 |
"waardes heeft dus geen enkele invloed op de bestaande locaties."
|
1951 |
|
1952 |
-
#: admin/templates/map-settings.php:
|
1953 |
msgid "Permalink"
|
1954 |
msgstr "Permalink"
|
1955 |
|
1956 |
-
#: admin/templates/map-settings.php:
|
1957 |
msgid "Enable permalink?"
|
1958 |
msgstr "Activeer permalink?"
|
1959 |
|
1960 |
-
#: admin/templates/map-settings.php:
|
1961 |
msgid "Store slug"
|
1962 |
msgstr "Winkel slug"
|
1963 |
|
1964 |
-
#: admin/templates/map-settings.php:
|
1965 |
msgid "Category slug"
|
1966 |
msgstr "Categorie slug"
|
1967 |
|
1968 |
-
#: admin/templates/map-settings.php:
|
1969 |
#, php-format
|
1970 |
msgid "The permalink slugs %smust be unique%s on your site."
|
1971 |
msgstr "De permalink slug %smoet uniek%s zijn op je site."
|
1972 |
|
1973 |
-
#: admin/templates/map-settings.php:
|
1974 |
msgid "Labels"
|
1975 |
msgstr "Labels"
|
1976 |
|
1977 |
-
#: admin/templates/map-settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1978 |
#: frontend/templates/default.php:11
|
1979 |
-
#: frontend/templates/store-listings-below.php:11 inc/wpsl-functions.php:
|
1980 |
msgid "Your location"
|
1981 |
msgstr "Uw locatie"
|
1982 |
|
1983 |
-
#: admin/templates/map-settings.php:
|
1984 |
#: frontend/templates/default.php:20
|
1985 |
-
#: frontend/templates/store-listings-below.php:20 inc/wpsl-functions.php:
|
1986 |
msgid "Search radius"
|
1987 |
msgstr "Zoek radius"
|
1988 |
|
1989 |
-
#: admin/templates/map-settings.php:
|
1990 |
-
#: frontend/class-frontend.php:
|
1991 |
msgid "No results found"
|
1992 |
msgstr "Geen resultaten gevonden"
|
1993 |
|
1994 |
-
#: admin/templates/map-settings.php:
|
1995 |
msgid "Searching (preloader text)"
|
1996 |
msgstr "Aan het zoeken (preloader tekst)"
|
1997 |
|
1998 |
-
#: admin/templates/map-settings.php:
|
1999 |
-
#: inc/wpsl-functions.php:
|
2000 |
msgid "Searching..."
|
2001 |
msgstr "Zoeken..."
|
2002 |
|
2003 |
-
#: admin/templates/map-settings.php:
|
2004 |
#: frontend/templates/default.php:29
|
2005 |
-
#: frontend/templates/store-listings-below.php:29 inc/wpsl-functions.php:
|
2006 |
msgid "Results"
|
2007 |
msgstr "Resultaten"
|
2008 |
|
2009 |
-
#: admin/templates/map-settings.php:
|
2010 |
-
#: inc/wpsl-functions.php:
|
2011 |
msgid "Category filter"
|
2012 |
msgstr "Categorie filter"
|
2013 |
|
2014 |
-
#: admin/templates/map-settings.php:
|
2015 |
msgid "Category"
|
2016 |
msgstr "Categorie"
|
2017 |
|
2018 |
-
#: admin/templates/map-settings.php:
|
2019 |
-
#: admin/upgrade.php:66 frontend/class-frontend.php:
|
2020 |
#: frontend/underscore-functions.php:114 frontend/underscore-functions.php:141
|
2021 |
-
#: inc/wpsl-functions.php:
|
2022 |
msgid "More info"
|
2023 |
msgstr "Meer info"
|
2024 |
|
2025 |
-
#: admin/templates/map-settings.php:
|
2026 |
-
#: frontend/class-frontend.php:
|
2027 |
-
#: frontend/underscore-functions.php:121 inc/wpsl-functions.php:
|
2028 |
msgid "Phone"
|
2029 |
msgstr "Telefoon"
|
2030 |
|
2031 |
-
#: admin/templates/map-settings.php:
|
2032 |
-
#: frontend/class-frontend.php:
|
2033 |
msgid "Start location"
|
2034 |
msgstr "Start locatie"
|
2035 |
|
2036 |
-
#: admin/templates/map-settings.php:
|
2037 |
msgid "Get directions"
|
2038 |
msgstr "Toon routebeschrijving"
|
2039 |
|
2040 |
-
#: admin/templates/map-settings.php:
|
2041 |
-
#: inc/wpsl-functions.php:
|
2042 |
msgid "Directions"
|
2043 |
msgstr "Routebeschrijving"
|
2044 |
|
2045 |
-
#: admin/templates/map-settings.php:
|
2046 |
msgid "No directions found"
|
2047 |
msgstr "Geen routebeschrijving beschikbaar"
|
2048 |
|
2049 |
-
#: admin/templates/map-settings.php:
|
2050 |
-
#: frontend/class-frontend.php:
|
2051 |
msgid "No route could be found between the origin and destination"
|
2052 |
msgstr "Er kon geen route gevonden worden tussen het begin- en eindpunt"
|
2053 |
|
2054 |
-
#: admin/templates/map-settings.php:
|
2055 |
-
#: admin/upgrade.php:87 frontend/class-frontend.php:
|
2056 |
-
#: inc/wpsl-functions.php:
|
2057 |
msgid "Back"
|
2058 |
msgstr "Terug"
|
2059 |
|
2060 |
-
#: admin/templates/map-settings.php:
|
2061 |
-
#: admin/upgrade.php:155 frontend/class-frontend.php:
|
2062 |
-
#: inc/wpsl-functions.php:
|
2063 |
msgid "Street view"
|
2064 |
msgstr "Street view"
|
2065 |
|
2066 |
-
#: admin/templates/map-settings.php:
|
2067 |
-
#: admin/upgrade.php:159 frontend/class-frontend.php:
|
2068 |
-
#: inc/wpsl-functions.php:
|
2069 |
msgid "Zoom here"
|
2070 |
msgstr "Zoom hier"
|
2071 |
|
2072 |
-
#: admin/templates/map-settings.php:
|
2073 |
msgid "General error"
|
2074 |
msgstr "Foutmelding"
|
2075 |
|
2076 |
-
#: admin/templates/map-settings.php:
|
2077 |
-
#: inc/wpsl-functions.php:
|
2078 |
msgid "Something went wrong, please try again!"
|
2079 |
msgstr "Er ging iets fout, probeer het nog een keer!"
|
2080 |
|
2081 |
-
#: admin/templates/map-settings.php:
|
2082 |
msgid "Query limit error"
|
2083 |
msgstr "Query limit foutmelding"
|
2084 |
|
2085 |
-
#: admin/templates/map-settings.php:
|
2086 |
#, php-format
|
2087 |
msgid ""
|
2088 |
"You can raise the %susage limit%s by obtaining an API %skey%s, and fill in "
|
@@ -2091,20 +2092,20 @@ msgstr ""
|
|
2091 |
"Je kan de %sgebruiks limiet%s verhogen door een API %ssleutel%s aan te "
|
2092 |
"vragen en die in het \"API sleutel\" veld bovenaan de pagina in te vullen."
|
2093 |
|
2094 |
-
#: admin/templates/map-settings.php:
|
2095 |
-
#: inc/wpsl-functions.php:
|
2096 |
msgid "API usage limit reached"
|
2097 |
msgstr "API gebruikslimiet bereikt"
|
2098 |
|
2099 |
-
#: admin/templates/map-settings.php:
|
2100 |
msgid "Tools"
|
2101 |
msgstr "Tools"
|
2102 |
|
2103 |
-
#: admin/templates/map-settings.php:
|
2104 |
msgid "Enable store locator debug?"
|
2105 |
msgstr "Activeer store locator debug?"
|
2106 |
|
2107 |
-
#: admin/templates/map-settings.php:
|
2108 |
#, php-format
|
2109 |
msgid ""
|
2110 |
"This disables the WPSL transient cache. %sThe transient cache is only used "
|
@@ -2114,11 +2115,11 @@ msgstr ""
|
|
2114 |
"alleen gebruikt als de %sToon alle locaties op de kaart zodra de pagina "
|
2115 |
"geladen is%s optie is geactiveerd."
|
2116 |
|
2117 |
-
#: admin/templates/map-settings.php:
|
2118 |
msgid "WPSL transients"
|
2119 |
msgstr "WPSL transients"
|
2120 |
|
2121 |
-
#: admin/templates/map-settings.php:
|
2122 |
msgid "Clear store locator transient cache"
|
2123 |
msgstr "Verwijder het store locator transient cache."
|
2124 |
|
@@ -2130,15 +2131,15 @@ msgstr "info window"
|
|
2130 |
msgid "Reset"
|
2131 |
msgstr "Herstel"
|
2132 |
|
2133 |
-
#: admin/upgrade.php:186 inc/wpsl-functions.php:
|
2134 |
msgid "stores"
|
2135 |
msgstr "winkels"
|
2136 |
|
2137 |
-
#: admin/upgrade.php:190 inc/wpsl-functions.php:
|
2138 |
msgid "store-category"
|
2139 |
msgstr "winkel-categorie"
|
2140 |
|
2141 |
-
#: admin/upgrade.php:
|
2142 |
#, php-format
|
2143 |
msgid ""
|
2144 |
"Because you updated WP Store Locator from version 1.x, the %s current store "
|
@@ -2147,7 +2148,7 @@ msgstr ""
|
|
2147 |
"Doordat je WP Store Locator update van versie 1.x, de %s huidige winkel "
|
2148 |
"locaties moeten worden %somgezet%s naar custom post types."
|
2149 |
|
2150 |
-
#: admin/upgrade.php:
|
2151 |
#, php-format
|
2152 |
msgid ""
|
2153 |
"The script converting the locations timed out. %s You can click the \"Start "
|
@@ -2165,15 +2166,15 @@ msgstr ""
|
|
2165 |
"heeft al geprobeerd om de maximum execution time uit te zetten, maar als je "
|
2166 |
"dit leest dan is dat mislukt."
|
2167 |
|
2168 |
-
#: admin/upgrade.php:
|
2169 |
msgid "Store locations to convert:"
|
2170 |
msgstr "Locaties die omgezet worden:"
|
2171 |
|
2172 |
-
#: admin/upgrade.php:
|
2173 |
msgid "Start Converting"
|
2174 |
msgstr "Begin met omzetten"
|
2175 |
|
2176 |
-
#: admin/upgrade.php:
|
2177 |
#, php-format
|
2178 |
msgid ""
|
2179 |
"All the store locations are now converted to custom post types. %s You can "
|
@@ -2182,7 +2183,7 @@ msgstr ""
|
|
2182 |
"Alle winkel locaties zijn nu omgezet naar custom post types. %s Je kunt ze "
|
2183 |
"bekijken op de %sAlle Winkels%s pagina."
|
2184 |
|
2185 |
-
#: frontend/class-frontend.php:
|
2186 |
msgid ""
|
2187 |
"If you use the [wpsl_address] shortcode outside a store page you need to set "
|
2188 |
"the ID attribute."
|
@@ -2190,7 +2191,7 @@ msgstr ""
|
|
2190 |
"Als je de [wpsl_address] shortcode op een pagina gebruikt die geen winkel "
|
2191 |
"pagina is dan is de ID attribute verplicht."
|
2192 |
|
2193 |
-
#: frontend/class-frontend.php:
|
2194 |
msgid ""
|
2195 |
"If you use the [wpsl_hours] shortcode outside a store page you need to set "
|
2196 |
"the ID attribute."
|
@@ -2198,7 +2199,7 @@ msgstr ""
|
|
2198 |
"Als je de [wpsl_hours] shortcode op een pagina gebruikt die geen winkel "
|
2199 |
"pagina is dan is de ID attribute verplicht."
|
2200 |
|
2201 |
-
#: frontend/class-frontend.php:
|
2202 |
msgid ""
|
2203 |
"If you use the [wpsl_map] shortcode outside a store page you need to set the "
|
2204 |
"ID attribute."
|
@@ -2206,24 +2207,24 @@ msgstr ""
|
|
2206 |
"Als je de [wpsl_map] shortcode op een pagina gebruikt die geen winkel pagina "
|
2207 |
"is dan is de ID attribute verplicht."
|
2208 |
|
2209 |
-
#: frontend/class-frontend.php:
|
2210 |
msgid "Any"
|
2211 |
msgstr "Alle"
|
2212 |
|
2213 |
-
#: frontend/class-frontend.php:
|
2214 |
msgid "The application does not have permission to use the Geolocation API."
|
2215 |
msgstr ""
|
2216 |
"Deze applicatie heeft geen toestemming om de Geolocation API te gebruiken."
|
2217 |
|
2218 |
-
#: frontend/class-frontend.php:
|
2219 |
msgid "Location information is unavailable."
|
2220 |
msgstr "Informatie over de huidige locatie is niet beschikbaar."
|
2221 |
|
2222 |
-
#: frontend/class-frontend.php:
|
2223 |
msgid "The geolocation request timed out."
|
2224 |
msgstr "Het geolocation verzoek timed out."
|
2225 |
|
2226 |
-
#: frontend/class-frontend.php:
|
2227 |
msgid "An unknown error occurred."
|
2228 |
msgstr " Er heeft zich een onbekende fout voorgedaan."
|
2229 |
|
@@ -2333,79 +2334,91 @@ msgstr "Voer winkel naam in"
|
|
2333 |
msgid "Zip"
|
2334 |
msgstr "Postcode"
|
2335 |
|
2336 |
-
#: inc/wpsl-functions.php:
|
2337 |
msgid "Show the store list below the map"
|
2338 |
msgstr "Toon the locatie lijst onder de kaart"
|
2339 |
|
2340 |
-
#: inc/wpsl-functions.php:
|
2341 |
msgid "Monday"
|
2342 |
msgstr "Maandag"
|
2343 |
|
2344 |
-
#: inc/wpsl-functions.php:
|
2345 |
msgid "Tuesday"
|
2346 |
msgstr "Dinsdag"
|
2347 |
|
2348 |
-
#: inc/wpsl-functions.php:
|
2349 |
msgid "Wednesday"
|
2350 |
msgstr "Woensdag"
|
2351 |
|
2352 |
-
#: inc/wpsl-functions.php:
|
2353 |
msgid "Thursday"
|
2354 |
msgstr "Donderdag"
|
2355 |
|
2356 |
-
#: inc/wpsl-functions.php:
|
2357 |
msgid "Friday"
|
2358 |
msgstr "Vrijdag"
|
2359 |
|
2360 |
-
#: inc/wpsl-functions.php:
|
2361 |
msgid "Saturday"
|
2362 |
msgstr "Zaterdag"
|
2363 |
|
2364 |
-
#: inc/wpsl-functions.php:
|
2365 |
msgid "Sunday"
|
2366 |
msgstr "Zondag"
|
2367 |
|
2368 |
-
#: inc/wpsl-functions.php:
|
2369 |
#, php-format
|
2370 |
msgid "Mon %sTue %sWed %sThu %sFri %sSat Closed %sSun Closed"
|
2371 |
msgstr "ma %sdi %swoe %sdo %svrij %szat gesloten %szo gesloten"
|
2372 |
|
2373 |
-
#: inc/wpsl-functions.php:
|
2374 |
msgid "Satellite"
|
2375 |
msgstr "Satelliet"
|
2376 |
|
2377 |
-
#: inc/wpsl-functions.php:
|
2378 |
msgid "Hybrid"
|
2379 |
msgstr "Hybrid"
|
2380 |
|
2381 |
-
#: inc/wpsl-functions.php:
|
2382 |
msgid "Terrain"
|
2383 |
msgstr "Terrein"
|
2384 |
|
2385 |
-
#: inc/wpsl-functions.php:
|
2386 |
msgid "(city) (state) (zip code)"
|
2387 |
msgstr "(stad) (provincie) (postcode)"
|
2388 |
|
2389 |
-
#: inc/wpsl-functions.php:
|
2390 |
msgid "(city), (state) (zip code)"
|
2391 |
msgstr "(stad), (provincie), (postcode)"
|
2392 |
|
2393 |
-
#: inc/wpsl-functions.php:
|
2394 |
msgid "(city) (zip code)"
|
2395 |
msgstr "(stad) (postcode)"
|
2396 |
|
2397 |
-
#: inc/wpsl-functions.php:
|
2398 |
msgid "(city), (zip code)"
|
2399 |
msgstr "(stad), (postcode)"
|
2400 |
|
2401 |
-
#: inc/wpsl-functions.php:
|
2402 |
msgid "(zip code) (city) (state)"
|
2403 |
msgstr "(postcode) (stad) (provincie)"
|
2404 |
|
2405 |
-
#: inc/wpsl-functions.php:
|
2406 |
msgid "(zip code) (city)"
|
2407 |
msgstr "(postcode) (stad)"
|
2408 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2409 |
#~ msgid "If a store url exists, make the store name clickable?"
|
2410 |
#~ msgstr "Als een winkel url bestaat, maak de winkel naam dan klikbaar?"
|
2411 |
|
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"
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
+
"X-Generator: Poedit 1.8.4\n"
|
15 |
"X-Poedit-SourceCharset: UTF-8\n"
|
16 |
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
|
17 |
"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
18 |
+
"X-Poedit-Basepath: ..\n"
|
19 |
"X-Textdomain-Support: yes\n"
|
20 |
"X-Poedit-SearchPath-0: .\n"
|
21 |
|
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 |
|
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."
|
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 |
|
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 |
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 |
|
203 |
+
#: admin/class-metaboxes.php:427
|
204 |
msgid "Hour format"
|
205 |
msgstr "Uur formaat"
|
206 |
|
207 |
+
#: admin/class-metaboxes.php:434
|
208 |
msgid "Days"
|
209 |
msgstr "Dagen"
|
210 |
|
211 |
+
#: admin/class-metaboxes.php:435
|
212 |
msgid "Opening Periods"
|
213 |
msgstr "Openingstijden"
|
214 |
|
215 |
+
#: admin/class-metaboxes.php:682
|
216 |
msgid "Failed to publish the store. Please fill in the required store details."
|
217 |
msgstr ""
|
218 |
"Het publiceren van de winkel is mislukt. Vul alle verplichte velden in."
|
219 |
|
220 |
+
#: admin/class-metaboxes.php:818
|
221 |
msgid "Preview Location"
|
222 |
msgstr "Bekijk voorbeeld"
|
223 |
|
224 |
+
#: admin/class-metaboxes.php:819
|
225 |
#, php-format
|
226 |
msgid ""
|
227 |
"The map preview is based on the provided address, city and country details. "
|
230 |
"Het voorbeeld is gebaseerd op het adres, de stad en het opgegeven land. %s "
|
231 |
"De opgegeven lengte en breedtegraad worden niet gebruikt."
|
232 |
|
233 |
+
#: admin/class-metaboxes.php:820
|
234 |
msgid "You can drag the marker to adjust the exact location of the marker."
|
235 |
msgstr "Je kunt de locatie aanpassen door de marker te verslepen."
|
236 |
|
237 |
+
#: admin/class-metaboxes.php:840 admin/class-metaboxes.php:843
|
238 |
msgid "Store updated."
|
239 |
msgstr "Winkel bijgewerkt."
|
240 |
|
241 |
+
#: admin/class-metaboxes.php:841
|
242 |
msgid "Custom field updated."
|
243 |
msgstr "Custom veld bijgewerkt."
|
244 |
|
245 |
+
#: admin/class-metaboxes.php:842
|
246 |
msgid "Custom field deleted."
|
247 |
msgstr "Custom veld verwijderd."
|
248 |
|
249 |
+
#: admin/class-metaboxes.php:844
|
250 |
#, php-format
|
251 |
msgid "Store restored to revision from %s"
|
252 |
msgstr "Winkel hersteld naar revisie %s"
|
253 |
|
254 |
+
#: admin/class-metaboxes.php:845
|
255 |
msgid "Store published."
|
256 |
msgstr "Winkel gepubliceerd."
|
257 |
|
258 |
+
#: admin/class-metaboxes.php:846
|
259 |
msgid "Store saved."
|
260 |
msgstr "Winkel opgeslagen."
|
261 |
|
262 |
+
#: admin/class-metaboxes.php:847
|
263 |
msgid "Store submitted."
|
264 |
msgstr "Winkel ingediend."
|
265 |
|
266 |
+
#: admin/class-metaboxes.php:849
|
267 |
#, php-format
|
268 |
msgid "Store scheduled for: <strong>%1$s</strong>."
|
269 |
msgstr "Winkel ingepland voor: <strong>%1$s</strong>. "
|
270 |
|
271 |
+
#: admin/class-metaboxes.php:850
|
272 |
msgid "M j, Y @ G:i"
|
273 |
msgstr "M j, Y @ G:i"
|
274 |
|
275 |
+
#: admin/class-metaboxes.php:852
|
276 |
msgid "Store draft updated."
|
277 |
msgstr "Winkel concept bijgewerkt."
|
278 |
|
279 |
+
#: admin/class-metaboxes.php:858
|
280 |
msgid "View store"
|
281 |
msgstr "Bekijk winkel"
|
282 |
|
283 |
+
#: admin/class-metaboxes.php:864
|
284 |
msgid "Preview store"
|
285 |
msgstr "Winkel voorbeeld"
|
286 |
|
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 |
"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 |
|
1422 |
msgid "Store Locator Manager"
|
1423 |
msgstr "Store Locator Beheerder"
|
1424 |
|
1425 |
+
#: admin/templates/map-settings.php:16
|
1426 |
msgid "Google Maps API"
|
1427 |
msgstr "Google Maps API"
|
1428 |
|
1429 |
+
#: admin/templates/map-settings.php:19
|
1430 |
msgid "API key"
|
1431 |
msgstr "API sleutel"
|
1432 |
|
1433 |
+
#: admin/templates/map-settings.php:19
|
1434 |
#, php-format
|
1435 |
msgid ""
|
1436 |
"A valid %sAPI key%s allows you to monitor the API usage and is required if "
|
1439 |
"Een geldige %sAPI sleutel%s maakt het mogelijk om het gebruik van de API in "
|
1440 |
"de gaten te houden en is verplicht als je de API limiet wil verhogen."
|
1441 |
|
1442 |
+
#: admin/templates/map-settings.php:20
|
1443 |
msgid "Optional"
|
1444 |
msgstr "Optioneel"
|
1445 |
|
1446 |
+
#: admin/templates/map-settings.php:23
|
1447 |
msgid "Map language"
|
1448 |
msgstr "Kaart taal"
|
1449 |
|
1450 |
+
#: admin/templates/map-settings.php:23
|
1451 |
msgid "If no map language is selected the browser's prefered language is used."
|
1452 |
msgstr ""
|
1453 |
"Als er geen kaart taal is geselecteerd, dan word de standaard browser taal "
|
1454 |
"gebruikt."
|
1455 |
|
1456 |
+
#: admin/templates/map-settings.php:29
|
1457 |
msgid "Map region"
|
1458 |
msgstr "Kaart regio"
|
1459 |
|
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 "
|
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 |
"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 |
"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 |
"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?"
|
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 |
"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 |
"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 |
"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 |
"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 |
"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 |
"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 |
"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 |
"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 |
"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 |
"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 |
"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 |
"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 |
"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 |
"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 |
"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 |
"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 |
"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 |
"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 "
|
1972 |
+
"as the multilingual plugin remains active."
|
1973 |
+
msgstr ""
|
1974 |
+
"Gebruik het \"String Translations\" gedeelte in de vertaal plugin om de "
|
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 |
"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 |
"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 |
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 |
"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 |
"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 "
|
2183 |
"Alle winkel locaties zijn nu omgezet naar custom post types. %s Je kunt ze "
|
2184 |
"bekijken op de %sAlle Winkels%s pagina."
|
2185 |
|
2186 |
+
#: frontend/class-frontend.php:610
|
2187 |
msgid ""
|
2188 |
"If you use the [wpsl_address] shortcode outside a store page you need to set "
|
2189 |
"the ID attribute."
|
2191 |
"Als je de [wpsl_address] shortcode op een pagina gebruikt die geen winkel "
|
2192 |
"pagina is dan is de ID attribute verplicht."
|
2193 |
|
2194 |
+
#: frontend/class-frontend.php:722
|
2195 |
msgid ""
|
2196 |
"If you use the [wpsl_hours] shortcode outside a store page you need to set "
|
2197 |
"the ID attribute."
|
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."
|
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 |
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 |
+
|
2413 |
+
#~ msgid "Zoom control style"
|
2414 |
+
#~ msgstr "Zoom bediening stijl"
|
2415 |
+
|
2416 |
+
#~ msgid "Small"
|
2417 |
+
#~ msgstr "klein"
|
2418 |
+
|
2419 |
+
#~ msgid "Large"
|
2420 |
+
#~ msgstr "groot"
|
2421 |
+
|
2422 |
#~ msgid "If a store url exists, make the store name clickable?"
|
2423 |
#~ msgstr "Als een winkel url bestaat, maak de winkel naam dan klikbaar?"
|
2424 |
|
languages/wpsl.pot
CHANGED
@@ -1,8 +1,9 @@
|
|
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: WP Store Locator v2.0\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2015-
|
6 |
"PO-Revision-Date: 2015-09-01 13:49+0100\n"
|
7 |
"Last-Translator: \n"
|
8 |
"Language-Team: \n"
|
@@ -11,11 +12,11 @@ msgstr ""
|
|
11 |
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
14 |
-
"X-Generator: Poedit 1.
|
15 |
"X-Poedit-SourceCharset: UTF-8\n"
|
16 |
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
|
17 |
"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
18 |
-
"X-Poedit-Basepath:
|
19 |
"X-Textdomain-Support: yes\n"
|
20 |
"X-Poedit-SearchPath-0: .\n"
|
21 |
|
@@ -33,10 +34,9 @@ msgid ""
|
|
33 |
"a start point on the %ssettings%s page. %sDismiss%s"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: admin/class-admin.php:150 admin/templates/map-settings.php:
|
37 |
-
#, fuzzy
|
38 |
msgid "Settings"
|
39 |
-
msgstr "
|
40 |
|
41 |
#: admin/class-admin.php:264
|
42 |
msgid "Cannot determine the address at this location."
|
@@ -46,7 +46,7 @@ msgstr ""
|
|
46 |
msgid "Geocode was not successful for the following reason"
|
47 |
msgstr ""
|
48 |
|
49 |
-
#: admin/class-admin.php:266 admin/upgrade.php:
|
50 |
msgid "Security check failed, reload the page and try again."
|
51 |
msgstr ""
|
52 |
|
@@ -58,8 +58,8 @@ msgstr ""
|
|
58 |
msgid "The map preview requires all the location details."
|
59 |
msgstr ""
|
60 |
|
61 |
-
#: admin/class-admin.php:269 admin/class-metaboxes.php:
|
62 |
-
#: frontend/class-frontend.php:
|
63 |
msgid "Closed"
|
64 |
msgstr ""
|
65 |
|
@@ -155,9 +155,9 @@ msgstr ""
|
|
155 |
msgid "Opening Hours"
|
156 |
msgstr ""
|
157 |
|
158 |
-
#: admin/class-metaboxes.php:82 admin/templates/map-settings.php:
|
159 |
-
#: admin/templates/map-settings.php:
|
160 |
-
#: inc/wpsl-functions.php:
|
161 |
msgid "Hours"
|
162 |
msgstr ""
|
163 |
|
@@ -169,105 +169,104 @@ msgstr ""
|
|
169 |
msgid "Tel"
|
170 |
msgstr ""
|
171 |
|
172 |
-
#: admin/class-metaboxes.php:91 admin/templates/map-settings.php:
|
173 |
-
#: admin/templates/map-settings.php:
|
174 |
#: frontend/underscore-functions.php:32 frontend/underscore-functions.php:124
|
175 |
-
#: inc/wpsl-functions.php:
|
176 |
msgid "Fax"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: admin/class-metaboxes.php:94 admin/templates/map-settings.php:
|
180 |
-
#: admin/templates/map-settings.php:
|
181 |
-
#: frontend/class-frontend.php:
|
182 |
-
#: frontend/underscore-functions.php:127 inc/wpsl-functions.php:
|
183 |
-
#, fuzzy
|
184 |
msgid "Email"
|
185 |
-
msgstr "
|
186 |
|
187 |
-
#: admin/class-metaboxes.php:97 admin/templates/map-settings.php:
|
188 |
-
#: admin/templates/map-settings.php:
|
189 |
-
#: frontend/class-frontend.php:
|
190 |
msgid "Url"
|
191 |
msgstr ""
|
192 |
|
193 |
-
#: admin/class-metaboxes.php:
|
194 |
msgid "Hour format"
|
195 |
msgstr ""
|
196 |
|
197 |
-
#: admin/class-metaboxes.php:
|
198 |
msgid "Days"
|
199 |
msgstr ""
|
200 |
|
201 |
-
#: admin/class-metaboxes.php:
|
202 |
msgid "Opening Periods"
|
203 |
msgstr ""
|
204 |
|
205 |
-
#: admin/class-metaboxes.php:
|
206 |
msgid "Failed to publish the store. Please fill in the required store details."
|
207 |
msgstr ""
|
208 |
|
209 |
-
#: admin/class-metaboxes.php:
|
210 |
msgid "Preview Location"
|
211 |
msgstr ""
|
212 |
|
213 |
-
#: admin/class-metaboxes.php:
|
214 |
#, php-format
|
215 |
msgid ""
|
216 |
"The map preview is based on the provided address, city and country details. "
|
217 |
"%s It will ignore any custom latitude or longitude values."
|
218 |
msgstr ""
|
219 |
|
220 |
-
#: admin/class-metaboxes.php:
|
221 |
msgid "You can drag the marker to adjust the exact location of the marker."
|
222 |
msgstr ""
|
223 |
|
224 |
-
#: admin/class-metaboxes.php:
|
225 |
msgid "Store updated."
|
226 |
msgstr ""
|
227 |
|
228 |
-
#: admin/class-metaboxes.php:
|
229 |
msgid "Custom field updated."
|
230 |
msgstr ""
|
231 |
|
232 |
-
#: admin/class-metaboxes.php:
|
233 |
msgid "Custom field deleted."
|
234 |
msgstr ""
|
235 |
|
236 |
-
#: admin/class-metaboxes.php:
|
237 |
#, php-format
|
238 |
msgid "Store restored to revision from %s"
|
239 |
msgstr ""
|
240 |
|
241 |
-
#: admin/class-metaboxes.php:
|
242 |
msgid "Store published."
|
243 |
msgstr ""
|
244 |
|
245 |
-
#: admin/class-metaboxes.php:
|
246 |
msgid "Store saved."
|
247 |
msgstr ""
|
248 |
|
249 |
-
#: admin/class-metaboxes.php:
|
250 |
msgid "Store submitted."
|
251 |
msgstr ""
|
252 |
|
253 |
-
#: admin/class-metaboxes.php:
|
254 |
#, php-format
|
255 |
msgid "Store scheduled for: <strong>%1$s</strong>."
|
256 |
msgstr ""
|
257 |
|
258 |
-
#: admin/class-metaboxes.php:
|
259 |
msgid "M j, Y @ G:i"
|
260 |
msgstr ""
|
261 |
|
262 |
-
#: admin/class-metaboxes.php:
|
263 |
msgid "Store draft updated."
|
264 |
msgstr ""
|
265 |
|
266 |
-
#: admin/class-metaboxes.php:
|
267 |
msgid "View store"
|
268 |
msgstr ""
|
269 |
|
270 |
-
#: admin/class-metaboxes.php:
|
271 |
msgid "Preview store"
|
272 |
msgstr ""
|
273 |
|
@@ -275,17 +274,17 @@ msgstr ""
|
|
275 |
msgid "WP Store Locator Transients Cleared"
|
276 |
msgstr ""
|
277 |
|
278 |
-
#: admin/class-settings.php:
|
279 |
msgid ""
|
280 |
"The max results field cannot be empty, the default value has been restored."
|
281 |
msgstr ""
|
282 |
|
283 |
-
#: admin/class-settings.php:
|
284 |
msgid ""
|
285 |
"The search radius field cannot be empty, the default value has been restored."
|
286 |
msgstr ""
|
287 |
|
288 |
-
#: admin/class-settings.php:
|
289 |
#, php-format
|
290 |
msgid ""
|
291 |
"Please provide the name of a city or country that can be used as a starting "
|
@@ -293,1110 +292,1108 @@ msgid ""
|
|
293 |
"user fails, or the option itself is disabled."
|
294 |
msgstr ""
|
295 |
|
296 |
-
#: admin/class-settings.php:
|
297 |
-
#, fuzzy
|
298 |
msgid "Select your language"
|
299 |
-
msgstr "
|
300 |
|
301 |
-
#: admin/class-settings.php:
|
302 |
msgid "English"
|
303 |
msgstr ""
|
304 |
|
305 |
-
#: admin/class-settings.php:
|
306 |
msgid "Arabic"
|
307 |
msgstr ""
|
308 |
|
309 |
-
#: admin/class-settings.php:
|
310 |
msgid "Basque"
|
311 |
msgstr ""
|
312 |
|
313 |
-
#: admin/class-settings.php:
|
314 |
msgid "Bulgarian"
|
315 |
msgstr ""
|
316 |
|
317 |
-
#: admin/class-settings.php:
|
318 |
msgid "Bengali"
|
319 |
msgstr ""
|
320 |
|
321 |
-
#: admin/class-settings.php:
|
322 |
msgid "Catalan"
|
323 |
msgstr ""
|
324 |
|
325 |
-
#: admin/class-settings.php:
|
326 |
msgid "Czech"
|
327 |
msgstr ""
|
328 |
|
329 |
-
#: admin/class-settings.php:
|
330 |
msgid "Danish"
|
331 |
msgstr ""
|
332 |
|
333 |
-
#: admin/class-settings.php:
|
334 |
msgid "German"
|
335 |
msgstr ""
|
336 |
|
337 |
-
#: admin/class-settings.php:
|
338 |
msgid "Greek"
|
339 |
msgstr ""
|
340 |
|
341 |
-
#: admin/class-settings.php:
|
342 |
msgid "English (Australian)"
|
343 |
msgstr ""
|
344 |
|
345 |
-
#: admin/class-settings.php:
|
346 |
msgid "English (Great Britain)"
|
347 |
msgstr ""
|
348 |
|
349 |
-
#: admin/class-settings.php:
|
350 |
msgid "Spanish"
|
351 |
msgstr ""
|
352 |
|
353 |
-
#: admin/class-settings.php:
|
354 |
msgid "Farsi"
|
355 |
msgstr ""
|
356 |
|
357 |
-
#: admin/class-settings.php:
|
358 |
msgid "Finnish"
|
359 |
msgstr ""
|
360 |
|
361 |
-
#: admin/class-settings.php:
|
362 |
msgid "Filipino"
|
363 |
msgstr ""
|
364 |
|
365 |
-
#: admin/class-settings.php:
|
366 |
msgid "French"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: admin/class-settings.php:
|
370 |
msgid "Galician"
|
371 |
msgstr ""
|
372 |
|
373 |
-
#: admin/class-settings.php:
|
374 |
msgid "Gujarati"
|
375 |
msgstr ""
|
376 |
|
377 |
-
#: admin/class-settings.php:
|
378 |
msgid "Hindi"
|
379 |
msgstr ""
|
380 |
|
381 |
-
#: admin/class-settings.php:
|
382 |
msgid "Croatian"
|
383 |
msgstr ""
|
384 |
|
385 |
-
#: admin/class-settings.php:
|
386 |
msgid "Hungarian"
|
387 |
msgstr ""
|
388 |
|
389 |
-
#: admin/class-settings.php:
|
390 |
msgid "Indonesian"
|
391 |
msgstr ""
|
392 |
|
393 |
-
#: admin/class-settings.php:
|
394 |
msgid "Italian"
|
395 |
msgstr ""
|
396 |
|
397 |
-
#: admin/class-settings.php:
|
398 |
msgid "Hebrew"
|
399 |
msgstr ""
|
400 |
|
401 |
-
#: admin/class-settings.php:
|
402 |
msgid "Japanese"
|
403 |
msgstr ""
|
404 |
|
405 |
-
#: admin/class-settings.php:
|
406 |
msgid "Kannada"
|
407 |
msgstr ""
|
408 |
|
409 |
-
#: admin/class-settings.php:
|
410 |
msgid "Korean"
|
411 |
msgstr ""
|
412 |
|
413 |
-
#: admin/class-settings.php:
|
414 |
msgid "Lithuanian"
|
415 |
msgstr ""
|
416 |
|
417 |
-
#: admin/class-settings.php:
|
418 |
msgid "Latvian"
|
419 |
msgstr ""
|
420 |
|
421 |
-
#: admin/class-settings.php:
|
422 |
msgid "Malayalam"
|
423 |
msgstr ""
|
424 |
|
425 |
-
#: admin/class-settings.php:
|
426 |
msgid "Marathi"
|
427 |
msgstr ""
|
428 |
|
429 |
-
#: admin/class-settings.php:
|
430 |
msgid "Dutch"
|
431 |
msgstr ""
|
432 |
|
433 |
-
#: admin/class-settings.php:
|
434 |
msgid "Norwegian"
|
435 |
msgstr ""
|
436 |
|
437 |
-
#: admin/class-settings.php:
|
438 |
msgid "Norwegian Nynorsk"
|
439 |
msgstr ""
|
440 |
|
441 |
-
#: admin/class-settings.php:
|
442 |
msgid "Polish"
|
443 |
msgstr ""
|
444 |
|
445 |
-
#: admin/class-settings.php:
|
446 |
msgid "Portuguese"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: admin/class-settings.php:
|
450 |
msgid "Portuguese (Brazil)"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: admin/class-settings.php:
|
454 |
msgid "Portuguese (Portugal)"
|
455 |
msgstr ""
|
456 |
|
457 |
-
#: admin/class-settings.php:
|
458 |
msgid "Romanian"
|
459 |
msgstr ""
|
460 |
|
461 |
-
#: admin/class-settings.php:
|
462 |
msgid "Russian"
|
463 |
msgstr ""
|
464 |
|
465 |
-
#: admin/class-settings.php:
|
466 |
msgid "Slovak"
|
467 |
msgstr ""
|
468 |
|
469 |
-
#: admin/class-settings.php:
|
470 |
msgid "Slovenian"
|
471 |
msgstr ""
|
472 |
|
473 |
-
#: admin/class-settings.php:
|
474 |
msgid "Serbian"
|
475 |
msgstr ""
|
476 |
|
477 |
-
#: admin/class-settings.php:
|
478 |
msgid "Swedish"
|
479 |
msgstr ""
|
480 |
|
481 |
-
#: admin/class-settings.php:
|
482 |
msgid "Tagalog"
|
483 |
msgstr ""
|
484 |
|
485 |
-
#: admin/class-settings.php:
|
486 |
msgid "Tamil"
|
487 |
msgstr ""
|
488 |
|
489 |
-
#: admin/class-settings.php:
|
490 |
msgid "Telugu"
|
491 |
msgstr ""
|
492 |
|
493 |
-
#: admin/class-settings.php:
|
494 |
msgid "Thai"
|
495 |
msgstr ""
|
496 |
|
497 |
-
#: admin/class-settings.php:
|
498 |
msgid "Turkish"
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: admin/class-settings.php:
|
502 |
msgid "Ukrainian"
|
503 |
msgstr ""
|
504 |
|
505 |
-
#: admin/class-settings.php:
|
506 |
msgid "Vietnamese"
|
507 |
msgstr ""
|
508 |
|
509 |
-
#: admin/class-settings.php:
|
510 |
msgid "Chinese (Simplified)"
|
511 |
msgstr ""
|
512 |
|
513 |
-
#: admin/class-settings.php:
|
514 |
msgid "Chinese (Traditional)"
|
515 |
msgstr ""
|
516 |
|
517 |
-
#: admin/class-settings.php:
|
518 |
-
#, fuzzy
|
519 |
msgid "Select your region"
|
520 |
-
msgstr "
|
521 |
|
522 |
-
#: admin/class-settings.php:
|
523 |
msgid "Afghanistan"
|
524 |
msgstr ""
|
525 |
|
526 |
-
#: admin/class-settings.php:
|
527 |
msgid "Albania"
|
528 |
msgstr ""
|
529 |
|
530 |
-
#: admin/class-settings.php:
|
531 |
msgid "Algeria"
|
532 |
msgstr ""
|
533 |
|
534 |
-
#: admin/class-settings.php:
|
535 |
msgid "American Samoa"
|
536 |
msgstr ""
|
537 |
|
538 |
-
#: admin/class-settings.php:
|
539 |
msgid "Andorra"
|
540 |
msgstr ""
|
541 |
|
542 |
-
#: admin/class-settings.php:
|
543 |
msgid "Anguilla"
|
544 |
msgstr ""
|
545 |
|
546 |
-
#: admin/class-settings.php:
|
547 |
msgid "Angola"
|
548 |
msgstr ""
|
549 |
|
550 |
-
#: admin/class-settings.php:
|
551 |
msgid "Antigua and Barbuda"
|
552 |
msgstr ""
|
553 |
|
554 |
-
#: admin/class-settings.php:
|
555 |
msgid "Argentina"
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: admin/class-settings.php:
|
559 |
msgid "Armenia"
|
560 |
msgstr ""
|
561 |
|
562 |
-
#: admin/class-settings.php:
|
563 |
msgid "Aruba"
|
564 |
msgstr ""
|
565 |
|
566 |
-
#: admin/class-settings.php:
|
567 |
msgid "Australia"
|
568 |
msgstr ""
|
569 |
|
570 |
-
#: admin/class-settings.php:
|
571 |
msgid "Austria"
|
572 |
msgstr ""
|
573 |
|
574 |
-
#: admin/class-settings.php:
|
575 |
msgid "Azerbaijan"
|
576 |
msgstr ""
|
577 |
|
578 |
-
#: admin/class-settings.php:
|
579 |
msgid "Bahamas"
|
580 |
msgstr ""
|
581 |
|
582 |
-
#: admin/class-settings.php:
|
583 |
msgid "Bahrain"
|
584 |
msgstr ""
|
585 |
|
586 |
-
#: admin/class-settings.php:
|
587 |
msgid "Bangladesh"
|
588 |
msgstr ""
|
589 |
|
590 |
-
#: admin/class-settings.php:
|
591 |
msgid "Barbados"
|
592 |
msgstr ""
|
593 |
|
594 |
-
#: admin/class-settings.php:
|
595 |
msgid "Belarus"
|
596 |
msgstr ""
|
597 |
|
598 |
-
#: admin/class-settings.php:
|
599 |
msgid "Belgium"
|
600 |
msgstr ""
|
601 |
|
602 |
-
#: admin/class-settings.php:
|
603 |
msgid "Belize"
|
604 |
msgstr ""
|
605 |
|
606 |
-
#: admin/class-settings.php:
|
607 |
msgid "Benin"
|
608 |
msgstr ""
|
609 |
|
610 |
-
#: admin/class-settings.php:
|
611 |
msgid "Bermuda"
|
612 |
msgstr ""
|
613 |
|
614 |
-
#: admin/class-settings.php:
|
615 |
msgid "Bhutan"
|
616 |
msgstr ""
|
617 |
|
618 |
-
#: admin/class-settings.php:
|
619 |
msgid "Bolivia"
|
620 |
msgstr ""
|
621 |
|
622 |
-
#: admin/class-settings.php:
|
623 |
msgid "Bosnia and Herzegovina"
|
624 |
msgstr ""
|
625 |
|
626 |
-
#: admin/class-settings.php:
|
627 |
msgid "Botswana"
|
628 |
msgstr ""
|
629 |
|
630 |
-
#: admin/class-settings.php:
|
631 |
msgid "Brazil"
|
632 |
msgstr ""
|
633 |
|
634 |
-
#: admin/class-settings.php:
|
635 |
msgid "British Indian Ocean Territory"
|
636 |
msgstr ""
|
637 |
|
638 |
-
#: admin/class-settings.php:
|
639 |
msgid "Brunei"
|
640 |
msgstr ""
|
641 |
|
642 |
-
#: admin/class-settings.php:
|
643 |
msgid "Bulgaria"
|
644 |
msgstr ""
|
645 |
|
646 |
-
#: admin/class-settings.php:
|
647 |
msgid "Burkina Faso"
|
648 |
msgstr ""
|
649 |
|
650 |
-
#: admin/class-settings.php:
|
651 |
msgid "Burundi"
|
652 |
msgstr ""
|
653 |
|
654 |
-
#: admin/class-settings.php:
|
655 |
msgid "Cambodia"
|
656 |
msgstr ""
|
657 |
|
658 |
-
#: admin/class-settings.php:
|
659 |
msgid "Cameroon"
|
660 |
msgstr ""
|
661 |
|
662 |
-
#: admin/class-settings.php:
|
663 |
msgid "Canada"
|
664 |
msgstr ""
|
665 |
|
666 |
-
#: admin/class-settings.php:
|
667 |
msgid "Cape Verde"
|
668 |
msgstr ""
|
669 |
|
670 |
-
#: admin/class-settings.php:
|
671 |
msgid "Cayman Islands"
|
672 |
msgstr ""
|
673 |
|
674 |
-
#: admin/class-settings.php:
|
675 |
msgid "Central African Republic"
|
676 |
msgstr ""
|
677 |
|
678 |
-
#: admin/class-settings.php:
|
679 |
msgid "Chad"
|
680 |
msgstr ""
|
681 |
|
682 |
-
#: admin/class-settings.php:
|
683 |
msgid "Chile"
|
684 |
msgstr ""
|
685 |
|
686 |
-
#: admin/class-settings.php:
|
687 |
msgid "China"
|
688 |
msgstr ""
|
689 |
|
690 |
-
#: admin/class-settings.php:
|
691 |
msgid "Christmas Island"
|
692 |
msgstr ""
|
693 |
|
694 |
-
#: admin/class-settings.php:
|
695 |
msgid "Cocos Islands"
|
696 |
msgstr ""
|
697 |
|
698 |
-
#: admin/class-settings.php:
|
699 |
msgid "Colombia"
|
700 |
msgstr ""
|
701 |
|
702 |
-
#: admin/class-settings.php:
|
703 |
msgid "Comoros"
|
704 |
msgstr ""
|
705 |
|
706 |
-
#: admin/class-settings.php:
|
707 |
msgid "Congo"
|
708 |
msgstr ""
|
709 |
|
710 |
-
#: admin/class-settings.php:
|
711 |
msgid "Costa Rica"
|
712 |
msgstr ""
|
713 |
|
714 |
-
#: admin/class-settings.php:
|
715 |
msgid "Côte d'Ivoire"
|
716 |
msgstr ""
|
717 |
|
718 |
-
#: admin/class-settings.php:
|
719 |
msgid "Croatia"
|
720 |
msgstr ""
|
721 |
|
722 |
-
#: admin/class-settings.php:
|
723 |
msgid "Cuba"
|
724 |
msgstr ""
|
725 |
|
726 |
-
#: admin/class-settings.php:
|
727 |
msgid "Czech Republic"
|
728 |
msgstr ""
|
729 |
|
730 |
-
#: admin/class-settings.php:
|
731 |
msgid "Denmark"
|
732 |
msgstr ""
|
733 |
|
734 |
-
#: admin/class-settings.php:
|
735 |
msgid "Djibouti"
|
736 |
msgstr ""
|
737 |
|
738 |
-
#: admin/class-settings.php:
|
739 |
msgid "Democratic Republic of the Congo"
|
740 |
msgstr ""
|
741 |
|
742 |
-
#: admin/class-settings.php:
|
743 |
msgid "Dominica"
|
744 |
msgstr ""
|
745 |
|
746 |
-
#: admin/class-settings.php:
|
747 |
msgid "Dominican Republic"
|
748 |
msgstr ""
|
749 |
|
750 |
-
#: admin/class-settings.php:
|
751 |
msgid "Ecuador"
|
752 |
msgstr ""
|
753 |
|
754 |
-
#: admin/class-settings.php:
|
755 |
msgid "Egypt"
|
756 |
msgstr ""
|
757 |
|
758 |
-
#: admin/class-settings.php:
|
759 |
msgid "El Salvador"
|
760 |
msgstr ""
|
761 |
|
762 |
-
#: admin/class-settings.php:
|
763 |
msgid "Equatorial Guinea"
|
764 |
msgstr ""
|
765 |
|
766 |
-
#: admin/class-settings.php:
|
767 |
msgid "Eritrea"
|
768 |
msgstr ""
|
769 |
|
770 |
-
#: admin/class-settings.php:
|
771 |
msgid "Estonia"
|
772 |
msgstr ""
|
773 |
|
774 |
-
#: admin/class-settings.php:
|
775 |
msgid "Ethiopia"
|
776 |
msgstr ""
|
777 |
|
778 |
-
#: admin/class-settings.php:
|
779 |
msgid "Fiji"
|
780 |
msgstr ""
|
781 |
|
782 |
-
#: admin/class-settings.php:
|
783 |
msgid "Finland"
|
784 |
msgstr ""
|
785 |
|
786 |
-
#: admin/class-settings.php:
|
787 |
msgid "France"
|
788 |
msgstr ""
|
789 |
|
790 |
-
#: admin/class-settings.php:
|
791 |
msgid "French Guiana"
|
792 |
msgstr ""
|
793 |
|
794 |
-
#: admin/class-settings.php:
|
795 |
msgid "Gabon"
|
796 |
msgstr ""
|
797 |
|
798 |
-
#: admin/class-settings.php:
|
799 |
msgid "Gambia"
|
800 |
msgstr ""
|
801 |
|
802 |
-
#: admin/class-settings.php:
|
803 |
msgid "Germany"
|
804 |
msgstr ""
|
805 |
|
806 |
-
#: admin/class-settings.php:
|
807 |
msgid "Ghana"
|
808 |
msgstr ""
|
809 |
|
810 |
-
#: admin/class-settings.php:
|
811 |
msgid "Greenland"
|
812 |
msgstr ""
|
813 |
|
814 |
-
#: admin/class-settings.php:
|
815 |
msgid "Greece"
|
816 |
msgstr ""
|
817 |
|
818 |
-
#: admin/class-settings.php:
|
819 |
msgid "Grenada"
|
820 |
msgstr ""
|
821 |
|
822 |
-
#: admin/class-settings.php:
|
823 |
msgid "Guam"
|
824 |
msgstr ""
|
825 |
|
826 |
-
#: admin/class-settings.php:
|
827 |
msgid "Guadeloupe"
|
828 |
msgstr ""
|
829 |
|
830 |
-
#: admin/class-settings.php:
|
831 |
msgid "Guatemala"
|
832 |
msgstr ""
|
833 |
|
834 |
-
#: admin/class-settings.php:
|
835 |
msgid "Guinea"
|
836 |
msgstr ""
|
837 |
|
838 |
-
#: admin/class-settings.php:
|
839 |
msgid "Guinea-Bissau"
|
840 |
msgstr ""
|
841 |
|
842 |
-
#: admin/class-settings.php:
|
843 |
msgid "Haiti"
|
844 |
msgstr ""
|
845 |
|
846 |
-
#: admin/class-settings.php:
|
847 |
msgid "Honduras"
|
848 |
msgstr ""
|
849 |
|
850 |
-
#: admin/class-settings.php:
|
851 |
msgid "Hong Kong"
|
852 |
msgstr ""
|
853 |
|
854 |
-
#: admin/class-settings.php:
|
855 |
msgid "Hungary"
|
856 |
msgstr ""
|
857 |
|
858 |
-
#: admin/class-settings.php:
|
859 |
msgid "Iceland"
|
860 |
msgstr ""
|
861 |
|
862 |
-
#: admin/class-settings.php:
|
863 |
msgid "India"
|
864 |
msgstr ""
|
865 |
|
866 |
-
#: admin/class-settings.php:
|
867 |
msgid "Indonesia"
|
868 |
msgstr ""
|
869 |
|
870 |
-
#: admin/class-settings.php:
|
871 |
msgid "Iran"
|
872 |
msgstr ""
|
873 |
|
874 |
-
#: admin/class-settings.php:
|
875 |
msgid "Iraq"
|
876 |
msgstr ""
|
877 |
|
878 |
-
#: admin/class-settings.php:
|
879 |
msgid "Ireland"
|
880 |
msgstr ""
|
881 |
|
882 |
-
#: admin/class-settings.php:
|
883 |
msgid "Israel"
|
884 |
msgstr ""
|
885 |
|
886 |
-
#: admin/class-settings.php:
|
887 |
msgid "Italy"
|
888 |
msgstr ""
|
889 |
|
890 |
-
#: admin/class-settings.php:
|
891 |
msgid "Jamaica"
|
892 |
msgstr ""
|
893 |
|
894 |
-
#: admin/class-settings.php:
|
895 |
msgid "Japan"
|
896 |
msgstr ""
|
897 |
|
898 |
-
#: admin/class-settings.php:
|
899 |
msgid "Jordan"
|
900 |
msgstr ""
|
901 |
|
902 |
-
#: admin/class-settings.php:
|
903 |
msgid "Kazakhstan"
|
904 |
msgstr ""
|
905 |
|
906 |
-
#: admin/class-settings.php:
|
907 |
msgid "Kenya"
|
908 |
msgstr ""
|
909 |
|
910 |
-
#: admin/class-settings.php:
|
911 |
msgid "Kuwait"
|
912 |
msgstr ""
|
913 |
|
914 |
-
#: admin/class-settings.php:
|
915 |
msgid "Kyrgyzstan"
|
916 |
msgstr ""
|
917 |
|
918 |
-
#: admin/class-settings.php:
|
919 |
msgid "Laos"
|
920 |
msgstr ""
|
921 |
|
922 |
-
#: admin/class-settings.php:
|
923 |
msgid "Latvia"
|
924 |
msgstr ""
|
925 |
|
926 |
-
#: admin/class-settings.php:
|
927 |
msgid "Lebanon"
|
928 |
msgstr ""
|
929 |
|
930 |
-
#: admin/class-settings.php:
|
931 |
msgid "Lesotho"
|
932 |
msgstr ""
|
933 |
|
934 |
-
#: admin/class-settings.php:
|
935 |
msgid "Liberia"
|
936 |
msgstr ""
|
937 |
|
938 |
-
#: admin/class-settings.php:
|
939 |
msgid "Libya"
|
940 |
msgstr ""
|
941 |
|
942 |
-
#: admin/class-settings.php:
|
943 |
msgid "Liechtenstein"
|
944 |
msgstr ""
|
945 |
|
946 |
-
#: admin/class-settings.php:
|
947 |
msgid "Lithuania"
|
948 |
msgstr ""
|
949 |
|
950 |
-
#: admin/class-settings.php:
|
951 |
msgid "Luxembourg"
|
952 |
msgstr ""
|
953 |
|
954 |
-
#: admin/class-settings.php:
|
955 |
msgid "Macau"
|
956 |
msgstr ""
|
957 |
|
958 |
-
#: admin/class-settings.php:
|
959 |
msgid "Macedonia"
|
960 |
msgstr ""
|
961 |
|
962 |
-
#: admin/class-settings.php:
|
963 |
msgid "Madagascar"
|
964 |
msgstr ""
|
965 |
|
966 |
-
#: admin/class-settings.php:
|
967 |
msgid "Malawi"
|
968 |
msgstr ""
|
969 |
|
970 |
-
#: admin/class-settings.php:
|
971 |
msgid "Malaysia "
|
972 |
msgstr ""
|
973 |
|
974 |
-
#: admin/class-settings.php:
|
975 |
msgid "Mali"
|
976 |
msgstr ""
|
977 |
|
978 |
-
#: admin/class-settings.php:
|
979 |
msgid "Marshall Islands"
|
980 |
msgstr ""
|
981 |
|
982 |
-
#: admin/class-settings.php:
|
983 |
msgid "Martinique"
|
984 |
msgstr ""
|
985 |
|
986 |
-
#: admin/class-settings.php:
|
987 |
msgid "Mauritania"
|
988 |
msgstr ""
|
989 |
|
990 |
-
#: admin/class-settings.php:
|
991 |
msgid "Mauritius"
|
992 |
msgstr ""
|
993 |
|
994 |
-
#: admin/class-settings.php:
|
995 |
msgid "Mexico"
|
996 |
msgstr ""
|
997 |
|
998 |
-
#: admin/class-settings.php:
|
999 |
msgid "Micronesia"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
-
#: admin/class-settings.php:
|
1003 |
msgid "Moldova"
|
1004 |
msgstr ""
|
1005 |
|
1006 |
-
#: admin/class-settings.php:
|
1007 |
msgid "Monaco"
|
1008 |
msgstr ""
|
1009 |
|
1010 |
-
#: admin/class-settings.php:
|
1011 |
msgid "Mongolia"
|
1012 |
msgstr ""
|
1013 |
|
1014 |
-
#: admin/class-settings.php:
|
1015 |
msgid "Montenegro"
|
1016 |
msgstr ""
|
1017 |
|
1018 |
-
#: admin/class-settings.php:
|
1019 |
msgid "Montserrat"
|
1020 |
msgstr ""
|
1021 |
|
1022 |
-
#: admin/class-settings.php:
|
1023 |
msgid "Morocco"
|
1024 |
msgstr ""
|
1025 |
|
1026 |
-
#: admin/class-settings.php:
|
1027 |
msgid "Mozambique"
|
1028 |
msgstr ""
|
1029 |
|
1030 |
-
#: admin/class-settings.php:
|
1031 |
msgid "Myanmar"
|
1032 |
msgstr ""
|
1033 |
|
1034 |
-
#: admin/class-settings.php:
|
1035 |
msgid "Namibia"
|
1036 |
msgstr ""
|
1037 |
|
1038 |
-
#: admin/class-settings.php:
|
1039 |
msgid "Nauru"
|
1040 |
msgstr ""
|
1041 |
|
1042 |
-
#: admin/class-settings.php:
|
1043 |
msgid "Nepal"
|
1044 |
msgstr ""
|
1045 |
|
1046 |
-
#: admin/class-settings.php:
|
1047 |
msgid "Netherlands"
|
1048 |
msgstr ""
|
1049 |
|
1050 |
-
#: admin/class-settings.php:
|
1051 |
msgid "Netherlands Antilles"
|
1052 |
msgstr ""
|
1053 |
|
1054 |
-
#: admin/class-settings.php:
|
1055 |
msgid "New Zealand"
|
1056 |
msgstr ""
|
1057 |
|
1058 |
-
#: admin/class-settings.php:
|
1059 |
msgid "Nicaragua"
|
1060 |
msgstr ""
|
1061 |
|
1062 |
-
#: admin/class-settings.php:
|
1063 |
msgid "Niger"
|
1064 |
msgstr ""
|
1065 |
|
1066 |
-
#: admin/class-settings.php:
|
1067 |
msgid "Nigeria"
|
1068 |
msgstr ""
|
1069 |
|
1070 |
-
#: admin/class-settings.php:
|
1071 |
msgid "Niue"
|
1072 |
msgstr ""
|
1073 |
|
1074 |
-
#: admin/class-settings.php:
|
1075 |
msgid "Northern Mariana Islands"
|
1076 |
msgstr ""
|
1077 |
|
1078 |
-
#: admin/class-settings.php:
|
1079 |
msgid "Norway"
|
1080 |
msgstr ""
|
1081 |
|
1082 |
-
#: admin/class-settings.php:
|
1083 |
msgid "Oman"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
-
#: admin/class-settings.php:
|
1087 |
msgid "Pakistan"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
-
#: admin/class-settings.php:
|
1091 |
msgid "Panama"
|
1092 |
msgstr ""
|
1093 |
|
1094 |
-
#: admin/class-settings.php:
|
1095 |
msgid "Papua New Guinea"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
-
#: admin/class-settings.php:
|
1099 |
msgid "Paraguay"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
-
#: admin/class-settings.php:
|
1103 |
msgid "Peru"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
-
#: admin/class-settings.php:
|
1107 |
msgid "Philippines"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
-
#: admin/class-settings.php:
|
1111 |
msgid "Pitcairn Islands"
|
1112 |
msgstr ""
|
1113 |
|
1114 |
-
#: admin/class-settings.php:
|
1115 |
msgid "Poland"
|
1116 |
msgstr ""
|
1117 |
|
1118 |
-
#: admin/class-settings.php:
|
1119 |
msgid "Portugal"
|
1120 |
msgstr ""
|
1121 |
|
1122 |
-
#: admin/class-settings.php:
|
1123 |
msgid "Qatar"
|
1124 |
msgstr ""
|
1125 |
|
1126 |
-
#: admin/class-settings.php:
|
1127 |
msgid "Reunion"
|
1128 |
msgstr ""
|
1129 |
|
1130 |
-
#: admin/class-settings.php:
|
1131 |
msgid "Romania"
|
1132 |
msgstr ""
|
1133 |
|
1134 |
-
#: admin/class-settings.php:
|
1135 |
msgid "Russia"
|
1136 |
msgstr ""
|
1137 |
|
1138 |
-
#: admin/class-settings.php:
|
1139 |
msgid "Rwanda"
|
1140 |
msgstr ""
|
1141 |
|
1142 |
-
#: admin/class-settings.php:
|
1143 |
msgid "Saint Helena"
|
1144 |
msgstr ""
|
1145 |
|
1146 |
-
#: admin/class-settings.php:
|
1147 |
msgid "Saint Kitts and Nevis"
|
1148 |
msgstr ""
|
1149 |
|
1150 |
-
#: admin/class-settings.php:
|
1151 |
msgid "Saint Vincent and the Grenadines"
|
1152 |
msgstr ""
|
1153 |
|
1154 |
-
#: admin/class-settings.php:
|
1155 |
msgid "Saint Lucia"
|
1156 |
msgstr ""
|
1157 |
|
1158 |
-
#: admin/class-settings.php:
|
1159 |
msgid "Samoa"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
-
#: admin/class-settings.php:
|
1163 |
msgid "San Marino"
|
1164 |
msgstr ""
|
1165 |
|
1166 |
-
#: admin/class-settings.php:
|
1167 |
msgid "São Tomé and Príncipe"
|
1168 |
msgstr ""
|
1169 |
|
1170 |
-
#: admin/class-settings.php:
|
1171 |
msgid "Saudi Arabia"
|
1172 |
msgstr ""
|
1173 |
|
1174 |
-
#: admin/class-settings.php:
|
1175 |
msgid "Senegal"
|
1176 |
msgstr ""
|
1177 |
|
1178 |
-
#: admin/class-settings.php:
|
1179 |
msgid "Serbia"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
-
#: admin/class-settings.php:
|
1183 |
msgid "Seychelles"
|
1184 |
msgstr ""
|
1185 |
|
1186 |
-
#: admin/class-settings.php:
|
1187 |
msgid "Sierra Leone"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
-
#: admin/class-settings.php:
|
1191 |
msgid "Singapore"
|
1192 |
msgstr ""
|
1193 |
|
1194 |
-
#: admin/class-settings.php:
|
1195 |
msgid "Slovakia"
|
1196 |
msgstr ""
|
1197 |
|
1198 |
-
#: admin/class-settings.php:
|
1199 |
msgid "Solomon Islands"
|
1200 |
msgstr ""
|
1201 |
|
1202 |
-
#: admin/class-settings.php:
|
1203 |
msgid "Somalia"
|
1204 |
msgstr ""
|
1205 |
|
1206 |
-
#: admin/class-settings.php:
|
1207 |
msgid "South Africa"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
-
#: admin/class-settings.php:
|
1211 |
msgid "South Korea"
|
1212 |
msgstr ""
|
1213 |
|
1214 |
-
#: admin/class-settings.php:
|
1215 |
msgid "Spain"
|
1216 |
msgstr ""
|
1217 |
|
1218 |
-
#: admin/class-settings.php:
|
1219 |
msgid "Sri Lanka"
|
1220 |
msgstr ""
|
1221 |
|
1222 |
-
#: admin/class-settings.php:
|
1223 |
msgid "Sudan"
|
1224 |
msgstr ""
|
1225 |
|
1226 |
-
#: admin/class-settings.php:
|
1227 |
msgid "Swaziland"
|
1228 |
msgstr ""
|
1229 |
|
1230 |
-
#: admin/class-settings.php:
|
1231 |
msgid "Sweden"
|
1232 |
msgstr ""
|
1233 |
|
1234 |
-
#: admin/class-settings.php:
|
1235 |
msgid "Switzerland"
|
1236 |
msgstr ""
|
1237 |
|
1238 |
-
#: admin/class-settings.php:
|
1239 |
msgid "Syria"
|
1240 |
msgstr ""
|
1241 |
|
1242 |
-
#: admin/class-settings.php:
|
1243 |
msgid "Taiwan"
|
1244 |
msgstr ""
|
1245 |
|
1246 |
-
#: admin/class-settings.php:
|
1247 |
msgid "Tajikistan"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
-
#: admin/class-settings.php:
|
1251 |
msgid "Tanzania"
|
1252 |
msgstr ""
|
1253 |
|
1254 |
-
#: admin/class-settings.php:
|
1255 |
msgid "Thailand"
|
1256 |
msgstr ""
|
1257 |
|
1258 |
-
#: admin/class-settings.php:
|
1259 |
msgid "Timor-Leste"
|
1260 |
msgstr ""
|
1261 |
|
1262 |
-
#: admin/class-settings.php:
|
1263 |
msgid "Tokelau"
|
1264 |
msgstr ""
|
1265 |
|
1266 |
-
#: admin/class-settings.php:
|
1267 |
msgid "Togo"
|
1268 |
msgstr ""
|
1269 |
|
1270 |
-
#: admin/class-settings.php:
|
1271 |
msgid "Tonga"
|
1272 |
msgstr ""
|
1273 |
|
1274 |
-
#: admin/class-settings.php:
|
1275 |
msgid "Trinidad and Tobago"
|
1276 |
msgstr ""
|
1277 |
|
1278 |
-
#: admin/class-settings.php:
|
1279 |
msgid "Tunisia"
|
1280 |
msgstr ""
|
1281 |
|
1282 |
-
#: admin/class-settings.php:
|
1283 |
msgid "Turkey"
|
1284 |
msgstr ""
|
1285 |
|
1286 |
-
#: admin/class-settings.php:
|
1287 |
msgid "Turkmenistan"
|
1288 |
msgstr ""
|
1289 |
|
1290 |
-
#: admin/class-settings.php:
|
1291 |
msgid "Tuvalu"
|
1292 |
msgstr ""
|
1293 |
|
1294 |
-
#: admin/class-settings.php:
|
1295 |
msgid "Uganda"
|
1296 |
msgstr ""
|
1297 |
|
1298 |
-
#: admin/class-settings.php:
|
1299 |
msgid "Ukraine"
|
1300 |
msgstr ""
|
1301 |
|
1302 |
-
#: admin/class-settings.php:
|
1303 |
msgid "United Arab Emirates"
|
1304 |
msgstr ""
|
1305 |
|
1306 |
-
#: admin/class-settings.php:
|
1307 |
msgid "United Kingdom"
|
1308 |
msgstr ""
|
1309 |
|
1310 |
-
#: admin/class-settings.php:
|
1311 |
msgid "United States"
|
1312 |
msgstr ""
|
1313 |
|
1314 |
-
#: admin/class-settings.php:
|
1315 |
msgid "Uruguay"
|
1316 |
msgstr ""
|
1317 |
|
1318 |
-
#: admin/class-settings.php:
|
1319 |
msgid "Uzbekistan"
|
1320 |
msgstr ""
|
1321 |
|
1322 |
-
#: admin/class-settings.php:
|
1323 |
msgid "Wallis Futuna"
|
1324 |
msgstr ""
|
1325 |
|
1326 |
-
#: admin/class-settings.php:
|
1327 |
msgid "Venezuela"
|
1328 |
msgstr ""
|
1329 |
|
1330 |
-
#: admin/class-settings.php:
|
1331 |
msgid "Vietnam"
|
1332 |
msgstr ""
|
1333 |
|
1334 |
-
#: admin/class-settings.php:
|
1335 |
msgid "Yemen"
|
1336 |
msgstr ""
|
1337 |
|
1338 |
-
#: admin/class-settings.php:
|
1339 |
msgid "Zambia"
|
1340 |
msgstr ""
|
1341 |
|
1342 |
-
#: admin/class-settings.php:
|
1343 |
msgid "Zimbabwe"
|
1344 |
msgstr ""
|
1345 |
|
1346 |
-
#: admin/class-settings.php:
|
1347 |
msgid "World view"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
-
#: admin/class-settings.php:
|
1351 |
-
#: inc/wpsl-functions.php:
|
1352 |
msgid "Default"
|
1353 |
msgstr ""
|
1354 |
|
1355 |
-
#: admin/class-settings.php:
|
1356 |
msgid "Roadmap"
|
1357 |
msgstr ""
|
1358 |
|
1359 |
-
#: admin/class-settings.php:
|
1360 |
msgid "Start location marker"
|
1361 |
msgstr ""
|
1362 |
|
1363 |
-
#: admin/class-settings.php:
|
1364 |
msgid "Store location marker"
|
1365 |
msgstr ""
|
1366 |
|
1367 |
-
#: admin/class-settings.php:
|
1368 |
msgid "Textarea"
|
1369 |
msgstr ""
|
1370 |
|
1371 |
-
#: admin/class-settings.php:
|
1372 |
msgid "Dropdowns (recommended)"
|
1373 |
msgstr ""
|
1374 |
|
1375 |
-
#: admin/class-settings.php:
|
1376 |
msgid "Bounces up and down"
|
1377 |
msgstr ""
|
1378 |
|
1379 |
-
#: admin/class-settings.php:
|
1380 |
msgid "Will open the info window"
|
1381 |
msgstr ""
|
1382 |
|
1383 |
-
#: admin/class-settings.php:
|
1384 |
msgid "Does not respond"
|
1385 |
msgstr ""
|
1386 |
|
1387 |
-
#: admin/class-settings.php:
|
1388 |
msgid "In the store listings"
|
1389 |
msgstr ""
|
1390 |
|
1391 |
-
#: admin/class-settings.php:
|
1392 |
msgid "In the info window on the map"
|
1393 |
msgstr ""
|
1394 |
|
1395 |
-
#: admin/class-settings.php:
|
1396 |
msgid "12 Hours"
|
1397 |
msgstr ""
|
1398 |
|
1399 |
-
#: admin/class-settings.php:
|
1400 |
msgid "24 Hours"
|
1401 |
msgstr ""
|
1402 |
|
@@ -1404,111 +1401,111 @@ msgstr ""
|
|
1404 |
msgid "Store Locator Manager"
|
1405 |
msgstr ""
|
1406 |
|
1407 |
-
#: admin/templates/map-settings.php:
|
1408 |
msgid "Google Maps API"
|
1409 |
msgstr ""
|
1410 |
|
1411 |
-
#: admin/templates/map-settings.php:
|
1412 |
msgid "API key"
|
1413 |
msgstr ""
|
1414 |
|
1415 |
-
#: admin/templates/map-settings.php:
|
1416 |
#, php-format
|
1417 |
msgid ""
|
1418 |
"A valid %sAPI key%s allows you to monitor the API usage and is required if "
|
1419 |
"you need to purchase additional quota."
|
1420 |
msgstr ""
|
1421 |
|
1422 |
-
#: admin/templates/map-settings.php:
|
1423 |
msgid "Optional"
|
1424 |
msgstr ""
|
1425 |
|
1426 |
-
#: admin/templates/map-settings.php:
|
1427 |
msgid "Map language"
|
1428 |
msgstr ""
|
1429 |
|
1430 |
-
#: admin/templates/map-settings.php:
|
1431 |
msgid "If no map language is selected the browser's prefered language is used."
|
1432 |
msgstr ""
|
1433 |
|
1434 |
-
#: admin/templates/map-settings.php:
|
1435 |
msgid "Map region"
|
1436 |
msgstr ""
|
1437 |
|
1438 |
-
#: admin/templates/map-settings.php:
|
1439 |
#, php-format
|
1440 |
msgid ""
|
1441 |
"This will bias the geocoding results towards the selected region. %s If no "
|
1442 |
"region is selected the bias is set to the United States."
|
1443 |
msgstr ""
|
1444 |
|
1445 |
-
#: admin/templates/map-settings.php:
|
1446 |
-
#: admin/templates/map-settings.php:
|
1447 |
-
#: admin/templates/map-settings.php:
|
1448 |
-
#: admin/templates/map-settings.php:
|
1449 |
-
#: admin/templates/map-settings.php:
|
1450 |
msgid "Save Changes"
|
1451 |
msgstr ""
|
1452 |
|
1453 |
-
#: admin/templates/map-settings.php:
|
1454 |
-
#: admin/templates/map-settings.php:
|
1455 |
-
#: frontend/templates/store-listings-below.php:43 inc/wpsl-functions.php:
|
1456 |
msgid "Search"
|
1457 |
msgstr ""
|
1458 |
|
1459 |
-
#: admin/templates/map-settings.php:
|
1460 |
msgid "Show the max results dropdown?"
|
1461 |
msgstr ""
|
1462 |
|
1463 |
-
#: admin/templates/map-settings.php:
|
1464 |
msgid "Show the search radius dropdown?"
|
1465 |
msgstr ""
|
1466 |
|
1467 |
-
#: admin/templates/map-settings.php:
|
1468 |
msgid "Show the category dropdown?"
|
1469 |
msgstr ""
|
1470 |
|
1471 |
-
#: admin/templates/map-settings.php:
|
1472 |
msgid "Distance unit"
|
1473 |
msgstr ""
|
1474 |
|
1475 |
-
#: admin/templates/map-settings.php:
|
1476 |
msgid "km"
|
1477 |
msgstr ""
|
1478 |
|
1479 |
-
#: admin/templates/map-settings.php:
|
1480 |
msgid "mi"
|
1481 |
msgstr ""
|
1482 |
|
1483 |
-
#: admin/templates/map-settings.php:
|
1484 |
msgid "Max search results"
|
1485 |
msgstr ""
|
1486 |
|
1487 |
-
#: admin/templates/map-settings.php:
|
1488 |
msgid "The default value is set between the [ ]."
|
1489 |
msgstr ""
|
1490 |
|
1491 |
-
#: admin/templates/map-settings.php:
|
1492 |
msgid "Search radius options"
|
1493 |
msgstr ""
|
1494 |
|
1495 |
-
#: admin/templates/map-settings.php:
|
1496 |
msgid "Map"
|
1497 |
msgstr ""
|
1498 |
|
1499 |
-
#: admin/templates/map-settings.php:
|
1500 |
msgid "Attempt to auto-locate the user"
|
1501 |
msgstr ""
|
1502 |
|
1503 |
-
#: admin/templates/map-settings.php:
|
1504 |
msgid "Load locations on page load"
|
1505 |
msgstr ""
|
1506 |
|
1507 |
-
#: admin/templates/map-settings.php:
|
1508 |
msgid "Number of locations to show"
|
1509 |
msgstr ""
|
1510 |
|
1511 |
-
#: admin/templates/map-settings.php:
|
1512 |
#, php-format
|
1513 |
msgid ""
|
1514 |
"Although the location data is cached after the first load, a lower number "
|
@@ -1516,11 +1513,11 @@ msgid ""
|
|
1516 |
"or set to 0, then all locations are loaded."
|
1517 |
msgstr ""
|
1518 |
|
1519 |
-
#: admin/templates/map-settings.php:
|
1520 |
msgid "Start point"
|
1521 |
msgstr ""
|
1522 |
|
1523 |
-
#: admin/templates/map-settings.php:
|
1524 |
#, php-format
|
1525 |
msgid ""
|
1526 |
"%sRequired field.%s %s If auto-locating the user is disabled or fails, the "
|
@@ -1528,15 +1525,15 @@ msgid ""
|
|
1528 |
"point for the user."
|
1529 |
msgstr ""
|
1530 |
|
1531 |
-
#: admin/templates/map-settings.php:
|
1532 |
msgid "Initial zoom level"
|
1533 |
msgstr ""
|
1534 |
|
1535 |
-
#: admin/templates/map-settings.php:
|
1536 |
msgid "Max auto zoom level"
|
1537 |
msgstr ""
|
1538 |
|
1539 |
-
#: admin/templates/map-settings.php:
|
1540 |
#, php-format
|
1541 |
msgid ""
|
1542 |
"This value sets the zoom level for the \"Zoom here\" link in the info "
|
@@ -1544,12 +1541,8 @@ msgid ""
|
|
1544 |
"is changed to make all the markers fit on the screen."
|
1545 |
msgstr ""
|
1546 |
|
1547 |
-
#: admin/templates/map-settings.php:111
|
1548 |
-
msgid "Show the street view controls?"
|
1549 |
-
msgstr ""
|
1550 |
-
|
1551 |
#: admin/templates/map-settings.php:115
|
1552 |
-
msgid "Show the
|
1553 |
msgstr ""
|
1554 |
|
1555 |
#: admin/templates/map-settings.php:119
|
@@ -1573,32 +1566,20 @@ msgid "Right"
|
|
1573 |
msgstr ""
|
1574 |
|
1575 |
#: admin/templates/map-settings.php:136
|
1576 |
-
msgid "Zoom control style"
|
1577 |
-
msgstr ""
|
1578 |
-
|
1579 |
-
#: admin/templates/map-settings.php:139
|
1580 |
-
msgid "Small"
|
1581 |
-
msgstr ""
|
1582 |
-
|
1583 |
-
#: admin/templates/map-settings.php:141
|
1584 |
-
msgid "Large"
|
1585 |
-
msgstr ""
|
1586 |
-
|
1587 |
-
#: admin/templates/map-settings.php:145
|
1588 |
msgid "Map type"
|
1589 |
msgstr ""
|
1590 |
|
1591 |
-
#: admin/templates/map-settings.php:
|
1592 |
msgid "Map style"
|
1593 |
msgstr ""
|
1594 |
|
1595 |
-
#: admin/templates/map-settings.php:
|
1596 |
msgid ""
|
1597 |
"Custom map styles only work if the map type is set to \"Roadmap\" or "
|
1598 |
"\"Terrain\"."
|
1599 |
msgstr ""
|
1600 |
|
1601 |
-
#: admin/templates/map-settings.php:
|
1602 |
#, php-format
|
1603 |
msgid ""
|
1604 |
"You can use existing map styles from %sSnazzy Maps%s or %sMap Stylr%s and "
|
@@ -1606,81 +1587,81 @@ msgid ""
|
|
1606 |
"through the %sMap Style Editor%s or %sStyled Maps Wizard%s."
|
1607 |
msgstr ""
|
1608 |
|
1609 |
-
#: admin/templates/map-settings.php:
|
1610 |
#, php-format
|
1611 |
msgid ""
|
1612 |
"If you like to write the style code yourself, then you can find the "
|
1613 |
"documentation from Google %shere%s."
|
1614 |
msgstr ""
|
1615 |
|
1616 |
-
#: admin/templates/map-settings.php:
|
1617 |
msgid "Preview Map Style"
|
1618 |
msgstr ""
|
1619 |
|
1620 |
-
#: admin/templates/map-settings.php:
|
1621 |
msgid "Show credits?"
|
1622 |
msgstr ""
|
1623 |
|
1624 |
-
#: admin/templates/map-settings.php:
|
1625 |
msgid ""
|
1626 |
"This will place a \"Search provided by WP Store Locator\" backlink below the "
|
1627 |
"map."
|
1628 |
msgstr ""
|
1629 |
|
1630 |
-
#: admin/templates/map-settings.php:
|
1631 |
msgid "User Experience"
|
1632 |
msgstr ""
|
1633 |
|
1634 |
-
#: admin/templates/map-settings.php:
|
1635 |
msgid "Store Locator height"
|
1636 |
msgstr ""
|
1637 |
|
1638 |
-
#: admin/templates/map-settings.php:
|
1639 |
msgid "Max width for the info window content"
|
1640 |
msgstr ""
|
1641 |
|
1642 |
-
#: admin/templates/map-settings.php:
|
1643 |
msgid "Search field width"
|
1644 |
msgstr ""
|
1645 |
|
1646 |
-
#: admin/templates/map-settings.php:
|
1647 |
msgid "Search and radius label width"
|
1648 |
msgstr ""
|
1649 |
|
1650 |
-
#: admin/templates/map-settings.php:
|
1651 |
msgid "Store Locator template"
|
1652 |
msgstr ""
|
1653 |
|
1654 |
-
#: admin/templates/map-settings.php:
|
1655 |
#, php-format
|
1656 |
msgid ""
|
1657 |
"The selected template is used with the [wpsl] shortcode. %s You can add a "
|
1658 |
"custom template with the %swpsl_templates%s filter."
|
1659 |
msgstr ""
|
1660 |
|
1661 |
-
#: admin/templates/map-settings.php:
|
1662 |
msgid "Hide the scrollbar?"
|
1663 |
msgstr ""
|
1664 |
|
1665 |
-
#: admin/templates/map-settings.php:
|
1666 |
msgid "Open links in a new window?"
|
1667 |
msgstr ""
|
1668 |
|
1669 |
-
#: admin/templates/map-settings.php:
|
1670 |
msgid "Show a reset map button?"
|
1671 |
msgstr ""
|
1672 |
|
1673 |
-
#: admin/templates/map-settings.php:
|
1674 |
msgid ""
|
1675 |
"When a user clicks on \"Directions\", open a new window, and show the route "
|
1676 |
"on google.com/maps ?"
|
1677 |
msgstr ""
|
1678 |
|
1679 |
-
#: admin/templates/map-settings.php:
|
1680 |
msgid "Show a \"More info\" link in the store listings?"
|
1681 |
msgstr ""
|
1682 |
|
1683 |
-
#: admin/templates/map-settings.php:
|
1684 |
#, php-format
|
1685 |
msgid ""
|
1686 |
"This places a \"More Info\" link below the address and will show the phone, "
|
@@ -1689,32 +1670,32 @@ msgid ""
|
|
1689 |
"follow the instructions on %sthis%s page."
|
1690 |
msgstr ""
|
1691 |
|
1692 |
-
#: admin/templates/map-settings.php:
|
1693 |
msgid "Where do you want to show the \"More info\" details?"
|
1694 |
msgstr ""
|
1695 |
|
1696 |
-
#: admin/templates/map-settings.php:
|
1697 |
msgid "Make the store name clickable if a store URL exists?"
|
1698 |
msgstr ""
|
1699 |
|
1700 |
-
#: admin/templates/map-settings.php:
|
1701 |
#, php-format
|
1702 |
msgid ""
|
1703 |
"If %spermalinks%s are enabled, the store name will always link to the store "
|
1704 |
"page."
|
1705 |
msgstr ""
|
1706 |
|
1707 |
-
#: admin/templates/map-settings.php:
|
1708 |
msgid "Make the phone number clickable on mobile devices?"
|
1709 |
msgstr ""
|
1710 |
|
1711 |
-
#: admin/templates/map-settings.php:
|
1712 |
msgid ""
|
1713 |
"If street view is available for the current location, then show a \"Street "
|
1714 |
"view\" link in the info window?"
|
1715 |
msgstr ""
|
1716 |
|
1717 |
-
#: admin/templates/map-settings.php:
|
1718 |
#, php-format
|
1719 |
msgid ""
|
1720 |
"Enabling this option can sometimes result in a small delay in the opening of "
|
@@ -1722,22 +1703,22 @@ msgid ""
|
|
1722 |
"Maps to check if street view is available for the current location."
|
1723 |
msgstr ""
|
1724 |
|
1725 |
-
#: admin/templates/map-settings.php:
|
1726 |
msgid "Show a \"Zoom here\" link in the info window?"
|
1727 |
msgstr ""
|
1728 |
|
1729 |
-
#: admin/templates/map-settings.php:
|
1730 |
#, php-format
|
1731 |
msgid ""
|
1732 |
"Clicking this link will make the map zoom in to the %s max auto zoom level "
|
1733 |
"%s."
|
1734 |
msgstr ""
|
1735 |
|
1736 |
-
#: admin/templates/map-settings.php:
|
1737 |
msgid "On page load move the mouse cursor to the search field?"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
-
#: admin/templates/map-settings.php:
|
1741 |
#, php-format
|
1742 |
msgid ""
|
1743 |
"If the store locator is not placed at the top of the page, enabling this "
|
@@ -1745,11 +1726,11 @@ msgid ""
|
|
1745 |
"on mobile devices.%s"
|
1746 |
msgstr ""
|
1747 |
|
1748 |
-
#: admin/templates/map-settings.php:
|
1749 |
msgid "Use the default style for the info window?"
|
1750 |
msgstr ""
|
1751 |
|
1752 |
-
#: admin/templates/map-settings.php:
|
1753 |
#, php-format
|
1754 |
msgid ""
|
1755 |
"If the default style is disabled the %sInfoBox%s library will be used "
|
@@ -1757,15 +1738,15 @@ msgid ""
|
|
1757 |
"window through the .wpsl-infobox css class."
|
1758 |
msgstr ""
|
1759 |
|
1760 |
-
#: admin/templates/map-settings.php:
|
1761 |
msgid "Hide the distance in the search results?"
|
1762 |
msgstr ""
|
1763 |
|
1764 |
-
#: admin/templates/map-settings.php:
|
1765 |
msgid "If a user hovers over the search results the store marker"
|
1766 |
msgstr ""
|
1767 |
|
1768 |
-
#: admin/templates/map-settings.php:
|
1769 |
#, php-format
|
1770 |
msgid ""
|
1771 |
"If marker clusters are enabled this option will not work as expected as long "
|
@@ -1775,256 +1756,268 @@ msgid ""
|
|
1775 |
"it won't be clear to which marker it belongs to. "
|
1776 |
msgstr ""
|
1777 |
|
1778 |
-
#: admin/templates/map-settings.php:
|
1779 |
msgid "Address format"
|
1780 |
msgstr ""
|
1781 |
|
1782 |
-
#: admin/templates/map-settings.php:
|
1783 |
#, php-format
|
1784 |
msgid ""
|
1785 |
"You can add custom address formats with the %swpsl_address_formats%s filter."
|
1786 |
msgstr ""
|
1787 |
|
1788 |
-
#: admin/templates/map-settings.php:
|
1789 |
msgid "Markers"
|
1790 |
msgstr ""
|
1791 |
|
1792 |
-
#: admin/templates/map-settings.php:
|
1793 |
msgid "Enable marker clusters?"
|
1794 |
msgstr ""
|
1795 |
|
1796 |
-
#: admin/templates/map-settings.php:
|
1797 |
msgid "Recommended for maps with a large amount of markers."
|
1798 |
msgstr ""
|
1799 |
|
1800 |
-
#: admin/templates/map-settings.php:
|
1801 |
msgid "Max zoom level"
|
1802 |
msgstr ""
|
1803 |
|
1804 |
-
#: admin/templates/map-settings.php:
|
1805 |
msgid ""
|
1806 |
"If this zoom level is reached or exceeded, then all markers are moved out of "
|
1807 |
"the marker cluster and shown as individual markers."
|
1808 |
msgstr ""
|
1809 |
|
1810 |
-
#: admin/templates/map-settings.php:
|
1811 |
msgid "Cluster size"
|
1812 |
msgstr ""
|
1813 |
|
1814 |
-
#: admin/templates/map-settings.php:
|
1815 |
#, php-format
|
1816 |
msgid ""
|
1817 |
"The grid size of a cluster in pixels. %s A larger number will result in a "
|
1818 |
"lower amount of clusters and also make the algorithm run faster."
|
1819 |
msgstr ""
|
1820 |
|
1821 |
-
#: admin/templates/map-settings.php:
|
1822 |
msgid "Store Editor"
|
1823 |
msgstr ""
|
1824 |
|
1825 |
-
#: admin/templates/map-settings.php:
|
1826 |
msgid "Default country"
|
1827 |
msgstr ""
|
1828 |
|
1829 |
-
#: admin/templates/map-settings.php:
|
1830 |
msgid "Map type for the location preview"
|
1831 |
msgstr ""
|
1832 |
|
1833 |
-
#: admin/templates/map-settings.php:
|
1834 |
msgid "Hide the opening hours?"
|
1835 |
msgstr ""
|
1836 |
|
1837 |
-
#: admin/templates/map-settings.php:
|
1838 |
msgid "Opening hours input type"
|
1839 |
msgstr ""
|
1840 |
|
1841 |
-
#: admin/templates/map-settings.php:
|
1842 |
#, php-format
|
1843 |
msgid ""
|
1844 |
"Opening hours created in version 1.x %sare not%s automatically converted to "
|
1845 |
"the new dropdown format."
|
1846 |
msgstr ""
|
1847 |
|
1848 |
-
#: admin/templates/map-settings.php:
|
1849 |
msgid "The default opening hours"
|
1850 |
msgstr ""
|
1851 |
|
1852 |
-
#: admin/templates/map-settings.php:
|
1853 |
msgid "Opening hours format"
|
1854 |
msgstr ""
|
1855 |
|
1856 |
-
#: admin/templates/map-settings.php:
|
1857 |
msgid ""
|
1858 |
"The default country and opening hours are only used when a new store is "
|
1859 |
"created. So changing the default values will have no effect on existing "
|
1860 |
"store locations."
|
1861 |
msgstr ""
|
1862 |
|
1863 |
-
#: admin/templates/map-settings.php:
|
1864 |
msgid "Permalink"
|
1865 |
msgstr ""
|
1866 |
|
1867 |
-
#: admin/templates/map-settings.php:
|
1868 |
msgid "Enable permalink?"
|
1869 |
msgstr ""
|
1870 |
|
1871 |
-
#: admin/templates/map-settings.php:
|
1872 |
msgid "Store slug"
|
1873 |
msgstr ""
|
1874 |
|
1875 |
-
#: admin/templates/map-settings.php:
|
1876 |
msgid "Category slug"
|
1877 |
msgstr ""
|
1878 |
|
1879 |
-
#: admin/templates/map-settings.php:
|
1880 |
#, php-format
|
1881 |
msgid "The permalink slugs %smust be unique%s on your site."
|
1882 |
msgstr ""
|
1883 |
|
1884 |
-
#: admin/templates/map-settings.php:
|
1885 |
msgid "Labels"
|
1886 |
msgstr ""
|
1887 |
|
1888 |
-
#: admin/templates/map-settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1889 |
#: frontend/templates/default.php:11
|
1890 |
-
#: frontend/templates/store-listings-below.php:11 inc/wpsl-functions.php:
|
1891 |
msgid "Your location"
|
1892 |
msgstr ""
|
1893 |
|
1894 |
-
#: admin/templates/map-settings.php:
|
1895 |
#: frontend/templates/default.php:20
|
1896 |
-
#: frontend/templates/store-listings-below.php:20 inc/wpsl-functions.php:
|
1897 |
msgid "Search radius"
|
1898 |
msgstr ""
|
1899 |
|
1900 |
-
#: admin/templates/map-settings.php:
|
1901 |
-
#: frontend/class-frontend.php:
|
1902 |
msgid "No results found"
|
1903 |
msgstr ""
|
1904 |
|
1905 |
-
#: admin/templates/map-settings.php:
|
1906 |
msgid "Searching (preloader text)"
|
1907 |
msgstr ""
|
1908 |
|
1909 |
-
#: admin/templates/map-settings.php:
|
1910 |
-
#: inc/wpsl-functions.php:
|
1911 |
msgid "Searching..."
|
1912 |
msgstr ""
|
1913 |
|
1914 |
-
#: admin/templates/map-settings.php:
|
1915 |
#: frontend/templates/default.php:29
|
1916 |
-
#: frontend/templates/store-listings-below.php:29 inc/wpsl-functions.php:
|
1917 |
msgid "Results"
|
1918 |
msgstr ""
|
1919 |
|
1920 |
-
#: admin/templates/map-settings.php:
|
1921 |
-
#: inc/wpsl-functions.php:
|
1922 |
msgid "Category filter"
|
1923 |
msgstr ""
|
1924 |
|
1925 |
-
#: admin/templates/map-settings.php:
|
1926 |
msgid "Category"
|
1927 |
msgstr ""
|
1928 |
|
1929 |
-
#: admin/templates/map-settings.php:
|
1930 |
-
#: admin/upgrade.php:66 frontend/class-frontend.php:
|
1931 |
#: frontend/underscore-functions.php:114 frontend/underscore-functions.php:141
|
1932 |
-
#: inc/wpsl-functions.php:
|
1933 |
msgid "More info"
|
1934 |
msgstr ""
|
1935 |
|
1936 |
-
#: admin/templates/map-settings.php:
|
1937 |
-
#: frontend/class-frontend.php:
|
1938 |
-
#: frontend/underscore-functions.php:121 inc/wpsl-functions.php:
|
1939 |
msgid "Phone"
|
1940 |
msgstr ""
|
1941 |
|
1942 |
-
#: admin/templates/map-settings.php:
|
1943 |
-
#: frontend/class-frontend.php:
|
1944 |
msgid "Start location"
|
1945 |
msgstr ""
|
1946 |
|
1947 |
-
#: admin/templates/map-settings.php:
|
1948 |
msgid "Get directions"
|
1949 |
msgstr ""
|
1950 |
|
1951 |
-
#: admin/templates/map-settings.php:
|
1952 |
-
#: inc/wpsl-functions.php:
|
1953 |
msgid "Directions"
|
1954 |
msgstr ""
|
1955 |
|
1956 |
-
#: admin/templates/map-settings.php:
|
1957 |
msgid "No directions found"
|
1958 |
msgstr ""
|
1959 |
|
1960 |
-
#: admin/templates/map-settings.php:
|
1961 |
-
#: frontend/class-frontend.php:
|
1962 |
msgid "No route could be found between the origin and destination"
|
1963 |
msgstr ""
|
1964 |
|
1965 |
-
#: admin/templates/map-settings.php:
|
1966 |
-
#: admin/upgrade.php:87 frontend/class-frontend.php:
|
1967 |
-
#: inc/wpsl-functions.php:
|
1968 |
msgid "Back"
|
1969 |
msgstr ""
|
1970 |
|
1971 |
-
#: admin/templates/map-settings.php:
|
1972 |
-
#: admin/upgrade.php:155 frontend/class-frontend.php:
|
1973 |
-
#: inc/wpsl-functions.php:
|
1974 |
msgid "Street view"
|
1975 |
msgstr ""
|
1976 |
|
1977 |
-
#: admin/templates/map-settings.php:
|
1978 |
-
#: admin/upgrade.php:159 frontend/class-frontend.php:
|
1979 |
-
#: inc/wpsl-functions.php:
|
1980 |
msgid "Zoom here"
|
1981 |
msgstr ""
|
1982 |
|
1983 |
-
#: admin/templates/map-settings.php:
|
1984 |
msgid "General error"
|
1985 |
msgstr ""
|
1986 |
|
1987 |
-
#: admin/templates/map-settings.php:
|
1988 |
-
#: inc/wpsl-functions.php:
|
1989 |
msgid "Something went wrong, please try again!"
|
1990 |
msgstr ""
|
1991 |
|
1992 |
-
#: admin/templates/map-settings.php:
|
1993 |
msgid "Query limit error"
|
1994 |
msgstr ""
|
1995 |
|
1996 |
-
#: admin/templates/map-settings.php:
|
1997 |
#, php-format
|
1998 |
msgid ""
|
1999 |
"You can raise the %susage limit%s by obtaining an API %skey%s, and fill in "
|
2000 |
"the \"API key\" field at the top of this page."
|
2001 |
msgstr ""
|
2002 |
|
2003 |
-
#: admin/templates/map-settings.php:
|
2004 |
-
#: inc/wpsl-functions.php:
|
2005 |
msgid "API usage limit reached"
|
2006 |
msgstr ""
|
2007 |
|
2008 |
-
#: admin/templates/map-settings.php:
|
2009 |
msgid "Tools"
|
2010 |
msgstr ""
|
2011 |
|
2012 |
-
#: admin/templates/map-settings.php:
|
2013 |
msgid "Enable store locator debug?"
|
2014 |
msgstr ""
|
2015 |
|
2016 |
-
#: admin/templates/map-settings.php:
|
2017 |
#, php-format
|
2018 |
msgid ""
|
2019 |
"This disables the WPSL transient cache. %sThe transient cache is only used "
|
2020 |
"if the %sLoad locations on page load%s option is enabled."
|
2021 |
msgstr ""
|
2022 |
|
2023 |
-
#: admin/templates/map-settings.php:
|
2024 |
msgid "WPSL transients"
|
2025 |
msgstr ""
|
2026 |
|
2027 |
-
#: admin/templates/map-settings.php:
|
2028 |
msgid "Clear store locator transient cache"
|
2029 |
msgstr ""
|
2030 |
|
@@ -2036,22 +2029,22 @@ msgstr ""
|
|
2036 |
msgid "Reset"
|
2037 |
msgstr ""
|
2038 |
|
2039 |
-
#: admin/upgrade.php:186 inc/wpsl-functions.php:
|
2040 |
msgid "stores"
|
2041 |
msgstr ""
|
2042 |
|
2043 |
-
#: admin/upgrade.php:190 inc/wpsl-functions.php:
|
2044 |
msgid "store-category"
|
2045 |
msgstr ""
|
2046 |
|
2047 |
-
#: admin/upgrade.php:
|
2048 |
#, php-format
|
2049 |
msgid ""
|
2050 |
"Because you updated WP Store Locator from version 1.x, the %s current store "
|
2051 |
"locations need to be %sconverted%s to custom post types."
|
2052 |
msgstr ""
|
2053 |
|
2054 |
-
#: admin/upgrade.php:
|
2055 |
#, php-format
|
2056 |
msgid ""
|
2057 |
"The script converting the locations timed out. %s You can click the \"Start "
|
@@ -2062,56 +2055,56 @@ msgid ""
|
|
2062 |
"but if you are reading this then that failed."
|
2063 |
msgstr ""
|
2064 |
|
2065 |
-
#: admin/upgrade.php:
|
2066 |
msgid "Store locations to convert:"
|
2067 |
msgstr ""
|
2068 |
|
2069 |
-
#: admin/upgrade.php:
|
2070 |
msgid "Start Converting"
|
2071 |
msgstr ""
|
2072 |
|
2073 |
-
#: admin/upgrade.php:
|
2074 |
#, php-format
|
2075 |
msgid ""
|
2076 |
"All the store locations are now converted to custom post types. %s You can "
|
2077 |
"view them on the %sAll Stores%s page."
|
2078 |
msgstr ""
|
2079 |
|
2080 |
-
#: frontend/class-frontend.php:
|
2081 |
msgid ""
|
2082 |
"If you use the [wpsl_address] shortcode outside a store page you need to set "
|
2083 |
"the ID attribute."
|
2084 |
msgstr ""
|
2085 |
|
2086 |
-
#: frontend/class-frontend.php:
|
2087 |
msgid ""
|
2088 |
"If you use the [wpsl_hours] shortcode outside a store page you need to set "
|
2089 |
"the ID attribute."
|
2090 |
msgstr ""
|
2091 |
|
2092 |
-
#: frontend/class-frontend.php:
|
2093 |
msgid ""
|
2094 |
"If you use the [wpsl_map] shortcode outside a store page you need to set the "
|
2095 |
"ID attribute."
|
2096 |
msgstr ""
|
2097 |
|
2098 |
-
#: frontend/class-frontend.php:
|
2099 |
msgid "Any"
|
2100 |
msgstr ""
|
2101 |
|
2102 |
-
#: frontend/class-frontend.php:
|
2103 |
msgid "The application does not have permission to use the Geolocation API."
|
2104 |
msgstr ""
|
2105 |
|
2106 |
-
#: frontend/class-frontend.php:
|
2107 |
msgid "Location information is unavailable."
|
2108 |
msgstr ""
|
2109 |
|
2110 |
-
#: frontend/class-frontend.php:
|
2111 |
msgid "The geolocation request timed out."
|
2112 |
msgstr ""
|
2113 |
|
2114 |
-
#: frontend/class-frontend.php:
|
2115 |
msgid "An unknown error occurred."
|
2116 |
msgstr ""
|
2117 |
|
@@ -2221,75 +2214,75 @@ msgstr ""
|
|
2221 |
msgid "Zip"
|
2222 |
msgstr ""
|
2223 |
|
2224 |
-
#: inc/wpsl-functions.php:
|
2225 |
msgid "Show the store list below the map"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
-
#: inc/wpsl-functions.php:
|
2229 |
msgid "Monday"
|
2230 |
msgstr ""
|
2231 |
|
2232 |
-
#: inc/wpsl-functions.php:
|
2233 |
msgid "Tuesday"
|
2234 |
msgstr ""
|
2235 |
|
2236 |
-
#: inc/wpsl-functions.php:
|
2237 |
msgid "Wednesday"
|
2238 |
msgstr ""
|
2239 |
|
2240 |
-
#: inc/wpsl-functions.php:
|
2241 |
msgid "Thursday"
|
2242 |
msgstr ""
|
2243 |
|
2244 |
-
#: inc/wpsl-functions.php:
|
2245 |
msgid "Friday"
|
2246 |
msgstr ""
|
2247 |
|
2248 |
-
#: inc/wpsl-functions.php:
|
2249 |
msgid "Saturday"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
-
#: inc/wpsl-functions.php:
|
2253 |
msgid "Sunday"
|
2254 |
msgstr ""
|
2255 |
|
2256 |
-
#: inc/wpsl-functions.php:
|
2257 |
#, php-format
|
2258 |
msgid "Mon %sTue %sWed %sThu %sFri %sSat Closed %sSun Closed"
|
2259 |
msgstr ""
|
2260 |
|
2261 |
-
#: inc/wpsl-functions.php:
|
2262 |
msgid "Satellite"
|
2263 |
msgstr ""
|
2264 |
|
2265 |
-
#: inc/wpsl-functions.php:
|
2266 |
msgid "Hybrid"
|
2267 |
msgstr ""
|
2268 |
|
2269 |
-
#: inc/wpsl-functions.php:
|
2270 |
msgid "Terrain"
|
2271 |
msgstr ""
|
2272 |
|
2273 |
-
#: inc/wpsl-functions.php:
|
2274 |
msgid "(city) (state) (zip code)"
|
2275 |
msgstr ""
|
2276 |
|
2277 |
-
#: inc/wpsl-functions.php:
|
2278 |
msgid "(city), (state) (zip code)"
|
2279 |
msgstr ""
|
2280 |
|
2281 |
-
#: inc/wpsl-functions.php:
|
2282 |
msgid "(city) (zip code)"
|
2283 |
msgstr ""
|
2284 |
|
2285 |
-
#: inc/wpsl-functions.php:
|
2286 |
msgid "(city), (zip code)"
|
2287 |
msgstr ""
|
2288 |
|
2289 |
-
#: inc/wpsl-functions.php:
|
2290 |
msgid "(zip code) (city) (state)"
|
2291 |
msgstr ""
|
2292 |
|
2293 |
-
#: inc/wpsl-functions.php:
|
2294 |
msgid "(zip code) (city)"
|
2295 |
msgstr ""
|
1 |
+
#, fuzzy
|
2 |
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"
|
12 |
"Content-Type: text/plain; charset=UTF-8\n"
|
13 |
"Content-Transfer-Encoding: 8bit\n"
|
14 |
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
15 |
+
"X-Generator: Poedit 1.8.4\n"
|
16 |
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
|
18 |
"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
|
19 |
+
"X-Poedit-Basepath: ..\n"
|
20 |
"X-Textdomain-Support: yes\n"
|
21 |
"X-Poedit-SearchPath-0: .\n"
|
22 |
|
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."
|
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 |
|
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 |
|
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 |
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 |
|
192 |
+
#: admin/class-metaboxes.php:427
|
193 |
msgid "Hour format"
|
194 |
msgstr ""
|
195 |
|
196 |
+
#: admin/class-metaboxes.php:434
|
197 |
msgid "Days"
|
198 |
msgstr ""
|
199 |
|
200 |
+
#: admin/class-metaboxes.php:435
|
201 |
msgid "Opening Periods"
|
202 |
msgstr ""
|
203 |
|
204 |
+
#: admin/class-metaboxes.php:682
|
205 |
msgid "Failed to publish the store. Please fill in the required store details."
|
206 |
msgstr ""
|
207 |
|
208 |
+
#: admin/class-metaboxes.php:818
|
209 |
msgid "Preview Location"
|
210 |
msgstr ""
|
211 |
|
212 |
+
#: admin/class-metaboxes.php:819
|
213 |
#, php-format
|
214 |
msgid ""
|
215 |
"The map preview is based on the provided address, city and country details. "
|
216 |
"%s It will ignore any custom latitude or longitude values."
|
217 |
msgstr ""
|
218 |
|
219 |
+
#: admin/class-metaboxes.php:820
|
220 |
msgid "You can drag the marker to adjust the exact location of the marker."
|
221 |
msgstr ""
|
222 |
|
223 |
+
#: admin/class-metaboxes.php:840 admin/class-metaboxes.php:843
|
224 |
msgid "Store updated."
|
225 |
msgstr ""
|
226 |
|
227 |
+
#: admin/class-metaboxes.php:841
|
228 |
msgid "Custom field updated."
|
229 |
msgstr ""
|
230 |
|
231 |
+
#: admin/class-metaboxes.php:842
|
232 |
msgid "Custom field deleted."
|
233 |
msgstr ""
|
234 |
|
235 |
+
#: admin/class-metaboxes.php:844
|
236 |
#, php-format
|
237 |
msgid "Store restored to revision from %s"
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: admin/class-metaboxes.php:845
|
241 |
msgid "Store published."
|
242 |
msgstr ""
|
243 |
|
244 |
+
#: admin/class-metaboxes.php:846
|
245 |
msgid "Store saved."
|
246 |
msgstr ""
|
247 |
|
248 |
+
#: admin/class-metaboxes.php:847
|
249 |
msgid "Store submitted."
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: admin/class-metaboxes.php:849
|
253 |
#, php-format
|
254 |
msgid "Store scheduled for: <strong>%1$s</strong>."
|
255 |
msgstr ""
|
256 |
|
257 |
+
#: admin/class-metaboxes.php:850
|
258 |
msgid "M j, Y @ G:i"
|
259 |
msgstr ""
|
260 |
|
261 |
+
#: admin/class-metaboxes.php:852
|
262 |
msgid "Store draft updated."
|
263 |
msgstr ""
|
264 |
|
265 |
+
#: admin/class-metaboxes.php:858
|
266 |
msgid "View store"
|
267 |
msgstr ""
|
268 |
|
269 |
+
#: admin/class-metaboxes.php:864
|
270 |
msgid "Preview store"
|
271 |
msgstr ""
|
272 |
|
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 |
"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 |
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 |
"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 |
"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 |
"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
|
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 |
"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 |
"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 |
"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 |
"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 |
"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 |
"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 |
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 |
"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 "
|
2070 |
"view them on the %sAll Stores%s page."
|
2071 |
msgstr ""
|
2072 |
|
2073 |
+
#: frontend/class-frontend.php:610
|
2074 |
msgid ""
|
2075 |
"If you use the [wpsl_address] shortcode outside a store page you need to set "
|
2076 |
"the ID attribute."
|
2077 |
msgstr ""
|
2078 |
|
2079 |
+
#: frontend/class-frontend.php:722
|
2080 |
msgid ""
|
2081 |
"If you use the [wpsl_hours] shortcode outside a store page you need to set "
|
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 |
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 ""
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ 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.
|
9 |
License: GPLv3
|
10 |
License URI: http://www.gnu.org/licenses/gpl.html
|
11 |
|
@@ -80,9 +80,9 @@ Add this shortcode [wpsl] to the page where you want to display the store locato
|
|
80 |
|
81 |
Make sure you have defined a start point for the map under settings -> Map Settings.
|
82 |
|
83 |
-
=
|
84 |
|
85 |
-
|
86 |
|
87 |
= Why does it show the location I searched for in the wrong country? =
|
88 |
|
@@ -107,6 +107,14 @@ If you find a plugin or theme that causes a conflict, please report it on the [s
|
|
107 |
|
108 |
== Changelog ==
|
109 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
= 2.0.3, October 27, 2015 =
|
111 |
* Fixed: The default search radius is no longer ignored if the Geolocation API is used. Via [xeyefex](https://wordpress.org/support/profile/xeyefex).
|
112 |
* Changed: Replaced get_page ( deprecated ) with get_post.
|
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 |
|
80 |
|
81 |
Make sure you have defined a start point for the map under settings -> Map Settings.
|
82 |
|
83 |
+
= The map doesn't work anymore after installing the latest update =
|
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 |
|
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.
|
113 |
+
* Fixed: Multiple shortcode attributes ignoring the "false" value, via [dynamitepets](https://wordpress.org/support/profile/dynamitepets) and [drfoxg](https://profiles.wordpress.org/drfoxg/).
|
114 |
+
* Changed: If a WPML compatible plugin is detected, a notice is shown above the label section explaining that the "String Translations" section in the used multilingual plugin should be used to change the labels.
|
115 |
+
* Changed: Removed the "sensor" parameter from the Google Maps JavaScript API. It triggered a 'SensorNotRequired' [warning](https://developers.google.com/maps/documentation/javascript/error-messages).
|
116 |
+
* Changed: Updated translation files.
|
117 |
+
|
118 |
= 2.0.3, October 27, 2015 =
|
119 |
* Fixed: The default search radius is no longer ignored if the Geolocation API is used. Via [xeyefex](https://wordpress.org/support/profile/xeyefex).
|
120 |
* Changed: Replaced get_page ( deprecated ) with get_post.
|
uninstall.php
CHANGED
@@ -3,7 +3,7 @@ if ( !defined( 'ABSPATH' ) && !defined( 'WP_UNINSTALL_PLUGIN ') ) {
|
|
3 |
exit;
|
4 |
}
|
5 |
|
6 |
-
|
7 |
if ( !is_multisite() ) {
|
8 |
wpsl_uninstall();
|
9 |
} else {
|
@@ -25,16 +25,15 @@ if ( !is_multisite() ) {
|
|
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 |
*/
|
30 |
function wpsl_uninstall() {
|
31 |
|
32 |
global $wpdb, $current_user;
|
33 |
|
34 |
-
|
35 |
$wpdb->query( 'DROP TABLE IF EXISTS ' . $wpdb->prefix . 'wpsl_stores' );
|
36 |
|
37 |
-
|
38 |
$option_names = $wpdb->get_results( "SELECT option_name AS transient_name FROM " . $wpdb->options . " WHERE option_name LIKE ('\_transient\_wpsl\_autoload\_%')" );
|
39 |
|
40 |
if ( $option_names ) {
|
@@ -45,7 +44,7 @@ function wpsl_uninstall() {
|
|
45 |
}
|
46 |
}
|
47 |
|
48 |
-
|
49 |
$options = array( 'wpsl_version', 'wpsl_settings', 'wpsl_notices', 'wpsl_legacy_support', 'wpsl_flush_rewrite', 'wpsl_delete_transient', 'wpsl_convert_cpt' );
|
50 |
|
51 |
foreach ( $options as $option ) {
|
@@ -55,13 +54,13 @@ function wpsl_uninstall() {
|
|
55 |
delete_user_meta( $current_user->ID, 'wpsl_disable_location_warning' );
|
56 |
delete_user_meta( $current_user->ID, 'wpsl_stores_per_page' );
|
57 |
|
58 |
-
|
59 |
@set_time_limit( 0 );
|
60 |
|
61 |
-
|
62 |
$post_statuses = array( 'any', 'trash', 'auto-draft' );
|
63 |
|
64 |
-
|
65 |
foreach ( $post_statuses as $post_status ) {
|
66 |
$posts = get_posts( array( 'post_type' => 'wpsl_stores', 'post_status' => $post_status, 'posts_per_page' => -1, 'fields' => 'ids' ) );
|
67 |
|
@@ -72,7 +71,7 @@ function wpsl_uninstall() {
|
|
72 |
}
|
73 |
}
|
74 |
|
75 |
-
|
76 |
$sql = "DELETE t,tt,tr FROM $wpdb->terms AS t
|
77 |
LEFT JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id
|
78 |
LEFT JOIN $wpdb->term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id
|
3 |
exit;
|
4 |
}
|
5 |
|
6 |
+
// Check if we need to run the uninstall for a single or mu installation.
|
7 |
if ( !is_multisite() ) {
|
8 |
wpsl_uninstall();
|
9 |
} else {
|
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;
|
32 |
|
33 |
+
// If the 1.x table still exists we remove it.
|
34 |
$wpdb->query( 'DROP TABLE IF EXISTS ' . $wpdb->prefix . 'wpsl_stores' );
|
35 |
|
36 |
+
// Check if we need to delete the autoload transients.
|
37 |
$option_names = $wpdb->get_results( "SELECT option_name AS transient_name FROM " . $wpdb->options . " WHERE option_name LIKE ('\_transient\_wpsl\_autoload\_%')" );
|
38 |
|
39 |
if ( $option_names ) {
|
44 |
}
|
45 |
}
|
46 |
|
47 |
+
// Delete the options used by the plugin.
|
48 |
$options = array( 'wpsl_version', 'wpsl_settings', 'wpsl_notices', 'wpsl_legacy_support', 'wpsl_flush_rewrite', 'wpsl_delete_transient', 'wpsl_convert_cpt' );
|
49 |
|
50 |
foreach ( $options as $option ) {
|
54 |
delete_user_meta( $current_user->ID, 'wpsl_disable_location_warning' );
|
55 |
delete_user_meta( $current_user->ID, 'wpsl_stores_per_page' );
|
56 |
|
57 |
+
// Disable the time limit before we start removing all the store location posts.
|
58 |
@set_time_limit( 0 );
|
59 |
|
60 |
+
// 'any' ignores trashed or auto-draft store location posts, so we make sure they are removed as well.
|
61 |
$post_statuses = array( 'any', 'trash', 'auto-draft' );
|
62 |
|
63 |
+
// Delete the 'wpsl_stores' custom post types.
|
64 |
foreach ( $post_statuses as $post_status ) {
|
65 |
$posts = get_posts( array( 'post_type' => 'wpsl_stores', 'post_status' => $post_status, 'posts_per_page' => -1, 'fields' => 'ids' ) );
|
66 |
|
71 |
}
|
72 |
}
|
73 |
|
74 |
+
// Delete the terms, taxonomy and term relationships for the wpsl_store_category.
|
75 |
$sql = "DELETE t,tt,tr FROM $wpdb->terms AS t
|
76 |
LEFT JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id
|
77 |
LEFT JOIN $wpdb->term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id
|
wp-store-locator.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: WP Store Locator
|
|
4 |
Description: An easy to use location management system that enables users to search for nearby physical stores
|
5 |
Author: Tijmen Smit
|
6 |
Author URI: http://wpstorelocator.co/
|
7 |
-
Version: 2.0.
|
8 |
Text Domain: wpsl
|
9 |
Domain Path: /languages/
|
10 |
License: GPL v3
|
@@ -28,7 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
28 |
@package WP_Store_locator
|
29 |
@category Core
|
30 |
@author Tijmen Smit
|
31 |
-
@version 2.0
|
32 |
*/
|
33 |
|
34 |
if ( !class_exists( 'WP_Store_locator' ) ) {
|
@@ -51,15 +50,15 @@ if ( !class_exists( 'WP_Store_locator' ) ) {
|
|
51 |
}
|
52 |
|
53 |
/**
|
54 |
-
* Setup plugin constants
|
55 |
*
|
56 |
-
* @since 1.0
|
57 |
* @return void
|
58 |
*/
|
59 |
public function define_constants() {
|
60 |
|
61 |
if ( !defined( 'WPSL_VERSION_NUM' ) )
|
62 |
-
define( 'WPSL_VERSION_NUM', '2.0.
|
63 |
|
64 |
if ( !defined( 'WPSL_URL' ) )
|
65 |
define( 'WPSL_URL', plugin_dir_url( __FILE__ ) );
|
@@ -72,9 +71,9 @@ if ( !class_exists( 'WP_Store_locator' ) ) {
|
|
72 |
}
|
73 |
|
74 |
/**
|
75 |
-
* Include the required files
|
76 |
*
|
77 |
-
* @since 2.0
|
78 |
* @return void
|
79 |
*/
|
80 |
public function includes() {
|
@@ -91,9 +90,9 @@ if ( !class_exists( 'WP_Store_locator' ) ) {
|
|
91 |
}
|
92 |
|
93 |
/**
|
94 |
-
* Setup the plugin settings
|
95 |
*
|
96 |
-
* @since 2.0
|
97 |
* @return void
|
98 |
*/
|
99 |
public function plugin_settings() {
|
@@ -105,9 +104,9 @@ if ( !class_exists( 'WP_Store_locator' ) ) {
|
|
105 |
}
|
106 |
|
107 |
/**
|
108 |
-
* Install the plugin data
|
109 |
*
|
110 |
-
* @since 2.0
|
111 |
* @return void
|
112 |
*/
|
113 |
public function install( $network_wide ) {
|
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
|
28 |
@package WP_Store_locator
|
29 |
@category Core
|
30 |
@author Tijmen Smit
|
|
|
31 |
*/
|
32 |
|
33 |
if ( !class_exists( 'WP_Store_locator' ) ) {
|
50 |
}
|
51 |
|
52 |
/**
|
53 |
+
* Setup plugin constants.
|
54 |
*
|
55 |
+
* @since 1.0.0
|
56 |
* @return void
|
57 |
*/
|
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__ ) );
|
71 |
}
|
72 |
|
73 |
/**
|
74 |
+
* Include the required files.
|
75 |
*
|
76 |
+
* @since 2.0.0
|
77 |
* @return void
|
78 |
*/
|
79 |
public function includes() {
|
90 |
}
|
91 |
|
92 |
/**
|
93 |
+
* Setup the plugin settings.
|
94 |
*
|
95 |
+
* @since 2.0.0
|
96 |
* @return void
|
97 |
*/
|
98 |
public function plugin_settings() {
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
+
* Install the plugin data.
|
108 |
*
|
109 |
+
* @since 2.0.0
|
110 |
* @return void
|
111 |
*/
|
112 |
public function install( $network_wide ) {
|