Nextend Social Login and Register (Facebook, Google, Twitter) - Version 3.0.8

Version Description

  • Feature: A page can be selected which handles the extra fields for Register flow.
  • Feature: A page can be selected which handles the OAuth flow.
  • Feature: Spanish (Latin America) translation added.
  • Feature: GDPR - add custom Terms and conditions on register.
  • Feature: GDPR - retrieved fields can now be exported with the Export Personal Data tool of WordPress.
  • Fix: Jetpack - Secure Sign On
  • Fix: Dokan - redirection

  • PRO: Feature: Authorized domain name check and notice for changed domain name.

  • PRO: Feature: Option to change the button layouts for WooCommerce login/register/billing forms.

  • PRO: Feature: Sync LinkedId fields

Download this release

Release Info

Developer nextendweb
Plugin Icon 128x128 Nextend Social Login and Register (Facebook, Google, Twitter)
Version 3.0.8
Comparing to
See all releases

Code changes from version 3.0.7 to 3.0.8

NSL/GDPR.php ADDED
@@ -0,0 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace NSL;
4
+
5
+ class GDPR {
6
+
7
+ public function __construct() {
8
+ add_action('admin_init', array(
9
+ $this,
10
+ 'add_privacy_policy_content'
11
+ ));
12
+
13
+ add_filter('wp_privacy_personal_data_exporters', array(
14
+ $this,
15
+ 'register_exporter'
16
+ ), -1);
17
+
18
+ /*
19
+ add_filter('wp_privacy_personal_data_erasers', array(
20
+ $this,
21
+ 'register_eraser'
22
+ ));
23
+ */
24
+ }
25
+
26
+ public function add_privacy_policy_content() {
27
+ if (!function_exists('wp_add_privacy_policy_content')) {
28
+ return;
29
+ }
30
+
31
+ $content = '';
32
+ $content .= '<h2>' . __('What personal data we collect and why we collect it') . '</h2>';
33
+ $content .= '<p class="privacy-policy-tutorial">' . sprintf(__('%1$s collects data when a visitor register, login or link the account with with any of the enabled social provider. It collects the following data: email address, name, social provider identifier and access token. Also it can collect profile picture and more fields with the Pro Addon\'s sync data feature.'), 'Nextend Social Login') . '</p>';
34
+
35
+ $content .= '<h2>' . __('Who we share your data with') . '</h2>';
36
+ $content .= '<p class="privacy-policy-tutorial">' . sprintf(__('%1$s stores the personal data on your site and does not share it with anyone except the access token which used for the authenticated communication with the social providers.'), 'Nextend Social Login') . '</p>';
37
+
38
+ $content .= '<h2>' . __('Does the plugin share personal data with third parties') . '</h2>';
39
+ $content .= '<p class="privacy-policy-tutorial">' . sprintf(__('%1$s use the access token what the social provider gave to communicate with the providers to verify account and securely access personal data.'), 'Nextend Social Login') . '</p>';
40
+
41
+ $content .= '<h2>' . __('How long we retain your data') . '</h2>';
42
+ $content .= '<p class="privacy-policy-tutorial">' . sprintf(__('%1$s removes the collected personal data when the user deleted from WordPress.'), 'Nextend Social Login') . '</p>';
43
+
44
+ $content .= '<h2>' . __('Does the plugin use personal data collected by others?') . '</h2>';
45
+ $content .= '<p class="privacy-policy-tutorial">' . sprintf(__('%1$s use the personal data collected by the social providers to create account on your site when the visitor authorize it.'), 'Nextend Social Login') . '</p>';
46
+
47
+ $content .= '<h2>' . __('Does the plugin store things in the browser?') . '</h2>';
48
+ $content .= '<p class="privacy-policy-tutorial">' . sprintf(__('Yes, %1$s must create a cookie for visitors who use the social login authorization flow. This cookie required for every provider to secure the communication and to redirect the user back to the last location.'), 'Nextend Social Login') . '</p>';
49
+
50
+ $content .= '<h2>' . __('Does the plugin collect telemetry data, directly or indirectly?') . '</h2>';
51
+ $content .= '<p class="privacy-policy-tutorial">' . __('No') . '</p>';
52
+
53
+ $content .= '<h2>' . __('Does the plugin enqueue JavaScript, tracking pixels or embed iframes from a third party?') . '</h2>';
54
+ $content .= '<p class="privacy-policy-tutorial">' . __('No') . '</p>';
55
+
56
+
57
+ wp_add_privacy_policy_content('Nextend Social Login', wp_kses_post($content));
58
+ }
59
+
60
+
61
+ public function register_exporter($exporters) {
62
+ $exporters['nextend-facebook-connect'] = array(
63
+ 'exporter_friendly_name' => 'Nextend Social Login',
64
+ 'callback' => array(
65
+ $this,
66
+ 'exporter'
67
+ ),
68
+ );
69
+
70
+ return $exporters;
71
+ }
72
+
73
+ public function exporter($email_address, $page = 1) {
74
+ $email_address = trim($email_address);
75
+
76
+ $data_to_export = array();
77
+
78
+ $user = get_user_by('email', $email_address);
79
+
80
+ if (!$user) {
81
+ return array(
82
+ 'data' => array(),
83
+ 'done' => true,
84
+ );
85
+ }
86
+
87
+ $user_data_to_export = array();
88
+
89
+ foreach (\NextendSocialLogin::$allowedProviders AS $provider) {
90
+ $user_data_to_export = array_merge($user_data_to_export, $provider->exportPersonalData($user->ID));
91
+ }
92
+
93
+
94
+ if (!empty($user_data_to_export)) {
95
+ $data_to_export[] = array(
96
+ 'group_id' => 'user',
97
+ 'group_label' => __('User'),
98
+ 'item_id' => "user-{$user->ID}",
99
+ 'data' => $user_data_to_export,
100
+ );
101
+ }
102
+
103
+
104
+ return array(
105
+ 'data' => $data_to_export,
106
+ 'done' => true,
107
+ );
108
+ }
109
+
110
+ public function register_eraser($erasers) {
111
+ $erasers['nextend-facebook-connect'] = array(
112
+ 'exporter_friendly_name' => 'Nextend Social Login',
113
+ 'callback' => array(
114
+ $this,
115
+ 'eraser'
116
+ ),
117
+ );
118
+
119
+ return $erasers;
120
+ }
121
+
122
+ public function eraser($email_address, $page = 1) {
123
+ return array(
124
+ 'items_removed' => false,
125
+ 'items_retained' => false,
126
+ 'messages' => array(),
127
+ 'done' => true,
128
+ );
129
+ }
130
+ }
131
+
132
+
133
+ new GDPR();
NSL/Notices.php CHANGED
@@ -175,8 +175,7 @@ class Notices {
175
  }
176
  }
177
 
178
- self::delete();
179
- self::$notices = array();
180
 
181
  return $html;
182
  }
@@ -189,8 +188,9 @@ class Notices {
189
  Persistent::set('notices', self::$notices);
190
  }
191
 
192
- private static function delete() {
193
 
194
  Persistent::delete('notices');
 
195
  }
196
  }
175
  }
176
  }
177
 
178
+ self::clear();
 
179
 
180
  return $html;
181
  }
188
  Persistent::set('notices', self::$notices);
189
  }
190
 
191
+ public static function clear() {
192
 
193
  Persistent::delete('notices');
194
+ self::$notices = array();
195
  }
196
  }
NSL/Persistent/Persistent.php CHANGED
@@ -58,7 +58,12 @@ class Persistent {
58
  * @param $user_login
59
  * @param \WP_User $user
60
  */
61
- public function transferSessionToUser($user_login, $user) {
 
 
 
 
 
62
  $newStorage = new Transient($user->ID);
63
  /**
64
  * $this->storage might be NULL if init action not called yet
58
  * @param $user_login
59
  * @param \WP_User $user
60
  */
61
+ public function transferSessionToUser($user_login, $user = null) {
62
+
63
+ if (!$user) { // For do_action( 'wp_login' ) calls that lacked passing the 2nd arg.
64
+ $user = get_user_by('login', $user_login);
65
+ }
66
+
67
  $newStorage = new Transient($user->ID);
68
  /**
69
  * $this->storage might be NULL if init action not called yet
admin/EditUser.php CHANGED
@@ -20,7 +20,16 @@
20
  <?php
21
  $value = get_user_meta($user->ID, $fieldName, true);
22
  if (!empty($value)) {
23
- echo esc_html($value);
 
 
 
 
 
 
 
 
 
24
  $hasData = true;
25
  }
26
  ?>
@@ -37,4 +46,19 @@
37
  ob_end_clean();
38
  }
39
  ?>
40
- <?php endforeach; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  <?php
21
  $value = get_user_meta($user->ID, $fieldName, true);
22
  if (!empty($value)) {
23
+ $unSerialized = maybe_unserialize($value);
24
+ if (is_array($unSerialized) || is_object($unSerialized)) {
25
+
26
+ echo "<pre>";
27
+ print_r(formatUserMeta((array)$unSerialized));
28
+
29
+ echo "</pre>";
30
+ } else {
31
+ echo esc_html($value);
32
+ }
33
  $hasData = true;
34
  }
35
  ?>
46
  ob_end_clean();
47
  }
48
  ?>
49
+ <?php endforeach; ?>
50
+
51
+ <?php
52
+
53
+ function formatUserMeta($user_meta, $level = '') {
54
+ $formatted_usermeta = '';
55
+ if (is_array($user_meta)) {
56
+ foreach ($user_meta as $meta_key => $meta_value) {
57
+ $formatted_usermeta .= formatUserMeta($meta_value, $level . '[' . $meta_key . ']');
58
+ }
59
+ } else {
60
+ $formatted_usermeta .= "\n" . $level . ' = ' . $user_meta;
61
+ }
62
+
63
+ return $formatted_usermeta;
64
+ }
admin/admin.php CHANGED
@@ -62,6 +62,12 @@ class NextendSocialLoginAdmin {
62
  case 'fix-redirect-uri':
63
  self::display_admin_area('fix-redirect-uri');
64
  break;
 
 
 
 
 
 
65
  case 'global-settings':
66
  self::display_admin_area('global-settings');
67
  break;
@@ -195,6 +201,11 @@ class NextendSocialLoginAdmin {
195
  'NextendSocialLoginAdmin',
196
  'showUserFields'
197
  ));
 
 
 
 
 
198
  }
199
 
200
  public static function save_form_data() {
@@ -316,13 +327,20 @@ class NextendSocialLoginAdmin {
316
  foreach ($postedData as $key => $value) {
317
  switch ($key) {
318
  case 'debug':
 
 
 
319
  case 'avatar_store':
 
320
  if ($value == 1) {
321
  $newData[$key] = 1;
322
  } else {
323
  $newData[$key] = 0;
324
  }
325
  break;
 
 
 
326
  case 'show_login_form':
327
  case 'show_registration_form':
328
  case 'show_embedded_login_form':
@@ -339,6 +357,8 @@ class NextendSocialLoginAdmin {
339
  }
340
  break;
341
  case 'license_key':
 
 
342
  $value = trim(sanitize_text_field($value));
343
  if ($value != NextendSocialLogin::$settings->get('license_key') || NextendSocialLogin::$settings->get('license_key_ok') == '0') {
344
  $newData['license_key_ok'] = '0';
@@ -349,6 +369,8 @@ class NextendSocialLoginAdmin {
349
  if ($response === 'OK') {
350
  $newData[$key] = $value;
351
  $newData['license_key_ok'] = '1';
 
 
352
  }
353
  } catch (Exception $e) {
354
  \NSL\Notices::addError($e->getMessage());
@@ -360,6 +382,18 @@ class NextendSocialLoginAdmin {
360
  case 'woocommerce_dismissed':
361
  $newData[$key] = intval($value);
362
  break;
 
 
 
 
 
 
 
 
 
 
 
 
363
  }
364
  }
365
 
@@ -424,7 +458,7 @@ class NextendSocialLoginAdmin {
424
  'user-agent' => 'WordPress',
425
  'body' => array_merge(array(
426
  'platform' => 'wordpress',
427
- 'domain' => parse_url(site_url(), PHP_URL_HOST),
428
  'license_key' => NextendSocialLogin::$settings->get('license_key')
429
  ), $args)
430
  );
@@ -526,4 +560,103 @@ class NextendSocialLoginAdmin {
526
  public static function showUserFields($user) {
527
  include(dirname(__FILE__) . '/EditUser.php');
528
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
529
  }
62
  case 'fix-redirect-uri':
63
  self::display_admin_area('fix-redirect-uri');
64
  break;
65
+ case 'domain-changed':
66
+ self::display_admin_area('domain-changed');
67
+ break;
68
+ case 'show-debug':
69
+ self::display_admin_area('show-debug');
70
+ break;
71
  case 'global-settings':
72
  self::display_admin_area('global-settings');
73
  break;
201
  'NextendSocialLoginAdmin',
202
  'showUserFields'
203
  ));
204
+
205
+ add_filter('display_post_states', array(
206
+ 'NextendSocialLoginAdmin',
207
+ 'display_post_states'
208
+ ), 10, 2);
209
  }
210
 
211
  public static function save_form_data() {
327
  foreach ($postedData as $key => $value) {
328
  switch ($key) {
329
  case 'debug':
330
+ case 'terms_show':
331
+ case 'store_name':
332
+ case 'store_email':
333
  case 'avatar_store':
334
+ case 'store_access_token':
335
  if ($value == 1) {
336
  $newData[$key] = 1;
337
  } else {
338
  $newData[$key] = 0;
339
  }
340
  break;
341
+ case 'terms':
342
+ $newData[$key] = wp_kses_post($value);
343
+ break;
344
  case 'show_login_form':
345
  case 'show_registration_form':
346
  case 'show_embedded_login_form':
357
  }
358
  break;
359
  case 'license_key':
360
+ \NSL\Notices::clear();
361
+
362
  $value = trim(sanitize_text_field($value));
363
  if ($value != NextendSocialLogin::$settings->get('license_key') || NextendSocialLogin::$settings->get('license_key_ok') == '0') {
364
  $newData['license_key_ok'] = '0';
369
  if ($response === 'OK') {
370
  $newData[$key] = $value;
371
  $newData['license_key_ok'] = '1';
372
+
373
+ $newData['authorized_domain'] = NextendSocialLogin::getDomain();
374
  }
375
  } catch (Exception $e) {
376
  \NSL\Notices::addError($e->getMessage());
382
  case 'woocommerce_dismissed':
383
  $newData[$key] = intval($value);
384
  break;
385
+
386
+ case 'authorized_domain':
387
+ $newData[$key] = $value;
388
+ break;
389
+ case 'register-flow-page':
390
+ case 'proxy-page':
391
+ if (get_post($value) !== null) {
392
+ $newData[$key] = $value;
393
+ } else {
394
+ $newData[$key] = '';
395
+ }
396
+ break;
397
  }
398
  }
399
 
458
  'user-agent' => 'WordPress',
459
  'body' => array_merge(array(
460
  'platform' => 'wordpress',
461
+ 'domain' => NextendSocialLogin::getDomain(),
462
  'license_key' => NextendSocialLogin::$settings->get('license_key')
463
  ), $args)
464
  );
560
  public static function showUserFields($user) {
561
  include(dirname(__FILE__) . '/EditUser.php');
562
  }
563
+
564
+ public static function authorizeBox($view = 'pro-addon') {
565
+
566
+ $args = array(
567
+ 'product' => 'nsl',
568
+ 'domain' => NextendSocialLogin::getDomain(),
569
+ 'platform' => 'wordpress'
570
+
571
+ );
572
+
573
+ $authorizeUrl = NextendSocialLoginAdmin::trackUrl('https://secure.nextendweb.com/authorize/', 'authorize');
574
+ ?>
575
+ <div class="nsl-box nsl-box-yellow nsl-box-padlock">
576
+ <h2 class="title"><?php _e('Authorize your Pro Addon', 'nextend-facebook-connect'); ?></h2>
577
+ <p><?php _e('To be able to use the Pro features, you need to authorize Nextend Social Connect Pro Addon. You can do this by clicking on the Authorize button below then select the related purchase.', 'nextend-facebook-connect'); ?></p>
578
+
579
+ <p>
580
+ <a href="#"
581
+ onclick="window.authorizeWindow = NSLPopupCenter('<?php echo $authorizeUrl; ?>', 'authorize-window', 800, 800);return false;"
582
+ class="button button-primary"><?php _e('Authorize', 'nextend-facebook-connect'); ?></a>
583
+ </p>
584
+ </div>
585
+
586
+ <script type="text/javascript">
587
+ (function ($) {
588
+
589
+ var args = <?php echo wp_json_encode($args); ?>;
590
+ window.addEventListener('message', function (e) {
591
+ if (e.origin === 'https://secure.nextendweb.com') {
592
+ if (typeof window.authorizeWindow === 'undefined') {
593
+ if (typeof e.source !== 'undefined') {
594
+ window.authorizeWindow = e.source;
595
+ } else {
596
+ return false;
597
+ }
598
+ }
599
+
600
+ try {
601
+ var envelope = JSON.parse(e.data);
602
+
603
+ if (envelope.action) {
604
+ switch (envelope.action) {
605
+ case 'ready':
606
+ window.authorizeWindow.postMessage(JSON.stringify({
607
+ 'action': 'authorize',
608
+ 'data': args
609
+ }), 'https://secure.nextendweb.com');
610
+ break;
611
+ case 'license':
612
+ $('#license_key').val(envelope.license_key);
613
+ $('#license_form').submit();
614
+ break;
615
+ }
616
+
617
+ }
618
+ }
619
+ catch (ex) {
620
+ console.error(ex);
621
+ console.log(e);
622
+ }
623
+ }
624
+ });
625
+ })(jQuery);
626
+ </script>
627
+
628
+ <form id="license_form" method="post" action="<?php echo admin_url('admin-post.php'); ?>"
629
+ novalidate="novalidate" style="display:none;">
630
+
631
+ <?php wp_nonce_field('nextend-social-login'); ?>
632
+ <input type="hidden" name="action" value="nextend-social-login"/>
633
+ <input type="hidden" name="view" value="<?php echo $view; ?>"/>
634
+
635
+ <table class="form-table">
636
+ <tbody>
637
+ <tr>
638
+ <th scope="row"><label
639
+ for="license_key"><?php _e('License key', 'nextend-facebook-connect'); ?></label></th>
640
+ <td><input name="license_key" type="text" id="license_key"
641
+ value="<?php echo esc_attr(NextendSocialLogin::$settings->get('license_key')); ?>"
642
+ class="regular-text">
643
+ </td>
644
+ </tr>
645
+ </tbody>
646
+ </table>
647
+
648
+ </form>
649
+ <?php
650
+ }
651
+
652
+ public function display_post_states($post_states, $post) {
653
+ if (NextendSocialLogin::getProxyPage() === $post->ID) {
654
+ $post_states['nsl_proxy_page'] = __('OAuth proxy page') . ' — NSL';
655
+ }
656
+ if (NextendSocialLogin::getRegisterFlowPage() === $post->ID) {
657
+ $post_states['nsl_proxy_page'] = __('Register flow page') . ' — NSL';
658
+ }
659
+
660
+ return $post_states;
661
+ }
662
  }
admin/images/layouts/default.png ADDED
Binary file
admin/interim.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if (!defined('ABSPATH')) {
3
+ exit;
4
+ }
5
+
6
+ global $interim_login;
7
+ $customize_login = isset($_REQUEST['customize-login']);
8
+ if ($customize_login) {
9
+ wp_enqueue_script('customize-base');
10
+ }
11
+
12
+ $message = '<p class="message">' . __('You have logged in successfully.') . '</p>';
13
+ $interim_login = 'success';
14
+ ?><!DOCTYPE html>
15
+ <!--[if IE 8]>
16
+ <html xmlns="http://www.w3.org/1999/xhtml" class="ie8" <?php language_attributes(); ?>>
17
+ <![endif]-->
18
+ <!--[if !(IE 8) ]><!-->
19
+ <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
20
+ <!--<![endif]-->
21
+ <head>
22
+ <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>"/>
23
+ <title><?php __('You have logged in successfully.'); ?></title>
24
+ </head>
25
+ <body class="login interim-login interim-login-success">
26
+ <?php
27
+ echo $message;
28
+ /** This action is documented in wp-login.php */
29
+ do_action('login_footer'); ?>
30
+ <?php if ($customize_login) : ?>
31
+ <script type="text/javascript">setTimeout(function () {
32
+ new wp.customize.Messenger({url: '<?php echo wp_customize_url(); ?>', channel: 'login'}).send(
33
+ 'login');
34
+ }, 1000);</script>
35
+ <?php endif; ?>
36
+ </body>
37
+ </html>
38
+ <?php exit;
admin/templates-provider/settings-other.php CHANGED
@@ -22,7 +22,49 @@ $settings = $provider->settings;
22
  for="user_fallback"><?php _e('Fallback username prefix on register', 'nextend-facebook-connect'); ?></label></th>
23
  <td><input name="user_fallback" type="text" id="user_fallback"
24
  value="<?php echo esc_attr($settings->get('user_fallback')); ?>" class="regular-text">
25
- <p class="description" id="tagline-user_fallback"><?php _e('Used when username is invalid', 'nextend-facebook-connect'); ?></p></td>
26
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  </tbody>
28
  </table>
22
  for="user_fallback"><?php _e('Fallback username prefix on register', 'nextend-facebook-connect'); ?></label></th>
23
  <td><input name="user_fallback" type="text" id="user_fallback"
24
  value="<?php echo esc_attr($settings->get('user_fallback')); ?>" class="regular-text">
25
+ <p class="description" id="tagline-user_fallback"><?php _e('Used when username is invalid or not stored', 'nextend-facebook-connect'); ?></p></td>
26
  </tr>
27
+ <?php if (NextendSocialLogin::$settings->get('terms_show') == 1): ?>
28
+ <tr>
29
+ <th scope="row"><?php _e('Terms and conditions', 'nextend-facebook-connect'); ?></th>
30
+ <td>
31
+ <?php
32
+ $terms = $settings->get('terms');
33
+ $hasOverriddenTerms = !empty($terms);
34
+ ?>
35
+ <fieldset>
36
+ <label for="terms_override">
37
+ <input type="hidden" name="terms_override" value="0">
38
+ <input type="checkbox" name="terms_override" id="terms_override"
39
+ value="1" <?php if ($hasOverriddenTerms) : ?> checked="checked" <?php endif; ?>>
40
+ <?php printf(__('Override global "%1$s"', 'nextend-facebook-connect'), __('Terms and conditions', 'nextend-facebook-connect')); ?>
41
+ </label>
42
+
43
+ <div id="nsl-terms" <?php if (!$hasOverriddenTerms) : ?> style="display:none;" <?php endif; ?>>
44
+ <?php
45
+ wp_editor($terms, 'terms', array(
46
+ 'textarea_rows' => 4,
47
+ 'media_buttons' => false
48
+ ));
49
+ ?>
50
+ </div>
51
+ </fieldset>
52
+ <script type="text/javascript">
53
+ (function ($) {
54
+
55
+ $(document).ready(function () {
56
+ $('#terms_override').on('change', function () {
57
+ if ($(this).is(':checked')) {
58
+ $('#nsl-terms').css('display', '');
59
+ } else {
60
+ $('#nsl-terms').css('display', 'none');
61
+ }
62
+ });
63
+ });
64
+ })(jQuery);
65
+ </script>
66
+ </td>
67
+ </tr>
68
+ <?php endif; ?>
69
  </tbody>
70
  </table>
admin/templates/domain-changed.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="nsl-admin-content">
2
+ <style>
3
+ .nsl-admin-notices {
4
+ display: none;
5
+ }
6
+ </style>
7
+ <h1 class="title"><?php _e('Pro Addon - Authorized domain has been changed', 'nextend-facebook-connect'); ?></h1>
8
+ <?php
9
+
10
+ $authorizedDomain = NextendSocialLogin::$settings->get('authorized_domain');
11
+ if (!empty($authorizedDomain) && $authorizedDomain != NextendSocialLogin::getDomain()) {
12
+ ?>
13
+ <p>
14
+ <?php
15
+ _e('<b>You must authorize your new domain</b> to receive <b>updates and support</b> in the future.', 'nextend-facebook-connect');
16
+ ?>
17
+ </p>
18
+
19
+ <p>
20
+ <?php
21
+ _e('You can authorize your new domain by completing the following steps:', 'nextend-facebook-connect');
22
+ ?>
23
+ </p>
24
+ <ol>
25
+ <li><?php printf(__('Navigate to %s', 'nextend-facebook-connect'), '<a href="https://secure.nextendweb.com/" target="_blank">https://secure.nextendweb.com/</a>'); ?></li>
26
+ <li><?php _e('Log in with your credentials if you are not logged in', 'nextend-facebook-connect'); ?></li>
27
+ <li><?php printf(__('Find your old domain name: <b>%s</b>', 'nextend-facebook-connect'), $authorizedDomain); ?></li>
28
+ <li><?php printf(__('Click on the %1$s next to your domain name.', 'nextend-facebook-connect'), '"Deauthorize"'); ?></li>
29
+ <li><?php printf(__('Authorize your %1$s by clicking on the following button.', 'nextend-facebook-connect'), "Nextend Social Login Pro Addon"); ?></li>
30
+ </ol>
31
+ <?php
32
+ NextendSocialLoginAdmin::authorizeBox();
33
+ } else {
34
+ echo '<div class="updated"><p>' . __('The authorized domain name of your site is fine!', 'nextend-facebook-connect') . '</p></div>';
35
+ }
36
+
37
+
38
+ ?>
39
+ </div>
admin/templates/global-settings.php CHANGED
@@ -5,6 +5,7 @@ defined('ABSPATH') || die();
5
 
6
  $allowedSubviews = array(
7
  'general',
 
8
  'login-form',
9
  'woocommerce',
10
  'comment',
@@ -27,6 +28,8 @@ if (!NextendSocialLoginAdmin::isPro()) {
27
  <div class="nsl-admin-sub-nav-bar">
28
  <a href="<?php echo NextendSocialLoginAdmin::getAdminSettingsUrl('general'); ?>"
29
  class="nsl-admin-nav-tab<?php if ($subview === 'general'): ?> nsl-admin-nav-tab-active<?php endif; ?>"><?php _e('General', 'nextend-facebook-connect'); ?></a>
 
 
30
  <a href="<?php echo NextendSocialLoginAdmin::getAdminSettingsUrl('login-form'); ?>"
31
  class="nsl-admin-nav-tab<?php if ($subview === 'login-form'): ?> nsl-admin-nav-tab-active<?php endif; ?>"><?php _e('Login Form', 'nextend-facebook-connect'); ?></a>
32
  <a href="<?php echo NextendSocialLoginAdmin::getAdminSettingsUrl('woocommerce'); ?>"
5
 
6
  $allowedSubviews = array(
7
  'general',
8
+ 'privacy',
9
  'login-form',
10
  'woocommerce',
11
  'comment',
28
  <div class="nsl-admin-sub-nav-bar">
29
  <a href="<?php echo NextendSocialLoginAdmin::getAdminSettingsUrl('general'); ?>"
30
  class="nsl-admin-nav-tab<?php if ($subview === 'general'): ?> nsl-admin-nav-tab-active<?php endif; ?>"><?php _e('General', 'nextend-facebook-connect'); ?></a>
31
+ <a href="<?php echo NextendSocialLoginAdmin::getAdminSettingsUrl('privacy'); ?>"
32
+ class="nsl-admin-nav-tab<?php if ($subview === 'privacy'): ?> nsl-admin-nav-tab-active<?php endif; ?>"><?php _e('Privacy', 'nextend-facebook-connect'); ?></a>
33
  <a href="<?php echo NextendSocialLoginAdmin::getAdminSettingsUrl('login-form'); ?>"
34
  class="nsl-admin-nav-tab<?php if ($subview === 'login-form'): ?> nsl-admin-nav-tab-active<?php endif; ?>"><?php _e('Login Form', 'nextend-facebook-connect'); ?></a>
35
  <a href="<?php echo NextendSocialLoginAdmin::getAdminSettingsUrl('woocommerce'); ?>"
admin/templates/pro-addon.php CHANGED
@@ -111,94 +111,6 @@ function nsl_license_not_installed($view) {
111
  <?php
112
  }
113
 
114
- function nsl_license_no_license($view) {
115
-
116
- $args = array(
117
- 'product' => 'nsl',
118
- 'domain' => parse_url(site_url(), PHP_URL_HOST),
119
- 'platform' => 'wordpress'
120
-
121
- );
122
-
123
- $authorizeUrl = NextendSocialLoginAdmin::trackUrl('https://secure.nextendweb.com/authorize/', 'authorize');
124
- ?>
125
- <div class="nsl-box nsl-box-yellow nsl-box-padlock">
126
- <h2 class="title"><?php _e('Authorize your Pro Addon', 'nextend-facebook-connect'); ?></h2>
127
- <p><?php _e('To be able to use the Pro features, you need to authorize Nextend Social Connect Pro Addon. You can do this by clicking on the Authorize button below then select the related purchase.', 'nextend-facebook-connect'); ?></p>
128
-
129
- <p>
130
- <a href="#"
131
- onclick="window.authorizeWindow = NSLPopupCenter('<?php echo $authorizeUrl; ?>', 'authorize-window', 800, 800);return false;"
132
- class="button button-primary"><?php _e('Authorize', 'nextend-facebook-connect'); ?></a>
133
- </p>
134
- </div>
135
-
136
- <script type="text/javascript">
137
- (function ($) {
138
-
139
- var args = <?php echo wp_json_encode($args); ?>;
140
- window.addEventListener('message', function (e) {
141
- if (e.origin === 'https://secure.nextendweb.com') {
142
- if (typeof window.authorizeWindow === 'undefined') {
143
- if (typeof e.source !== 'undefined') {
144
- window.authorizeWindow = e.source;
145
- } else {
146
- return false;
147
- }
148
- }
149
-
150
- try {
151
- var envelope = JSON.parse(e.data);
152
-
153
- if (envelope.action) {
154
- switch (envelope.action) {
155
- case 'ready':
156
- window.authorizeWindow.postMessage(JSON.stringify({
157
- 'action': 'authorize',
158
- 'data': args
159
- }), 'https://secure.nextendweb.com');
160
- break;
161
- case 'license':
162
- $('#license_key').val(envelope.license_key);
163
- $('#license_form').submit();
164
- break;
165
- }
166
-
167
- }
168
- }
169
- catch (ex) {
170
- console.error(ex);
171
- console.log(e);
172
- }
173
- }
174
- });
175
- })(jQuery);
176
- </script>
177
-
178
- <form id="license_form" method="post" action="<?php echo admin_url('admin-post.php'); ?>"
179
- novalidate="novalidate" style="display:none;">
180
-
181
- <?php wp_nonce_field('nextend-social-login'); ?>
182
- <input type="hidden" name="action" value="nextend-social-login"/>
183
- <input type="hidden" name="view" value="<?php echo $view; ?>"/>
184
-
185
- <table class="form-table">
186
- <tbody>
187
- <tr>
188
- <th scope="row"><label
189
- for="license_key"><?php _e('License key', 'nextend-facebook-connect'); ?></label></th>
190
- <td><input name="license_key" type="text" id="license_key"
191
- value="<?php echo esc_attr(NextendSocialLogin::$settings->get('license_key')); ?>"
192
- class="regular-text">
193
- </td>
194
- </tr>
195
- </tbody>
196
- </table>
197
-
198
- </form>
199
- <?php
200
- }
201
-
202
  function nsl_license_activated($view) {
203
  ?>
204
 
@@ -234,7 +146,7 @@ function nsl_license_activated($view) {
234
  nsl_license_not_installed($view);
235
  break;
236
  case 'no-license':
237
- nsl_license_no_license($view);
238
  break;
239
  case 'activated':
240
  nsl_license_activated($view);
111
  <?php
112
  }
113
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  function nsl_license_activated($view) {
115
  ?>
116
 
146
  nsl_license_not_installed($view);
147
  break;
148
  case 'no-license':
149
+ NextendSocialLoginAdmin::authorizeBox($view);
150
  break;
151
  case 'activated':
152
  nsl_license_activated($view);
admin/templates/settings/buddypress.php CHANGED
@@ -15,7 +15,7 @@ NextendSocialLoginAdmin::showProBox();
15
  <table class="form-table">
16
  <tbody>
17
  <tr>
18
- <th scope="row"><?php _e('BuddyPress register form', 'nextend-facebook-connect'); ?></th>
19
  <td>
20
  <fieldset>
21
  <label><input type="radio" name="buddypress_register_button"
@@ -40,7 +40,7 @@ NextendSocialLoginAdmin::showProBox();
40
  </td>
41
  </tr>
42
  <tr>
43
- <th scope="row"><?php _e('BuddyPress register button style', 'nextend-facebook-connect'); ?></th>
44
  <td>
45
  <fieldset>
46
  <label>
15
  <table class="form-table">
16
  <tbody>
17
  <tr>
18
+ <th scope="row"><?php _e('Register form', 'nextend-facebook-connect'); ?></th>
19
  <td>
20
  <fieldset>
21
  <label><input type="radio" name="buddypress_register_button"
40
  </td>
41
  </tr>
42
  <tr>
43
+ <th scope="row"><?php _e('Register button style', 'nextend-facebook-connect'); ?></th>
44
  <td>
45
  <fieldset>
46
  <label>
admin/templates/settings/comment.php CHANGED
@@ -15,11 +15,9 @@ NextendSocialLoginAdmin::showProBox();
15
  <table class="form-table">
16
  <tbody>
17
  <tr>
18
- <th scope="row"><?php _e('Comment login button', 'nextend-facebook-connect'); ?></th>
19
  <td>
20
  <fieldset>
21
- <legend class="screen-reader-text">
22
- <span><?php _e('Comment login button', 'nextend-facebook-connect'); ?></span></legend>
23
  <label><input type="radio" name="comment_login_button"
24
  value="show" <?php if ($settings->get('comment_login_button') == 'show') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
25
  <span><?php _e('Show', 'nextend-facebook-connect'); ?></span></label><br>
@@ -31,7 +29,7 @@ NextendSocialLoginAdmin::showProBox();
31
  </td>
32
  </tr>
33
  <tr>
34
- <th scope="row"><?php _e('Comment button style', 'nextend-facebook-connect'); ?></th>
35
  <td>
36
  <fieldset>
37
  <label>
15
  <table class="form-table">
16
  <tbody>
17
  <tr>
18
+ <th scope="row"><?php _e('Login button', 'nextend-facebook-connect'); ?></th>
19
  <td>
20
  <fieldset>
 
 
21
  <label><input type="radio" name="comment_login_button"
22
  value="show" <?php if ($settings->get('comment_login_button') == 'show') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
23
  <span><?php _e('Show', 'nextend-facebook-connect'); ?></span></label><br>
29
  </td>
30
  </tr>
31
  <tr>
32
+ <th scope="row"><?php _e('Button style', 'nextend-facebook-connect'); ?></th>
33
  <td>
34
  <fieldset>
35
  <label>
admin/templates/settings/general-pro.php CHANGED
@@ -54,8 +54,6 @@ NextendSocialLoginAdmin::showProBox();
54
  <th scope="row"><?php _e('Registration notification sent to', 'nextend-facebook-connect'); ?></th>
55
  <td>
56
  <fieldset>
57
- <legend class="screen-reader-text">
58
- <span><?php _e('Registration notification sent to', 'nextend-facebook-connect'); ?></span></legend>
59
  <label><input type="radio" name="registration_notification_notify"
60
  value="0" <?php if ($settings->get('registration_notification_notify') == '0') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
61
  <span><?php _e('WordPress default', 'nextend-facebook-connect'); ?></span></label><br>
54
  <th scope="row"><?php _e('Registration notification sent to', 'nextend-facebook-connect'); ?></th>
55
  <td>
56
  <fieldset>
 
 
57
  <label><input type="radio" name="registration_notification_notify"
58
  value="0" <?php if ($settings->get('registration_notification_notify') == '0') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
59
  <span><?php _e('WordPress default', 'nextend-facebook-connect'); ?></span></label><br>
admin/templates/settings/general.php CHANGED
@@ -48,8 +48,6 @@
48
  <th scope="row"><?php _e('Debug mode', 'nextend-facebook-connect'); ?></th>
49
  <td>
50
  <fieldset>
51
- <legend class="screen-reader-text">
52
- <span><?php _e('Debug mode', 'nextend-facebook-connect'); ?></span></legend>
53
  <label><input type="radio" name="debug"
54
  value="0" <?php if ($settings->get('debug') == '0') : ?> checked="checked" <?php endif; ?>>
55
  <span><?php _e('Disabled', 'nextend-facebook-connect'); ?></span></label><br>
@@ -59,18 +57,26 @@
59
  </fieldset>
60
  </td>
61
  </tr>
62
-
63
  <tr>
64
- <th scope="row"><?php _e('Store Avatar', 'nextend-facebook-connect'); ?></th>
65
  <td>
66
- <fieldset>
67
- <label><input type="radio" name="avatar_store"
68
- value="0" <?php if ($settings->get('avatar_store') == '0') : ?> checked="checked" <?php endif; ?>>
69
- <span><?php _e('Disabled', 'nextend-facebook-connect'); ?></span></label><br>
70
- <label><input type="radio" name="avatar_store"
71
- value="1" <?php if ($settings->get('avatar_store') == '1') : ?> checked="checked" <?php endif; ?>>
72
- <span><?php _e('Enabled', 'nextend-facebook-connect'); ?></span></label><br>
73
- </fieldset>
 
 
 
 
 
 
 
 
 
74
  </td>
75
  </tr>
76
 
@@ -80,8 +86,8 @@
80
  </th>
81
  <td>
82
  <?php
83
- $useDefault = false;
84
- $default_redirect = $settings->get('default_redirect');
85
  if (!empty($default_redirect)) {
86
  $useDefault = true;
87
  }
@@ -95,7 +101,7 @@
95
  class="regular-text"<?php if (!$useDefault): ?> style="display:none;"<?php endif; ?>>
96
 
97
  <?php
98
- $useDefault = false;
99
  $default_redirectReg = $settings->get('default_redirect_reg');
100
  if (!empty($default_redirectReg)) {
101
  $useDefault = true;
48
  <th scope="row"><?php _e('Debug mode', 'nextend-facebook-connect'); ?></th>
49
  <td>
50
  <fieldset>
 
 
51
  <label><input type="radio" name="debug"
52
  value="0" <?php if ($settings->get('debug') == '0') : ?> checked="checked" <?php endif; ?>>
53
  <span><?php _e('Disabled', 'nextend-facebook-connect'); ?></span></label><br>
57
  </fieldset>
58
  </td>
59
  </tr>
 
60
  <tr>
61
+ <th scope="row"><?php _e('Page for register flow', 'nextend-facebook-connect'); ?></th>
62
  <td>
63
+ <?php wp_dropdown_pages(array(
64
+ 'name' => 'register-flow-page',
65
+ 'show_option_none' => __('None'),
66
+ 'selected' => $settings->get('register-flow-page')
67
+ )); ?>
68
+ <p class="description" id="tagline-register-flow-page"><?php printf(__('First create a new page for register flow and insert the following shortcode: %1$s then select this page above', 'nextend-facebook-connect'), '<code>[nextend_social_login_register_flow]</code>'); ?></p>
69
+ </td>
70
+ </tr>
71
+ <tr>
72
+ <th scope="row"><?php _e('OAuth redirect uri proxy page', 'nextend-facebook-connect'); ?></th>
73
+ <td>
74
+ <?php wp_dropdown_pages(array(
75
+ 'name' => 'proxy-page',
76
+ 'show_option_none' => __('None'),
77
+ 'selected' => $settings->get('proxy-page')
78
+ )); ?>
79
+ <p class="description" id="tagline-proxy-page"><?php _e('Pick a custom page when wp-login.php not available to handle the OAuth flow.', 'nextend-facebook-connect'); ?></p>
80
  </td>
81
  </tr>
82
 
86
  </th>
87
  <td>
88
  <?php
89
+ $useDefault = false;
90
+ $default_redirect = $settings->get('default_redirect');
91
  if (!empty($default_redirect)) {
92
  $useDefault = true;
93
  }
101
  class="regular-text"<?php if (!$useDefault): ?> style="display:none;"<?php endif; ?>>
102
 
103
  <?php
104
+ $useDefault = false;
105
  $default_redirectReg = $settings->get('default_redirect_reg');
106
  if (!empty($default_redirectReg)) {
107
  $useDefault = true;
admin/templates/settings/memberpress.php CHANGED
@@ -65,7 +65,7 @@ NextendSocialLoginAdmin::showProBox();
65
  </td>
66
  </tr>
67
  <tr>
68
- <th scope="row"><?php _e('MemberPress account details', 'nextend-facebook-connect'); ?></th>
69
  <td>
70
  <fieldset>
71
  <label><input type="radio" name="memberpress_account_details"
65
  </td>
66
  </tr>
67
  <tr>
68
+ <th scope="row"><?php _e('Account details', 'nextend-facebook-connect'); ?></th>
69
  <td>
70
  <fieldset>
71
  <label><input type="radio" name="memberpress_account_details"
admin/templates/settings/privacy.php ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script type="text/javascript">
2
+ (function ($) {
3
+
4
+ window.NSLResetTerms = function () {
5
+ var id = 'terms',
6
+ content = <?php echo wp_json_encode(__('By clicking Register, you accept our <a href="#privacy_policy_url" target="_blank">Privacy Policy</a>', 'nextend-facebook-connect')); ?>;
7
+
8
+ if ($('#wp-' + id + '-wrap').hasClass('html-active')) {
9
+ $('#' + id).val(content);
10
+ } else { // We are in tinyMCE mode
11
+ var activeEditor = tinyMCE.get(id);
12
+ if (activeEditor !== null) {
13
+ activeEditor.setContent(content);
14
+ }
15
+ }
16
+
17
+ return false;
18
+ };
19
+
20
+ $(document).ready(function () {
21
+ $('#terms_show').on('change', function () {
22
+ if ($(this).is(':checked')) {
23
+ $('#nsl-terms').css('display', '');
24
+ } else {
25
+ $('#nsl-terms').css('display', 'none');
26
+ }
27
+ });
28
+ });
29
+ })(jQuery);
30
+ </script>
31
+
32
+ <table class="form-table">
33
+ <tbody>
34
+ <tr>
35
+ <th scope="row"><?php _e('Terms and conditions', 'nextend-facebook-connect'); ?></th>
36
+ <td>
37
+ <fieldset>
38
+ <label for="terms_show">
39
+ <input type="hidden" name="terms_show" value="0">
40
+ <input type="checkbox" name="terms_show" id="terms_show"
41
+ value="1" <?php if ($settings->get('terms_show') == '1') : ?> checked="checked" <?php endif; ?>>
42
+ <?php _e('Show', 'nextend-facebook-connect'); ?>
43
+ </label>
44
+
45
+ <div id="nsl-terms" <?php if ($settings->get('terms_show') != '1') : ?> style="display:none;" <?php endif; ?>>
46
+ <?php
47
+ wp_editor($settings->get('terms'), 'terms', array(
48
+ 'textarea_rows' => 4,
49
+ 'media_buttons' => false
50
+ ));
51
+ ?>
52
+ <p class="description"><a href="#"
53
+ onclick="return NSLResetTerms();"><?php _e('Reset to default', 'nextend-facebook-connect'); ?></a>
54
+ </div>
55
+ </fieldset>
56
+ </td>
57
+ </tr>
58
+ <tr>
59
+ <th scope="row"><?php _e('Store', 'nextend-facebook-connect'); ?></th>
60
+ <td>
61
+ <label for="store_name">
62
+ <input type="hidden" name="store_name" value="0">
63
+ <input type="checkbox" name="store_name" id="store_name"
64
+ value="1" <?php if ($settings->get('store_name') == '1') : ?> checked="checked" <?php endif; ?>>
65
+ <?php _e('First and last name', 'nextend-facebook-connect'); ?>
66
+ </label>
67
+ <p class="description"
68
+ id="tagline-store_name"><?php _e('When not enabled, username will be randomly generated.', 'nextend-facebook-connect'); ?></p>
69
+ </td>
70
+ </tr>
71
+ <tr>
72
+ <th scope="row"></th>
73
+ <td>
74
+ <label for="store_email">
75
+ <input type="hidden" name="store_email" value="0">
76
+ <input type="checkbox" name="store_email" id="store_email"
77
+ value="1" <?php if ($settings->get('store_email') == '1') : ?> checked="checked" <?php endif; ?>>
78
+ <?php _e('Email', 'nextend-facebook-connect'); ?>
79
+ </label>
80
+ <p class="description"
81
+ id="tagline-store_email"><?php _e('When not enabled, email will be empty.', 'nextend-facebook-connect'); ?></p>
82
+ </td>
83
+ </tr>
84
+ <tr>
85
+ <th scope="row"></th>
86
+ <td>
87
+ <label for="avatar_store">
88
+ <input type="hidden" name="avatar_store" value="0">
89
+ <input type="checkbox" name="avatar_store" id="avatar_store"
90
+ value="1" <?php if ($settings->get('avatar_store') == '1') : ?> checked="checked" <?php endif; ?>>
91
+ <?php _e('Avatar', 'nextend-facebook-connect'); ?>
92
+ </label>
93
+ </td>
94
+ </tr>
95
+ <tr>
96
+ <th scope="row"></th>
97
+ <td>
98
+ <label for="store_access_token">
99
+ <input type="hidden" name="store_access_token" value="0">
100
+ <input type="checkbox" name="store_access_token" id="store_access_token"
101
+ value="1" <?php if ($settings->get('store_access_token') == '1') : ?> checked="checked" <?php endif; ?>>
102
+ <?php _e('Access token', 'nextend-facebook-connect'); ?>
103
+ </label>
104
+ </td>
105
+ </tr>
106
+ </tbody>
107
+ </table>
108
+ <p class="submit"><input type="submit" name="submit" id="submit" class="button button-primary" value="<?php _e('Save Changes'); ?>"></p>
admin/templates/settings/woocommerce.php CHANGED
@@ -15,7 +15,27 @@ NextendSocialLoginAdmin::showProBox();
15
  <table class="form-table">
16
  <tbody>
17
  <tr>
18
- <th scope="row"><?php _e('WooCommerce login form', 'nextend-facebook-connect'); ?></th>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  <td>
20
  <fieldset>
21
  <label><input type="radio" name="woocommerce_login"
@@ -23,20 +43,57 @@ NextendSocialLoginAdmin::showProBox();
23
  <span><?php _e('No Connect button in login form', 'nextend-facebook-connect'); ?></span></label><br>
24
  <label><input type="radio" name="woocommerce_login"
25
  value="before" <?php if ($settings->get('woocommerce_login') == 'before') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
26
- <span><?php _e('Connect button before login form', 'nextend-facebook-connect'); ?></span>
27
  <code><?php _e('Action:'); ?>
28
  woocommerce_login_form_start</code></label><br>
29
  <label><input type="radio" name="woocommerce_login"
30
  value="after" <?php if ($settings->get('woocommerce_login') == 'after') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
31
- <span><?php _e('Connect button after login form', 'nextend-facebook-connect'); ?></span>
32
  <code><?php _e('Action:'); ?>
33
  woocommerce_login_form_end</code></label><br>
34
  </fieldset>
35
  </td>
36
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
 
38
  <tr>
39
- <th scope="row"><?php _e('WooCommerce register form', 'nextend-facebook-connect'); ?></th>
40
  <td>
41
  <fieldset>
42
  <label><input type="radio" name="woocommerce_register"
@@ -44,80 +101,130 @@ NextendSocialLoginAdmin::showProBox();
44
  <span><?php _e('No Connect button in register form', 'nextend-facebook-connect'); ?></span></label><br>
45
  <label><input type="radio" name="woocommerce_register"
46
  value="before" <?php if ($settings->get('woocommerce_register') == 'before') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
47
- <span><?php _e('Connect button before register form', 'nextend-facebook-connect'); ?></span>
48
  <code><?php _e('Action:'); ?>
49
  woocommerce_register_form_start</code></label><br>
50
  <label><input type="radio" name="woocommerce_register"
51
  value="after" <?php if ($settings->get('woocommerce_register') == 'after') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
52
- <span><?php _e('Connect button after register form', 'nextend-facebook-connect'); ?></span>
53
  <code><?php _e('Action:'); ?>
54
  woocommerce_register_form_end</code></label><br>
55
  </fieldset>
56
  </td>
57
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
 
59
  <tr>
60
- <th scope="row"><?php _e('WooCommerce billing form', 'nextend-facebook-connect'); ?></th>
61
  <td>
62
  <fieldset>
63
- <legend class="screen-reader-text">
64
- <span><?php _e('WooCommerce billing form', 'nextend-facebook-connect'); ?></span></legend>
65
  <label><input type="radio" name="woocommerce_billing"
66
  value="" <?php if ($settings->get('woocommerce_billing') == '') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
67
  <span><?php _e('No Connect button in billing form', 'nextend-facebook-connect'); ?></span></label><br>
68
  <label><input type="radio" name="woocommerce_billing"
69
  value="before" <?php if ($settings->get('woocommerce_billing') == 'before') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
70
- <span><?php _e('Connect button before billing form', 'nextend-facebook-connect'); ?></span>
71
  <code><?php _e('Action:'); ?>
72
  woocommerce_before_checkout_billing_form</code></label><br>
73
  <label><input type="radio" name="woocommerce_billing"
74
  value="after" <?php if ($settings->get('woocommerce_billing') == 'after') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
75
- <span><?php _e('Connect button after billing form', 'nextend-facebook-connect'); ?></span></label>
76
  <code><?php _e('Action:'); ?>
77
  woocommerce_after_checkout_billing_form</code><br>
78
  </fieldset>
79
  </td>
80
  </tr>
81
  <tr>
82
- <th scope="row"><?php _e('WooCommerce account details', 'nextend-facebook-connect'); ?></th>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
83
  <td>
84
  <fieldset>
85
- <legend class="screen-reader-text">
86
- <span><?php _e('WooCommerce account details', 'nextend-facebook-connect'); ?></span></legend>
87
  <label><input type="radio" name="woocommerce_account_details"
88
  value="before" <?php if ($settings->get('woocommerce_account_details') == 'before') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
89
- <span><?php _e('Link buttons before account details', 'nextend-facebook-connect'); ?></span>
90
  <code><?php _e('Action:'); ?>
91
  woocommerce_edit_account_form_start</code></label><br>
92
  <label><input type="radio" name="woocommerce_account_details"
93
  value="after" <?php if ($settings->get('woocommerce_account_details') == 'after') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
94
- <span><?php _e('Link buttons after account details', 'nextend-facebook-connect'); ?></span>
95
  <code><?php _e('Action:'); ?>
96
  woocommerce_edit_account_form_end</code></label><br>
97
  </fieldset>
98
  </td>
99
  </tr>
100
- <tr>
101
- <th scope="row"><?php _e('WooCommerce button style', 'nextend-facebook-connect'); ?></th>
102
- <td>
103
- <fieldset>
104
- <legend class="screen-reader-text">
105
- <span><?php _e('WooCommerce button style', 'nextend-facebook-connect'); ?></span></legend>
106
- <label>
107
- <input type="radio" name="woocoommerce_form_button_style"
108
- value="default" <?php if ($settings->get('woocoommerce_form_button_style') == 'default') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
109
- <span><?php _e('Default', 'nextend-facebook-connect'); ?></span><br/>
110
- <img src="<?php echo plugins_url('images/buttons/default.png', NSL_ADMIN_PATH) ?>"/>
111
- </label>
112
- <label>
113
- <input type="radio" name="woocoommerce_form_button_style"
114
- value="icon" <?php if ($settings->get('woocoommerce_form_button_style') == 'icon') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
115
- <span><?php _e('Icon', 'nextend-facebook-connect'); ?></span><br/>
116
- <img src="<?php echo plugins_url('images/buttons/icon.png', NSL_ADMIN_PATH) ?>"/>
117
- </label><br>
118
- </fieldset>
119
- </td>
120
- </tr>
121
  </tbody>
122
  </table>
123
  <?php if ($isPRO): ?>
15
  <table class="form-table">
16
  <tbody>
17
  <tr>
18
+ <th scope="row"><?php _e('Button style', 'nextend-facebook-connect'); ?></th>
19
+ <td>
20
+ <fieldset>
21
+ <label>
22
+ <input type="radio" name="woocoommerce_form_button_style"
23
+ value="default" <?php if ($settings->get('woocoommerce_form_button_style') == 'default') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
24
+ <span><?php _e('Default', 'nextend-facebook-connect'); ?></span><br/>
25
+ <img src="<?php echo plugins_url('images/buttons/default.png', NSL_ADMIN_PATH) ?>"/>
26
+ </label>
27
+ <label>
28
+ <input type="radio" name="woocoommerce_form_button_style"
29
+ value="icon" <?php if ($settings->get('woocoommerce_form_button_style') == 'icon') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
30
+ <span><?php _e('Icon', 'nextend-facebook-connect'); ?></span><br/>
31
+ <img src="<?php echo plugins_url('images/buttons/icon.png', NSL_ADMIN_PATH) ?>"/>
32
+ </label><br>
33
+ </fieldset>
34
+ </td>
35
+ </tr>
36
+
37
+ <tr>
38
+ <th scope="row"><?php _e('Login form', 'nextend-facebook-connect'); ?></th>
39
  <td>
40
  <fieldset>
41
  <label><input type="radio" name="woocommerce_login"
43
  <span><?php _e('No Connect button in login form', 'nextend-facebook-connect'); ?></span></label><br>
44
  <label><input type="radio" name="woocommerce_login"
45
  value="before" <?php if ($settings->get('woocommerce_login') == 'before') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
46
+ <span><?php _e('Connect button on', 'nextend-facebook-connect'); ?></span>
47
  <code><?php _e('Action:'); ?>
48
  woocommerce_login_form_start</code></label><br>
49
  <label><input type="radio" name="woocommerce_login"
50
  value="after" <?php if ($settings->get('woocommerce_login') == 'after') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
51
+ <span><?php _e('Connect button on', 'nextend-facebook-connect'); ?></span>
52
  <code><?php _e('Action:'); ?>
53
  woocommerce_login_form_end</code></label><br>
54
  </fieldset>
55
  </td>
56
  </tr>
57
+ <tr>
58
+ <th scope="row"><?php _e('Login layout', 'nextend-facebook-connect'); ?></th>
59
+ <td>
60
+ <fieldset>
61
+ <label>
62
+ <input type="radio" name="woocommerce_login_form_layout"
63
+ value="default" <?php if ($settings->get('woocommerce_login_form_layout') == 'default') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
64
+ <span><?php _e('Default', 'nextend-facebook-connect'); ?></span><br/>
65
+ <img src="<?php echo plugins_url('images/layouts/default.png', NSL_ADMIN_PATH) ?>"/>
66
+ </label>
67
+ <label>
68
+ <input type="radio" name="woocommerce_login_form_layout"
69
+ value="below" <?php if ($settings->get('woocommerce_login_form_layout') == 'below') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
70
+ <span><?php _e('Below', 'nextend-facebook-connect'); ?></span><br/>
71
+ <img src="<?php echo plugins_url('images/layouts/below.png', NSL_ADMIN_PATH) ?>"/>
72
+ </label>
73
+ <label>
74
+ <input type="radio" name="woocommerce_login_form_layout"
75
+ value="below-separator" <?php if ($settings->get('woocommerce_login_form_layout') == 'below-separator') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
76
+ <span><?php _e('Below with separator', 'nextend-facebook-connect'); ?></span><br/>
77
+ <img src="<?php echo plugins_url('images/layouts/below-separator.png', NSL_ADMIN_PATH) ?>"/>
78
+ </label>
79
+ <label>
80
+ <input type="radio" name="woocommerce_login_form_layout"
81
+ value="above" <?php if ($settings->get('woocommerce_login_form_layout') == 'above') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
82
+ <span><?php _e('Above', 'nextend-facebook-connect'); ?></span><br/>
83
+ <img src="<?php echo plugins_url('images/layouts/above.png', NSL_ADMIN_PATH) ?>"/>
84
+ </label>
85
+ <label>
86
+ <input type="radio" name="woocommerce_login_form_layout"
87
+ value="above-separator" <?php if ($settings->get('woocommerce_login_form_layout') == 'above-separator') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
88
+ <span><?php _e('Above with separator', 'nextend-facebook-connect'); ?></span><br/>
89
+ <img src="<?php echo plugins_url('images/layouts/above-separator.png', NSL_ADMIN_PATH) ?>"/>
90
+ </label><br>
91
+ </fieldset>
92
+ </td>
93
+ </tr>
94
 
95
  <tr>
96
+ <th scope="row"><?php _e('Register form', 'nextend-facebook-connect'); ?></th>
97
  <td>
98
  <fieldset>
99
  <label><input type="radio" name="woocommerce_register"
101
  <span><?php _e('No Connect button in register form', 'nextend-facebook-connect'); ?></span></label><br>
102
  <label><input type="radio" name="woocommerce_register"
103
  value="before" <?php if ($settings->get('woocommerce_register') == 'before') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
104
+ <span><?php _e('Connect button on', 'nextend-facebook-connect'); ?></span>
105
  <code><?php _e('Action:'); ?>
106
  woocommerce_register_form_start</code></label><br>
107
  <label><input type="radio" name="woocommerce_register"
108
  value="after" <?php if ($settings->get('woocommerce_register') == 'after') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
109
+ <span><?php _e('Connect button on', 'nextend-facebook-connect'); ?></span>
110
  <code><?php _e('Action:'); ?>
111
  woocommerce_register_form_end</code></label><br>
112
  </fieldset>
113
  </td>
114
  </tr>
115
+ <tr>
116
+ <th scope="row"><?php _e('Register layout', 'nextend-facebook-connect'); ?></th>
117
+ <td>
118
+ <fieldset>
119
+ <label>
120
+ <input type="radio" name="woocommerce_register_form_layout"
121
+ value="default" <?php if ($settings->get('woocommerce_register_form_layout') == 'default') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
122
+ <span><?php _e('Default', 'nextend-facebook-connect'); ?></span><br/>
123
+ <img src="<?php echo plugins_url('images/layouts/default.png', NSL_ADMIN_PATH) ?>"/>
124
+ </label>
125
+ <label>
126
+ <input type="radio" name="woocommerce_register_form_layout"
127
+ value="below" <?php if ($settings->get('woocommerce_register_form_layout') == 'below') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
128
+ <span><?php _e('Below', 'nextend-facebook-connect'); ?></span><br/>
129
+ <img src="<?php echo plugins_url('images/layouts/below.png', NSL_ADMIN_PATH) ?>"/>
130
+ </label>
131
+ <label>
132
+ <input type="radio" name="woocommerce_register_form_layout"
133
+ value="below-separator" <?php if ($settings->get('woocommerce_register_form_layout') == 'below-separator') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
134
+ <span><?php _e('Below with separator', 'nextend-facebook-connect'); ?></span><br/>
135
+ <img src="<?php echo plugins_url('images/layouts/below-separator.png', NSL_ADMIN_PATH) ?>"/>
136
+ </label>
137
+ <label>
138
+ <input type="radio" name="woocommerce_register_form_layout"
139
+ value="above" <?php if ($settings->get('woocommerce_register_form_layout') == 'above') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
140
+ <span><?php _e('Above', 'nextend-facebook-connect'); ?></span><br/>
141
+ <img src="<?php echo plugins_url('images/layouts/above.png', NSL_ADMIN_PATH) ?>"/>
142
+ </label>
143
+ <label>
144
+ <input type="radio" name="woocommerce_register_form_layout"
145
+ value="above-separator" <?php if ($settings->get('woocommerce_register_form_layout') == 'above-separator') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
146
+ <span><?php _e('Above with separator', 'nextend-facebook-connect'); ?></span><br/>
147
+ <img src="<?php echo plugins_url('images/layouts/above-separator.png', NSL_ADMIN_PATH) ?>"/>
148
+ </label><br>
149
+ </fieldset>
150
+ </td>
151
+ </tr>
152
 
153
  <tr>
154
+ <th scope="row"><?php _e('Billing form', 'nextend-facebook-connect'); ?></th>
155
  <td>
156
  <fieldset>
 
 
157
  <label><input type="radio" name="woocommerce_billing"
158
  value="" <?php if ($settings->get('woocommerce_billing') == '') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
159
  <span><?php _e('No Connect button in billing form', 'nextend-facebook-connect'); ?></span></label><br>
160
  <label><input type="radio" name="woocommerce_billing"
161
  value="before" <?php if ($settings->get('woocommerce_billing') == 'before') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
162
+ <span><?php _e('Connect button on', 'nextend-facebook-connect'); ?></span>
163
  <code><?php _e('Action:'); ?>
164
  woocommerce_before_checkout_billing_form</code></label><br>
165
  <label><input type="radio" name="woocommerce_billing"
166
  value="after" <?php if ($settings->get('woocommerce_billing') == 'after') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
167
+ <span><?php _e('Connect button on', 'nextend-facebook-connect'); ?></span></label>
168
  <code><?php _e('Action:'); ?>
169
  woocommerce_after_checkout_billing_form</code><br>
170
  </fieldset>
171
  </td>
172
  </tr>
173
  <tr>
174
+ <th scope="row"><?php _e('Billing layout', 'nextend-facebook-connect'); ?></th>
175
+ <td>
176
+ <fieldset>
177
+ <label>
178
+ <input type="radio" name="woocommerce_billing_form_layout"
179
+ value="default" <?php if ($settings->get('woocommerce_billing_form_layout') == 'default') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
180
+ <span><?php _e('Default', 'nextend-facebook-connect'); ?></span><br/>
181
+ <img src="<?php echo plugins_url('images/layouts/default.png', NSL_ADMIN_PATH) ?>"/>
182
+ </label>
183
+ <label>
184
+ <input type="radio" name="woocommerce_billing_form_layout"
185
+ value="below" <?php if ($settings->get('woocommerce_billing_form_layout') == 'below') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
186
+ <span><?php _e('Below', 'nextend-facebook-connect'); ?></span><br/>
187
+ <img src="<?php echo plugins_url('images/layouts/below.png', NSL_ADMIN_PATH) ?>"/>
188
+ </label>
189
+ <label>
190
+ <input type="radio" name="woocommerce_billing_form_layout"
191
+ value="below-separator" <?php if ($settings->get('woocommerce_billing_form_layout') == 'below-separator') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
192
+ <span><?php _e('Below with separator', 'nextend-facebook-connect'); ?></span><br/>
193
+ <img src="<?php echo plugins_url('images/layouts/below-separator.png', NSL_ADMIN_PATH) ?>"/>
194
+ </label>
195
+ <label>
196
+ <input type="radio" name="woocommerce_billing_form_layout"
197
+ value="above" <?php if ($settings->get('woocommerce_billing_form_layout') == 'above') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
198
+ <span><?php _e('Above', 'nextend-facebook-connect'); ?></span><br/>
199
+ <img src="<?php echo plugins_url('images/layouts/above.png', NSL_ADMIN_PATH) ?>"/>
200
+ </label>
201
+ <label>
202
+ <input type="radio" name="woocommerce_billing_form_layout"
203
+ value="above-separator" <?php if ($settings->get('woocommerce_billing_form_layout') == 'above-separator') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
204
+ <span><?php _e('Above with separator', 'nextend-facebook-connect'); ?></span><br/>
205
+ <img src="<?php echo plugins_url('images/layouts/above-separator.png', NSL_ADMIN_PATH) ?>"/>
206
+ </label><br>
207
+ </fieldset>
208
+ </td>
209
+ </tr>
210
+
211
+ <tr>
212
+ <th scope="row"><?php _e('Account details', 'nextend-facebook-connect'); ?></th>
213
  <td>
214
  <fieldset>
 
 
215
  <label><input type="radio" name="woocommerce_account_details"
216
  value="before" <?php if ($settings->get('woocommerce_account_details') == 'before') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
217
+ <span><?php _e('Link buttons on', 'nextend-facebook-connect'); ?></span>
218
  <code><?php _e('Action:'); ?>
219
  woocommerce_edit_account_form_start</code></label><br>
220
  <label><input type="radio" name="woocommerce_account_details"
221
  value="after" <?php if ($settings->get('woocommerce_account_details') == 'after') : ?> checked="checked" <?php endif; ?><?php echo $attr; ?>>
222
+ <span><?php _e('Link buttons on', 'nextend-facebook-connect'); ?></span>
223
  <code><?php _e('Action:'); ?>
224
  woocommerce_edit_account_form_end</code></label><br>
225
  </fieldset>
226
  </td>
227
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  </tbody>
229
  </table>
230
  <?php if ($isPRO): ?>
admin/templates/show-debug.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="nsl-admin-content">
2
+ <style>
3
+ .nsl-admin-notices {
4
+ display: none;
5
+ }
6
+ </style>
7
+ <h1 class="title"><?php _e('Debug', 'nextend-facebook-connect'); ?></h1>
8
+ <?php
9
+
10
+ $proAddonState = NextendSocialLoginAdmin::getProState();
11
+ $authorizedDomain = NextendSocialLogin::$settings->get('authorized_domain');
12
+ $currentDomain = NextendSocialLogin::getDomain();
13
+
14
+ $licenseKey = substr(NextendSocialLogin::$settings->get('license_key'),0,8);
15
+ $isLicenseKeyOk = NextendSocialLogin::$settings->get('license_key_ok');
16
+
17
+ $defaultRedirect = NextendSocialLogin::$settings->get('default_redirect');
18
+ $defaultRedirectReg = NextendSocialLogin::$settings->get('default_redirect_reg');
19
+
20
+ $fixRedirect = NextendSocialLogin::$settings->get('redirect');
21
+ $fixRedirectReg = NextendSocialLogin::$settings->get('redirect_reg');
22
+
23
+ echo "<p><b>Pro Addon State</b> : ".$proAddonState."</p>";
24
+ echo "<p><b>Authorized Domain</b> : ".$authorizedDomain."</p>";
25
+ echo "<p><b>Current Domain</b> : ".$currentDomain."</p><br>";
26
+
27
+ echo "<p><b>License Key</b> : ".$licenseKey."...</p>";
28
+ echo "<p><b>License Key OK</b> : ". (boolval($isLicenseKeyOk) ? 'true' : 'false') ."</p><br>";
29
+
30
+ echo "<p><b>Default Redirect URL</b> : ".$defaultRedirect."</p>";
31
+ echo "<p><b>Default Reg Redirect URL</b> : ".$defaultRedirectReg."</p><br>";
32
+
33
+ echo "<p><b>Fix Redirect URL</b> : ".$fixRedirect."</p>";
34
+ echo "<p><b>Fix Reg Redirect URL</b> : ".$fixRedirectReg."</p><br>";
35
+
36
+
37
+
38
+
39
+ ?>
40
+ </div>
includes/compat-wp-login.php ADDED
@@ -0,0 +1,277 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if (!defined('ABSPATH')) {
3
+ exit;
4
+ }
5
+
6
+ /**
7
+ * Output the login page header.
8
+ *
9
+ * @param string $title Optional. WordPress login Page title to display in the `<title>` element.
10
+ * Default 'Log In'.
11
+ * @param string $message Optional. Message to display in header. Default empty.
12
+ * @param WP_Error $wp_error Optional. The error to pass. Default empty.
13
+ */
14
+ function login_header( $title = 'Log In', $message = '', $wp_error = '' ) {
15
+ global $error, $interim_login, $action;
16
+
17
+ // Don't index any of these forms
18
+ add_action( 'login_head', 'wp_no_robots' );
19
+
20
+ add_action( 'login_head', 'wp_login_viewport_meta' );
21
+
22
+ if ( empty($wp_error) )
23
+ $wp_error = new WP_Error();
24
+
25
+ // Shake it!
26
+ $shake_error_codes = array( 'empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password' );
27
+ /**
28
+ * Filters the error codes array for shaking the login form.
29
+ *
30
+ * @since 3.0.0
31
+ *
32
+ * @param array $shake_error_codes Error codes that shake the login form.
33
+ */
34
+ $shake_error_codes = apply_filters( 'shake_error_codes', $shake_error_codes );
35
+
36
+ if ( $shake_error_codes && $wp_error->get_error_code() && in_array( $wp_error->get_error_code(), $shake_error_codes ) )
37
+ add_action( 'login_head', 'wp_shake_js', 12 );
38
+
39
+ $login_title = get_bloginfo( 'name', 'display' );
40
+
41
+ /* translators: Login screen title. 1: Login screen name, 2: Network or site name */
42
+ $login_title = sprintf( __( '%1$s &lsaquo; %2$s &#8212; WordPress' ), $title, $login_title );
43
+
44
+ /**
45
+ * Filters the title tag content for login page.
46
+ *
47
+ * @since 4.9.0
48
+ *
49
+ * @param string $login_title The page title, with extra context added.
50
+ * @param string $title The original page title.
51
+ */
52
+ $login_title = apply_filters( 'login_title', $login_title, $title );
53
+
54
+ ?><!DOCTYPE html>
55
+ <!--[if IE 8]>
56
+ <html xmlns="http://www.w3.org/1999/xhtml" class="ie8" <?php language_attributes(); ?>>
57
+ <![endif]-->
58
+ <!--[if !(IE 8) ]><!-->
59
+ <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
60
+ <!--<![endif]-->
61
+ <head>
62
+ <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
63
+ <title><?php echo $login_title; ?></title>
64
+ <?php
65
+
66
+ wp_enqueue_style( 'login' );
67
+
68
+ /*
69
+ * Remove all stored post data on logging out.
70
+ * This could be added by add_action('login_head'...) like wp_shake_js(),
71
+ * but maybe better if it's not removable by plugins
72
+ */
73
+ if ( 'loggedout' == $wp_error->get_error_code() ) {
74
+ ?>
75
+ <script>if("sessionStorage" in window){try{for(var key in sessionStorage){if(key.indexOf("wp-autosave-")!=-1){sessionStorage.removeItem(key)}}}catch(e){}};</script>
76
+ <?php
77
+ }
78
+
79
+ /**
80
+ * Enqueue scripts and styles for the login page.
81
+ *
82
+ * @since 3.1.0
83
+ */
84
+ do_action( 'login_enqueue_scripts' );
85
+
86
+ /**
87
+ * Fires in the login page header after scripts are enqueued.
88
+ *
89
+ * @since 2.1.0
90
+ */
91
+ do_action( 'login_head' );
92
+
93
+ if ( is_multisite() ) {
94
+ $login_header_url = network_home_url();
95
+ $login_header_title = get_network()->site_name;
96
+ } else {
97
+ $login_header_url = __( 'https://wordpress.org/' );
98
+ $login_header_title = __( 'Powered by WordPress' );
99
+ }
100
+
101
+ /**
102
+ * Filters link URL of the header logo above login form.
103
+ *
104
+ * @since 2.1.0
105
+ *
106
+ * @param string $login_header_url Login header logo URL.
107
+ */
108
+ $login_header_url = apply_filters( 'login_headerurl', $login_header_url );
109
+
110
+ /**
111
+ * Filters the title attribute of the header logo above login form.
112
+ *
113
+ * @since 2.1.0
114
+ *
115
+ * @param string $login_header_title Login header logo title attribute.
116
+ */
117
+ $login_header_title = apply_filters( 'login_headertitle', $login_header_title );
118
+
119
+ /*
120
+ * To match the URL/title set above, Multisite sites have the blog name,
121
+ * while single sites get the header title.
122
+ */
123
+ if ( is_multisite() ) {
124
+ $login_header_text = get_bloginfo( 'name', 'display' );
125
+ } else {
126
+ $login_header_text = $login_header_title;
127
+ }
128
+
129
+ $classes = array( 'login-action-' . $action, 'wp-core-ui' );
130
+ if ( is_rtl() )
131
+ $classes[] = 'rtl';
132
+ if ( $interim_login ) {
133
+ $classes[] = 'interim-login';
134
+ ?>
135
+ <style type="text/css">html{background-color: transparent;}</style>
136
+ <?php
137
+
138
+ if ( 'success' === $interim_login )
139
+ $classes[] = 'interim-login-success';
140
+ }
141
+ $classes[] =' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
142
+
143
+ /**
144
+ * Filters the login page body classes.
145
+ *
146
+ * @since 3.5.0
147
+ *
148
+ * @param array $classes An array of body classes.
149
+ * @param string $action The action that brought the visitor to the login page.
150
+ */
151
+ $classes = apply_filters( 'login_body_class', $classes, $action );
152
+
153
+ ?>
154
+ </head>
155
+ <body class="login <?php echo esc_attr( implode( ' ', $classes ) ); ?>">
156
+ <?php
157
+ /**
158
+ * Fires in the login page header after the body tag is opened.
159
+ *
160
+ * @since 4.6.0
161
+ */
162
+ do_action( 'login_header' );
163
+ ?>
164
+ <div id="login">
165
+ <h1><a href="<?php echo esc_url( $login_header_url ); ?>" title="<?php echo esc_attr( $login_header_title ); ?>" tabindex="-1"><?php echo $login_header_text; ?></a></h1>
166
+ <?php
167
+
168
+ unset( $login_header_url, $login_header_title );
169
+
170
+ /**
171
+ * Filters the message to display above the login form.
172
+ *
173
+ * @since 2.1.0
174
+ *
175
+ * @param string $message Login message text.
176
+ */
177
+ $message = apply_filters( 'login_message', $message );
178
+ if ( !empty( $message ) )
179
+ echo $message . "\n";
180
+
181
+ // In case a plugin uses $error rather than the $wp_errors object
182
+ if ( !empty( $error ) ) {
183
+ $wp_error->add('error', $error);
184
+ unset($error);
185
+ }
186
+
187
+ if ( $wp_error->get_error_code() ) {
188
+ $errors = '';
189
+ $messages = '';
190
+ foreach ( $wp_error->get_error_codes() as $code ) {
191
+ $severity = $wp_error->get_error_data( $code );
192
+ foreach ( $wp_error->get_error_messages( $code ) as $error_message ) {
193
+ if ( 'message' == $severity )
194
+ $messages .= ' ' . $error_message . "<br />\n";
195
+ else
196
+ $errors .= ' ' . $error_message . "<br />\n";
197
+ }
198
+ }
199
+ if ( ! empty( $errors ) ) {
200
+ /**
201
+ * Filters the error messages displayed above the login form.
202
+ *
203
+ * @since 2.1.0
204
+ *
205
+ * @param string $errors Login error message.
206
+ */
207
+ echo '<div id="login_error">' . apply_filters( 'login_errors', $errors ) . "</div>\n";
208
+ }
209
+ if ( ! empty( $messages ) ) {
210
+ /**
211
+ * Filters instructional messages displayed above the login form.
212
+ *
213
+ * @since 2.5.0
214
+ *
215
+ * @param string $messages Login messages.
216
+ */
217
+ echo '<p class="message">' . apply_filters( 'login_messages', $messages ) . "</p>\n";
218
+ }
219
+ }
220
+ } // End of login_header()
221
+
222
+ /**
223
+ * Outputs the footer for the login page.
224
+ *
225
+ * @param string $input_id Which input to auto-focus
226
+ */
227
+ function login_footer($input_id = '') {
228
+ global $interim_login;
229
+
230
+ // Don't allow interim logins to navigate away from the page.
231
+ if ( ! $interim_login ): ?>
232
+ <p id="backtoblog"><a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php
233
+ /* translators: %s: site title */
234
+ printf( _x( '&larr; Back to %s', 'site' ), get_bloginfo( 'title', 'display' ) );
235
+ ?></a></p>
236
+ <?php
237
+ if(function_exists('the_privacy_policy_link')) {
238
+ the_privacy_policy_link( '<div class="privacy-policy-page-link">', '</div>' );
239
+ }
240
+ ?>
241
+ <?php endif; ?>
242
+
243
+ </div>
244
+
245
+ <?php if ( !empty($input_id) ) : ?>
246
+ <script type="text/javascript">
247
+ try{document.getElementById('<?php echo $input_id; ?>').focus();}catch(e){}
248
+ if(typeof wpOnload=='function')wpOnload();
249
+ </script>
250
+ <?php endif; ?>
251
+
252
+ <?php
253
+ /**
254
+ * Fires in the login page footer.
255
+ *
256
+ * @since 3.1.0
257
+ */
258
+ do_action( 'login_footer' ); ?>
259
+ <div class="clear"></div>
260
+ </body>
261
+ </html>
262
+ <?php
263
+ }
264
+
265
+ /**
266
+ * @since 3.7.0
267
+ */
268
+ function wp_login_viewport_meta() {
269
+ ?>
270
+ <meta name="viewport" content="width=device-width" />
271
+ <?php
272
+ }
273
+
274
+ if ( !in_array( $action, array( 'postpass', 'logout', 'lostpassword', 'retrievepassword', 'resetpass', 'rp', 'register', 'login' ), true ) && false === has_filter( 'login_form_' . $action ) )
275
+ $action = 'login';
276
+
277
+ nocache_headers();
includes/provider-admin.php CHANGED
@@ -70,7 +70,7 @@ class NextendSocialProviderAdmin {
70
 
71
  if (isset($postedData['custom_icon_button'])) {
72
  if (isset($postedData['custom_icon_button_enabled']) && $postedData['custom_icon_button_enabled'] == '1') {
73
- $newData['custom_icon_button'] = $postedData['custom_icon_button'];
74
  } else {
75
  if ($postedData['custom_icon_button'] != '') {
76
  $newData['custom_icon_button'] = '';
@@ -78,6 +78,14 @@ class NextendSocialProviderAdmin {
78
  }
79
  }
80
 
 
 
 
 
 
 
 
 
81
  foreach ($postedData AS $key => $value) {
82
 
83
  switch ($key) {
70
 
71
  if (isset($postedData['custom_icon_button'])) {
72
  if (isset($postedData['custom_icon_button_enabled']) && $postedData['custom_icon_button_enabled'] == '1') {
73
+ $newData['custom_icon_button'] = wp_kses_post($postedData['custom_icon_button']);
74
  } else {
75
  if ($postedData['custom_icon_button'] != '') {
76
  $newData['custom_icon_button'] = '';
78
  }
79
  }
80
 
81
+ if (isset($postedData['terms'])) {
82
+ if (isset($postedData['terms_override']) && $postedData['terms_override'] == '1') {
83
+ $newData['terms'] = $postedData['terms'];
84
+ } else {
85
+ $newData['terms'] = '';
86
+ }
87
+ }
88
+
89
  foreach ($postedData AS $key => $value) {
90
 
91
  switch ($key) {
includes/provider.php CHANGED
@@ -53,7 +53,7 @@ abstract class NextendSocialProvider extends NextendSocialProviderDummy {
53
  foreach ($this->getSyncFields() AS $field_name => $fieldData) {
54
 
55
  $extraSettings['sync_fields/fields/' . $field_name . '/enabled'] = 0;
56
- $extraSettings['sync_fields/fields/' . $field_name . '/meta_key'] = $field_name;
57
  }
58
 
59
  $this->settings = new NextendSocialLoginSettings($this->optionKey, array_merge(array(
@@ -67,6 +67,7 @@ abstract class NextendSocialProvider extends NextendSocialProviderDummy {
67
  'user_prefix' => '',
68
  'user_fallback' => '',
69
  'oauth_redirect_url' => '',
 
70
 
71
  'sync_fields/link' => 0,
72
  'sync_fields/login' => 0
@@ -113,7 +114,13 @@ abstract class NextendSocialProvider extends NextendSocialProviderDummy {
113
  $args['interim-login'] = 1;
114
  }
115
 
116
- return add_query_arg($args, site_url('wp-login.php'));
 
 
 
 
 
 
117
  }
118
 
119
  public function needPro() {
@@ -158,7 +165,7 @@ abstract class NextendSocialProvider extends NextendSocialProviderDummy {
158
  */
159
  public function checkOauthRedirectUrl() {
160
  $oauth_redirect_url = $this->settings->get('oauth_redirect_url');
161
- if (empty($oauth_redirect_url) || $oauth_redirect_url == $this->getLoginUrl()) {
162
  return true;
163
  }
164
 
@@ -167,7 +174,7 @@ abstract class NextendSocialProvider extends NextendSocialProviderDummy {
167
 
168
  public function updateOauthRedirectUrl() {
169
  $this->settings->update(array(
170
- 'oauth_redirect_url' => $this->getLoginUrl()
171
  ));
172
  }
173
 
@@ -367,6 +374,7 @@ abstract class NextendSocialProvider extends NextendSocialProviderDummy {
367
  * @param $providerIdentifier
368
  * Insert the userid into the wp_social_users table,
369
  * in this way a link is created between user accounts and the providers.
 
370
  * @return bool
371
  */
372
  public function linkUserToProviderIdentifier($user_id, $providerIdentifier) {
@@ -469,6 +477,7 @@ abstract class NextendSocialProvider extends NextendSocialProviderDummy {
469
  /**
470
  * @param $user_id
471
  * If a user has linked the account with a provider return the user identifier else false.
 
472
  * @return bool|null|string
473
  */
474
  public function isUserConnected($user_id) {
@@ -555,7 +564,7 @@ abstract class NextendSocialProvider extends NextendSocialProviderDummy {
555
  }
556
 
557
  public function redirectToLoginForm() {
558
- self::redirect(__('Authentication error', 'nextend-facebook-connect'), site_url('wp-login.php'));
559
  }
560
 
561
  /**
@@ -609,20 +618,10 @@ abstract class NextendSocialProvider extends NextendSocialProviderDummy {
609
  if (\NSL\Persistent\Persistent::get($this->id . '_interim_login') == 1) {
610
  $this->deleteLoginPersistentData();
611
 
612
- $url = add_query_arg('interim_login', 'nsl', site_url('wp-login.php', 'login'));
613
- ?>
614
- <!doctype html>
615
- <html lang=en>
616
- <head>
617
- <meta charset=utf-8>
618
- <title><?php _e('Authentication successful', 'nextend-facebook-connect'); ?></title>
619
- <script type="text/javascript">
620
- window.location = <?php echo wp_json_encode($url); ?>;
621
- </script>
622
- <meta http-equiv="refresh" content="0;<?php echo esc_attr($url); ?>">
623
- </head>
624
- </html>
625
- <?php
626
  exit;
627
  }
628
 
@@ -645,6 +644,7 @@ abstract class NextendSocialProvider extends NextendSocialProviderDummy {
645
  * If fixed redirect url is not set and there is no redirect in the url, redirects to the default redirect url if it
646
  * is set.
647
  * Else redirect to the site url.
 
648
  * @return mixed|void
649
  */
650
  protected function getLastLocationRedirectTo() {
@@ -753,7 +753,7 @@ abstract class NextendSocialProvider extends NextendSocialProviderDummy {
753
 
754
  $this->settings->update(array(
755
  'tested' => 1,
756
- 'oauth_redirect_url' => $this->getLoginUrl()
757
  ));
758
 
759
  \NSL\Notices::addSuccess(__('The test was successful', 'nextend-facebook-connect'));
@@ -927,4 +927,54 @@ abstract class NextendSocialProvider extends NextendSocialProviderDummy {
927
  protected function updateAvatar($user_id, $url) {
928
  do_action('nsl_update_avatar', $this, $user_id, $url);
929
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
930
  }
53
  foreach ($this->getSyncFields() AS $field_name => $fieldData) {
54
 
55
  $extraSettings['sync_fields/fields/' . $field_name . '/enabled'] = 0;
56
+ $extraSettings['sync_fields/fields/' . $field_name . '/meta_key'] = $this->id . '_' . $field_name;
57
  }
58
 
59
  $this->settings = new NextendSocialLoginSettings($this->optionKey, array_merge(array(
67
  'user_prefix' => '',
68
  'user_fallback' => '',
69
  'oauth_redirect_url' => '',
70
+ 'terms' => '',
71
 
72
  'sync_fields/link' => 0,
73
  'sync_fields/login' => 0
114
  $args['interim-login'] = 1;
115
  }
116
 
117
+ return add_query_arg($args, NextendSocialLogin::getLoginUrl());
118
+ }
119
+
120
+ public function getRedirectUri() {
121
+ $args = array('loginSocial' => $this->getId());
122
+
123
+ return add_query_arg($args, NextendSocialLogin::getLoginUrl());
124
  }
125
 
126
  public function needPro() {
165
  */
166
  public function checkOauthRedirectUrl() {
167
  $oauth_redirect_url = $this->settings->get('oauth_redirect_url');
168
+ if (empty($oauth_redirect_url) || $oauth_redirect_url == $this->getRedirectUri()) {
169
  return true;
170
  }
171
 
174
 
175
  public function updateOauthRedirectUrl() {
176
  $this->settings->update(array(
177
+ 'oauth_redirect_url' => $this->getRedirectUri()
178
  ));
179
  }
180
 
374
  * @param $providerIdentifier
375
  * Insert the userid into the wp_social_users table,
376
  * in this way a link is created between user accounts and the providers.
377
+ *
378
  * @return bool
379
  */
380
  public function linkUserToProviderIdentifier($user_id, $providerIdentifier) {
477
  /**
478
  * @param $user_id
479
  * If a user has linked the account with a provider return the user identifier else false.
480
+ *
481
  * @return bool|null|string
482
  */
483
  public function isUserConnected($user_id) {
564
  }
565
 
566
  public function redirectToLoginForm() {
567
+ self::redirect(__('Authentication error', 'nextend-facebook-connect'), NextendSocialLogin::getLoginUrl());
568
  }
569
 
570
  /**
618
  if (\NSL\Persistent\Persistent::get($this->id . '_interim_login') == 1) {
619
  $this->deleteLoginPersistentData();
620
 
621
+ $url = add_query_arg('interim_login', 'nsl', NextendSocialLogin::getLoginUrl('login'));
622
+
623
+ self::redirect(__('Authentication successful', 'nextend-facebook-connect'), $url);
624
+
 
 
 
 
 
 
 
 
 
 
625
  exit;
626
  }
627
 
644
  * If fixed redirect url is not set and there is no redirect in the url, redirects to the default redirect url if it
645
  * is set.
646
  * Else redirect to the site url.
647
+ *
648
  * @return mixed|void
649
  */
650
  protected function getLastLocationRedirectTo() {
753
 
754
  $this->settings->update(array(
755
  'tested' => 1,
756
+ 'oauth_redirect_url' => $this->getRedirectUri()
757
  ));
758
 
759
  \NSL\Notices::addSuccess(__('The test was successful', 'nextend-facebook-connect'));
927
  protected function updateAvatar($user_id, $url) {
928
  do_action('nsl_update_avatar', $this, $user_id, $url);
929
  }
930
+
931
+ public function exportPersonalData($userID) {
932
+ $data = array();
933
+
934
+ $socialID = $this->isUserConnected($userID);
935
+ if ($socialID !== false) {
936
+ $data[] = array(
937
+ 'name' => $this->getLabel() . ' ' . __('Identifier'),
938
+ 'value' => $socialID,
939
+ );
940
+ }
941
+
942
+ $accessToken = $this->getAccessToken($userID);
943
+ if (!empty($accessToken)) {
944
+ $data[] = array(
945
+ 'name' => $this->getLabel() . ' ' . __('Access token'),
946
+ 'value' => $accessToken,
947
+ );
948
+ }
949
+
950
+ $profilePicture = $this->getUserData($userID, 'profile_picture');
951
+ if (!empty($profilePicture)) {
952
+ $data[] = array(
953
+ 'name' => $this->getLabel() . ' ' . __('Profile picture'),
954
+ 'value' => $profilePicture,
955
+ );
956
+ }
957
+
958
+ foreach ($this->getSyncFields() AS $fieldName => $fieldData) {
959
+ $meta_key = $this->settings->get('sync_fields/fields/' . $fieldName . '/meta_key');
960
+ if (!empty($meta_key)) {
961
+ $value = get_user_meta($userID, $meta_key, true);
962
+ if (!empty($value)) {
963
+ $data[] = array(
964
+ 'name' => $this->getLabel() . ' ' . $fieldData['label'],
965
+ 'value' => $value
966
+ );
967
+ }
968
+ }
969
+ }
970
+
971
+
972
+ return $data;
973
+ }
974
+
975
+ protected function storeAccessToken($userID, $accessToken) {
976
+ if (NextendSocialLogin::$settings->get('store_access_token') == 1) {
977
+ $this->saveUserData($userID, 'access_token', $accessToken);
978
+ }
979
+ }
980
  }
includes/user.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
 
3
  class NextendSocialUser {
4
 
@@ -87,9 +88,13 @@ class NextendSocialUser {
87
 
88
  $user_id = false;
89
 
90
- $email = $this->getAuthUserData('email');
91
  $providerUserID = $this->getAuthUserData('id');
92
 
 
 
 
 
 
93
  if (empty($email)) {
94
  $email = '';
95
  } else {
@@ -99,7 +104,7 @@ class NextendSocialUser {
99
  if (apply_filters('nsl_is_register_allowed', true, $this->provider)) {
100
  $this->register($providerUserID, $email);
101
  } else {
102
- NextendSocialProvider::redirect(__('Authentication error', 'nextend-facebook-connect'), site_url('wp-login.php?registration=disabled'));
103
  exit;
104
  }
105
 
@@ -150,38 +155,52 @@ class NextendSocialUser {
150
  protected function register($providerID, $email) {
151
  NextendSocialLogin::$WPLoginCurrentFlow = 'register';
152
 
153
- /**
154
- * First checks provided first_name & last_name if it is not available checks name if it is neither available checks secondary_name.
155
- */
156
- $sanitized_user_login = $this->sanitizeUserName($this->getAuthUserData('first_name') . $this->getAuthUserData('last_name'));
157
- if ($sanitized_user_login === false) {
158
- $sanitized_user_login = $this->sanitizeUserName($this->getAuthUserData('username'));
 
159
  if ($sanitized_user_login === false) {
160
- $sanitized_user_login = $this->sanitizeUserName($this->getAuthUserData('name'));
 
 
 
161
  }
162
  }
163
 
 
 
 
 
164
  $userData = array(
165
  'email' => $email,
166
  'username' => $sanitized_user_login
167
  );
168
 
169
  do_action('nsl_before_register', $this->provider);
170
- $userData = apply_filters('nsl_' . $this->provider->getId() . '_register_user_data', $userData);//validated userdata
171
 
172
- /**
173
- * If email is empty or it is not provided. Generate one. The format will be like: yourProviderId@providerName.unknown
174
- */
175
- if (empty($userData['email'])) {
176
- $userData['email'] = $providerID . '@' . $this->provider->getId() . '.unknown';
 
 
 
177
  }
178
 
 
 
 
 
179
  /**
180
  * -If neither of the usernames ( first_name & last_name, secondary_name) are appropriate, the fallback username will be combined with and id that was sent by the provider.
181
  * -In this way we can generate an appropriate username.
182
  */
183
  if (empty($userData['username'])) {
184
- $userData['username'] = sanitize_user($this->provider->settings->get('user_fallback') . $providerID, true);
185
  }
186
 
187
  /**
@@ -261,27 +280,30 @@ class NextendSocialUser {
261
  return false;
262
  }
263
 
264
- $user_data = array();
265
- $name = $this->getAuthUserData('name');
266
- if (!empty($name)) {
267
- $user_data['display_name'] = $name;
268
- }
 
269
 
270
- $first_name = $this->getAuthUserData('first_name');
271
- if (!empty($first_name)) {
272
- $user_data['first_name'] = $first_name;
273
- if (class_exists('WooCommerce', false)) {
274
- add_user_meta($user_id, 'billing_first_name', $first_name);
 
275
  }
276
- }
277
 
278
- $last_name = $this->getAuthUserData('last_name');
279
- if (!empty($last_name)) {
280
- $user_data['last_name'] = $last_name;
281
- if (class_exists('WooCommerce', false)) {
282
- add_user_meta($user_id, 'billing_last_name', $last_name);
 
283
  }
284
  }
 
285
  if (!empty($user_data)) {
286
  $user_data['ID'] = $user_id;
287
  wp_update_user($user_data);
@@ -406,4 +428,48 @@ class NextendSocialUser {
406
  public function getProvider() {
407
  return $this->provider;
408
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
409
  }
1
  <?php
2
+ require_once(NSL_PATH . '/includes/userData.php');
3
 
4
  class NextendSocialUser {
5
 
88
 
89
  $user_id = false;
90
 
 
91
  $providerUserID = $this->getAuthUserData('id');
92
 
93
+ $email = '';
94
+ if (NextendSocialLogin::$settings->get('store_email') == 1) {
95
+ $email = $this->getAuthUserData('email');
96
+ }
97
+
98
  if (empty($email)) {
99
  $email = '';
100
  } else {
104
  if (apply_filters('nsl_is_register_allowed', true, $this->provider)) {
105
  $this->register($providerUserID, $email);
106
  } else {
107
+ NextendSocialProvider::redirect(__('Authentication error', 'nextend-facebook-connect'), add_query_arg('registration', 'disabled', NextendSocialLogin::getLoginUrl()));
108
  exit;
109
  }
110
 
155
  protected function register($providerID, $email) {
156
  NextendSocialLogin::$WPLoginCurrentFlow = 'register';
157
 
158
+ $sanitized_user_login = false;
159
+
160
+ if (NextendSocialLogin::$settings->get('store_name') == 1) {
161
+ /**
162
+ * First checks provided first_name & last_name if it is not available checks name if it is neither available checks secondary_name.
163
+ */
164
+ $sanitized_user_login = $this->sanitizeUserName($this->getAuthUserData('first_name') . $this->getAuthUserData('last_name'));
165
  if ($sanitized_user_login === false) {
166
+ $sanitized_user_login = $this->sanitizeUserName($this->getAuthUserData('username'));
167
+ if ($sanitized_user_login === false) {
168
+ $sanitized_user_login = $this->sanitizeUserName($this->getAuthUserData('name'));
169
+ }
170
  }
171
  }
172
 
173
+ $email = '';
174
+ if (NextendSocialLogin::$settings->get('store_email') == 1) {
175
+ $email = $this->getAuthUserData('email');
176
+ }
177
  $userData = array(
178
  'email' => $email,
179
  'username' => $sanitized_user_login
180
  );
181
 
182
  do_action('nsl_before_register', $this->provider);
 
183
 
184
+ do_action('nsl_' . $this->provider->getId() . '_before_register');
185
+
186
+ if (NextendSocialLogin::$settings->get('terms_show') == '1') {
187
+
188
+ add_filter('nsl_registration_require_extra_input', array(
189
+ $this,
190
+ 'require_extra_input_terms'
191
+ ));
192
  }
193
 
194
+
195
+ /** @var array $userData Validated user data */
196
+ $userData = $this->finalizeUserData($userData);
197
+
198
  /**
199
  * -If neither of the usernames ( first_name & last_name, secondary_name) are appropriate, the fallback username will be combined with and id that was sent by the provider.
200
  * -In this way we can generate an appropriate username.
201
  */
202
  if (empty($userData['username'])) {
203
+ $userData['username'] = sanitize_user($this->provider->settings->get('user_fallback') . md5(uniqid(rand())), true);
204
  }
205
 
206
  /**
280
  return false;
281
  }
282
 
283
+ if (NextendSocialLogin::$settings->get('store_name') == 1) {
284
+ $user_data = array();
285
+ $name = $this->getAuthUserData('name');
286
+ if (!empty($name)) {
287
+ $user_data['display_name'] = $name;
288
+ }
289
 
290
+ $first_name = $this->getAuthUserData('first_name');
291
+ if (!empty($first_name)) {
292
+ $user_data['first_name'] = $first_name;
293
+ if (class_exists('WooCommerce', false)) {
294
+ add_user_meta($user_id, 'billing_first_name', $first_name);
295
+ }
296
  }
 
297
 
298
+ $last_name = $this->getAuthUserData('last_name');
299
+ if (!empty($last_name)) {
300
+ $user_data['last_name'] = $last_name;
301
+ if (class_exists('WooCommerce', false)) {
302
+ add_user_meta($user_id, 'billing_last_name', $last_name);
303
+ }
304
  }
305
  }
306
+
307
  if (!empty($user_data)) {
308
  $user_data['ID'] = $user_id;
309
  wp_update_user($user_data);
428
  public function getProvider() {
429
  return $this->provider;
430
  }
431
+
432
+ /**
433
+ * @param $userData
434
+ *
435
+ * @return array
436
+ * @throws NSLContinuePageRenderException
437
+ */
438
+ public function finalizeUserData($userData) {
439
+
440
+ $data = new NextendSocialUserData($userData, $this, $this->provider);
441
+
442
+ return $data->toArray();
443
+ }
444
+
445
+ public function require_extra_input_terms($askExtraData) {
446
+
447
+ add_action('nsl_registration_form_end', array(
448
+ $this,
449
+ 'registration_form_terms'
450
+ ), 10000);
451
+
452
+ return true;
453
+ }
454
+
455
+ public function registration_form_terms($userData) {
456
+ ?>
457
+ <p>
458
+ <?php
459
+ $terms = $this->provider->settings->get('terms');
460
+
461
+ if (empty($terms)) {
462
+ $terms = NextendSocialLogin::$settings->get('terms');
463
+ }
464
+
465
+ if (function_exists('get_privacy_policy_url')) {
466
+ $terms = str_replace('#privacy_policy_url', get_privacy_policy_url(), $terms);
467
+ }
468
+
469
+ echo __($terms, 'nextend-facebook-connect');
470
+
471
+ ?>
472
+ </p>
473
+ <?php
474
+ }
475
  }
includes/userData.php ADDED
@@ -0,0 +1,265 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class NextendSocialUserData {
4
+
5
+ /** @var array */
6
+ private $userData;
7
+
8
+ /** @var NextendSocialUser */
9
+ private $socialUser;
10
+
11
+ /** @var NextendSocialProvider */
12
+ private $provider;
13
+
14
+ /** @var WP_Error */
15
+ private $errors;
16
+
17
+ private $isCustomRegisterFlow = false;
18
+
19
+ /**
20
+ * NextendSocialUserData constructor.
21
+ *
22
+ * @param $userData
23
+ * @param $socialUser
24
+ * @param $provider
25
+ *
26
+ * @throws NSLContinuePageRenderException
27
+ */
28
+ public function __construct($userData, $socialUser, $provider) {
29
+
30
+ $this->userData = $userData;
31
+ $this->socialUser = $socialUser;
32
+ $this->provider = $provider;
33
+
34
+ $askExtraData = apply_filters('nsl_registration_require_extra_input', false, $this->userData);
35
+
36
+ if ($askExtraData) {
37
+ $registerFlowPage = NextendSocialLogin::getRegisterFlowPage();
38
+ if ($registerFlowPage !== false) {
39
+ if (!is_page($registerFlowPage)) {
40
+ wp_redirect(add_query_arg(array(
41
+ 'loginSocial' => $this->provider->getId()
42
+ ), get_permalink($registerFlowPage)));
43
+ exit;
44
+ }
45
+ $this->isCustomRegisterFlow = true;
46
+
47
+ } else if (NextendSocialLogin::$WPLoginCurrentView == 'login' && get_option('users_can_register')) {
48
+ wp_redirect(add_query_arg(array(
49
+ 'loginSocial' => $this->provider->getId()
50
+ ), NextendSocialLogin::getRegisterUrl()));
51
+ exit;
52
+ }
53
+
54
+ $this->errors = new WP_Error();
55
+
56
+ $this->userData = apply_filters('nsl_registration_validate_extra_input', $this->userData, $this->errors);
57
+
58
+ /**
59
+ * It is not a submit or there is an error
60
+ */
61
+ if (!$this->isPost() || $this->errors->get_error_code() != '') {
62
+ $this->displayForm();
63
+ }
64
+ }
65
+ }
66
+
67
+ public function toArray() {
68
+ return $this->userData;
69
+ }
70
+
71
+ public function isPost() {
72
+ return isset($_POST['submit']);
73
+ }
74
+
75
+ /**
76
+ * @throws NSLContinuePageRenderException
77
+ */
78
+ public function displayForm() {
79
+ NextendSocialLogin::removeLoginFormAssets();
80
+
81
+ if ($this->isCustomRegisterFlow) {
82
+ add_shortcode('nextend_social_login_register_flow', array(
83
+ $this,
84
+ 'customRegisterFlowShortcode'
85
+ ));
86
+ throw new NSLContinuePageRenderException('CUSTOM_REGISTER_FLOW');
87
+ } else {
88
+
89
+ if (!function_exists('login_header')) {
90
+
91
+ if (NextendSocialLogin::$WPLoginCurrentView == 'register-bp') {
92
+
93
+ if (class_exists('NextendSocialLoginPRO', false)) {
94
+ remove_action('bp_before_account_details_fields', 'NextendSocialLoginPRO::bp_register_form');
95
+ remove_action('bp_before_register_page', 'NextendSocialLoginPRO::bp_register_form');
96
+ remove_action('bp_after_register_page', 'NextendSocialLoginPRO::bp_register_form');
97
+ }
98
+
99
+ add_action('bp_before_register_page', array(
100
+ $this,
101
+ 'bp_before_register_page'
102
+ ));
103
+
104
+ add_action('bp_after_register_page', array(
105
+ $this,
106
+ 'bp_after_register_page'
107
+ ));
108
+
109
+ throw new NSLContinuePageRenderException('BuddyPress');
110
+ } else if (defined('THEME_MY_LOGIN_PATH')) {
111
+ add_shortcode('theme-my-login', array(
112
+ $this,
113
+ 'render_registration_form_tml'
114
+ ));
115
+
116
+ throw new NSLContinuePageRenderException('THEME_MY_LOGIN');
117
+ }
118
+
119
+ require_once(dirname(__FILE__) . '/compat-wp-login.php');
120
+ }
121
+
122
+ login_header(__('Registration Form'), '<p class="message register">' . __('Register For This Site!') . '</p>', $this->errors);
123
+
124
+ $this->render_registration_form();
125
+
126
+ login_footer('user_login');
127
+ exit;
128
+ }
129
+ }
130
+
131
+ public function customRegisterFlowShortcode() {
132
+ $errors = $this->errors;
133
+ if (is_wp_error($errors)) {
134
+ $html = array();
135
+ if ($errors->get_error_messages()) {
136
+ foreach ($errors->get_error_messages() as $error) {
137
+ $html[] = '<div class="error">' . $error . '</div>';
138
+ }
139
+ }
140
+ if (!empty($html)) {
141
+ echo '<style>.nsl-messages .error{background-color: #e2401c;border-left: .6180469716em solid rgba(0,0,0,.15);padding: 1em 1.618em;margin-bottom: 2.617924em;color:#fff;}</style>';
142
+ echo '<div class="nsl-messages">' . implode('', $html) . '</div>';
143
+ }
144
+ }
145
+ $this->errors = array();
146
+
147
+ $this->render_registration_form();
148
+ }
149
+
150
+ public function render_registration_form() {
151
+ if ($this->isCustomRegisterFlow) {
152
+ $postUrl = add_query_arg(array(
153
+ 'loginSocial' => $this->provider->getId()
154
+ ), get_permalink(NextendSocialLogin::getRegisterFlowPage()));
155
+ } else if (strpos(NextendSocialLogin::$WPLoginCurrentView, 'register') === 0) {
156
+ $postUrl = add_query_arg(array(
157
+ 'loginSocial' => $this->provider->getId()
158
+ ), NextendSocialLogin::getRegisterUrl());
159
+ } else {
160
+ $postUrl = add_query_arg('loginSocial', $this->provider->getId(), NextendSocialLogin::getLoginUrl('login_post'));
161
+ }
162
+ ?>
163
+ <form name="registerform" id="registerform" action="<?php echo esc_url($postUrl); ?>" method="post">
164
+ <input type="hidden" name="submit" value="1"/>
165
+
166
+ <?php do_action('nsl_registration_form_start', $this->userData); ?>
167
+
168
+ <?php do_action('nsl_registration_form_end', $this->userData); ?>
169
+
170
+ <br class="clear"/>
171
+ <p class="submit"><input type="submit" name="wp-submit" id="wp-submit"
172
+ class="button button-primary button-large" value="<?php esc_attr_e('Register'); ?>"/></p>
173
+ </form>
174
+ <?php
175
+ }
176
+
177
+ public function render_registration_form_tml() {
178
+ ?>
179
+ <div class="tml tml-register" id="theme-my-login">
180
+ <?php
181
+ $registerMessage = Theme_My_Login_Template::get_action_template_message('register');
182
+ if (!empty($registerMessage)) {
183
+ $before_message = '<p class="message">';
184
+ $after_message = '</p>';
185
+ echo $before_message . $registerMessage . $after_message;
186
+ }
187
+
188
+ $wp_error = $this->errors;
189
+ if (is_wp_error($wp_error)) {
190
+ if ($wp_error->get_error_code()) {
191
+ $errors = '';
192
+ $messages = '';
193
+ foreach ($wp_error->get_error_codes() as $code) {
194
+ $severity = $wp_error->get_error_data($code);
195
+ foreach ($wp_error->get_error_messages($code) as $error) {
196
+ if ('message' == $severity) {
197
+ $messages .= ' ' . $error . "<br />\n";
198
+ } else {
199
+ $errors .= ' ' . $error . "<br />\n";
200
+ }
201
+ }
202
+ }
203
+ if (!empty($errors)) {
204
+ echo '<p class="error">' . apply_filters('login_errors', $errors) . "</p>\n";
205
+ }
206
+ if (!empty($messages)) {
207
+ echo '<p class="message">' . apply_filters('login_messages', $messages) . "</p>\n";
208
+ }
209
+ }
210
+ }
211
+ $this->errors = array();
212
+
213
+
214
+ $this->render_registration_form();
215
+ ?>
216
+ </div>
217
+ <?php
218
+ }
219
+
220
+ public function bp_before_register_page() {
221
+ ob_start();
222
+ }
223
+
224
+ public function bp_after_register_page() {
225
+ ob_end_clean();
226
+
227
+ $wp_error = $this->errors;
228
+ if (is_wp_error($wp_error)) {
229
+ if ($wp_error->get_error_code()) {
230
+ $errors = '';
231
+ $messages = '';
232
+ foreach ($wp_error->get_error_codes() as $code) {
233
+ $severity = $wp_error->get_error_data($code);
234
+ foreach ($wp_error->get_error_messages($code) as $error) {
235
+ if ('message' == $severity) {
236
+ $messages .= ' ' . $error . "<br />\n";
237
+ } else {
238
+ $errors .= ' ' . $error . "<br />\n";
239
+ }
240
+ }
241
+ }
242
+ $html = '';
243
+ if (!empty($errors)) {
244
+ $html .= '<div class="error">' . apply_filters('login_errors', $errors) . "</div>\n";
245
+ }
246
+ if (!empty($messages)) {
247
+ $html .= '<div class="message">' . apply_filters('login_messages', $messages) . "</div>\n";
248
+ }
249
+
250
+ if (!empty($html)) {
251
+ ?>
252
+ <div id="signup_form" class="standard-form">
253
+ <div>
254
+ <?php echo $html; ?>
255
+ </div>
256
+ </div>
257
+ <?php
258
+ }
259
+ }
260
+ }
261
+ $this->errors = array();
262
+
263
+ $this->render_registration_form();
264
+ }
265
+ }
js/nsl.js CHANGED
@@ -39,7 +39,6 @@ var isWebView = null;
39
 
40
  function checkWebView() {
41
  if (isWebView === null) {
42
- //Based on UserAgent.js {@link https://github.com/uupaa/UserAgent.js}
43
  function _detectOS(ua) {
44
  switch (true) {
45
  case /Android/.test(ua):
@@ -63,17 +62,17 @@ function checkWebView() {
63
 
64
  switch (true) {
65
  case /CriOS/.test(ua):
66
- return "Chrome for iOS"; // https://developer.chrome.com/multidevice/user-agent
67
  case /Edge/.test(ua):
68
  return "Edge";
69
  case android && /Silk\//.test(ua):
70
- return "Silk"; // Kidle Silk browser
71
  case /Chrome/.test(ua):
72
  return "Chrome";
73
  case /Firefox/.test(ua):
74
  return "Firefox";
75
  case android:
76
- return "AOSP"; // AOSP stock browser
77
  case /MSIE|Trident/.test(ua):
78
  return "IE";
79
  case /Safari\//.test(ua):
@@ -100,9 +99,9 @@ function checkWebView() {
100
  return _getVersion(ua, "Version/");
101
  case "IE":
102
  return /IEMobile/.test(ua) ? _getVersion(ua, "IEMobile/") :
103
- /MSIE/.test(ua) ? _getVersion(ua, "MSIE ") // IE 10
104
  :
105
- _getVersion(ua, "rv:"); // IE 11
106
  case "Safari":
107
  return _getVersion(ua, "Version/");
108
  case "WebKit":
@@ -115,7 +114,6 @@ function checkWebView() {
115
  try {
116
  return _normalizeSemverString(ua.split(token)[1].trim().split(/[^\w\.]/)[0]);
117
  } catch (o_O) {
118
- // ignore
119
  }
120
  return "0.0.0";
121
  }
@@ -134,23 +132,14 @@ function checkWebView() {
134
  case "iOSWebKit":
135
  return _isWebView_iOS(options);
136
  case "AndroidAOSP":
137
- return false; // can not accurately detect
138
  case "AndroidChrome":
139
  return parseFloat(version) >= 42 ? /; wv/.test(ua) : /\d{2}\.0\.0/.test(version) ? true : _isWebView_Android(options);
140
  }
141
  return false;
142
  }
143
 
144
- function _isWebView_iOS(options) { // @arg Object - { WEB_VIEW }
145
- // @ret Boolean
146
- // Chrome 15++, Safari 5.1++, IE11, Edge, Firefox10++
147
- // Android 5.0 ChromeWebView 30: webkitFullscreenEnabled === false
148
- // Android 5.0 ChromeWebView 33: webkitFullscreenEnabled === false
149
- // Android 5.0 ChromeWebView 36: webkitFullscreenEnabled === false
150
- // Android 5.0 ChromeWebView 37: webkitFullscreenEnabled === false
151
- // Android 5.0 ChromeWebView 40: webkitFullscreenEnabled === false
152
- // Android 5.0 ChromeWebView 42: webkitFullscreenEnabled === ?
153
- // Android 5.0 ChromeWebView 44: webkitFullscreenEnabled === true
154
  var document = (window["document"] || {});
155
 
156
  if ("WEB_VIEW" in options) {
@@ -160,14 +149,6 @@ function checkWebView() {
160
  }
161
 
162
  function _isWebView_Android(options) {
163
- // Chrome 8++
164
- // Android 5.0 ChromeWebView 30: webkitRequestFileSystem === false
165
- // Android 5.0 ChromeWebView 33: webkitRequestFileSystem === false
166
- // Android 5.0 ChromeWebView 36: webkitRequestFileSystem === false
167
- // Android 5.0 ChromeWebView 37: webkitRequestFileSystem === false
168
- // Android 5.0 ChromeWebView 40: webkitRequestFileSystem === false
169
- // Android 5.0 ChromeWebView 42: webkitRequestFileSystem === false
170
- // Android 5.0 ChromeWebView 44: webkitRequestFileSystem === false
171
  if ("WEB_VIEW" in options) {
172
  return options["WEB_VIEW"];
173
  }
39
 
40
  function checkWebView() {
41
  if (isWebView === null) {
 
42
  function _detectOS(ua) {
43
  switch (true) {
44
  case /Android/.test(ua):
62
 
63
  switch (true) {
64
  case /CriOS/.test(ua):
65
+ return "Chrome for iOS";
66
  case /Edge/.test(ua):
67
  return "Edge";
68
  case android && /Silk\//.test(ua):
69
+ return "Silk";
70
  case /Chrome/.test(ua):
71
  return "Chrome";
72
  case /Firefox/.test(ua):
73
  return "Firefox";
74
  case android:
75
+ return "AOSP";
76
  case /MSIE|Trident/.test(ua):
77
  return "IE";
78
  case /Safari\//.test(ua):
99
  return _getVersion(ua, "Version/");
100
  case "IE":
101
  return /IEMobile/.test(ua) ? _getVersion(ua, "IEMobile/") :
102
+ /MSIE/.test(ua) ? _getVersion(ua, "MSIE ")
103
  :
104
+ _getVersion(ua, "rv:");
105
  case "Safari":
106
  return _getVersion(ua, "Version/");
107
  case "WebKit":
114
  try {
115
  return _normalizeSemverString(ua.split(token)[1].trim().split(/[^\w\.]/)[0]);
116
  } catch (o_O) {
 
117
  }
118
  return "0.0.0";
119
  }
132
  case "iOSWebKit":
133
  return _isWebView_iOS(options);
134
  case "AndroidAOSP":
135
+ return false;
136
  case "AndroidChrome":
137
  return parseFloat(version) >= 42 ? /; wv/.test(ua) : /\d{2}\.0\.0/.test(version) ? true : _isWebView_Android(options);
138
  }
139
  return false;
140
  }
141
 
142
+ function _isWebView_iOS(options) {
 
 
 
 
 
 
 
 
 
143
  var document = (window["document"] || {});
144
 
145
  if ("WEB_VIEW" in options) {
149
  }
150
 
151
  function _isWebView_Android(options) {
 
 
 
 
 
 
 
 
152
  if ("WEB_VIEW" in options) {
153
  return options["WEB_VIEW"];
154
  }
languages/nextend-facebook-connect-es_LA.mo ADDED
Binary file
languages/nextend-facebook-connect-es_LA.po ADDED
@@ -0,0 +1,2118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: nextend-facebook-connect\n"
4
+ "POT-Creation-Date: 2018-05-08 15:04+0200\n"
5
+ "PO-Revision-Date: 2018-05-21 16:17-0500\n"
6
+ "Last-Translator: Gabriel Vilaró <gabo@etereo.ch>\n"
7
+ "Language-Team: nextend-facebook-connect\n"
8
+ "Language: es_419\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 2.0.6\n"
13
+ "X-Poedit-Basepath: ../..\n"
14
+ "Plural-Forms: nplurals=2; plural=(n != 1);\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;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;"
18
+ "esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;"
19
+ "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_x:1,2c;esc_html_e\n"
20
+ "X-Poedit-Flags-xgettext: −−default-domain=nextend-facebook-connect\n"
21
+ "X-Poedit-SearchPath-0: nextend-social-login-pro\n"
22
+ "X-Poedit-SearchPath-1: nextend-facebook-connect\n"
23
+
24
+ #: nextend-facebook-connect/admin/admin.php:187
25
+ #, php-format
26
+ msgid "%s needs json_decode function."
27
+ msgstr "%s necesita la función json_decode."
28
+
29
+ #: nextend-facebook-connect/admin/admin.php:187
30
+ msgid "Please contact your server administrator and ask for solution!"
31
+ msgstr ""
32
+ "¡Por favor, ponte en contacto con el administrador de tu servidor y solicita "
33
+ "una solución!"
34
+
35
+ #: nextend-facebook-connect/admin/admin.php:214
36
+ #: nextend-facebook-connect/admin/admin.php:256
37
+ msgid "Settings saved."
38
+ msgstr "Ajustes guardados."
39
+
40
+ #: nextend-facebook-connect/admin/admin.php:223
41
+ msgid "The authorization was successful"
42
+ msgstr "La autorización fue exitosa"
43
+
44
+ #: nextend-facebook-connect/admin/admin.php:234
45
+ msgid "Deauthorize completed."
46
+ msgstr "Desautorizar completado."
47
+
48
+ #: nextend-facebook-connect/admin/admin.php:374
49
+ #: nextend-facebook-connect/admin/templates-provider/menu.php:15
50
+ #: nextend-facebook-connect/admin/templates/providers.php:84
51
+ #: nextend-facebook-connect/admin/templates/providers.php:96
52
+ #: nextend-facebook-connect/admin/templates/settings/comment.php:30
53
+ msgid "Settings"
54
+ msgstr "Ajustes"
55
+
56
+ #: nextend-facebook-connect/admin/admin.php:448
57
+ #: nextend-facebook-connect/includes/oauth2.php:131
58
+ #: nextend-facebook-connect/includes/oauth2.php:273
59
+ #: nextend-facebook-connect/providers/facebook/facebook-client.php:70
60
+ #: nextend-facebook-connect/providers/twitter/twitter-client.php:155
61
+ #, php-format
62
+ msgid "Unexpected response: %s"
63
+ msgstr "Respuesta inesperada: %s"
64
+
65
+ #: nextend-facebook-connect/admin/admin.php:506
66
+ #: nextend-facebook-connect/admin/templates/fix-redirect-uri.php:21
67
+ #, php-format
68
+ msgid ""
69
+ "%s detected that your login url changed. You must update the Oauth redirect "
70
+ "URIs in the related social applications."
71
+ msgstr ""
72
+ "%s detectó que tu URL de inicio de sesión cambió. Debes actualizar los URI "
73
+ "de redireccionamiento de Oauth en las aplicaciones sociales relacionadas."
74
+
75
+ #: nextend-facebook-connect/admin/admin.php:507
76
+ msgid "Fix Error"
77
+ msgstr "Arreglar Error"
78
+
79
+ #: nextend-facebook-connect/admin/admin.php:507
80
+ msgid "Oauth Redirect URI"
81
+ msgstr "URI de redireccionamiento de Oauth"
82
+
83
+ #: nextend-facebook-connect/admin/admin.php:517
84
+ #, php-format
85
+ msgid ""
86
+ "%1$s detected that %2$s installed on your site. You need the Pro Addon to "
87
+ "display Social Login buttons in %2$s login form!"
88
+ msgstr ""
89
+ "%1$s detectó que %2$s está instalado en tu sitio. ¡Necesitas el Pro Addon "
90
+ "para mostrar los botones de Social Login en el formulario de acceso de %2$s!"
91
+
92
+ #: nextend-facebook-connect/admin/admin.php:518
93
+ msgid "Dismiss and check Pro Addon"
94
+ msgstr "Descartar y verificar Pro Addon"
95
+
96
+ #: nextend-facebook-connect/admin/admin.php:518
97
+ msgid "Dismiss"
98
+ msgstr "Descartar"
99
+
100
+ #: nextend-facebook-connect/admin/templates-provider/buttons.php:74
101
+ msgid "Login label"
102
+ msgstr "Etiqueta de acceso"
103
+
104
+ #: nextend-facebook-connect/admin/templates-provider/buttons.php:79
105
+ #: nextend-facebook-connect/admin/templates-provider/buttons.php:90
106
+ #: nextend-facebook-connect/admin/templates-provider/buttons.php:101
107
+ #: nextend-facebook-connect/admin/templates-provider/buttons.php:130
108
+ #: nextend-facebook-connect/admin/templates-provider/buttons.php:160
109
+ msgid "Reset to default"
110
+ msgstr "Restablecer los valores predeterminados"
111
+
112
+ #: nextend-facebook-connect/admin/templates-provider/buttons.php:84
113
+ msgid "Link label"
114
+ msgstr "Etiqueta de enlace"
115
+
116
+ #: nextend-facebook-connect/admin/templates-provider/buttons.php:96
117
+ msgid "Unlink label"
118
+ msgstr "Etiqueta de desenlazar"
119
+
120
+ #: nextend-facebook-connect/admin/templates-provider/buttons.php:107
121
+ msgid "Default button"
122
+ msgstr "Botón predeterminado"
123
+
124
+ #: nextend-facebook-connect/admin/templates-provider/buttons.php:123
125
+ #: nextend-facebook-connect/admin/templates-provider/buttons.php:153
126
+ msgid "Use custom button"
127
+ msgstr "Usa botón personalizado"
128
+
129
+ #: nextend-facebook-connect/admin/templates-provider/buttons.php:130
130
+ #, php-format
131
+ msgid "Use the %s in your custom button's code to make the label show up."
132
+ msgstr ""
133
+ "Use el %s en el código de tu botón personalizado para que aparezca la "
134
+ "etiqueta."
135
+
136
+ #: nextend-facebook-connect/admin/templates-provider/buttons.php:138
137
+ msgid "Icon button"
138
+ msgstr "Botón de icono"
139
+
140
+ #: nextend-facebook-connect/admin/templates-provider/buttons.php:169
141
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:140
142
+ #: nextend-facebook-connect/admin/templates-provider/sync-data.php:90
143
+ #: nextend-facebook-connect/admin/templates/settings/buddypress.php:65
144
+ #: nextend-facebook-connect/admin/templates/settings/comment.php:56
145
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:7
146
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:81
147
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:7
148
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:136
149
+ #: nextend-facebook-connect/admin/templates/settings/memberpress.php:86
150
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:149
151
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:125
152
+ #: nextend-facebook-connect/providers/facebook/admin/settings.php:55
153
+ #: nextend-facebook-connect/providers/google/admin/settings.php:49
154
+ #: nextend-facebook-connect/providers/twitter/admin/settings.php:48
155
+ #: nextend-social-login-pro/providers/amazon/admin/settings.php:47
156
+ #: nextend-social-login-pro/providers/linkedin/admin/settings.php:47
157
+ #: nextend-social-login-pro/providers/vk/admin/settings.php:47
158
+ msgid "Save Changes"
159
+ msgstr "Guardar Cambios"
160
+
161
+ #: nextend-facebook-connect/admin/templates-provider/menu.php:13
162
+ #: nextend-facebook-connect/admin/templates/providers.php:64
163
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:9
164
+ #: nextend-facebook-connect/providers/twitter/admin/getting-started.php:9
165
+ #: nextend-social-login-pro/providers/linkedin/admin/getting-started.php:8
166
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:8
167
+ msgid "Getting Started"
168
+ msgstr "Empezando"
169
+
170
+ #: nextend-facebook-connect/admin/templates-provider/menu.php:17
171
+ msgid "Buttons"
172
+ msgstr "Botones"
173
+
174
+ #: nextend-facebook-connect/admin/templates-provider/menu.php:21
175
+ msgid "Sync data"
176
+ msgstr "Sincronizar datos"
177
+
178
+ #: nextend-facebook-connect/admin/templates-provider/menu.php:24
179
+ msgid "Usage"
180
+ msgstr "Uso"
181
+
182
+ #: nextend-facebook-connect/admin/templates-provider/settings-other.php:11
183
+ msgid "Other settings"
184
+ msgstr "Otros ajustes"
185
+
186
+ #: nextend-facebook-connect/admin/templates-provider/settings-other.php:16
187
+ msgid "Username prefix on register"
188
+ msgstr "Prefijo del usuario cuando se registra"
189
+
190
+ #: nextend-facebook-connect/admin/templates-provider/settings-other.php:22
191
+ msgid "Fallback username prefix on register"
192
+ msgstr "Prefijo del usuario de reservo cuando se registra"
193
+
194
+ #: nextend-facebook-connect/admin/templates-provider/settings-other.php:25
195
+ msgid "Used when username is invalid"
196
+ msgstr "Usado cuando el nombre del usuario no es válido"
197
+
198
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:18
199
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:10
200
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:10
201
+ msgid "PRO settings"
202
+ msgstr "Ajustes PRO"
203
+
204
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:28
205
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:32
206
+ msgid "Ask E-mail on registration"
207
+ msgstr "Preguntar E-mail durante el registro"
208
+
209
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:35
210
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:69
211
+ msgid "Never"
212
+ msgstr "Nunca"
213
+
214
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:38
215
+ msgid "When email is not provided or empty"
216
+ msgstr "Cuando el email no se proporciona o está vacío"
217
+
218
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:41
219
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:59
220
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:72
221
+ msgid "Always"
222
+ msgstr "Siempre"
223
+
224
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:46
225
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:50
226
+ msgid "Ask Username on registration"
227
+ msgstr "Preguntar Usuario durante el registro"
228
+
229
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:53
230
+ msgid "Never, generate automatically"
231
+ msgstr "Nunca, generar automáticamente"
232
+
233
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:56
234
+ msgid "When username is empty or invalid"
235
+ msgstr "Cuando el usuario está vacío o no es válido"
236
+
237
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:64
238
+ msgid "Ask Password on registration"
239
+ msgstr "Preguntar Contraseña al registrarse"
240
+
241
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:77
242
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:81
243
+ msgid "Automatically connect the existing account upon registration"
244
+ msgstr "Conectar automáticamente la cuenta existente al registrarse"
245
+
246
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:85
247
+ #: nextend-facebook-connect/admin/templates/providers.php:39
248
+ #: nextend-facebook-connect/admin/templates/settings/general.php:55
249
+ #: nextend-facebook-connect/admin/templates/settings/general.php:69
250
+ #: nextend-facebook-connect/includes/provider-admin.php:207
251
+ msgid "Disabled"
252
+ msgstr "Desactivado"
253
+
254
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:88
255
+ msgid "Automatic, based on email address"
256
+ msgstr "Automático, basado en la dirección de email"
257
+
258
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:93
259
+ msgid "Disable login for the selected roles"
260
+ msgstr "Deshabilitar inicio de sesión para los roles seleccionados"
261
+
262
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:113
263
+ msgid "Default roles for user who registered with this provider"
264
+ msgstr ""
265
+ "Roles predeterminados para el usuario que se registró con este proveedor"
266
+
267
+ #: nextend-facebook-connect/admin/templates-provider/settings-pro.php:121
268
+ #: nextend-facebook-connect/admin/templates/settings/buddypress.php:49
269
+ #: nextend-facebook-connect/admin/templates/settings/comment.php:40
270
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:33
271
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:89
272
+ #: nextend-facebook-connect/admin/templates/settings/memberpress.php:24
273
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:51
274
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:102
275
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:109
276
+ #: nextend-facebook-connect/widget.php:40
277
+ msgid "Default"
278
+ msgstr "Predeterminado"
279
+
280
+ #: nextend-facebook-connect/admin/templates-provider/sync-data.php:39
281
+ #: nextend-social-login-pro/class-provider-extension.php:409
282
+ msgid "Register"
283
+ msgstr "Registrarse"
284
+
285
+ #: nextend-facebook-connect/admin/templates-provider/sync-data.php:47
286
+ msgid "Login"
287
+ msgstr "Iniciar Sesión"
288
+
289
+ #: nextend-facebook-connect/admin/templates-provider/sync-data.php:55
290
+ msgid "Link"
291
+ msgstr "Enlace"
292
+
293
+ #: nextend-facebook-connect/admin/templates-provider/sync-data.php:73
294
+ msgid "Store in meta key"
295
+ msgstr "Guardar en clave meta"
296
+
297
+ #: nextend-facebook-connect/admin/templates-provider/sync-data.php:80
298
+ #, php-format
299
+ msgid "Required scope: %1$s"
300
+ msgstr "Alcance requerido: %1$s"
301
+
302
+ #: nextend-facebook-connect/admin/templates-provider/usage.php:9
303
+ msgid "Shortcode"
304
+ msgstr "Código corto"
305
+
306
+ #: nextend-facebook-connect/admin/templates-provider/usage.php:25
307
+ msgid "Simple link"
308
+ msgstr "Enlace simple"
309
+
310
+ #: nextend-facebook-connect/admin/templates-provider/usage.php:28
311
+ msgid "Click here to login or register"
312
+ msgstr "Haz clic aquí para iniciar sesión o registrarse"
313
+
314
+ #: nextend-facebook-connect/admin/templates-provider/usage.php:33
315
+ msgid "Image button"
316
+ msgstr "Botón de imagen"
317
+
318
+ #: nextend-facebook-connect/admin/templates-provider/usage.php:36
319
+ msgid "Image url"
320
+ msgstr "URL de imagen"
321
+
322
+ #: nextend-facebook-connect/admin/templates/fix-redirect-uri.php:2
323
+ msgid "Fix Oauth Redirect URIs"
324
+ msgstr "Arregla los URI de redireccionamiento de Oauth"
325
+
326
+ #: nextend-facebook-connect/admin/templates/fix-redirect-uri.php:13
327
+ msgid "Every Oauth Redirect URI seems fine"
328
+ msgstr "Cada URI de redireccionamiento de Oauth está bien"
329
+
330
+ #: nextend-facebook-connect/admin/templates/fix-redirect-uri.php:32
331
+ msgid "Got it"
332
+ msgstr "Entiendo"
333
+
334
+ #: nextend-facebook-connect/admin/templates/global-settings.php:26
335
+ #: nextend-facebook-connect/admin/templates/menu.php:8
336
+ msgid "Global Settings"
337
+ msgstr "Ajustes Globales"
338
+
339
+ #: nextend-facebook-connect/admin/templates/global-settings.php:29
340
+ msgid "General"
341
+ msgstr "General"
342
+
343
+ #: nextend-facebook-connect/admin/templates/global-settings.php:31
344
+ #: nextend-facebook-connect/admin/templates/settings/login-form.php:9
345
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:18
346
+ msgid "Login Form"
347
+ msgstr "Formulario de Acceso"
348
+
349
+ #: nextend-facebook-connect/admin/templates/global-settings.php:35
350
+ msgid "Comment"
351
+ msgstr "Comentario"
352
+
353
+ #: nextend-facebook-connect/admin/templates/header.php:14
354
+ msgid "Docs"
355
+ msgstr "Documentos"
356
+
357
+ #: nextend-facebook-connect/admin/templates/header.php:17
358
+ msgid "Support"
359
+ msgstr "Apoyo"
360
+
361
+ #: nextend-facebook-connect/admin/templates/header.php:20
362
+ #: nextend-facebook-connect/admin/templates/menu.php:12
363
+ msgid "Pro Addon"
364
+ msgstr "Pro Addon"
365
+
366
+ #: nextend-facebook-connect/admin/templates/menu.php:6
367
+ msgid "Providers"
368
+ msgstr "Proveedores"
369
+
370
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:13
371
+ msgid "Error"
372
+ msgstr "Error"
373
+
374
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:14
375
+ msgid ""
376
+ "You don’t have sufficient permissions to install and activate plugins. "
377
+ "Please contact your site’s administrator!"
378
+ msgstr ""
379
+ "No tienes suficientes permisos para instalar y activar plugins. ¡Por favor, "
380
+ "ponte en contacto con el administrador de tu sitio!"
381
+
382
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:22
383
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:32
384
+ #: nextend-facebook-connect/admin/templates/pro.php:34
385
+ msgid "Activate Pro Addon"
386
+ msgstr "Activar Pro Addon"
387
+
388
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:23
389
+ msgid ""
390
+ "Pro Addon is installed but not activated. To be able to use the Pro "
391
+ "features, you need to activate it."
392
+ msgstr ""
393
+ "Pro Addon está instalado pero no activado. Para poder usar las funciones "
394
+ "Pro, debes activarlo."
395
+
396
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:37
397
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:215
398
+ msgid "Deauthorize Pro Addon"
399
+ msgstr "Desautorizar Pro Addon"
400
+
401
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:48
402
+ #: nextend-facebook-connect/admin/templates/pro.php:43
403
+ msgid "Pro Addon is not installed"
404
+ msgstr "Pro Addon no está instalado"
405
+
406
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:50
407
+ msgid ""
408
+ "To access the Pro features, you need to install and activate the Pro Addon."
409
+ msgstr ""
410
+ "Para acceder a las funciones Pro, tienes que instalar y activar el Pro Addon."
411
+
412
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:59
413
+ #, php-format
414
+ msgid "Install %s now"
415
+ msgstr "Instalar %s ahora"
416
+
417
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:60
418
+ #: nextend-facebook-connect/admin/templates/pro.php:47
419
+ msgid "Install Pro Addon"
420
+ msgstr "Instalar Pro Addon"
421
+
422
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:94
423
+ msgid "Activating..."
424
+ msgstr "Activando..."
425
+
426
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:126
427
+ msgid "Authorize your Pro Addon"
428
+ msgstr "Autoriza tu Pro Addon"
429
+
430
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:127
431
+ msgid ""
432
+ "To be able to use the Pro features, you need to authorize Nextend Social "
433
+ "Connect Pro Addon. You can do this by clicking on the Authorize button below "
434
+ "then select the related purchase."
435
+ msgstr ""
436
+ "Para poder usar las funciones Pro, debes autorizar Nextend Social Connect "
437
+ "Pro Addon. Puedes hacer esto haciendo clic en el botón Autorizar a "
438
+ "continuación y luego seleccionar la compra relacionada."
439
+
440
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:132
441
+ msgid "Authorize"
442
+ msgstr "Autorizar"
443
+
444
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:189
445
+ msgid "License key"
446
+ msgstr "Clave de licencia"
447
+
448
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:206
449
+ msgid "Pro Addon is installed and activated"
450
+ msgstr "Pro Addon está instalado y activado"
451
+
452
+ #: nextend-facebook-connect/admin/templates/pro-addon.php:208
453
+ msgid ""
454
+ "You installed and activated the Pro Addon. If you don’t want to use it "
455
+ "anymore, you can deauthorize using the button below."
456
+ msgstr ""
457
+ "Instalaste y activaste el Pro Addon. Si no deseas volver a utilizarlo, "
458
+ "puedes eliminar la autorización utilizando el siguiente botón."
459
+
460
+ #: nextend-facebook-connect/admin/templates/pro.php:8
461
+ msgid "Get Pro Addon to unlock more features"
462
+ msgstr "Compra Pro Addon para desbloquear más funciones"
463
+
464
+ #: nextend-facebook-connect/admin/templates/pro.php:9
465
+ #, php-format
466
+ msgid ""
467
+ "The features below are available in %s Pro Addon. Get it today and tweak the "
468
+ "awesome settings."
469
+ msgstr ""
470
+ "Las siguientes funciones están disponibles en %s Pro Addon. Compralo hoy y "
471
+ "modifica unas configuraciones increíbles."
472
+
473
+ #: nextend-facebook-connect/admin/templates/pro.php:10
474
+ msgid ""
475
+ "If you already have a license, you can Authorize your Pro Addon. Otherwise "
476
+ "you can purchase it using the button below."
477
+ msgstr ""
478
+ "Si ya tienes una licencia, puedes Autorizar tu Pro Addon. De lo contrario, "
479
+ "puedes comprarlo usando el botón de abajo."
480
+
481
+ #: nextend-facebook-connect/admin/templates/pro.php:14
482
+ msgid "Buy Pro Addon"
483
+ msgstr "Compra Pro Addon"
484
+
485
+ #: nextend-facebook-connect/admin/templates/pro.php:16
486
+ msgid "Authorize Pro Addon"
487
+ msgstr "Autoriza Pro Addon"
488
+
489
+ #: nextend-facebook-connect/admin/templates/pro.php:25
490
+ msgid "Pro Addon is not activated"
491
+ msgstr "Pro Addon no está activado"
492
+
493
+ #: nextend-facebook-connect/admin/templates/pro.php:26
494
+ #: nextend-facebook-connect/admin/templates/pro.php:44
495
+ msgid ""
496
+ "To be able to use the Pro features, you need to install and activate the "
497
+ "Nextend Social Connect Pro Addon."
498
+ msgstr ""
499
+ "Para poder utilizar las funciones Pro, debes instalar y activar el Nextend "
500
+ "Social Connect Pro Addon."
501
+
502
+ #: nextend-facebook-connect/admin/templates/providers.php:30
503
+ msgid "Not Available"
504
+ msgstr "No Disponible"
505
+
506
+ #: nextend-facebook-connect/admin/templates/providers.php:33
507
+ msgid "Not Configured"
508
+ msgstr "No Configurado"
509
+
510
+ #: nextend-facebook-connect/admin/templates/providers.php:36
511
+ msgid "Not Verified"
512
+ msgstr "No Verificado"
513
+
514
+ #: nextend-facebook-connect/admin/templates/providers.php:42
515
+ #: nextend-facebook-connect/admin/templates/settings/general.php:58
516
+ #: nextend-facebook-connect/admin/templates/settings/general.php:72
517
+ #: nextend-facebook-connect/includes/provider-admin.php:210
518
+ msgid "Enabled"
519
+ msgstr "Habilitado"
520
+
521
+ #: nextend-facebook-connect/admin/templates/providers.php:45
522
+ msgid "Legacy"
523
+ msgstr "Legacy"
524
+
525
+ #: nextend-facebook-connect/admin/templates/providers.php:57
526
+ msgid "Upgrade Now"
527
+ msgstr "Actualizar Ahora"
528
+
529
+ #: nextend-facebook-connect/admin/templates/providers.php:72
530
+ #: nextend-facebook-connect/includes/provider-admin.php:194
531
+ msgid "Verify Settings"
532
+ msgstr "Verificar Configuración"
533
+
534
+ #: nextend-facebook-connect/admin/templates/providers.php:80
535
+ #: nextend-facebook-connect/includes/provider-admin.php:239
536
+ msgid "Enable"
537
+ msgstr "Habilitar"
538
+
539
+ #: nextend-facebook-connect/admin/templates/providers.php:92
540
+ #: nextend-facebook-connect/includes/provider-admin.php:247
541
+ msgid "Disable"
542
+ msgstr "Inhabilitar"
543
+
544
+ #: nextend-facebook-connect/admin/templates/providers.php:103
545
+ msgid "Import"
546
+ msgstr "Importar"
547
+
548
+ #: nextend-facebook-connect/admin/templates/providers.php:122
549
+ msgid "Saving..."
550
+ msgstr "Guardando..."
551
+
552
+ #: nextend-facebook-connect/admin/templates/providers.php:123
553
+ msgid "Saving failed"
554
+ msgstr "No se pudo guardar"
555
+
556
+ #: nextend-facebook-connect/admin/templates/providers.php:124
557
+ msgid "Order Saved"
558
+ msgstr "Orden Guardado"
559
+
560
+ #: nextend-facebook-connect/admin/templates/review.php:14
561
+ msgid "Rate your experience!"
562
+ msgstr "¡Califica tu experiencia!"
563
+
564
+ #: nextend-facebook-connect/admin/templates/review.php:15
565
+ msgid "Hated it"
566
+ msgstr "Lo odié"
567
+
568
+ #: nextend-facebook-connect/admin/templates/review.php:16
569
+ msgid "Disliked it"
570
+ msgstr "No me gustó"
571
+
572
+ #: nextend-facebook-connect/admin/templates/review.php:17
573
+ msgid "It was ok"
574
+ msgstr "Estuvo bien"
575
+
576
+ #: nextend-facebook-connect/admin/templates/review.php:18
577
+ msgid "Liked it"
578
+ msgstr "Me gustó"
579
+
580
+ #: nextend-facebook-connect/admin/templates/review.php:19
581
+ msgid "Loved it"
582
+ msgstr "Me encantó"
583
+
584
+ #: nextend-facebook-connect/admin/templates/review.php:31
585
+ msgid "Please Leave a Review"
586
+ msgstr "Por Favor Deja una Evaluación"
587
+
588
+ #: nextend-facebook-connect/admin/templates/review.php:32
589
+ msgid ""
590
+ "If you are happy with <b>Nextend Social Login</b> and can take a minute "
591
+ "please leave us a review. It will be a tremendous help for us!"
592
+ msgstr ""
593
+ "Si estás satisfecho con <b>Nextend Social Login</b> y tienes un minuto, por "
594
+ "favor déjanos una evaluación. ¡Será una gran ayuda para nosotros!"
595
+
596
+ #: nextend-facebook-connect/admin/templates/review.php:34
597
+ msgid "Ok, you deserve it"
598
+ msgstr "Ok, lo mereces"
599
+
600
+ #: nextend-facebook-connect/admin/templates/settings/buddypress.php:18
601
+ msgid "BuddyPress register form"
602
+ msgstr "Formulario de registro para BuddyPress"
603
+
604
+ #: nextend-facebook-connect/admin/templates/settings/buddypress.php:23
605
+ msgid "No Connect button"
606
+ msgstr "Botón de No Conexión"
607
+
608
+ #: nextend-facebook-connect/admin/templates/settings/buddypress.php:26
609
+ msgid "Connect button before register"
610
+ msgstr "Conectar botón antes de registrarse"
611
+
612
+ #: nextend-facebook-connect/admin/templates/settings/buddypress.php:27
613
+ #: nextend-facebook-connect/admin/templates/settings/buddypress.php:32
614
+ #: nextend-facebook-connect/admin/templates/settings/buddypress.php:37
615
+ #: nextend-facebook-connect/admin/templates/settings/memberpress.php:77
616
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:27
617
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:32
618
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:48
619
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:53
620
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:71
621
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:76
622
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:90
623
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:95
624
+ msgid "Action:"
625
+ msgstr "Acción:"
626
+
627
+ #: nextend-facebook-connect/admin/templates/settings/buddypress.php:31
628
+ msgid "Connect button before account details"
629
+ msgstr "Conectar botón antes de los detalles de cuenta"
630
+
631
+ #: nextend-facebook-connect/admin/templates/settings/buddypress.php:36
632
+ msgid "Connect button after register"
633
+ msgstr "Conectar botón después de registrarse"
634
+
635
+ #: nextend-facebook-connect/admin/templates/settings/buddypress.php:43
636
+ msgid "BuddyPress register button style"
637
+ msgstr "Estilo del botón de registro BuddyPress"
638
+
639
+ #: nextend-facebook-connect/admin/templates/settings/buddypress.php:55
640
+ #: nextend-facebook-connect/admin/templates/settings/comment.php:46
641
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:39
642
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:95
643
+ #: nextend-facebook-connect/admin/templates/settings/memberpress.php:30
644
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:57
645
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:108
646
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:115
647
+ #: nextend-facebook-connect/widget.php:45
648
+ msgid "Icon"
649
+ msgstr "Icono"
650
+
651
+ #: nextend-facebook-connect/admin/templates/settings/comment.php:18
652
+ #: nextend-facebook-connect/admin/templates/settings/comment.php:22
653
+ msgid "Comment login button"
654
+ msgstr "Botón para iniciar sesión para comentar"
655
+
656
+ #: nextend-facebook-connect/admin/templates/settings/comment.php:25
657
+ msgid "Show"
658
+ msgstr "Mostrar"
659
+
660
+ #: nextend-facebook-connect/admin/templates/settings/comment.php:28
661
+ msgid "Hide"
662
+ msgstr "Esconder"
663
+
664
+ #: nextend-facebook-connect/admin/templates/settings/comment.php:30
665
+ #, php-format
666
+ msgid "You need to turn on the ' %1$s > %2$s > %3$s ' for this feature to work"
667
+ msgstr "Necesitas activar el ' %1$s > %2$s > %3$s ' para que funcione"
668
+
669
+ #: nextend-facebook-connect/admin/templates/settings/comment.php:30
670
+ msgid "Discussion"
671
+ msgstr "Discusión"
672
+
673
+ #: nextend-facebook-connect/admin/templates/settings/comment.php:30
674
+ msgid "Users must be registered and logged in to comment"
675
+ msgstr "Los usuarios deben estar registrados e iniciar sesión para comentar"
676
+
677
+ #: nextend-facebook-connect/admin/templates/settings/comment.php:34
678
+ msgid "Comment button style"
679
+ msgstr "Estilo de botón para comentar"
680
+
681
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:27
682
+ msgid "Target window"
683
+ msgstr "Ventana de destino"
684
+
685
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:32
686
+ msgid "Prefer popup"
687
+ msgstr "Preferir emergente"
688
+
689
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:35
690
+ msgid "Prefer new tab"
691
+ msgstr "Preferir nueva pestaña"
692
+
693
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:38
694
+ msgid "Prefer same window"
695
+ msgstr "Preferir nueva ventana"
696
+
697
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:43
698
+ msgid "Membership"
699
+ msgstr "Membresía"
700
+
701
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:49
702
+ msgid "Allow registration with Social login"
703
+ msgstr "Permitir registro con Social login"
704
+
705
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:54
706
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:58
707
+ msgid "Registration notification sent to"
708
+ msgstr "Notificación de registro enviado a"
709
+
710
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:61
711
+ msgid "WordPress default"
712
+ msgstr "Configuración predeterminada de Wordpress"
713
+
714
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:64
715
+ msgid "Nobody"
716
+ msgstr "Nadie"
717
+
718
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:67
719
+ msgid "User"
720
+ msgstr "Usario"
721
+
722
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:70
723
+ msgid "Admin"
724
+ msgstr "Administrador"
725
+
726
+ #: nextend-facebook-connect/admin/templates/settings/general-pro.php:73
727
+ msgid "User and Admin"
728
+ msgstr "Usuario y Administrador"
729
+
730
+ #: nextend-facebook-connect/admin/templates/settings/general.php:48
731
+ #: nextend-facebook-connect/admin/templates/settings/general.php:52
732
+ msgid "Debug mode"
733
+ msgstr "Modo de depuración"
734
+
735
+ #: nextend-facebook-connect/admin/templates/settings/general.php:64
736
+ msgid "Store Avatar"
737
+ msgstr "Avatar de Tienda"
738
+
739
+ #: nextend-facebook-connect/admin/templates/settings/general.php:79
740
+ msgid "Default redirect url"
741
+ msgstr "URL de redirección predeterminada"
742
+
743
+ #: nextend-facebook-connect/admin/templates/settings/general.php:92
744
+ #: nextend-facebook-connect/admin/templates/settings/general.php:130
745
+ msgid "for Login"
746
+ msgstr "para Iniciar Sesión"
747
+
748
+ #: nextend-facebook-connect/admin/templates/settings/general.php:107
749
+ #: nextend-facebook-connect/admin/templates/settings/general.php:145
750
+ msgid "for Register"
751
+ msgstr "para Registrarse"
752
+
753
+ #: nextend-facebook-connect/admin/templates/settings/general.php:117
754
+ msgid "Fixed redirect url"
755
+ msgstr "URL de redirección fija"
756
+
757
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:27
758
+ #: nextend-facebook-connect/admin/templates/settings/memberpress.php:18
759
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:45
760
+ msgid "Login form button style"
761
+ msgstr "Estilo de botón para iniciar sesión"
762
+
763
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:46
764
+ #: nextend-facebook-connect/admin/templates/settings/memberpress.php:37
765
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:64
766
+ msgid "Login layout"
767
+ msgstr "Diseño de Inicio de Sesión"
768
+
769
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:52
770
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:108
771
+ #: nextend-facebook-connect/admin/templates/settings/memberpress.php:43
772
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:70
773
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:121
774
+ msgid "Below"
775
+ msgstr "Abajo"
776
+
777
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:58
778
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:114
779
+ #: nextend-facebook-connect/admin/templates/settings/memberpress.php:49
780
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:76
781
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:127
782
+ msgid "Below with separator"
783
+ msgstr "Abajo con separación"
784
+
785
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:64
786
+ msgid "Below and floating"
787
+ msgstr "Abajo y flotando"
788
+
789
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:70
790
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:120
791
+ #: nextend-facebook-connect/admin/templates/settings/memberpress.php:55
792
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:82
793
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:133
794
+ msgid "Above"
795
+ msgstr "Encima"
796
+
797
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:76
798
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:126
799
+ #: nextend-facebook-connect/admin/templates/settings/memberpress.php:61
800
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:88
801
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:139
802
+ msgid "Above with separator"
803
+ msgstr "Encima con separación"
804
+
805
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:83
806
+ msgid "Embedded Login form button style"
807
+ msgstr "Estilo de botón de formulario de inicio de sesión integrado"
808
+
809
+ #: nextend-facebook-connect/admin/templates/settings/login-form-pro.php:102
810
+ msgid "Embedded Login layout"
811
+ msgstr "Diseño de Inicio de Sesión integrado"
812
+
813
+ #: nextend-facebook-connect/admin/templates/settings/login-form.php:14
814
+ #: nextend-facebook-connect/admin/templates/settings/login-form.php:27
815
+ #: nextend-facebook-connect/admin/templates/settings/login-form.php:44
816
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:23
817
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:36
818
+ #: nextend-facebook-connect/widget.php:55
819
+ msgid "Show login buttons"
820
+ msgstr "Mostrar botones de iniciar sesión"
821
+
822
+ #: nextend-facebook-connect/admin/templates/settings/login-form.php:17
823
+ #: nextend-facebook-connect/admin/templates/settings/login-form.php:30
824
+ #: nextend-facebook-connect/admin/templates/settings/login-form.php:47
825
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:26
826
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:39
827
+ msgid "Hide login buttons"
828
+ msgstr "Esconder botones de iniciar sesión"
829
+
830
+ #: nextend-facebook-connect/admin/templates/settings/login-form.php:22
831
+ #: nextend-social-login-pro/class-provider-extension.php:328
832
+ msgid "Registration Form"
833
+ msgstr "Formulario de Registro"
834
+
835
+ #: nextend-facebook-connect/admin/templates/settings/login-form.php:36
836
+ msgid "Embedded login form"
837
+ msgstr "Formulario de Inicio de Sesión integrado"
838
+
839
+ #: nextend-facebook-connect/admin/templates/settings/memberpress.php:68
840
+ msgid "MemberPress account details"
841
+ msgstr "Detalles de cuenta MemberPress"
842
+
843
+ #: nextend-facebook-connect/admin/templates/settings/memberpress.php:73
844
+ msgid "No link buttons"
845
+ msgstr "Sin botones de enlace"
846
+
847
+ #: nextend-facebook-connect/admin/templates/settings/memberpress.php:76
848
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:94
849
+ msgid "Link buttons after account details"
850
+ msgstr "Enlazar botones de enlace después de los detalles de la cuenta"
851
+
852
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:31
853
+ msgid "Register Form"
854
+ msgstr "Formulario de Registro"
855
+
856
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:96
857
+ msgid "Register form button style"
858
+ msgstr "Estilo de botón de formulario de Registro integrado"
859
+
860
+ #: nextend-facebook-connect/admin/templates/settings/userpro.php:115
861
+ msgid "Register layout"
862
+ msgstr "Diseño de Registro"
863
+
864
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:18
865
+ msgid "WooCommerce login form"
866
+ msgstr "Formulario de iniciar sesión WooCommerce"
867
+
868
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:23
869
+ msgid "No Connect button in login form"
870
+ msgstr "Sin botón de conexión en el formulario de inicio de sesión"
871
+
872
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:26
873
+ msgid "Connect button before login form"
874
+ msgstr "Conectar botón antes del formulario inicio de sesión"
875
+
876
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:31
877
+ msgid "Connect button after login form"
878
+ msgstr "Conectar botón después del formulario inicio de sesión"
879
+
880
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:39
881
+ msgid "WooCommerce register form"
882
+ msgstr "Formulario de registro WooCommerce"
883
+
884
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:44
885
+ msgid "No Connect button in register form"
886
+ msgstr "Sin botón de conexión en el formulario de registro"
887
+
888
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:47
889
+ msgid "Connect button before register form"
890
+ msgstr "Conectar botón antes del formulario registro"
891
+
892
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:52
893
+ msgid "Connect button after register form"
894
+ msgstr "Conectar botón después del formulario registro"
895
+
896
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:60
897
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:64
898
+ msgid "WooCommerce billing form"
899
+ msgstr "Formulario de facturación de WooCommerce"
900
+
901
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:67
902
+ msgid "No Connect button in billing form"
903
+ msgstr "Sin botón de conexión en el formulario de facturación"
904
+
905
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:70
906
+ msgid "Connect button before billing form"
907
+ msgstr "Conectar botón antes del formulario de facturación"
908
+
909
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:75
910
+ msgid "Connect button after billing form"
911
+ msgstr "Conectar botón después del formulario de facturación"
912
+
913
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:82
914
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:86
915
+ msgid "WooCommerce account details"
916
+ msgstr "Detalles de cuenta WooCommerce"
917
+
918
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:89
919
+ msgid "Link buttons before account details"
920
+ msgstr "Enlazar botones antes de detalles de la cuenta"
921
+
922
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:101
923
+ #: nextend-facebook-connect/admin/templates/settings/woocommerce.php:105
924
+ msgid "WooCommerce button style"
925
+ msgstr "Estilo de botón WooCommerce"
926
+
927
+ #: nextend-facebook-connect/includes/avatar.php:45
928
+ msgid "Avatar"
929
+ msgstr "Avatar"
930
+
931
+ #: nextend-facebook-connect/includes/avatar.php:46
932
+ msgid "Manage Avatar"
933
+ msgstr "Administrar Avatar"
934
+
935
+ #: nextend-facebook-connect/includes/avatar.php:47
936
+ #, php-format
937
+ msgid "Avatar <span class=\"count\">(%s)</span>"
938
+ msgid_plural "Avatar <span class=\"count\">(%s)</span>"
939
+ msgstr[0] "Avatar <span class=\"count\">(%s)</span>"
940
+ msgstr[1] "Avatar <span class=\"count\">(%s)</span>"
941
+
942
+ #: nextend-facebook-connect/includes/provider-admin.php:188
943
+ msgid "Your configuration needs to be verified"
944
+ msgstr "Tu configuración debe ser verificada"
945
+
946
+ #: nextend-facebook-connect/includes/provider-admin.php:189
947
+ msgid ""
948
+ "Before you can start letting your users register with your app it needs to "
949
+ "be tested. This test makes sure that no users will have troubles with the "
950
+ "login and registration process. <br> If you see error message in the popup "
951
+ "check the copied ID and secret or the app itself. Otherwise your settings "
952
+ "are fine."
953
+ msgstr ""
954
+ "Antes de que puedas comenzar a permitir que tus usuarios se registren con tu "
955
+ "aplicación, debe ser probada. Esta prueba asegura que ningún usuario tenga "
956
+ "problemas con el proceso de inicio de sesión y registro. <br> Si ves un "
957
+ "mensaje de error en el menú emergente, verifica la ID copiada y el secreto o "
958
+ "la aplicación. De lo contrario, tu configuración está bien."
959
+
960
+ #: nextend-facebook-connect/includes/provider-admin.php:195
961
+ msgid "Please save your changes to verify settings."
962
+ msgstr "Guarda los cambios para verificar la configuración."
963
+
964
+ #: nextend-facebook-connect/includes/provider-admin.php:203
965
+ msgid "Works Fine"
966
+ msgstr "Funciona Bien"
967
+
968
+ #: nextend-facebook-connect/includes/provider-admin.php:217
969
+ #, php-format
970
+ msgid ""
971
+ "This provider is currently disabled, which means that users can’t register "
972
+ "or login via their %s account."
973
+ msgstr ""
974
+ "Este proveedor está desactivado, así que los usuarios no pueden registrarse "
975
+ "ni iniciar sesión a través de su cuenta de %s."
976
+
977
+ #: nextend-facebook-connect/includes/provider-admin.php:220
978
+ #, php-format
979
+ msgid ""
980
+ "This provider works fine, but you can test it again. If you don’t want to "
981
+ "let users register or login with %s anymore you can disable it."
982
+ msgstr ""
983
+ "Este proveedor funciona bien pero puedes volver a probarlo. Si ya no deseas "
984
+ "permitir que los usuarios se registren o inicien sesión con %s, puedes "
985
+ "deshabilitarlo."
986
+
987
+ #: nextend-facebook-connect/includes/provider-admin.php:223
988
+ #, php-format
989
+ msgid ""
990
+ "This provider is currently enabled, which means that users can register or "
991
+ "login via their %s account."
992
+ msgstr ""
993
+ "Este proveedor está habilitado, así que los usuarios pueden registrarse o "
994
+ "iniciar sesión a través de su cuenta %s."
995
+
996
+ #: nextend-facebook-connect/includes/provider-admin.php:231
997
+ msgid "Verify Settings Again"
998
+ msgstr "Verificar la configuración de nuevo"
999
+
1000
+ #: nextend-facebook-connect/includes/provider-admin.php:232
1001
+ msgid "Please save your changes before verifying settings."
1002
+ msgstr "Guarda tus cambios antes de verificar la configuración, por favor."
1003
+
1004
+ #: nextend-facebook-connect/includes/provider.php:320
1005
+ #: nextend-facebook-connect/includes/provider.php:618
1006
+ #: nextend-facebook-connect/includes/provider.php:629
1007
+ msgid "Authentication successful"
1008
+ msgstr "Autenticación exitosa"
1009
+
1010
+ #: nextend-facebook-connect/includes/provider.php:558
1011
+ #: nextend-facebook-connect/includes/user.php:102
1012
+ msgid "Authentication error"
1013
+ msgstr "Error de autenticación"
1014
+
1015
+ #: nextend-facebook-connect/includes/provider.php:573
1016
+ msgid "Unlink successful."
1017
+ msgstr "Desenlace exitoso."
1018
+
1019
+ #: nextend-facebook-connect/includes/provider.php:758
1020
+ #: nextend-facebook-connect/includes/provider.php:765
1021
+ msgid "The test was successful"
1022
+ msgstr "La prueba fue exitosa"
1023
+
1024
+ #: nextend-facebook-connect/includes/provider.php:811
1025
+ msgid "Authentication failed"
1026
+ msgstr "Error de autenticación"
1027
+
1028
+ #: nextend-facebook-connect/includes/user.php:66
1029
+ #, php-format
1030
+ msgid ""
1031
+ "Your %1$s account is successfully linked with your account. Now you can sign "
1032
+ "in with %2$s easily."
1033
+ msgstr ""
1034
+ "Tu cuenta %1$s está vinculada con éxito a tu cuenta. Ahora puedes iniciar "
1035
+ "sesión con %2$s fácilmente."
1036
+
1037
+ #: nextend-facebook-connect/includes/user.php:69
1038
+ #, php-format
1039
+ msgid ""
1040
+ "You have already linked a(n) %s account. Please unlink the current and then "
1041
+ "you can link other %s account."
1042
+ msgstr ""
1043
+ "Ya has vinculado una %s cuenta. Desvincula la cuenta actual y después "
1044
+ "podrías vincular otra cuenta de %s."
1045
+
1046
+ #: nextend-facebook-connect/includes/user.php:74
1047
+ #, php-format
1048
+ msgid "This %s account is already linked to other user."
1049
+ msgstr "Esta cuenta %s ya está vinculada a otro usuario."
1050
+
1051
+ #. translators: %2$s: PHP version
1052
+ #: nextend-facebook-connect/nextend-facebook-connect.php:34
1053
+ #, php-format
1054
+ msgid "%1$s requires PHP version %2$s+, plugin is currently NOT ACTIVE."
1055
+ msgstr "%1$s requiere la versión PHP %2$s+, el plugin NO ESTÁ ACTIVO."
1056
+
1057
+ #. translators: %2$s: WordPress version
1058
+ #: nextend-facebook-connect/nextend-facebook-connect.php:41
1059
+ #, php-format
1060
+ msgid ""
1061
+ "%1$s requires WordPress version %2$s+. Because you are using an earlier "
1062
+ "version, the plugin is currently NOT ACTIVE."
1063
+ msgstr ""
1064
+ "%1$s requiere la versión de WordPress %2$s+. Desde estás utilizando una "
1065
+ "versión anterior, el plugin NO ESTÁ ACTIVO."
1066
+
1067
+ #: nextend-facebook-connect/nextend-social-login.php:25
1068
+ #: nextend-facebook-connect/nextend-social-login.php:33
1069
+ #, php-format
1070
+ msgid "Please update %1$s to version %2$s or newer."
1071
+ msgstr "Por favor, actualiza %1$s a la versión %2$s o más reciente."
1072
+
1073
+ #: nextend-facebook-connect/nextend-social-login.php:25
1074
+ #: nextend-facebook-connect/nextend-social-login.php:33
1075
+ msgid "Update now!"
1076
+ msgstr "¡Actualizar ahora!"
1077
+
1078
+ #: nextend-facebook-connect/nextend-social-login.php:379
1079
+ #, php-format
1080
+ msgid ""
1081
+ "%s took the place of Nextend Google Connect. You can delete Nextend Google "
1082
+ "Connect as it is not needed anymore."
1083
+ msgstr ""
1084
+ "%s ha reemplazado Nextend Google Connect. Puedes eliminar Nextend Google "
1085
+ "Connect porque ya no es necesario."
1086
+
1087
+ #: nextend-facebook-connect/nextend-social-login.php:390
1088
+ #, php-format
1089
+ msgid ""
1090
+ "%s took the place of Nextend Twitter Connect. You can delete Nextend Twitter "
1091
+ "Connect as it is not needed anymore."
1092
+ msgstr ""
1093
+ "%s ha reemplazado Nextend Twitter Connect. Puedes eliminar Nextend Twitter "
1094
+ "Connect porque ya no es necesario."
1095
+
1096
+ #: nextend-facebook-connect/nextend-social-login.php:507
1097
+ msgid "You have logged in successfully."
1098
+ msgstr "Has ingresado exitosamente."
1099
+
1100
+ #: nextend-facebook-connect/nextend-social-login.php:631
1101
+ #: nextend-facebook-connect/nextend-social-login.php:919
1102
+ msgid "Social Login"
1103
+ msgstr "Social Login"
1104
+
1105
+ #: nextend-facebook-connect/nextend-social-login.php:903
1106
+ msgid "Social Accounts"
1107
+ msgstr "Cuentas Sociales"
1108
+
1109
+ #: nextend-facebook-connect/providers/facebook/admin/fix-redirect-uri.php:8
1110
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:21
1111
+ #: nextend-facebook-connect/providers/google/admin/fix-redirect-uri.php:8
1112
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:16
1113
+ #: nextend-facebook-connect/providers/twitter/admin/fix-redirect-uri.php:8
1114
+ #: nextend-facebook-connect/providers/twitter/admin/getting-started.php:16
1115
+ #: nextend-social-login-pro/providers/amazon/admin/fix-redirect-uri.php:8
1116
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:21
1117
+ #: nextend-social-login-pro/providers/linkedin/admin/fix-redirect-uri.php:8
1118
+ #: nextend-social-login-pro/providers/linkedin/admin/getting-started.php:15
1119
+ #: nextend-social-login-pro/providers/vk/admin/fix-redirect-uri.php:8
1120
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:15
1121
+ #, php-format
1122
+ msgid "Navigate to %s"
1123
+ msgstr "Navegar a %s"
1124
+
1125
+ #: nextend-facebook-connect/providers/facebook/admin/fix-redirect-uri.php:9
1126
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:22
1127
+ #: nextend-facebook-connect/providers/google/admin/fix-redirect-uri.php:9
1128
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:17
1129
+ #: nextend-facebook-connect/providers/twitter/admin/fix-redirect-uri.php:9
1130
+ #: nextend-facebook-connect/providers/twitter/admin/getting-started.php:17
1131
+ #: nextend-social-login-pro/providers/amazon/admin/fix-redirect-uri.php:9
1132
+ #: nextend-social-login-pro/providers/linkedin/admin/fix-redirect-uri.php:9
1133
+ #: nextend-social-login-pro/providers/linkedin/admin/getting-started.php:16
1134
+ #: nextend-social-login-pro/providers/vk/admin/fix-redirect-uri.php:9
1135
+ #, php-format
1136
+ msgid "Log in with your %s credentials if you are not logged in"
1137
+ msgstr "Inicia sesión con tus %s credenciales si no has iniciado sesión"
1138
+
1139
+ #: nextend-facebook-connect/providers/facebook/admin/fix-redirect-uri.php:10
1140
+ #, php-format
1141
+ msgid "Click on the App with App ID: %s"
1142
+ msgstr "Haz clic en la App con la App ID: %s"
1143
+
1144
+ #: nextend-facebook-connect/providers/facebook/admin/fix-redirect-uri.php:11
1145
+ msgid "In the left sidebar, click on \"Facebook Login/Settings\""
1146
+ msgstr "En la barra lateral izquierda, haz clic en \"Facebook Login/Ajustes\""
1147
+
1148
+ #: nextend-facebook-connect/providers/facebook/admin/fix-redirect-uri.php:12
1149
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:31
1150
+ #, php-format
1151
+ msgid ""
1152
+ "Add the following URL to the \"Valid OAuth redirect URIs\" field: <b>%s</b>"
1153
+ msgstr ""
1154
+ "Agrega la siguiente URL al campo \"Valid OAuth redirect URIs\": <b>%s</b>"
1155
+
1156
+ #: nextend-facebook-connect/providers/facebook/admin/fix-redirect-uri.php:13
1157
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:32
1158
+ msgid "Click on \"Save Changes\""
1159
+ msgstr "Haz clic en \"Guardar Cambios\""
1160
+
1161
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:11
1162
+ #: nextend-facebook-connect/providers/facebook/admin/settings.php:13
1163
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:11
1164
+ #, php-format
1165
+ msgid ""
1166
+ "%1$s allows HTTPS OAuth Redirects only. You must move your site to HTTPS in "
1167
+ "order to allow login with %1$s."
1168
+ msgstr ""
1169
+ "%1$s solo permite redireccionamientos HTTPS OAuth. Debes mover tu sitio a "
1170
+ "HTTPS para permitir el inicio de sesión con %1$s."
1171
+
1172
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:12
1173
+ #: nextend-facebook-connect/providers/facebook/admin/settings.php:14
1174
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:12
1175
+ msgid "How to get SSL for my WordPress site?"
1176
+ msgstr "¿Cómo puedo obtener SSL para mi sitio de WordPress?"
1177
+
1178
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:16
1179
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:11
1180
+ #: nextend-facebook-connect/providers/twitter/admin/getting-started.php:11
1181
+ #: nextend-social-login-pro/providers/linkedin/admin/getting-started.php:10
1182
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:10
1183
+ #, php-format
1184
+ msgid ""
1185
+ "To allow your visitors to log in with their %1$s account, first you must "
1186
+ "create a %1$s App. The following guide will help you through the %1$s App "
1187
+ "creation process. After you have created your %1$s App, head over to "
1188
+ "\"Settings\" and configure the given \"%2$s\" and \"%3$s\" according to your "
1189
+ "%1$s App."
1190
+ msgstr ""
1191
+ "Para permitir que tus visitantes inicien sesión con su cuenta %1$s, primero "
1192
+ "debes crear una aplicación %1$s. La siguiente guía te ayudará a través del "
1193
+ "proceso de creación de la aplicación %1$s. Después de haber creado tu "
1194
+ "aplicación %1$s, dirígete a \"Ajustes\" y configura los \"%2$s\" y \"%3$s\" "
1195
+ "dados según tu aplicación %1$s."
1196
+
1197
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:18
1198
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:13
1199
+ #: nextend-facebook-connect/providers/twitter/admin/getting-started.php:13
1200
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:18
1201
+ #: nextend-social-login-pro/providers/linkedin/admin/getting-started.php:12
1202
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:12
1203
+ #, php-format
1204
+ msgctxt "App creation"
1205
+ msgid "Create %s"
1206
+ msgstr "Crear %s"
1207
+
1208
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:23
1209
+ msgid "Click on the \"Add a New App\" button"
1210
+ msgstr "Haz clic en el botón \"Add a New App\" por favor"
1211
+
1212
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:24
1213
+ msgid "Fill \"Display Name\" and \"Contact Email\""
1214
+ msgstr "Llena \"Nombre para Mostrar\" y \"Email de Contacto\""
1215
+
1216
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:25
1217
+ msgid "Click on blue \"Create App ID\" button"
1218
+ msgstr "Haz clic en el botón azul \"Create App ID\" por favor"
1219
+
1220
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:26
1221
+ msgid ""
1222
+ "Move your mouse over Facebook Login and click on the appearing \"Set Up\" "
1223
+ "button"
1224
+ msgstr ""
1225
+ "Mueve tu mouse sobre Facebook Login y haz clic en el botón \"Configurar\" "
1226
+ "que aparece"
1227
+
1228
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:27
1229
+ msgid "Choose Web"
1230
+ msgstr "Escoge Web"
1231
+
1232
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:28
1233
+ #, php-format
1234
+ msgid "Fill \"Site URL\" with the url of your homepage, probably: <b>%s</b>"
1235
+ msgstr ""
1236
+ "Llena \"Site URL\" con la URL de tu página principal, probablemente: <b>%s</"
1237
+ "b>"
1238
+
1239
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:29
1240
+ #: nextend-facebook-connect/providers/google/admin/fix-redirect-uri.php:13
1241
+ #: nextend-social-login-pro/providers/amazon/admin/fix-redirect-uri.php:14
1242
+ msgid "Click on \"Save\""
1243
+ msgstr "Haz clic en \"Guardar Cambios\""
1244
+
1245
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:30
1246
+ msgid "In the left sidebar, click on \"Facebook Login\""
1247
+ msgstr "En la barra lateral izquierda, haz clic en \"Facebook Login\""
1248
+
1249
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:33
1250
+ msgid "In the top of the left sidebar, click on \"Settings\""
1251
+ msgstr ""
1252
+ "En la parte superior de la barra lateral izquierda, haz clic en \"Ajustes\""
1253
+
1254
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:34
1255
+ msgid ""
1256
+ "Here you can see your \"APP ID\" and you can see your \"App secret\" if you "
1257
+ "click on the \"Show\" button. These will be needed in plugin's settings."
1258
+ msgstr ""
1259
+ "Aquí puedes ver tu \"APP ID\" y puedes ver tu \"App secret\" si haces clic "
1260
+ "en el botón \"Mostrar\". Estos serán necesarios en la configuración del "
1261
+ "plugin."
1262
+
1263
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:35
1264
+ msgid "Enter your domain name to the App Domains"
1265
+ msgstr "Ingresa tu nombre de dominio a los App Domains"
1266
+
1267
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:36
1268
+ msgid ""
1269
+ "Fill up the \"Privacy Policy URL\". Provide a publicly available and easily "
1270
+ "accessible privacy policy that explains what data you are collecting and how "
1271
+ "you will use that data."
1272
+ msgstr ""
1273
+ "Llena la \"Privacy Policy URL\". Proporciona una política de privacidad "
1274
+ "accesible al público y de fácil acceso que explique cuales datos estás "
1275
+ "recopilando y cómo utilizarás esos datos."
1276
+
1277
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:37
1278
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:19
1279
+ #: nextend-facebook-connect/providers/google/admin/import.php:19
1280
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:19
1281
+ msgid "Save your changes."
1282
+ msgstr "Guarda tus cambios."
1283
+
1284
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:38
1285
+ msgid ""
1286
+ "Your application is currently private, which means that only you can log in "
1287
+ "with it. In the left sidebar choose \"App Review\" and make your App public"
1288
+ msgstr ""
1289
+ "Tu aplicación está privada, así que solo tú puedes iniciar sesión con ella. "
1290
+ "En la barra lateral izquierda, elige \"App Review\" y haz que tu aplicación "
1291
+ "sea pública"
1292
+
1293
+ #: nextend-facebook-connect/providers/facebook/admin/getting-started.php:42
1294
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:32
1295
+ #: nextend-facebook-connect/providers/twitter/admin/getting-started.php:27
1296
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:37
1297
+ #: nextend-social-login-pro/providers/linkedin/admin/getting-started.php:29
1298
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:31
1299
+ #, php-format
1300
+ msgid "I am done setting up my %s"
1301
+ msgstr "He terminado de configurar mi %s"
1302
+
1303
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:9
1304
+ msgid "Import Facebook configuration"
1305
+ msgstr "Importar configuración de Facebook"
1306
+
1307
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:10
1308
+ #: nextend-facebook-connect/providers/google/admin/import.php:10
1309
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:10
1310
+ msgid "Be sure to read the following notices before you proceed."
1311
+ msgstr "Asegúrate de leer los siguientes avisos antes de continuar."
1312
+
1313
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:12
1314
+ #: nextend-facebook-connect/providers/google/admin/import.php:12
1315
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:12
1316
+ msgid "Important steps before the import"
1317
+ msgstr "Pasos importantes antes de la importación"
1318
+
1319
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:13
1320
+ #: nextend-facebook-connect/providers/google/admin/import.php:13
1321
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:13
1322
+ msgid ""
1323
+ "Make sure that the redirect URI for your app is correct before proceeding."
1324
+ msgstr ""
1325
+ "Asegúrate de que el URI de redirección para tu aplicación sea correcto antes "
1326
+ "de continuar."
1327
+
1328
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:15
1329
+ #: nextend-facebook-connect/providers/google/admin/import.php:15
1330
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:15
1331
+ #, php-format
1332
+ msgid "Visit %s."
1333
+ msgstr "Visita %s."
1334
+
1335
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:16
1336
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:16
1337
+ msgid "Select your app."
1338
+ msgstr "Selecciona tu aplicación."
1339
+
1340
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:17
1341
+ msgid ""
1342
+ "Go to the Settings menu which you can find below the Facebook Login in the "
1343
+ "left menu."
1344
+ msgstr ""
1345
+ "Ve al menú de Ajustes que se encuentra debajo del Facebook Login en el menú "
1346
+ "de la izquierda."
1347
+
1348
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:18
1349
+ #: nextend-facebook-connect/providers/google/admin/import.php:18
1350
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:18
1351
+ #, php-format
1352
+ msgid "Make sure that the \"%1$s\" field contains %2$s"
1353
+ msgstr "Asegúrate que el campo \"%1$s\" tiene %2$s"
1354
+
1355
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:22
1356
+ #: nextend-facebook-connect/providers/google/admin/import.php:22
1357
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:22
1358
+ msgid "The following settings will be imported:"
1359
+ msgstr "Se importarán las siguientes configuraciones:"
1360
+
1361
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:24
1362
+ #: nextend-facebook-connect/providers/google/admin/import.php:24
1363
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:24
1364
+ msgid "Your old API configurations"
1365
+ msgstr "Tus configuraciones anteriores de API"
1366
+
1367
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:25
1368
+ #: nextend-facebook-connect/providers/google/admin/import.php:25
1369
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:25
1370
+ msgid "The user prefix you set"
1371
+ msgstr "El prefijo del usuario que estableciste"
1372
+
1373
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:28
1374
+ #: nextend-facebook-connect/providers/google/admin/import.php:28
1375
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:28
1376
+ msgid "Create a backup of the old settings"
1377
+ msgstr "Crear una copia de seguridad de los ajustes anteriores"
1378
+
1379
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:31
1380
+ #: nextend-facebook-connect/providers/google/admin/import.php:31
1381
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:31
1382
+ msgid "Other changes"
1383
+ msgstr "Otros cambios"
1384
+
1385
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:33
1386
+ #: nextend-facebook-connect/providers/google/admin/import.php:33
1387
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:33
1388
+ msgid ""
1389
+ "The custom redirect URI is now handled globally for all providers, so it "
1390
+ "won't be imported from the previous version. Visit \"Nextend Social Login > "
1391
+ "Global settings\" to set the new redirect URIs."
1392
+ msgstr ""
1393
+ "El URI de redireccionamiento personalizado ahora se maneja de forma global "
1394
+ "para todos los proveedores, por lo que no se importará de la versión "
1395
+ "anterior. Visita \"Nextend Social Login > Ajustes Globales\" para establecer "
1396
+ "los nuevos URI de redirección."
1397
+
1398
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:34
1399
+ #: nextend-facebook-connect/providers/google/admin/import.php:34
1400
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:34
1401
+ msgid ""
1402
+ "The login button's layout will be changed to a new, more modern look. If you "
1403
+ "used any custom buttons that won't be imported."
1404
+ msgstr ""
1405
+ "El diseño del botón de inicio de sesión cambiará a un aspecto nuevo y más "
1406
+ "moderno. Si usaste cualquier botón personalizado, no se importará."
1407
+
1408
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:35
1409
+ #: nextend-facebook-connect/providers/google/admin/import.php:35
1410
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:35
1411
+ msgid ""
1412
+ "The old version's PHP functions are not available anymore. This means if you "
1413
+ "used any custom codes where you used these old functions, you need to remove "
1414
+ "them."
1415
+ msgstr ""
1416
+ "Las funciones PHP de la versión anterior ya no están disponibles. Esto "
1417
+ "significa que si usaste algunos códigos personalizados con estas funciones "
1418
+ "anteriores, debes eliminarlas."
1419
+
1420
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:37
1421
+ #: nextend-facebook-connect/providers/google/admin/import.php:37
1422
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:37
1423
+ msgid ""
1424
+ "After the importing process finishes, you will need to <b>test</b> your app "
1425
+ "and <b>enable</b> the provider. You can do both in the next screen."
1426
+ msgstr ""
1427
+ "Una vez que finalice el proceso de importación, deberás <b>probar</b> tu "
1428
+ "aplicación y <b>habilitar</b> el proveedor. Puedes hacer ambas cosas en la "
1429
+ "pantalla siguiente."
1430
+
1431
+ #: nextend-facebook-connect/providers/facebook/admin/import.php:44
1432
+ #: nextend-facebook-connect/providers/google/admin/import.php:44
1433
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:45
1434
+ msgid "Import Configuration"
1435
+ msgstr "Importar Configuración"
1436
+
1437
+ #: nextend-facebook-connect/providers/facebook/admin/settings.php:33
1438
+ msgid "App ID"
1439
+ msgstr "App ID"
1440
+
1441
+ #: nextend-facebook-connect/providers/facebook/admin/settings.php:34
1442
+ #: nextend-facebook-connect/providers/facebook/admin/settings.php:46
1443
+ #: nextend-facebook-connect/providers/google/admin/settings.php:28
1444
+ #: nextend-facebook-connect/providers/google/admin/settings.php:41
1445
+ #: nextend-facebook-connect/providers/twitter/admin/settings.php:28
1446
+ #: nextend-social-login-pro/providers/amazon/admin/settings.php:27
1447
+ #: nextend-social-login-pro/providers/amazon/admin/settings.php:39
1448
+ #: nextend-social-login-pro/providers/linkedin/admin/settings.php:27
1449
+ #: nextend-social-login-pro/providers/linkedin/admin/settings.php:39
1450
+ #: nextend-social-login-pro/providers/vk/admin/settings.php:27
1451
+ #: nextend-social-login-pro/providers/vk/admin/settings.php:39
1452
+ msgid "Required"
1453
+ msgstr "Obligatorio"
1454
+
1455
+ #: nextend-facebook-connect/providers/facebook/admin/settings.php:39
1456
+ #: nextend-facebook-connect/providers/google/admin/settings.php:35
1457
+ #: nextend-facebook-connect/providers/twitter/admin/settings.php:33
1458
+ #: nextend-social-login-pro/providers/amazon/admin/settings.php:33
1459
+ #: nextend-social-login-pro/providers/linkedin/admin/settings.php:33
1460
+ #: nextend-social-login-pro/providers/vk/admin/settings.php:33
1461
+ #, php-format
1462
+ msgid ""
1463
+ "If you are not sure what is your %1$s, please head over to <a href=\"%2$s"
1464
+ "\">Getting Started</a>"
1465
+ msgstr ""
1466
+ "Si no estás seguro de cuál es tu %1$s, dirígete a <a href=\"%2$s\">Getting "
1467
+ "Started</a>"
1468
+
1469
+ #: nextend-facebook-connect/providers/facebook/admin/settings.php:45
1470
+ msgid "App Secret"
1471
+ msgstr "App Secret"
1472
+
1473
+ #: nextend-facebook-connect/providers/facebook/facebook.php:91
1474
+ msgid "Continue with <b>Facebook</b>"
1475
+ msgstr "Sigue con <b>Facebook</b>"
1476
+
1477
+ #: nextend-facebook-connect/providers/facebook/facebook.php:92
1478
+ msgid "Link account with <b>Facebook</b>"
1479
+ msgstr "Enlazar cuenta con <b>Facebook</b>"
1480
+
1481
+ #: nextend-facebook-connect/providers/facebook/facebook.php:93
1482
+ msgid "Unlink account from <b>Facebook</b>"
1483
+ msgstr "Desenlazar cuenta de <b>Facebook</b>"
1484
+
1485
+ #: nextend-facebook-connect/providers/facebook/facebook.php:151
1486
+ #: nextend-facebook-connect/providers/google/google.php:71
1487
+ #: nextend-facebook-connect/providers/twitter/twitter.php:71
1488
+ #: nextend-social-login-pro/providers/amazon/amazon.php:71
1489
+ #: nextend-social-login-pro/providers/linkedin/linkedin.php:68
1490
+ #: nextend-social-login-pro/providers/vk/vk.php:68
1491
+ #, php-format
1492
+ msgid ""
1493
+ "The %1$s entered did not appear to be a valid. Please enter a valid %2$s."
1494
+ msgstr ""
1495
+ "El %1$s ingresado no parece ser válido. Por favor ingresa un %2$s válido."
1496
+
1497
+ #: nextend-facebook-connect/providers/google/admin/fix-redirect-uri.php:10
1498
+ msgid "Click on the \"Credentials\" in the left hand menu"
1499
+ msgstr "Haz clic en \"Credentials\" en el menú de la izquierda"
1500
+
1501
+ #: nextend-facebook-connect/providers/google/admin/fix-redirect-uri.php:11
1502
+ #, php-format
1503
+ msgid "Click on OAuth 2.0 client ID: %s"
1504
+ msgstr "Haz clic en la ID del cliente de OAuth 2.0: %s"
1505
+
1506
+ #: nextend-facebook-connect/providers/google/admin/fix-redirect-uri.php:12
1507
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:26
1508
+ #, php-format
1509
+ msgid ""
1510
+ "Add the following URL to the \"Authorised redirect URIs\" field: <b>%s</b>"
1511
+ msgstr ""
1512
+ "Agrega la siguiente URL al campo \"Authorised redirect URIs\": <b>%s</b>"
1513
+
1514
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:18
1515
+ msgid ""
1516
+ "If you don't have a project yet, you'll need to create one. You can do this "
1517
+ "by clicking on the blue \"Create project\" button on the right side"
1518
+ msgstr ""
1519
+ "Si aún no tienes un proyecto, deberás crear uno. Puedes hacer esto haciendo "
1520
+ "clic en el botón azul \"Create project\" en el lado derecho"
1521
+
1522
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:19
1523
+ msgid "Name your project and then click on the Create button"
1524
+ msgstr "Denomina tu proyecto y luego haz clic en el botón Create"
1525
+
1526
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:20
1527
+ msgid "Once you have a project, you'll end up in the dashboard."
1528
+ msgstr "Una vez que tengas un proyecto, llegarás al escritorio."
1529
+
1530
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:21
1531
+ msgid ""
1532
+ "Click on the \"Credentials\" in the left hand menu to create new API "
1533
+ "credentials"
1534
+ msgstr ""
1535
+ "Haz clic en \"Credentials\" en el menú de la izquierda para crear nuevas "
1536
+ "credenciales de API"
1537
+
1538
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:22
1539
+ msgid ""
1540
+ "Go to the OAuth consent screen tab and enter a product name and provide the "
1541
+ "Privacy Policy URL, then click on the save button."
1542
+ msgstr ""
1543
+ "Ve a la pestaña de la pantalla de consentimiento de OAuth e ingresa el "
1544
+ "nombre de un producto y proporciona la URL de la Privacy Policy, luego haz "
1545
+ "clic en el botón guardar."
1546
+
1547
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:23
1548
+ msgid ""
1549
+ "Go back to the Credentials tab and locate the small box at the middle. Click "
1550
+ "on the blue \"Create credentials\" button. Chose the \"OAuth client ID\" "
1551
+ "from the dropdown list."
1552
+ msgstr ""
1553
+ "Regresa a la pestaña de Credentials y ubica la pequeña caja en el medio. Haz "
1554
+ "clic en el botón azul \"Create credentials\". Elija la \"OAuth client ID\" "
1555
+ "de la lista desplegable."
1556
+
1557
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:24
1558
+ msgid "Your application type should be \"Web application\""
1559
+ msgstr "Tu tipo de aplicación debe ser \"Web application\""
1560
+
1561
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:25
1562
+ msgid "Name your application"
1563
+ msgstr "Nombra tu aplicación"
1564
+
1565
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:27
1566
+ msgid "Click on the Create button"
1567
+ msgstr "Haz clic en el botón Create"
1568
+
1569
+ #: nextend-facebook-connect/providers/google/admin/getting-started.php:28
1570
+ msgid ""
1571
+ "A modal should pop up with your credentials. If that doesn't happen, go to "
1572
+ "the Credentials in the left hand menu and select your app by clicking on its "
1573
+ "name and you'll be able to copy-paste the Client ID and Client Secret from "
1574
+ "there."
1575
+ msgstr ""
1576
+ "Un modal debería aparecer con tus credenciales. Si eso no sucede, ve a "
1577
+ "Credentials en el menú de la izquierda y selecciona tu aplicación haciendo "
1578
+ "clic en su nombre y podrías copiar y pegar desde ahí la Client ID y el "
1579
+ "Client Secret."
1580
+
1581
+ #: nextend-facebook-connect/providers/google/admin/import.php:9
1582
+ msgid "Import Google configuration"
1583
+ msgstr "Importar configuración de Google"
1584
+
1585
+ #: nextend-facebook-connect/providers/google/admin/import.php:16
1586
+ msgid "If you have more projects, select the one where your app is."
1587
+ msgstr "Si tienes más proyectos, selecciona el que es tu aplicación."
1588
+
1589
+ #: nextend-facebook-connect/providers/google/admin/import.php:17
1590
+ msgid "Click on Credentials at the left-hand menu then select your app."
1591
+ msgstr ""
1592
+ "Haz clic en Credentials en el menú de la izquierda y luego selecciona tu "
1593
+ "aplicación."
1594
+
1595
+ #: nextend-facebook-connect/providers/google/admin/settings.php:27
1596
+ #: nextend-social-login-pro/providers/amazon/admin/settings.php:26
1597
+ #: nextend-social-login-pro/providers/linkedin/admin/settings.php:26
1598
+ msgid "Client ID"
1599
+ msgstr "Client ID"
1600
+
1601
+ #: nextend-facebook-connect/providers/google/admin/settings.php:40
1602
+ #: nextend-social-login-pro/providers/amazon/admin/settings.php:38
1603
+ #: nextend-social-login-pro/providers/linkedin/admin/settings.php:38
1604
+ msgid "Client Secret"
1605
+ msgstr "Client Secret"
1606
+
1607
+ #: nextend-facebook-connect/providers/google/google.php:38
1608
+ msgid "Continue with <b>Google</b>"
1609
+ msgstr "Sigue con <b>Google</b>"
1610
+
1611
+ #: nextend-facebook-connect/providers/google/google.php:39
1612
+ msgid "Link account with <b>Google</b>"
1613
+ msgstr "Enlazar cuenta con <b>Google</b>"
1614
+
1615
+ #: nextend-facebook-connect/providers/google/google.php:40
1616
+ msgid "Unlink account from <b>Google</b>"
1617
+ msgstr "Desenlazar cuenta de <b>Google</b>"
1618
+
1619
+ #: nextend-facebook-connect/providers/twitter/admin/fix-redirect-uri.php:10
1620
+ #: nextend-social-login-pro/providers/linkedin/admin/fix-redirect-uri.php:10
1621
+ msgid "Click on the App"
1622
+ msgstr "Haz clic en la App"
1623
+
1624
+ #: nextend-facebook-connect/providers/twitter/admin/fix-redirect-uri.php:11
1625
+ msgid "Click on the \"Settings\" tab"
1626
+ msgstr "Haz clic en la pestaña de Ajustes"
1627
+
1628
+ #: nextend-facebook-connect/providers/twitter/admin/fix-redirect-uri.php:12
1629
+ #: nextend-facebook-connect/providers/twitter/admin/getting-started.php:20
1630
+ #, php-format
1631
+ msgid "Add the following URL to the \"Callback URL\" field: <b>%s</b>"
1632
+ msgstr "Agrega la siguiente URL al campo de \"Callback URL\": <b>%s</b>"
1633
+
1634
+ #: nextend-facebook-connect/providers/twitter/admin/fix-redirect-uri.php:13
1635
+ msgid "Click on \"Update Settings\""
1636
+ msgstr "Haz clic en \"Actualizar Ajustes\""
1637
+
1638
+ #: nextend-facebook-connect/providers/twitter/admin/getting-started.php:18
1639
+ msgid "Click on the \"Create New App\" button"
1640
+ msgstr "Haz clic en el botón de \"Create New App\" por favor"
1641
+
1642
+ #: nextend-facebook-connect/providers/twitter/admin/getting-started.php:19
1643
+ #, php-format
1644
+ msgid ""
1645
+ "Fill the name and description fields. Then enter your site's URL to the "
1646
+ "Website field: <b>%s</b>"
1647
+ msgstr ""
1648
+ "Llena los campos de nombre y descripción. Luego ingresa la URL de tu sitio "
1649
+ "en el campo Website: <b>%s</b>"
1650
+
1651
+ #: nextend-facebook-connect/providers/twitter/admin/getting-started.php:21
1652
+ msgid "Accept the Twitter Developer Agreement"
1653
+ msgstr "Aceptar el Twitter Developer Agreement"
1654
+
1655
+ #: nextend-facebook-connect/providers/twitter/admin/getting-started.php:22
1656
+ msgid ""
1657
+ "Create your application by clicking on the Create your Twitter application "
1658
+ "button"
1659
+ msgstr ""
1660
+ "Crea tu aplicación haciendo clic en el botón Create your Twitter application"
1661
+
1662
+ #: nextend-facebook-connect/providers/twitter/admin/getting-started.php:23
1663
+ msgid ""
1664
+ "Go to the Keys and Access Tokens tab and find the Consumer Key and Secret"
1665
+ msgstr ""
1666
+ "Ve a la pestaña Keys and Access Tokens y busca la Consumer Key y Secret"
1667
+
1668
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:9
1669
+ msgid "Import Twitter configuration"
1670
+ msgstr "Importar configuración de Twitter"
1671
+
1672
+ #: nextend-facebook-connect/providers/twitter/admin/import.php:17
1673
+ msgid "Go to the Settings tab."
1674
+ msgstr "Ve a la pestaña de Ajustes."
1675
+
1676
+ #: nextend-facebook-connect/providers/twitter/admin/settings.php:27
1677
+ msgid "Consumer Key"
1678
+ msgstr "Consumer Key"
1679
+
1680
+ #: nextend-facebook-connect/providers/twitter/admin/settings.php:38
1681
+ msgid "Consumer Secret"
1682
+ msgstr "Consumer Secret"
1683
+
1684
+ #: nextend-facebook-connect/providers/twitter/twitter.php:38
1685
+ msgid "Continue with <b>Twitter</b>"
1686
+ msgstr "Sigue con <b>Twitter</b>"
1687
+
1688
+ #: nextend-facebook-connect/providers/twitter/twitter.php:39
1689
+ msgid "Link account with <b>Twitter</b>"
1690
+ msgstr "Enlazar cuenta con <b>Twitter</b>"
1691
+
1692
+ #: nextend-facebook-connect/providers/twitter/twitter.php:40
1693
+ msgid "Unlink account from <b>Twitter</b>"
1694
+ msgstr "Desenlazar cuenta de <b>Twitter</b>"
1695
+
1696
+ #: nextend-facebook-connect/widget.php:10
1697
+ #, php-format
1698
+ msgid "%s Buttons"
1699
+ msgstr "%s Botones"
1700
+
1701
+ #: nextend-facebook-connect/widget.php:28
1702
+ msgid "Title:"
1703
+ msgstr "Titulo:"
1704
+
1705
+ #: nextend-facebook-connect/widget.php:36
1706
+ msgid "Button style:"
1707
+ msgstr "Estilo de Botón:"
1708
+
1709
+ #: nextend-facebook-connect/widget.php:64
1710
+ msgid "Show link buttons"
1711
+ msgstr "Mostrar botones de enlazar"
1712
+
1713
+ #: nextend-facebook-connect/widget.php:73
1714
+ msgid "Show unlink buttons"
1715
+ msgstr "Mostrar botones de desenlazar"
1716
+
1717
+ #: nextend-social-login-pro/class-provider-extension.php:114
1718
+ msgid "Social login is not allowed with this role!"
1719
+ msgstr "¡Social login no esta permitido con este rol!"
1720
+
1721
+ #: nextend-social-login-pro/class-provider-extension.php:209
1722
+ #: nextend-social-login-pro/class-provider-extension.php:211
1723
+ #: nextend-social-login-pro/class-provider-extension.php:216
1724
+ #: nextend-social-login-pro/class-provider-extension.php:222
1725
+ #: nextend-social-login-pro/class-provider-extension.php:235
1726
+ #: nextend-social-login-pro/class-provider-extension.php:237
1727
+ #: nextend-social-login-pro/class-provider-extension.php:240
1728
+ msgid "ERROR"
1729
+ msgstr "ERROR"
1730
+
1731
+ #: nextend-social-login-pro/class-provider-extension.php:209
1732
+ msgid "Please enter a username."
1733
+ msgstr "Por favor introduce un usuario."
1734
+
1735
+ #: nextend-social-login-pro/class-provider-extension.php:211
1736
+ msgid ""
1737
+ "This username is invalid because it uses illegal characters. Please enter a "
1738
+ "valid username."
1739
+ msgstr ""
1740
+ "Este usuario no es válido porque usa caracteres ilegales. Por favor ingresa "
1741
+ "un usuario válido."
1742
+
1743
+ #: nextend-social-login-pro/class-provider-extension.php:216
1744
+ msgid "This username is already registered. Please choose another one."
1745
+ msgstr "Este nombre de usuario ya está registrado. Por favor escoge otro."
1746
+
1747
+ #: nextend-social-login-pro/class-provider-extension.php:222
1748
+ msgid "Sorry, that username is not allowed."
1749
+ msgstr "Lo sentimos, ese usuario no está permitido."
1750
+
1751
+ #: nextend-social-login-pro/class-provider-extension.php:235
1752
+ msgid "Please enter an email address."
1753
+ msgstr "Por favor introduce un email."
1754
+
1755
+ #: nextend-social-login-pro/class-provider-extension.php:237
1756
+ msgid "The email address isn&#8217;t correct."
1757
+ msgstr "El email no es correcto."
1758
+
1759
+ #: nextend-social-login-pro/class-provider-extension.php:240
1760
+ msgid "This email is already registered, please choose another one."
1761
+ msgstr "Este email ya esta registrado, por favor escoge otro."
1762
+
1763
+ #: nextend-social-login-pro/class-provider-extension.php:255
1764
+ msgid "<strong>ERROR</strong>: Please enter a password."
1765
+ msgstr "<strong>ERROR</strong>: Por favor introduce una contraseña."
1766
+
1767
+ #: nextend-social-login-pro/class-provider-extension.php:260
1768
+ msgid "<strong>ERROR</strong>: Passwords may not contain the character \"\\\"."
1769
+ msgstr ""
1770
+ "<strong>ERROR</strong>: Contraseñas no pueden contener el caracter \"\\\"."
1771
+
1772
+ #: nextend-social-login-pro/class-provider-extension.php:265
1773
+ msgid ""
1774
+ "<strong>ERROR</strong>: Please enter the same password in both password "
1775
+ "fields."
1776
+ msgstr ""
1777
+ "<strong>ERROR</strong>: Por favor introduce la misma contraseña en los dos "
1778
+ "campos de contraseña."
1779
+
1780
+ #: nextend-social-login-pro/class-provider-extension.php:328
1781
+ msgid "Register For This Site!"
1782
+ msgstr "¡Registrarse Para Este Sitio!"
1783
+
1784
+ #: nextend-social-login-pro/class-provider-extension.php:355
1785
+ msgid "Username"
1786
+ msgstr "Usuario"
1787
+
1788
+ #: nextend-social-login-pro/class-provider-extension.php:362
1789
+ msgid "Email"
1790
+ msgstr "Email"
1791
+
1792
+ #: nextend-social-login-pro/class-provider-extension.php:367
1793
+ msgid "Registration confirmation will be emailed to you."
1794
+ msgstr "La confirmación de registro será enviada por email."
1795
+
1796
+ #: nextend-social-login-pro/class-provider-extension.php:375
1797
+ msgid "Password"
1798
+ msgstr "Contraseña"
1799
+
1800
+ #: nextend-social-login-pro/class-provider-extension.php:385
1801
+ msgid "Strength indicator"
1802
+ msgstr "Indicador de dificultad"
1803
+
1804
+ #: nextend-social-login-pro/class-provider-extension.php:390
1805
+ msgid "Confirm use of weak password"
1806
+ msgstr "Confirmar el uso de contraseña débil"
1807
+
1808
+ #: nextend-social-login-pro/class-provider-extension.php:396
1809
+ msgid "Confirm password"
1810
+ msgstr "Confirmar contraseña"
1811
+
1812
+ #: nextend-social-login-pro/class-provider-extension.php:506
1813
+ #, php-format
1814
+ msgid ""
1815
+ "This email is already registered, please login in to your account to link "
1816
+ "with %1$s."
1817
+ msgstr ""
1818
+ "Este email ya está registrado, por favor inicia sesión en tu cuenta para "
1819
+ "vincularlo con %1$s."
1820
+
1821
+ #: nextend-social-login-pro/nextend-social-login-pro.php:51
1822
+ #, php-format
1823
+ msgid "Please install and activate %1$s to use the %2$s"
1824
+ msgstr "Por favor instala y activa %1$s para usar el %2$s"
1825
+
1826
+ #: nextend-social-login-pro/nextend-social-login-pro.php:57
1827
+ msgid "Activate"
1828
+ msgstr "Activar"
1829
+
1830
+ #: nextend-social-login-pro/nextend-social-login-pro.php:65
1831
+ msgid "Network Activate"
1832
+ msgstr "Activar Red"
1833
+
1834
+ #: nextend-social-login-pro/nextend-social-login-pro.php:77
1835
+ msgid "Install now!"
1836
+ msgstr "¡Instalar ahora!"
1837
+
1838
+ #: nextend-social-login-pro/providers/amazon/admin/fix-redirect-uri.php:10
1839
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:23
1840
+ #, php-format
1841
+ msgid "Visit %s"
1842
+ msgstr "Visita %s"
1843
+
1844
+ #: nextend-social-login-pro/providers/amazon/admin/fix-redirect-uri.php:11
1845
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:27
1846
+ msgid ""
1847
+ "On the right side, under \"Manage\", hover over the gear icon and select "
1848
+ "\"Web Settings\" option."
1849
+ msgstr ""
1850
+ "En el lado derecho, en \"Manage\", desplaza el cursor sobre el ícono de "
1851
+ "ajustes y selecciona la opción \"Web Settings\"."
1852
+
1853
+ #: nextend-social-login-pro/providers/amazon/admin/fix-redirect-uri.php:12
1854
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:28
1855
+ msgid "Click \"Edit\"."
1856
+ msgstr "Haz clic en \"Edit\"."
1857
+
1858
+ #: nextend-social-login-pro/providers/amazon/admin/fix-redirect-uri.php:13
1859
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:30
1860
+ #, php-format
1861
+ msgid "Add the following URL to the \"Allowed Return URLs\" field <b>%s</b> "
1862
+ msgstr "Agrega la siguiente URL al campo \"Allowed Return URLs\" <b>%s</b> "
1863
+
1864
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:16
1865
+ #, php-format
1866
+ msgid ""
1867
+ "To allow your visitors to log in with their %1$s account, first you must "
1868
+ "create an %1$s App. The following guide will help you through the %1$s App "
1869
+ "creation process. After you have created your %1$s App, head over to "
1870
+ "\"Settings\" and configure the given \"%2$s\" and \"%3$s\" according to your "
1871
+ "%1$s App."
1872
+ msgstr ""
1873
+ "Para permitir que tus visitantes inicien sesión con su cuenta %1$s, primero "
1874
+ "debes crear una aplicación %1$s. La siguiente guía te ayudará a través del "
1875
+ "proceso de creación de la aplicación %1$s. Después de haber creado tu "
1876
+ "aplicación %1$s, dirígete a \"Ajustes\" y configura los \"%2$s\" y \"%3$s\" "
1877
+ "dados según tu aplicación %1$s."
1878
+
1879
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:22
1880
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:16
1881
+ #, php-format
1882
+ msgid "Log in with your %s credentials if you are not logged in."
1883
+ msgstr "Inicia sesión con tus %s credenciales si no has iniciado sesión."
1884
+
1885
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:24
1886
+ msgid ""
1887
+ "If you don't have a Security Profile yet, you'll need to create one. You can "
1888
+ "do this by clicking on the orange \"Create a New Security Profile\" button "
1889
+ "on the left side."
1890
+ msgstr ""
1891
+ "Si aún no tienes un Security Profile, deberás crear uno. Puedes hacer esto "
1892
+ "haciendo clic en el botón naranja \"Create a New Security Profile\" en el "
1893
+ "lado izquierdo."
1894
+
1895
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:25
1896
+ msgid ""
1897
+ "Fill \"Security Profile Name\", \"Security Profile Description\" and "
1898
+ "\"Consent Privacy Notice URL\"."
1899
+ msgstr ""
1900
+ "Llena \"Security Profile Name\", \"Security Profile Description\" y "
1901
+ "\"Consent Privacy Notice URL\"."
1902
+
1903
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:26
1904
+ msgid "Once you filled all the required fields, click \"Save\"."
1905
+ msgstr ""
1906
+ "Una vez que hayas completado todos los campos requeridos, haz clic en "
1907
+ "\"Guardar\"."
1908
+
1909
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:29
1910
+ #, php-format
1911
+ msgid ""
1912
+ "Fill \"Allowed Origins\" with the url of your homepage, probably: <b>%s</b>"
1913
+ msgstr ""
1914
+ "Llena \"Allowed Origins\" con la url de tu página principal, probablemente: "
1915
+ "<b>%s</b>"
1916
+
1917
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:31
1918
+ msgid "When all fields are filled, click \"Save\"."
1919
+ msgstr ""
1920
+ "Una vez que hayas completado todos los campos, haz clic en \"Guardar\"."
1921
+
1922
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:32
1923
+ msgid "Pick \"General\" tab, which is next to the \"Web Settings\" tab."
1924
+ msgstr ""
1925
+ "Escoge la pestaña \"General\" que está al lado de la pestaña \"Web Settings"
1926
+ "\"."
1927
+
1928
+ #: nextend-social-login-pro/providers/amazon/admin/getting-started.php:33
1929
+ msgid ""
1930
+ "Find the necessary \"Client ID\" and \"Client Secret\" at the middle of the "
1931
+ "page."
1932
+ msgstr "Busca la \"Client ID\" y \"Client Secret\" en el medio de la página."
1933
+
1934
+ #: nextend-social-login-pro/providers/amazon/amazon.php:37
1935
+ msgid "Continue with <b>Amazon</b>"
1936
+ msgstr "Sigue con <b>Amazon</b>"
1937
+
1938
+ #: nextend-social-login-pro/providers/amazon/amazon.php:38
1939
+ msgid "Link account with <b>Amazon</b>"
1940
+ msgstr "Enlazar cuenta con <b>Amazon</b>"
1941
+
1942
+ #: nextend-social-login-pro/providers/amazon/amazon.php:39
1943
+ msgid "Unlink account from <b>Amazon</b>"
1944
+ msgstr "Desenlazar cuenta de <b>Amazon</b>"
1945
+
1946
+ #: nextend-social-login-pro/providers/linkedin/admin/fix-redirect-uri.php:11
1947
+ #: nextend-social-login-pro/providers/linkedin/admin/getting-started.php:23
1948
+ #, php-format
1949
+ msgid ""
1950
+ "Add the following URL to the \"Authorized Redirect URLs:\" field: <b>%s</b>"
1951
+ msgstr ""
1952
+ "Agrega la siguiente URL al campo \"Authorized Redirect URLs\": <b>%s</b>"
1953
+
1954
+ #: nextend-social-login-pro/providers/linkedin/admin/fix-redirect-uri.php:12
1955
+ #: nextend-social-login-pro/providers/linkedin/admin/getting-started.php:25
1956
+ #: nextend-social-login-pro/providers/vk/admin/fix-redirect-uri.php:13
1957
+ msgid "Hit update to save the changes"
1958
+ msgstr "Haz clic en update para guardar los cambios"
1959
+
1960
+ #: nextend-social-login-pro/providers/linkedin/admin/getting-started.php:17
1961
+ msgid "Locate the yellow \"Create application\" button and click on it."
1962
+ msgstr "Busca el botón amarillo \"Create application\" y haz click en el."
1963
+
1964
+ #: nextend-social-login-pro/providers/linkedin/admin/getting-started.php:18
1965
+ msgid "Fill the fields marked with *"
1966
+ msgstr "Llena los campos marcados con *"
1967
+
1968
+ #: nextend-social-login-pro/providers/linkedin/admin/getting-started.php:19
1969
+ #, php-format
1970
+ msgid "Fill \"Website URL\" with the url of your homepage, probably: <b>%s</b>"
1971
+ msgstr ""
1972
+ "Llena \"Website URL\" con la URL de tu página principal, probablemente: <b>"
1973
+ "%s</b>"
1974
+
1975
+ #: nextend-social-login-pro/providers/linkedin/admin/getting-started.php:21
1976
+ msgid "Accept the Terms of use and hit Submit"
1977
+ msgstr "Acepta los Términos de Uso y da clic en Submit"
1978
+
1979
+ #: nextend-social-login-pro/providers/linkedin/admin/getting-started.php:22
1980
+ msgid "Find the necessary Authentication Keys under the Authentication menu"
1981
+ msgstr "Busca las Authentication Keys abajo del menú Authentication"
1982
+
1983
+ #: nextend-social-login-pro/providers/linkedin/admin/getting-started.php:24
1984
+ msgid ""
1985
+ "You probably want to enable the \"r_emailaddress\" under the Default "
1986
+ "Application Permissions"
1987
+ msgstr ""
1988
+ "A lo mejor quieres habilitar el \"r_emailaddress\" abajo de los Default "
1989
+ "Application Permissions"
1990
+
1991
+ #: nextend-social-login-pro/providers/linkedin/linkedin.php:34
1992
+ msgid "Continue with <b>LinkedIn</b>"
1993
+ msgstr "Sigue con <b>LinkedIn</b>"
1994
+
1995
+ #: nextend-social-login-pro/providers/linkedin/linkedin.php:35
1996
+ msgid "Link account with <b>LinkedIn</b>"
1997
+ msgstr "Enlazar cuenta con <b>LinkedIn</b>"
1998
+
1999
+ #: nextend-social-login-pro/providers/linkedin/linkedin.php:36
2000
+ msgid "Unlink account from <b>LinkedIn</b>"
2001
+ msgstr "Desenlazar cuenta de <b>LinkedIn</b>"
2002
+
2003
+ #: nextend-social-login-pro/providers/vk/admin/fix-redirect-uri.php:10
2004
+ msgid "Click on the Manage button at the App"
2005
+ msgstr "Haz clic en el botón Manage en la App"
2006
+
2007
+ #: nextend-social-login-pro/providers/vk/admin/fix-redirect-uri.php:11
2008
+ msgid "Go to the Settings menu"
2009
+ msgstr "Ve al menú de Ajustes"
2010
+
2011
+ #: nextend-social-login-pro/providers/vk/admin/fix-redirect-uri.php:12
2012
+ #, php-format
2013
+ msgid ""
2014
+ "Add the following URL to the \"Authorized redirect URI:\" field: <b>%s</b>"
2015
+ msgstr ""
2016
+ "Agrega la siguiente URL al campo \"Authorized redirect URI\": <b>%s</b>"
2017
+
2018
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:17
2019
+ msgid "Locate the blue \"Create application\" button and click on it."
2020
+ msgstr "Busca el botón azul \"Create application\" y haz click en el."
2021
+
2022
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:18
2023
+ msgid "Enter the title of your app and select \"Websie\"."
2024
+ msgstr "Ingresa el título de tu app y selecciona \"Websie\"."
2025
+
2026
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:19
2027
+ #, php-format
2028
+ msgid ""
2029
+ "Fill \"Site address\" with the url of your homepage, probably: <b>%s</b>"
2030
+ msgstr ""
2031
+ "Llena \"Site address\" con la url de tu página principal, probablemente: <b>"
2032
+ "%s</b>"
2033
+
2034
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:20
2035
+ #, php-format
2036
+ msgid "Fill the \"Base domain\" field with your domain, probably: <b>%s</b>"
2037
+ msgstr ""
2038
+ "Llena el campo \"Base domain\" con tu dominio, probablemente: <b>%s</b>"
2039
+
2040
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:21
2041
+ msgid "When all fields are filled, create you app."
2042
+ msgstr "Cuando todos campos estén llenos, crea tu app."
2043
+
2044
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:22
2045
+ msgid ""
2046
+ "You'll be sent a confirmation code via SMS which you need to type to be able "
2047
+ "to create the app."
2048
+ msgstr ""
2049
+ "Se te enviará un código de confirmación a través de SMS que deberás utilizar "
2050
+ "para poder crear la app."
2051
+
2052
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:23
2053
+ msgid "Fill the form for your app and upload an app icon then hit Save."
2054
+ msgstr ""
2055
+ "Llena el formulario de tu app y carga un ícono de la app, luego haz clic en "
2056
+ "Guardar."
2057
+
2058
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:24
2059
+ msgid "Pick Settings at the left-hand menu "
2060
+ msgstr "Escoge Ajustes en el menú de la izquierda"
2061
+
2062
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:25
2063
+ #, php-format
2064
+ msgid ""
2065
+ "Add the following URL to the \"Authorized redirect URI\" field <b>%s</b> "
2066
+ msgstr ""
2067
+ "Agrega la siguiente URL al campo \"Authorized redirect URI\": <b>%s</b>"
2068
+
2069
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:26
2070
+ msgid "Save your app"
2071
+ msgstr "Guarda tu app"
2072
+
2073
+ #: nextend-social-login-pro/providers/vk/admin/getting-started.php:27
2074
+ msgid ""
2075
+ "Find the necessary Application ID and Secure key at the top of the Settings "
2076
+ "page where you just hit the save button."
2077
+ msgstr ""
2078
+ "Busca la Application ID y Secure key en la parte superior de la página "
2079
+ "Ajustes dónde acabas de hacer clic en el botón de guardar."
2080
+
2081
+ #: nextend-social-login-pro/providers/vk/admin/settings.php:26
2082
+ msgid "Application ID"
2083
+ msgstr "Application ID"
2084
+
2085
+ #: nextend-social-login-pro/providers/vk/admin/settings.php:38
2086
+ msgid "Secure key"
2087
+ msgstr "Secure key"
2088
+
2089
+ #: nextend-social-login-pro/providers/vk/vk.php:34
2090
+ msgid "Continue with <b>VK</b>"
2091
+ msgstr "Sigue con <b>VK</b>"
2092
+
2093
+ #: nextend-social-login-pro/providers/vk/vk.php:35
2094
+ msgid "Link account with <b>VK</b>"
2095
+ msgstr "Enlazar cuenta con <b>VK</b>"
2096
+
2097
+ #: nextend-social-login-pro/providers/vk/vk.php:36
2098
+ msgid "Unlink account from <b>VK</b>"
2099
+ msgstr "Desenlazar cuenta de <b>VK</b>"
2100
+
2101
+ #: nextend-social-login-pro/template-parts/embedded-login/above-separator.php:8
2102
+ #: nextend-social-login-pro/template-parts/embedded-login/below-separator.php:8
2103
+ #: nextend-social-login-pro/template-parts/login/above-separator.php:10
2104
+ #: nextend-social-login-pro/template-parts/login/below-separator.php:14
2105
+ #: nextend-social-login-pro/template-parts/memberpress/login/above-separator.php:8
2106
+ #: nextend-social-login-pro/template-parts/memberpress/login/below-separator.php:8
2107
+ #: nextend-social-login-pro/template-parts/userpro/login/above-separator.php:8
2108
+ #: nextend-social-login-pro/template-parts/userpro/login/below-separator.php:8
2109
+ #: nextend-social-login-pro/template-parts/userpro/register/above-separator.php:8
2110
+ #: nextend-social-login-pro/template-parts/userpro/register/below-separator.php:8
2111
+ msgid "OR"
2112
+ msgstr "O"
2113
+
2114
+ #: nextend-social-login-pro/template-parts/memberpress/account-home.php:1
2115
+ #: nextend-social-login-pro/template-parts/woocommerce/edit-account-after.php:1
2116
+ #: nextend-social-login-pro/template-parts/woocommerce/edit-account-before.php:1
2117
+ msgid "Social accounts"
2118
+ msgstr "Cuentas sociales"
nextend-facebook-connect.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Nextend Social Login
4
  Plugin URI: https://nextendweb.com/
5
  Description: Nextend Social Login displays social login buttons for Facebook, Google and Twitter.
6
- Version: 3.0.7
7
  Author: Nextendweb
8
  License: GPL2
9
  Text Domain: nextend-facebook-connect
3
  Plugin Name: Nextend Social Login
4
  Plugin URI: https://nextendweb.com/
5
  Description: Nextend Social Login displays social login buttons for Facebook, Google and Twitter.
6
+ Version: 3.0.8
7
  Author: Nextendweb
8
  License: GPL2
9
  Text Domain: nextend-facebook-connect
nextend-social-login.php CHANGED
@@ -6,6 +6,8 @@ require_once dirname(__FILE__) . '/NSL/Persistent/Persistent.php';
6
  require_once dirname(__FILE__) . '/NSL/Notices.php';
7
  require_once dirname(__FILE__) . '/NSL/REST.php';
8
 
 
 
9
  require_once(NSL_PATH . '/class-settings.php');
10
  require_once(NSL_PATH . '/includes/provider.php');
11
  require_once(NSL_PATH . '/admin/admin.php');
@@ -14,11 +16,15 @@ require_once(NSL_PATH . '/compat.php');
14
 
15
  class NextendSocialLogin {
16
 
17
- public static $version = '3.0.7';
 
 
18
 
19
- public static $nslPROMinVersion = '3.0.7';
20
 
21
  public static function checkVersion() {
 
 
22
  if (version_compare(self::$version, NextendSocialLoginPRO::$nslMinVersion, '<')) {
23
  if (did_action('init')) {
24
  NextendSocialLogin::noticeUpdateFree();
@@ -38,9 +44,33 @@ class NextendSocialLogin {
38
  return false;
39
  }
40
 
 
 
 
 
41
  return true;
42
  }
43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  public static function noticeUpdateFree() {
45
  if (is_admin() && current_user_can('manage_options')) {
46
  $file = 'nextend-facebook-connect/nextend-facebook-connect.php';
@@ -55,6 +85,13 @@ class NextendSocialLogin {
55
  }
56
  }
57
 
 
 
 
 
 
 
 
58
  /** @var NextendSocialLoginSettings */
59
  public static $settings;
60
 
@@ -74,6 +111,11 @@ class NextendSocialLogin {
74
  */
75
  public static $providers = array();
76
 
 
 
 
 
 
77
  /**
78
  * @var NextendSocialProvider[]
79
  */
@@ -100,6 +142,8 @@ class NextendSocialLogin {
100
 
101
  self::$settings = new NextendSocialLoginSettings('nextend_social_login', array(
102
  'enabled' => array(),
 
 
103
  'ordering' => array(
104
  'facebook',
105
  'google',
@@ -107,7 +151,12 @@ class NextendSocialLogin {
107
  ),
108
  'license_key' => '',
109
  'license_key_ok' => '0',
 
 
 
 
110
  'avatar_store' => 1,
 
111
  'redirect' => '',
112
  'redirect_reg' => '',
113
  'default_redirect' => '',
@@ -126,8 +175,11 @@ class NextendSocialLogin {
126
  'buddypress_register_button' => 'bp_before_account_details_fields',
127
  'buddypress_register_button_style' => 'default',
128
  'woocommerce_login' => 'after',
 
129
  'woocommerce_register' => 'after',
 
130
  'woocommerce_billing' => 'before',
 
131
  'woocoommerce_form_button_style' => 'default',
132
  'woocommerce_account_details' => 'before',
133
 
@@ -145,6 +197,8 @@ class NextendSocialLogin {
145
  'userpro_register_form_button_style' => 'default',
146
  'userpro_login_form_layout' => 'below',
147
  'userpro_register_form_layout' => 'below',
 
 
148
  ));
149
 
150
  add_action('itsec_initialized', 'NextendSocialLogin::disable_better_wp_security_block_long_urls', -1);
@@ -155,6 +209,16 @@ class NextendSocialLogin {
155
  public static function plugins_loaded() {
156
  if (get_option('nsl-version') != self::$version) {
157
  NextendSocialLogin::install();
 
 
 
 
 
 
 
 
 
 
158
  update_option('nsl-version', self::$version, true);
159
  wp_redirect(set_url_scheme('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']));
160
  exit;
@@ -184,6 +248,7 @@ class NextendSocialLogin {
184
 
185
  self::$ordering = array_flip(self::$settings->get('ordering'));
186
  uksort(self::$providers, 'NextendSocialLogin::sortProviders');
 
187
  uksort(self::$enabledProviders, 'NextendSocialLogin::sortProviders');
188
 
189
  do_action('nsl_providers_loaded');
@@ -195,6 +260,9 @@ class NextendSocialLogin {
195
 
196
  add_action('login_form_unlink', 'NextendSocialLogin::login_form_unlink');
197
 
 
 
 
198
  add_action('parse_request', 'NextendSocialLogin::editProfileRedirect');
199
 
200
  if (count(self::$enabledProviders) > 0) {
@@ -269,20 +337,28 @@ class NextendSocialLogin {
269
 
270
  if (!empty($_REQUEST['loginSocial'])) {
271
 
272
- //Fix for all-in-one-wp-security-and-firewall
273
  if (empty($_GET['action'])) {
274
  $_GET['action'] = 'login';
275
  }
276
 
277
- //Fix for wps-hide-login
278
  if (empty($_REQUEST['action'])) {
279
  $_REQUEST['action'] = 'login';
280
  }
281
 
282
- //Fix for Social Rabbit as it catch our code response from Facebook
283
  if (class_exists('\SR\Utils\Scheduled', true)) {
284
  add_action('init', 'NextendSocialLogin::fixSocialRabbit', 0);
285
  }
 
 
 
 
 
 
 
 
286
  }
287
  }
288
 
@@ -383,8 +459,6 @@ class NextendSocialLogin {
383
  NextendSocialLogin::compatDeactivateTwitter();
384
  add_action('activated_plugin', 'NextendSocialLogin::compatDeactivateTwitter');
385
  }
386
-
387
- update_option('nsl-version', self::$version, true);
388
  }
389
 
390
  public static function compatDeactivateGoogle() {
@@ -434,6 +508,10 @@ class NextendSocialLogin {
434
  }
435
  }
436
  self::$providers[$provider->getId()] = $provider;
 
 
 
 
437
  }
438
 
439
  public static function enableProvider($providerID) {
@@ -463,6 +541,44 @@ class NextendSocialLogin {
463
  return isset(self::$enabledProviders[$providerID]);
464
  }
465
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
466
  public static function login_form_login() {
467
  self::$WPLoginCurrentView = 'login';
468
  self::login_init();
@@ -494,6 +610,7 @@ class NextendSocialLogin {
494
 
495
  if (isset($_GET['interim_login']) && $_GET['interim_login'] === 'nsl' && is_user_logged_in()) {
496
  self::onInterimLoginSuccess();
 
497
  }
498
 
499
  if (isset($_REQUEST['loginFacebook']) && $_REQUEST['loginFacebook'] == '1') {
@@ -515,28 +632,7 @@ class NextendSocialLogin {
515
  }
516
 
517
  private static function onInterimLoginSuccess() {
518
- global $interim_login;
519
- do_action("login_form_login");
520
- $customize_login = isset($_REQUEST['customize-login']);
521
- if ($customize_login) {
522
- wp_enqueue_script('customize-base');
523
- }
524
-
525
- $message = '<p class="message">' . __('You have logged in successfully.') . '</p>';
526
- $interim_login = 'success';
527
- login_header('', $message); ?>
528
- </div>
529
- <?php
530
- /** This action is documented in wp-login.php */
531
- do_action('login_footer'); ?>
532
- <?php if ($customize_login) : ?>
533
- <script type="text/javascript">setTimeout(function () {
534
- new wp.customize.Messenger({url: '<?php echo wp_customize_url(); ?>', channel: 'login'}).send(
535
- 'login');
536
- }, 1000);</script>
537
- <?php endif; ?>
538
- </body></html>
539
- <?php exit;
540
  }
541
 
542
  public static function wp_login_errors($errors) {
@@ -797,14 +893,45 @@ class NextendSocialLogin {
797
  return $currentUrl;
798
  }
799
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
800
  public static function isAllowedRedirectUrl($url) {
801
- $loginUrl = site_url('wp-login.php');
802
 
803
  // If the currentUrl is the loginUrl, then we should not return it for redirects
804
  if (strpos($url, $loginUrl) === 0) {
805
  return false;
806
  }
807
 
 
 
 
 
 
 
 
808
  $registerUrl = wp_registration_url();
809
  // If the currentUrl is the registerUrl, then we should not return it for redirects
810
  if (strpos($url, $registerUrl) === 0) {
@@ -921,15 +1048,18 @@ class NextendSocialLogin {
921
  'slug' => 'social',
922
  'parent_url' => trailingslashit($user_domain . $settings_slug),
923
  'parent_slug' => $settings_slug,
924
- 'screen_function' => 'bp_xprofile_screen_settings',
925
  'position' => 30,
926
  'user_has_access' => bp_core_can_edit_settings()
927
  ), 'members');
928
 
929
- if ((bp_is_user_settings() && bp_is_current_action('social'))) {
930
- add_action('bp_template_title', 'NextendSocialLogin::bp_template_title');
931
- add_action('bp_template_content', 'NextendSocialLogin::bp_template_content');
932
- }
 
 
 
933
  }
934
 
935
  public static function bp_template_title() {
@@ -944,6 +1074,33 @@ class NextendSocialLogin {
944
  return \NSL\Persistent\Persistent::get('trackerdata');
945
  }
946
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
947
  }
948
 
949
  NextendSocialLogin::init();
6
  require_once dirname(__FILE__) . '/NSL/Notices.php';
7
  require_once dirname(__FILE__) . '/NSL/REST.php';
8
 
9
+ require_once dirname(__FILE__) . '/NSL/GDPR.php';
10
+
11
  require_once(NSL_PATH . '/class-settings.php');
12
  require_once(NSL_PATH . '/includes/provider.php');
13
  require_once(NSL_PATH . '/admin/admin.php');
16
 
17
  class NextendSocialLogin {
18
 
19
+ public static $version = '3.0.8';
20
+
21
+ public static $nslPROMinVersion = '3.0.8';
22
 
23
+ public static $proxyPage = false;
24
 
25
  public static function checkVersion() {
26
+ $isAuthorizedDomainChanged = NextendSocialLogin::isProAddonAuthorizedDomainChanged();
27
+
28
  if (version_compare(self::$version, NextendSocialLoginPRO::$nslMinVersion, '<')) {
29
  if (did_action('init')) {
30
  NextendSocialLogin::noticeUpdateFree();
44
  return false;
45
  }
46
 
47
+ if ($isAuthorizedDomainChanged) {
48
+ return false;
49
+ }
50
+
51
  return true;
52
  }
53
 
54
+ public static function isProAddonAuthorizedDomainChanged() {
55
+
56
+ if (NextendSocialLogin::$settings->get('license_key_ok') == '1' && NextendSocialLogin::$settings->get('authorized_domain') != '') {
57
+ if (NextendSocialLogin::$settings->get('authorized_domain') != NextendSocialLogin::getDomain()) {
58
+ if (is_admin() && current_user_can('manage_options')) {
59
+ if (did_action('init')) {
60
+ NextendSocialLogin::noticeChangedDomain();
61
+ } else {
62
+ add_action('init', 'NextendSocialLogin::noticeChangedDomain');
63
+ }
64
+ }
65
+
66
+ return true;
67
+ }
68
+ }
69
+
70
+ return false;
71
+ }
72
+
73
+
74
  public static function noticeUpdateFree() {
75
  if (is_admin() && current_user_can('manage_options')) {
76
  $file = 'nextend-facebook-connect/nextend-facebook-connect.php';
85
  }
86
  }
87
 
88
+ public static function noticeChangedDomain() {
89
+ if (is_admin() && current_user_can('manage_options')) {
90
+ // Your site domain name changed so you must authorize the Nextend Social Login Pro Addon again
91
+ \NSL\Notices::addError(sprintf(__('Your domain name changed so you must authorize %1$s again.', 'nextend-facebook-connect'), "Nextend Social Login Pro Addon") . ' <a class="button button-primary" href="' . NextendSocialLoginAdmin::getAdminUrl('domain-changed') . '">Authorize now</a>');
92
+ }
93
+ }
94
+
95
  /** @var NextendSocialLoginSettings */
96
  public static $settings;
97
 
111
  */
112
  public static $providers = array();
113
 
114
+ /**
115
+ * @var NextendSocialProvider[]
116
+ */
117
+ public static $allowedProviders = array();
118
+
119
  /**
120
  * @var NextendSocialProvider[]
121
  */
142
 
143
  self::$settings = new NextendSocialLoginSettings('nextend_social_login', array(
144
  'enabled' => array(),
145
+ 'register-flow-page' => '',
146
+ 'proxy-page' => '',
147
  'ordering' => array(
148
  'facebook',
149
  'google',
151
  ),
152
  'license_key' => '',
153
  'license_key_ok' => '0',
154
+ 'terms_show' => 0,
155
+ 'terms' => __('By clicking Register, you accept our <a href="#privacy_policy_url" target="_blank">Privacy Policy</a>', 'nextend-facebook-connect'),
156
+ 'store_name' => 1,
157
+ 'store_email' => 1,
158
  'avatar_store' => 1,
159
+ 'store_access_token' => 1,
160
  'redirect' => '',
161
  'redirect_reg' => '',
162
  'default_redirect' => '',
175
  'buddypress_register_button' => 'bp_before_account_details_fields',
176
  'buddypress_register_button_style' => 'default',
177
  'woocommerce_login' => 'after',
178
+ 'woocommerce_login_form_layout' => 'default',
179
  'woocommerce_register' => 'after',
180
+ 'woocommerce_register_form_layout' => 'default',
181
  'woocommerce_billing' => 'before',
182
+ 'woocommerce_billing_form_layout' => 'default',
183
  'woocoommerce_form_button_style' => 'default',
184
  'woocommerce_account_details' => 'before',
185
 
197
  'userpro_register_form_button_style' => 'default',
198
  'userpro_login_form_layout' => 'below',
199
  'userpro_register_form_layout' => 'below',
200
+
201
+ 'authorized_domain' => '',
202
  ));
203
 
204
  add_action('itsec_initialized', 'NextendSocialLogin::disable_better_wp_security_block_long_urls', -1);
209
  public static function plugins_loaded() {
210
  if (get_option('nsl-version') != self::$version) {
211
  NextendSocialLogin::install();
212
+
213
+ if (NextendSocialLogin::$settings->get('license_key_ok') == '1' && version_compare(get_option('nsl-version'), '3.0.6', '<=')) {
214
+
215
+ add_filter('nsl_update_settings_validate_nextend_social_login', 'NextendSocialLoginAdmin::validateSettings', 10, 2);
216
+
217
+ NextendSocialLogin::$settings->update(array(
218
+ 'authorized_domain' => NextendSocialLogin::getDomain()
219
+ ));
220
+ }
221
+
222
  update_option('nsl-version', self::$version, true);
223
  wp_redirect(set_url_scheme('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']));
224
  exit;
248
 
249
  self::$ordering = array_flip(self::$settings->get('ordering'));
250
  uksort(self::$providers, 'NextendSocialLogin::sortProviders');
251
+ uksort(self::$allowedProviders, 'NextendSocialLogin::sortProviders');
252
  uksort(self::$enabledProviders, 'NextendSocialLogin::sortProviders');
253
 
254
  do_action('nsl_providers_loaded');
260
 
261
  add_action('login_form_unlink', 'NextendSocialLogin::login_form_unlink');
262
 
263
+
264
+ add_action('template_redirect', 'NextendSocialLogin::alternate_login_page_template_redirect');
265
+
266
  add_action('parse_request', 'NextendSocialLogin::editProfileRedirect');
267
 
268
  if (count(self::$enabledProviders) > 0) {
337
 
338
  if (!empty($_REQUEST['loginSocial'])) {
339
 
340
+ // Fix for all-in-one-wp-security-and-firewall
341
  if (empty($_GET['action'])) {
342
  $_GET['action'] = 'login';
343
  }
344
 
345
+ // Fix for wps-hide-login
346
  if (empty($_REQUEST['action'])) {
347
  $_REQUEST['action'] = 'login';
348
  }
349
 
350
+ // Fix for Social Rabbit as it catch our code response from Facebook
351
  if (class_exists('\SR\Utils\Scheduled', true)) {
352
  add_action('init', 'NextendSocialLogin::fixSocialRabbit', 0);
353
  }
354
+
355
+ // Fix for Dokan https://wedevs.com/dokan/
356
+ if (function_exists('dokan_redirect_to_register')) {
357
+ remove_action('login_init', 'dokan_redirect_to_register', 10);
358
+ }
359
+
360
+ // Fix for Jetpack SSO
361
+ add_filter('jetpack_sso_bypass_login_forward_wpcom', '__return_false');
362
  }
363
  }
364
 
459
  NextendSocialLogin::compatDeactivateTwitter();
460
  add_action('activated_plugin', 'NextendSocialLogin::compatDeactivateTwitter');
461
  }
 
 
462
  }
463
 
464
  public static function compatDeactivateGoogle() {
508
  }
509
  }
510
  self::$providers[$provider->getId()] = $provider;
511
+
512
+ if ($provider instanceof NextendSocialProvider) {
513
+ self::$allowedProviders[$provider->getId()] = $provider;
514
+ }
515
  }
516
 
517
  public static function enableProvider($providerID) {
541
  return isset(self::$enabledProviders[$providerID]);
542
  }
543
 
544
+ public static function alternate_login_page_template_redirect() {
545
+
546
+ $isAlternatePage = ((self::getProxyPage() !== false && is_page(self::getProxyPage())) || (self::getRegisterFlowPage() !== false && is_page(self::getRegisterFlowPage())));
547
+ if ($isAlternatePage) {
548
+ nocache_headers();
549
+
550
+ if (!empty($_REQUEST['loginSocial'] || (isset($_GET['interim_login']) && $_GET['interim_login'] === 'nsl'))) {
551
+
552
+ $action = isset($_GET['action']) ? $_GET['action'] : 'login';
553
+ if (!in_array($action, array(
554
+ 'login',
555
+ 'register',
556
+ 'link',
557
+ 'unlink'
558
+ ))) {
559
+ $action = 'login';
560
+ }
561
+ switch ($action) {
562
+ case 'login':
563
+ NextendSocialLogin::login_form_login();
564
+ break;
565
+ case 'register':
566
+ NextendSocialLogin::login_form_register();
567
+ break;
568
+ case 'link':
569
+ NextendSocialLogin::login_form_link();
570
+ break;
571
+ case 'unlink':
572
+ NextendSocialLogin::login_form_unlink();
573
+ break;
574
+ }
575
+ } else {
576
+ wp_redirect(site_url());
577
+ exit;
578
+ }
579
+ }
580
+ }
581
+
582
  public static function login_form_login() {
583
  self::$WPLoginCurrentView = 'login';
584
  self::login_init();
610
 
611
  if (isset($_GET['interim_login']) && $_GET['interim_login'] === 'nsl' && is_user_logged_in()) {
612
  self::onInterimLoginSuccess();
613
+
614
  }
615
 
616
  if (isset($_REQUEST['loginFacebook']) && $_REQUEST['loginFacebook'] == '1') {
632
  }
633
 
634
  private static function onInterimLoginSuccess() {
635
+ require_once(NSL_PATH . '/admin/interim.php');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
636
  }
637
 
638
  public static function wp_login_errors($errors) {
893
  return $currentUrl;
894
  }
895
 
896
+ public static function getLoginUrl($scheme = null) {
897
+ static $alternateLoginPage = null;
898
+ if ($alternateLoginPage === null) {
899
+ $proxyPage = self::getProxyPage();
900
+ if ($proxyPage !== false) {
901
+ $alternateLoginPage = get_permalink($proxyPage);
902
+ }
903
+ if (empty($alternateLoginPage)) {
904
+ $alternateLoginPage = false;
905
+ }
906
+ }
907
+
908
+ if ($alternateLoginPage !== false) {
909
+ return $alternateLoginPage;
910
+ }
911
+
912
+ return site_url('wp-login.php', $scheme);
913
+ }
914
+
915
+ public static function getRegisterUrl() {
916
+
917
+ return wp_registration_url();
918
+ }
919
+
920
  public static function isAllowedRedirectUrl($url) {
921
+ $loginUrl = self::getLoginUrl();
922
 
923
  // If the currentUrl is the loginUrl, then we should not return it for redirects
924
  if (strpos($url, $loginUrl) === 0) {
925
  return false;
926
  }
927
 
928
+ $loginUrl2 = site_url('wp-login.php');
929
+
930
+ // If the currentUrl is the loginUrl, then we should not return it for redirects
931
+ if ($loginUrl2 !== $loginUrl && strpos($url, $loginUrl2) === 0) {
932
+ return false;
933
+ }
934
+
935
  $registerUrl = wp_registration_url();
936
  // If the currentUrl is the registerUrl, then we should not return it for redirects
937
  if (strpos($url, $registerUrl) === 0) {
1048
  'slug' => 'social',
1049
  'parent_url' => trailingslashit($user_domain . $settings_slug),
1050
  'parent_slug' => $settings_slug,
1051
+ 'screen_function' => 'NextendSocialLogin::bp_display_account_link',
1052
  'position' => 30,
1053
  'user_has_access' => bp_core_can_edit_settings()
1054
  ), 'members');
1055
 
1056
+ }
1057
+
1058
+ public static function bp_display_account_link() {
1059
+
1060
+ add_action('bp_template_title', 'NextendSocialLogin::bp_template_title');
1061
+ add_action('bp_template_content', 'NextendSocialLogin::bp_template_content');
1062
+ bp_core_load_template(apply_filters('bp_core_template_plugin', 'members/single/plugins'));
1063
  }
1064
 
1065
  public static function bp_template_title() {
1074
  return \NSL\Persistent\Persistent::get('trackerdata');
1075
  }
1076
 
1077
+ public static function getDomain() {
1078
+ return parse_url(site_url(), PHP_URL_HOST);
1079
+ }
1080
+
1081
+ public static function getRegisterFlowPage() {
1082
+ static $registerFlowPage = null;
1083
+ if ($registerFlowPage === null) {
1084
+ $registerFlowPage = intval(self::$settings->get('register-flow-page'));
1085
+ if (empty($registerFlowPage) || get_post($registerFlowPage) === null) {
1086
+ $registerFlowPage = false;
1087
+ }
1088
+ }
1089
+
1090
+ return $registerFlowPage;
1091
+ }
1092
+
1093
+ public static function getProxyPage() {
1094
+ static $proxyPage = null;
1095
+ if ($proxyPage === null) {
1096
+ $proxyPage = intval(self::$settings->get('proxy-page'));
1097
+ if (empty($proxyPage) || get_post($proxyPage) === null) {
1098
+ $proxyPage = false;
1099
+ }
1100
+ }
1101
+
1102
+ return $proxyPage;
1103
+ }
1104
  }
1105
 
1106
  NextendSocialLogin::init();
providers/facebook/facebook-client.php CHANGED
@@ -3,7 +3,7 @@ require_once NSL_PATH . '/includes/oauth2.php';
3
 
4
  class NextendSocialProviderFacebookClient extends NextendSocialOauth2 {
5
 
6
- const DEFAULT_GRAPH_VERSION = 'v2.11';
7
 
8
 
9
  protected $access_token_data = array(
3
 
4
  class NextendSocialProviderFacebookClient extends NextendSocialOauth2 {
5
 
6
+ const DEFAULT_GRAPH_VERSION = 'v2.12';
7
 
8
 
9
  protected $access_token_data = array(
providers/facebook/facebook.php CHANGED
@@ -114,7 +114,7 @@ class NextendSocialProviderFacebook extends NextendSocialProvider {
114
 
115
  $this->client->setClientId($this->settings->get('appid'));
116
  $this->client->setClientSecret($this->settings->get('secret'));
117
- $this->client->setRedirectUri($this->getLoginUrl());
118
  }
119
 
120
  return $this->client;
@@ -225,7 +225,8 @@ class NextendSocialProviderFacebook extends NextendSocialProvider {
225
  }
226
 
227
  }
228
- $this->saveUserData($user_id, 'access_token', $access_token);
 
229
  }
230
 
231
  protected function saveUserData($user_id, $key, $data) {
114
 
115
  $this->client->setClientId($this->settings->get('appid'));
116
  $this->client->setClientSecret($this->settings->get('secret'));
117
+ $this->client->setRedirectUri($this->getRedirectUri());
118
  }
119
 
120
  return $this->client;
225
  }
226
 
227
  }
228
+
229
+ $this->storeAccessToken($user_id, $access_token);
230
  }
231
 
232
  protected function saveUserData($user_id, $key, $data) {
providers/google/google.php CHANGED
@@ -86,7 +86,7 @@ class NextendSocialProviderGoogle extends NextendSocialProvider {
86
 
87
  $this->client->setClientId($this->settings->get('client_id'));
88
  $this->client->setClientSecret($this->settings->get('client_secret'));
89
- $this->client->setRedirectUri($this->getLoginUrl());
90
  $this->client->setApprovalPrompt('auto');
91
  }
92
 
@@ -132,7 +132,7 @@ class NextendSocialProviderGoogle extends NextendSocialProvider {
132
  $this->updateAvatar($user_id, $this->getAuthUserData('picture'));
133
  }
134
 
135
- $this->saveUserData($user_id, 'access_token', $access_token);
136
  }
137
 
138
  public function getState() {
86
 
87
  $this->client->setClientId($this->settings->get('client_id'));
88
  $this->client->setClientSecret($this->settings->get('client_secret'));
89
+ $this->client->setRedirectUri($this->getRedirectUri());
90
  $this->client->setApprovalPrompt('auto');
91
  }
92
 
132
  $this->updateAvatar($user_id, $this->getAuthUserData('picture'));
133
  }
134
 
135
+ $this->storeAccessToken($user_id, $access_token);
136
  }
137
 
138
  public function getState() {
providers/twitter/twitter.php CHANGED
@@ -87,7 +87,7 @@ class NextendSocialProviderTwitter extends NextendSocialProvider {
87
 
88
  $this->client = new NextendSocialProviderTwitterClient($this->id, $this->settings->get('consumer_key'), $this->settings->get('consumer_secret'));
89
 
90
- $this->client->setRedirectUri($this->getLoginUrl());
91
  }
92
 
93
  return $this->client;
@@ -142,7 +142,7 @@ class NextendSocialProviderTwitter extends NextendSocialProvider {
142
  $this->updateAvatar($user_id, $this->authUserData['profile_image_url_https']);
143
  }
144
 
145
- $this->saveUserData($user_id, 'access_token', $access_token);
146
  }
147
 
148
  public function getState() {
87
 
88
  $this->client = new NextendSocialProviderTwitterClient($this->id, $this->settings->get('consumer_key'), $this->settings->get('consumer_secret'));
89
 
90
+ $this->client->setRedirectUri($this->getRedirectUri());
91
  }
92
 
93
  return $this->client;
142
  $this->updateAvatar($user_id, $this->authUserData['profile_image_url_https']);
143
  }
144
 
145
+ $this->storeAccessToken($user_id, $access_token);
146
  }
147
 
148
  public function getState() {
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: social login, facebook, google, twitter, linkedin, register, login, social
4
  Donate link: https://www.facebook.com/nextendweb
5
  Requires at least: 4.5
6
  Tested up to: 4.9
7
- Stable tag: 3.0.7
8
  Requires PHP: 5.4
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -62,10 +62,12 @@ After you activated the plugin configure and enable the provider you want to use
62
 
63
  == Frequently Asked Questions ==
64
 
 
 
 
65
  = 1. How can I get the email address from the Twitter users? =
66
  After you set up your APP go to the Settings tab and enter the URL of your Terms of Service and Privacy Policy page. Then hit the Update your settings button. Then go to the Permissions tab and check the "Request email addresses from users" under "Additional Permissions". [There's a documentation](https://nextendweb.com/nextend-social-login-docs/provider-twitter/#get-email) that explains the process with screenshots.
67
 
68
-
69
  = 2. Why are random email addresses generated for users registering with their FaceBook account? =
70
  When the user tries to register with their Facebook account Facebook pops up a window where each user can view what kind of access they give for the app. In this modal they can chose not to share their email address. When they're doing so we generate a random email address for them. They can of course change this at their profile.
71
  If the permission is given to the app, there are still [other factors](https://nextendweb.com/nextend-social-login-docs/provider-facebook/#get-email) which can result Facebook not sending back any email address.
@@ -112,6 +114,19 @@ Unfortunately, currently there are no BuddyPress specific settings. However your
112
 
113
  == Changelog ==
114
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  = 3.0.7 =
116
  * Feature: AJAX compatibility
117
  * Feature: Default Redirect URL
4
  Donate link: https://www.facebook.com/nextendweb
5
  Requires at least: 4.5
6
  Tested up to: 4.9
7
+ Stable tag: 3.0.8
8
  Requires PHP: 5.4
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
62
 
63
  == Frequently Asked Questions ==
64
 
65
+ = Can I make my site GDPR compliant with Nextend Social Login installed? =
66
+ Sure, Nextend Social Login provides you the tools to make your site GDPR compliant. [Check out the Nextend Social Login GDPR documentation](https://nextendweb.com/nextend-social-login-docs/gdpr/) to learn more about the topic.
67
+
68
  = 1. How can I get the email address from the Twitter users? =
69
  After you set up your APP go to the Settings tab and enter the URL of your Terms of Service and Privacy Policy page. Then hit the Update your settings button. Then go to the Permissions tab and check the "Request email addresses from users" under "Additional Permissions". [There's a documentation](https://nextendweb.com/nextend-social-login-docs/provider-twitter/#get-email) that explains the process with screenshots.
70
 
 
71
  = 2. Why are random email addresses generated for users registering with their FaceBook account? =
72
  When the user tries to register with their Facebook account Facebook pops up a window where each user can view what kind of access they give for the app. In this modal they can chose not to share their email address. When they're doing so we generate a random email address for them. They can of course change this at their profile.
73
  If the permission is given to the app, there are still [other factors](https://nextendweb.com/nextend-social-login-docs/provider-facebook/#get-email) which can result Facebook not sending back any email address.
114
 
115
  == Changelog ==
116
 
117
+ = 3.0.8 =
118
+ * Feature: A page can be selected which handles the extra fields for Register flow.
119
+ * Feature: A page can be selected which handles the OAuth flow.
120
+ * Feature: Spanish (Latin America) translation added.
121
+ * Feature: GDPR - add custom Terms and conditions on register.
122
+ * Feature: GDPR - retrieved fields can now be exported with the Export Personal Data tool of WordPress.
123
+ * Fix: Jetpack - Secure Sign On
124
+ * Fix: Dokan - redirection
125
+
126
+ * PRO: Feature: Authorized domain name check and notice for changed domain name.
127
+ * PRO: Feature: Option to change the button layouts for WooCommerce login/register/billing forms.
128
+ * PRO: Feature: Sync LinkedId fields
129
+
130
  = 3.0.7 =
131
  * Feature: AJAX compatibility
132
  * Feature: Default Redirect URL