Theme My Login - Version 7.1.1

Version Description

  • Implement option to enable/disable AJAX
  • Fix AJAX not working on certain server environments
  • Fix AJAX errors not displaying when the AJAX request fails
  • Revert forcing actions to the Dashboard when logged in
Download this release

Release Info

Developer jfarthing84
Plugin Icon 128x128 Theme My Login
Version 7.1.1
Comparing to
See all releases

Code changes from version 7.1 to 7.1.1

admin/settings.php CHANGED
@@ -94,6 +94,11 @@ function tml_admin_get_settings_sections() {
94
  * @param array $sections The settings sections.
95
  */
96
  return (array) apply_filters( 'tml_admin_get_settings_sections', array(
 
 
 
 
 
97
  'tml_settings_login' => array(
98
  'title' => __( 'Log In' ),
99
  'callback' => '__return_null',
@@ -122,6 +127,22 @@ function tml_admin_get_settings_sections() {
122
  function tml_admin_get_settings_fields() {
123
  $fields = array();
124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  // Login
126
  $fields['tml_settings_login'] = array(
127
  // Login type
94
  * @param array $sections The settings sections.
95
  */
96
  return (array) apply_filters( 'tml_admin_get_settings_sections', array(
97
+ 'tml_settings_general' => array(
98
+ 'title' => __( 'General', 'theme-my-login' ),
99
+ 'callback' => '__return_null',
100
+ 'page' => 'theme-my-login',
101
+ ),
102
  'tml_settings_login' => array(
103
  'title' => __( 'Log In' ),
104
  'callback' => '__return_null',
127
  function tml_admin_get_settings_fields() {
128
  $fields = array();
129
 
130
+ // General
131
+ $fields['tml_settings_general'] = array(
132
+ // AJAX
133
+ 'tml_ajax' => array(
134
+ 'title' => __( 'AJAX', 'theme-my-login' ),
135
+ 'callback' => 'tml_admin_setting_callback_checkbox_field',
136
+ 'sanitize_callback' => 'sanitize_text_field',
137
+ 'args' => array(
138
+ 'label_for' => 'tml_ajax',
139
+ 'label' => __( 'Enable AJAX requests', 'theme-my-login' ),
140
+ 'value' => '1',
141
+ 'checked' => get_site_option( 'tml_ajax', '1' ),
142
+ ),
143
+ ),
144
+ );
145
+
146
  // Login
147
  $fields['tml_settings_login'] = array(
148
  // Login type
assets/scripts/theme-my-login.js CHANGED
@@ -15,7 +15,7 @@
15
  submit.prop( 'disabled', true );
16
 
17
  $.ajax( {
18
- data: form.serialize(),
19
  method: form.attr( 'method' ) || 'get',
20
  url: form.attr( 'action' )
21
  } )
@@ -35,6 +35,11 @@
35
  } else {
36
  notices.hide().html( response.data.errors ).fadeIn();
37
  }
 
 
 
 
 
38
  } );
39
  } );
40
  } )( jQuery );
15
  submit.prop( 'disabled', true );
16
 
17
  $.ajax( {
18
+ data: form.serialize() + '&ajax=1',
19
  method: form.attr( 'method' ) || 'get',
20
  url: form.attr( 'action' )
21
  } )
35
  } else {
36
  notices.hide().html( response.data.errors ).fadeIn();
37
  }
38
+ } )
39
+ .fail( function( jqXHR, textStatus, errorThrown ) {
40
+ if ( jqXHR.responseJSON.data.errors ) {
41
+ notices.hide().html( jqXHR.responseJSON.data.errors ).fadeIn();
42
+ }
43
  } );
44
  } );
45
  } )( jQuery );
assets/scripts/theme-my-login.min.js CHANGED
@@ -1 +1 @@
1
- !function(n){n(".tml").on("submit",'form[data-ajax="1"]',function(a){var e=n(this),s=e.find(":input"),t=e.find(":submit"),r=n(a.delegateTarget).find(".tml-alerts");a.preventDefault(),r.empty(),s.prop("readonly",!0),t.prop("disabled",!0),n.ajax({data:e.serialize(),method:e.attr("method")||"get",url:e.attr("action")}).always(function(){s.prop("readonly",!1),t.prop("disabled",!1)}).done(function(a){a.success?a.data.refresh?location.reload(!0):a.data.redirect?location.href=a.data.redirect:a.data.notice&&r.hide().html(a.data.notice).fadeIn():r.hide().html(a.data.errors).fadeIn()})})}(jQuery),function(s){s(function(){var a,e;if(!themeMyLogin.action)return;switch(a=s("#user_login"),themeMyLogin.action){case"activate":(e=s("#key")).length&&e.focus();break;case"lostpassword":case"retrievepassword":case"register":a.focus();break;case"resetpass":case"rp":s("#pass1").focus();break;case"login":-1!=themeMyLogin.errors.indexOf("invalid_username")&&a.val(""),a.val()?s("#user_pass").focus():a.focus()}})}(jQuery),function(s){function a(){var a=s("#pass1").val(),e=s("#pass-strength-result");if(e.removeClass("short bad good strong"),a)switch(wp.passwordStrength.meter(a,wp.passwordStrength.userInputBlacklist(),a)){case-1:e.addClass("bad").html(pwsL10n.unknown);break;case 2:e.addClass("bad").html(pwsL10n.bad);break;case 3:e.addClass("good").html(pwsL10n.good);break;case 4:e.addClass("strong").html(pwsL10n.strong);break;case 5:e.addClass("short").html(pwsL10n.mismatch);break;default:e.addClass("short").html(pwsL10n.short)}else e.html(" ")}s(document).ready(function(){s("#pass1").val("").on("keyup paste",a)})}(jQuery);
1
+ !function(n){n(".tml").on("submit",'form[data-ajax="1"]',function(a){var e=n(this),s=e.find(":input"),t=e.find(":submit"),r=n(a.delegateTarget).find(".tml-alerts");a.preventDefault(),r.empty(),s.prop("readonly",!0),t.prop("disabled",!0),n.ajax({data:e.serialize()+"&ajax=1",method:e.attr("method")||"get",url:e.attr("action")}).always(function(){s.prop("readonly",!1),t.prop("disabled",!1)}).done(function(a){a.success?a.data.refresh?location.reload(!0):a.data.redirect?location.href=a.data.redirect:a.data.notice&&r.hide().html(a.data.notice).fadeIn():r.hide().html(a.data.errors).fadeIn()}).fail(function(a,e,s){a.responseJSON.data.errors&&r.hide().html(a.responseJSON.data.errors).fadeIn()})})}(jQuery),function(s){s(function(){var a,e;if(!themeMyLogin.action)return;switch(a=s("#user_login"),themeMyLogin.action){case"activate":(e=s("#key")).length&&e.focus();break;case"lostpassword":case"retrievepassword":case"register":a.focus();break;case"resetpass":case"rp":s("#pass1").focus();break;case"login":-1!=themeMyLogin.errors.indexOf("invalid_username")&&a.val(""),a.val()?s("#user_pass").focus():a.focus()}})}(jQuery),function(s){function a(){var a=s("#pass1").val(),e=s("#pass-strength-result");if(e.removeClass("short bad good strong"),a)switch(wp.passwordStrength.meter(a,wp.passwordStrength.userInputBlacklist(),a)){case-1:e.addClass("bad").html(pwsL10n.unknown);break;case 2:e.addClass("bad").html(pwsL10n.bad);break;case 3:e.addClass("good").html(pwsL10n.good);break;case 4:e.addClass("strong").html(pwsL10n.strong);break;case 5:e.addClass("short").html(pwsL10n.mismatch);break;default:e.addClass("short").html(pwsL10n.short)}else e.html(" ")}s(document).ready(function(){s("#pass1").val("").on("keyup paste",a)})}(jQuery);
includes/actions.php CHANGED
@@ -396,11 +396,6 @@ function tml_dashboard_handler() {
396
  */
397
  function tml_login_handler() {
398
 
399
- if ( is_user_logged_in() ) {
400
- wp_redirect( tml_get_action_url( 'dashboard' ) );
401
- exit;
402
- }
403
-
404
  $errors = new WP_Error;
405
 
406
  $secure_cookie = '';
@@ -468,7 +463,11 @@ function tml_login_handler() {
468
  $redirect_to = get_dashboard_url( $user->ID );
469
 
470
  } elseif ( ! $user->has_cap( 'edit_posts' ) ) {
471
- $redirect_to = tml_get_action_url( 'dashboard' );
 
 
 
 
472
  }
473
 
474
  if ( tml_is_ajax_request() ) {
@@ -587,10 +586,7 @@ function tml_logout_handler() {
587
  */
588
  function tml_registration_handler() {
589
 
590
- if ( is_user_logged_in() ) {
591
- wp_redirect( tml_get_action_url( 'dashboard' ) );
592
- exit;
593
- } elseif ( is_multisite() ) {
594
  /** This filter is documented in wp-login.php */
595
  $signup_location = apply_filters( 'wp_signup_location', network_site_url( 'wp-signup.php' ) );
596
 
396
  */
397
  function tml_login_handler() {
398
 
 
 
 
 
 
399
  $errors = new WP_Error;
400
 
401
  $secure_cookie = '';
463
  $redirect_to = get_dashboard_url( $user->ID );
464
 
465
  } elseif ( ! $user->has_cap( 'edit_posts' ) ) {
466
+ if ( tml_action_exists( 'dashboard' ) ) {
467
+ $redirect_to = tml_get_action_url( 'dashboard' );
468
+ } else {
469
+ $redirect_to = $user->has_cap( 'read' ) ? admin_url( 'profile.php' ) : home_url();
470
+ }
471
  }
472
 
473
  if ( tml_is_ajax_request() ) {
586
  */
587
  function tml_registration_handler() {
588
 
589
+ if ( is_multisite() ) {
 
 
 
590
  /** This filter is documented in wp-login.php */
591
  $signup_location = apply_filters( 'wp_signup_location', network_site_url( 'wp-signup.php' ) );
592
 
includes/forms.php CHANGED
@@ -32,9 +32,9 @@ function tml_register_login_form() {
32
 
33
  tml_register_form( 'login', array(
34
  'action' => tml_get_action_url( 'login' ),
35
- 'attributes' => array(
36
- 'data-ajax' => 1,
37
- ),
38
  ) );
39
 
40
  tml_add_form_field( 'login', 'log', array(
@@ -95,10 +95,10 @@ function tml_register_registration_form() {
95
 
96
  tml_register_form( 'register', array(
97
  'action' => tml_get_action_url( 'register' ),
98
- 'attributes' => array(
99
  'novalidate' => 'novalidate',
100
- 'data-ajax' => 1,
101
- ),
102
  ) );
103
 
104
  if ( tml_is_default_registration_type() ) {
@@ -199,9 +199,9 @@ function tml_register_lost_password_form() {
199
 
200
  tml_register_form( 'lostpassword', array(
201
  'action' => tml_get_action_url( 'lostpassword' ),
202
- 'attributes' => array(
203
- 'data-ajax' => 1,
204
- ),
205
  ) );
206
 
207
  tml_add_form_field( 'lostpassword', 'user_login', array(
32
 
33
  tml_register_form( 'login', array(
34
  'action' => tml_get_action_url( 'login' ),
35
+ 'attributes' => array_filter( array(
36
+ 'data-ajax' => tml_use_ajax() ? 1 : 0,
37
+ ) ),
38
  ) );
39
 
40
  tml_add_form_field( 'login', 'log', array(
95
 
96
  tml_register_form( 'register', array(
97
  'action' => tml_get_action_url( 'register' ),
98
+ 'attributes' => array_filter( array(
99
  'novalidate' => 'novalidate',
100
+ 'data-ajax' => tml_use_ajax() ? 1 : 0,
101
+ ) ),
102
  ) );
103
 
104
  if ( tml_is_default_registration_type() ) {
199
 
200
  tml_register_form( 'lostpassword', array(
201
  'action' => tml_get_action_url( 'lostpassword' ),
202
+ 'attributes' => array_filter( array(
203
+ 'data-ajax' => tml_use_ajax() ? 1 : 0,
204
+ ) ),
205
  ) );
206
 
207
  tml_add_form_field( 'lostpassword', 'user_login', array(
includes/functions.php CHANGED
@@ -1058,13 +1058,7 @@ function tml_is_post_request() {
1058
  * @return bool
1059
  */
1060
  function tml_is_ajax_request() {
1061
- if ( ! isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) ) {
1062
- return false;
1063
- } elseif ( 'xmlhttprequest' != strtolower( $_SERVER['HTTP_X_REQUESTED_WITH'] ) ) {
1064
- return false;
1065
- } else {
1066
- return true;
1067
- }
1068
  }
1069
 
1070
  /**
1058
  * @return bool
1059
  */
1060
  function tml_is_ajax_request() {
1061
+ return (bool) tml_get_request_value( 'ajax' );
 
 
 
 
 
 
1062
  }
1063
 
1064
  /**
includes/options.php CHANGED
@@ -60,6 +60,26 @@ function tml_use_permalinks() {
60
  return (bool) apply_filters( 'tml_use_permalinks', $use_permalinks );
61
  }
62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  /**
64
  * Get the login type.
65
  *
60
  return (bool) apply_filters( 'tml_use_permalinks', $use_permalinks );
61
  }
62
 
63
+ /**
64
+ * Determine if forms should use AJAX or not.
65
+ *
66
+ * @since 7.1.1
67
+ *
68
+ * @return bool Whether forms should use AJAX or not.
69
+ */
70
+ function tml_use_ajax() {
71
+ $use_ajax = get_site_option( 'tml_ajax', 1 );
72
+
73
+ /**
74
+ * Filter whether forms should use AJAX or not.
75
+ *
76
+ * @since 7.1.1
77
+ *
78
+ * @param bool $enable_ajax Whether forms should use AJAX or not.
79
+ */
80
+ return (bool) apply_filters( 'tml_use_ajax', $use_ajax );
81
+ }
82
+
83
  /**
84
  * Get the login type.
85
  *
languages/theme-my-login.pot CHANGED
@@ -2,22 +2,22 @@
2
  # This file is distributed under the same license as the Theme My Login plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Theme My Login 7.1\n"
6
- "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/build\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2020-05-25T11:56:24-04:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
- "X-Generator: WP-CLI 2.2.0\n"
15
  "X-Domain: theme-my-login\n"
16
 
17
  #. Plugin Name of the plugin
18
  #. Author of the plugin
19
- #: includes/class-theme-my-login-widget.php:23
20
  #: admin/functions.php:67
 
21
  msgid "Theme My Login"
22
  msgstr ""
23
 
@@ -30,91 +30,36 @@ msgstr ""
30
  msgid "Creates an alternate login, registration and password recovery experience within your theme."
31
  msgstr ""
32
 
33
- #: includes/functions.php:548
34
- #: admin/functions.php:278
35
- msgid "Theme My Login Actions"
36
- msgstr ""
37
-
38
- #: includes/functions.php:549
39
- msgid "Theme My Login Action"
40
- msgstr ""
41
-
42
- #: includes/functions.php:577
43
- #: includes/functions.php:604
44
- #: includes/functions.php:619
45
- msgid "TML Action"
46
- msgstr ""
47
-
48
- #: includes/functions.php:683
49
- msgid "<strong>Error</strong>: Please enter a password."
50
- msgstr ""
51
-
52
- #: includes/functions.php:686
53
- msgid "<strong>Error</strong>: Passwords may not contain the character \"\\\"."
54
- msgstr ""
55
-
56
- #: includes/functions.php:689
57
- msgid "<strong>Error</strong>: Please enter the same password in both password fields."
58
- msgstr ""
59
-
60
- #: includes/functions.php:706
61
- msgid "If you have already set your own password, you may disregard this email and use the password you have already set."
62
- msgstr ""
63
-
64
- #: includes/actions.php:80
65
- msgid "Your Data Request"
66
- msgstr ""
67
-
68
- #: includes/actions.php:520
69
- msgid "Registration complete. You may now log in."
70
- msgstr ""
71
-
72
- #: includes/class-theme-my-login-widget.php:25
73
- msgid "A login form for your site."
74
- msgstr ""
75
-
76
- #: includes/class-theme-my-login-widget.php:57
77
- msgctxt "Howdy"
78
- msgid "Welcome"
79
- msgstr ""
80
-
81
- #: includes/class-theme-my-login-widget.php:177
82
- msgid "Show action links?"
83
- msgstr ""
84
-
85
- #: includes/forms.php:146
86
- msgid "Confirm Password"
87
- msgstr ""
88
-
89
- #: includes/extensions.php:189
90
- #: includes/extensions.php:222
91
- #: includes/extensions.php:252
92
- #: includes/extensions.php:287
93
- msgid "An error occurred, please try again."
94
  msgstr ""
95
 
96
- #: includes/extensions.php:196
97
- msgid "Your license key expired on %s."
98
  msgstr ""
99
 
100
- #: includes/extensions.php:202
101
- msgid "Your license key has been disabled."
 
102
  msgstr ""
103
 
104
- #: includes/extensions.php:210
105
- msgid "Invalid license."
106
  msgstr ""
107
 
108
- #: includes/extensions.php:214
109
- msgid "Your license key has reached its activation limit."
 
110
  msgstr ""
111
 
112
- #: includes/extensions.php:218
113
- msgid "You are attempting to activate a bundle license. Please use the license that corresponds to the individual extension you are attemtping to activate."
 
114
  msgstr ""
115
 
116
- #: includes/extensions.php:257
117
- msgid "Unable to deactivate license. Please deactivate it on <a href=\"%1$s\" target=\"_blank\">our site</a>."
 
118
  msgstr ""
119
 
120
  #: admin/functions.php:66
@@ -123,6 +68,7 @@ msgid "Theme My Login Settings"
123
  msgstr ""
124
 
125
  #: admin/functions.php:78
 
126
  msgid "General"
127
  msgstr ""
128
 
@@ -151,159 +97,222 @@ msgstr ""
151
  msgid "A new <strong>Theme My Login</strong> extension is available!"
152
  msgstr ""
153
 
154
- #: admin/functions.php:186
155
- #: admin/extensions.php:94
156
- msgid "Get This Extension"
157
  msgstr ""
158
 
159
- #: admin/settings.php:103
160
  msgid "Registration"
161
  msgstr ""
162
 
163
- #: admin/settings.php:108
164
  msgid "Slugs"
165
  msgstr ""
166
 
167
- #: admin/settings.php:129
168
  #: admin/settings.php:134
 
 
 
 
 
 
 
 
 
169
  msgid "Login Type"
170
  msgstr ""
171
 
172
- #: admin/settings.php:136
173
- #: admin/settings.php:156
174
  msgid "Default"
175
  msgstr ""
176
 
177
- #: admin/settings.php:137
178
  msgid "Username only"
179
  msgstr ""
180
 
181
- #: admin/settings.php:138
182
- #: admin/settings.php:157
183
  msgid "Email only"
184
  msgstr ""
185
 
186
- #: admin/settings.php:149
187
- #: admin/settings.php:154
188
  msgid "Registration Type"
189
  msgstr ""
190
 
191
- #: admin/settings.php:164
192
  msgid "Passwords"
193
  msgstr ""
194
 
195
- #: admin/settings.php:169
196
  msgid "Allow users to set their own password"
197
  msgstr ""
198
 
199
- #: admin/settings.php:176
200
  msgid "Auto-Login"
201
  msgstr ""
202
 
203
- #: admin/settings.php:181
204
  msgid "Automatically log in users after registration"
205
  msgstr ""
206
 
207
- #: admin/settings.php:228
208
  msgid "The slugs defined here will be used to generate the URL to the corresponding action. You can see this URL below the slug field. If you would like to use pages for these actions, simply make sure the slug for the action below matches the slug of the page you would like to use for that action."
209
  msgstr ""
210
 
211
- #: admin/settings.php:464
212
- #: admin/extensions.php:179
213
- msgid "Active"
214
- msgstr ""
215
-
216
- #: admin/settings.php:467
217
  msgid "Invalid"
218
  msgstr ""
219
 
220
- #: admin/settings.php:470
221
- #: admin/extensions.php:200
222
- msgid "Inactive"
223
- msgstr ""
224
-
225
- #: admin/settings.php:482
226
  msgid "Deactivate"
227
  msgstr ""
228
 
229
- #: admin/settings.php:494
230
  msgid "Activate"
231
  msgstr ""
232
 
233
- #: admin/settings.php:619
234
  msgid "Welcome to Theme My Login!"
235
  msgstr ""
236
 
237
- #: admin/settings.php:620
238
  msgid "Below, you can configure how you would like users to register and log in to your site."
239
  msgstr ""
240
 
241
- #: admin/settings.php:621
242
  msgid "Additionally, you can change the slugs that are used to generate the URLs that represent specific actions."
243
  msgstr ""
244
 
245
- #: admin/settings.php:627
246
- #: admin/settings.php:650
247
- #: admin/settings.php:670
248
- #: admin/settings.php:698
249
  msgid "View Documentation"
250
  msgstr ""
251
 
252
- #: admin/settings.php:632
253
- #: admin/settings.php:654
254
- #: admin/settings.php:705
255
  msgid "Get Support"
256
  msgstr ""
257
 
258
- #: admin/settings.php:642
259
  msgid "When you purchase extensions for Theme My Login, you will enter your license keys on this page."
260
  msgstr ""
261
 
262
- #: admin/settings.php:643
263
  msgid "After you enter your license keys and click the Save Changes button at the bottom of the screen, you will see a new button next to each field with a license in it."
264
  msgstr ""
265
 
266
- #: admin/settings.php:644
267
  msgid "If you have not yet activated your license, this button will say \"Activate\". Click this button to activate your license."
268
  msgstr ""
269
 
270
- #: admin/settings.php:645
271
  msgid "If you have already activated your license, this button will say \"Deactivate\". Click this button to deactivate your license."
272
  msgstr ""
273
 
274
- #: admin/settings.php:664
275
  msgid "This page shows you all of the extensions available to purchase for Theme My Login."
276
  msgstr ""
277
 
278
- #: admin/settings.php:665
279
  msgid "Once you purchase an extension, you download it from your email receipt or your account page on our website. Then, you install it just like a normal WordPress plugin."
280
  msgstr ""
281
 
282
- #: admin/settings.php:674
283
  msgid "Go to the Extensions Store"
284
  msgstr ""
285
 
286
- #: admin/settings.php:678
287
  msgid "View your Theme My Login account"
288
  msgstr ""
289
 
290
- #: admin/settings.php:689
291
  msgid "On this page, you can configure the settings for the Theme My Login %s extension."
292
  msgstr ""
293
 
294
- #: admin/extensions.php:71
295
- msgid "Whoops! Looks like there was an error fetching extensions from the server. Please try again."
296
  msgstr ""
297
 
298
- #: admin/extensions.php:72
299
- msgid "Error: %s"
300
  msgstr ""
301
 
302
- #: admin/extensions.php:104
303
- msgid "View All Extensions"
304
  msgstr ""
305
 
306
- #: admin/extensions.php:163
307
- #: admin/extensions.php:189
308
- msgid "Invalid extension."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
309
  msgstr ""
2
  # This file is distributed under the same license as the Theme My Login plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Theme My Login 7.1.1\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/theme-my-login\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2020-06-17T22:14:04+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
+ "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: theme-my-login\n"
16
 
17
  #. Plugin Name of the plugin
18
  #. Author of the plugin
 
19
  #: admin/functions.php:67
20
+ #: includes/class-theme-my-login-widget.php:23
21
  msgid "Theme My Login"
22
  msgstr ""
23
 
30
  msgid "Creates an alternate login, registration and password recovery experience within your theme."
31
  msgstr ""
32
 
33
+ #: admin/extensions.php:71
34
+ msgid "Whoops! Looks like there was an error fetching extensions from the server. Please try again."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  msgstr ""
36
 
37
+ #: admin/extensions.php:72
38
+ msgid "Error: %s"
39
  msgstr ""
40
 
41
+ #: admin/extensions.php:94
42
+ #: admin/functions.php:186
43
+ msgid "Get This Extension"
44
  msgstr ""
45
 
46
+ #: admin/extensions.php:104
47
+ msgid "View All Extensions"
48
  msgstr ""
49
 
50
+ #: admin/extensions.php:163
51
+ #: admin/extensions.php:189
52
+ msgid "Invalid extension."
53
  msgstr ""
54
 
55
+ #: admin/extensions.php:179
56
+ #: admin/settings.php:485
57
+ msgid "Active"
58
  msgstr ""
59
 
60
+ #: admin/extensions.php:200
61
+ #: admin/settings.php:491
62
+ msgid "Inactive"
63
  msgstr ""
64
 
65
  #: admin/functions.php:66
68
  msgstr ""
69
 
70
  #: admin/functions.php:78
71
+ #: admin/settings.php:98
72
  msgid "General"
73
  msgstr ""
74
 
97
  msgid "A new <strong>Theme My Login</strong> extension is available!"
98
  msgstr ""
99
 
100
+ #: admin/functions.php:278
101
+ #: includes/functions.php:548
102
+ msgid "Theme My Login Actions"
103
  msgstr ""
104
 
105
+ #: admin/settings.php:108
106
  msgid "Registration"
107
  msgstr ""
108
 
109
+ #: admin/settings.php:113
110
  msgid "Slugs"
111
  msgstr ""
112
 
 
113
  #: admin/settings.php:134
114
+ msgid "AJAX"
115
+ msgstr ""
116
+
117
+ #: admin/settings.php:139
118
+ msgid "Enable AJAX requests"
119
+ msgstr ""
120
+
121
+ #: admin/settings.php:150
122
+ #: admin/settings.php:155
123
  msgid "Login Type"
124
  msgstr ""
125
 
126
+ #: admin/settings.php:157
127
+ #: admin/settings.php:177
128
  msgid "Default"
129
  msgstr ""
130
 
131
+ #: admin/settings.php:158
132
  msgid "Username only"
133
  msgstr ""
134
 
135
+ #: admin/settings.php:159
136
+ #: admin/settings.php:178
137
  msgid "Email only"
138
  msgstr ""
139
 
140
+ #: admin/settings.php:170
141
+ #: admin/settings.php:175
142
  msgid "Registration Type"
143
  msgstr ""
144
 
145
+ #: admin/settings.php:185
146
  msgid "Passwords"
147
  msgstr ""
148
 
149
+ #: admin/settings.php:190
150
  msgid "Allow users to set their own password"
151
  msgstr ""
152
 
153
+ #: admin/settings.php:197
154
  msgid "Auto-Login"
155
  msgstr ""
156
 
157
+ #: admin/settings.php:202
158
  msgid "Automatically log in users after registration"
159
  msgstr ""
160
 
161
+ #: admin/settings.php:249
162
  msgid "The slugs defined here will be used to generate the URL to the corresponding action. You can see this URL below the slug field. If you would like to use pages for these actions, simply make sure the slug for the action below matches the slug of the page you would like to use for that action."
163
  msgstr ""
164
 
165
+ #: admin/settings.php:488
 
 
 
 
 
166
  msgid "Invalid"
167
  msgstr ""
168
 
169
+ #: admin/settings.php:503
 
 
 
 
 
170
  msgid "Deactivate"
171
  msgstr ""
172
 
173
+ #: admin/settings.php:515
174
  msgid "Activate"
175
  msgstr ""
176
 
177
+ #: admin/settings.php:640
178
  msgid "Welcome to Theme My Login!"
179
  msgstr ""
180
 
181
+ #: admin/settings.php:641
182
  msgid "Below, you can configure how you would like users to register and log in to your site."
183
  msgstr ""
184
 
185
+ #: admin/settings.php:642
186
  msgid "Additionally, you can change the slugs that are used to generate the URLs that represent specific actions."
187
  msgstr ""
188
 
189
+ #: admin/settings.php:648
190
+ #: admin/settings.php:671
191
+ #: admin/settings.php:691
192
+ #: admin/settings.php:719
193
  msgid "View Documentation"
194
  msgstr ""
195
 
196
+ #: admin/settings.php:653
197
+ #: admin/settings.php:675
198
+ #: admin/settings.php:726
199
  msgid "Get Support"
200
  msgstr ""
201
 
202
+ #: admin/settings.php:663
203
  msgid "When you purchase extensions for Theme My Login, you will enter your license keys on this page."
204
  msgstr ""
205
 
206
+ #: admin/settings.php:664
207
  msgid "After you enter your license keys and click the Save Changes button at the bottom of the screen, you will see a new button next to each field with a license in it."
208
  msgstr ""
209
 
210
+ #: admin/settings.php:665
211
  msgid "If you have not yet activated your license, this button will say \"Activate\". Click this button to activate your license."
212
  msgstr ""
213
 
214
+ #: admin/settings.php:666
215
  msgid "If you have already activated your license, this button will say \"Deactivate\". Click this button to deactivate your license."
216
  msgstr ""
217
 
218
+ #: admin/settings.php:685
219
  msgid "This page shows you all of the extensions available to purchase for Theme My Login."
220
  msgstr ""
221
 
222
+ #: admin/settings.php:686
223
  msgid "Once you purchase an extension, you download it from your email receipt or your account page on our website. Then, you install it just like a normal WordPress plugin."
224
  msgstr ""
225
 
226
+ #: admin/settings.php:695
227
  msgid "Go to the Extensions Store"
228
  msgstr ""
229
 
230
+ #: admin/settings.php:699
231
  msgid "View your Theme My Login account"
232
  msgstr ""
233
 
234
+ #: admin/settings.php:710
235
  msgid "On this page, you can configure the settings for the Theme My Login %s extension."
236
  msgstr ""
237
 
238
+ #: includes/actions.php:80
239
+ msgid "Your Data Request"
240
  msgstr ""
241
 
242
+ #: includes/actions.php:519
243
+ msgid "Registration complete. You may now log in."
244
  msgstr ""
245
 
246
+ #: includes/class-theme-my-login-widget.php:25
247
+ msgid "A login form for your site."
248
  msgstr ""
249
 
250
+ #: includes/class-theme-my-login-widget.php:57
251
+ msgctxt "Howdy"
252
+ msgid "Welcome"
253
+ msgstr ""
254
+
255
+ #: includes/class-theme-my-login-widget.php:177
256
+ msgid "Show action links?"
257
+ msgstr ""
258
+
259
+ #: includes/extensions.php:189
260
+ #: includes/extensions.php:222
261
+ #: includes/extensions.php:252
262
+ #: includes/extensions.php:287
263
+ msgid "An error occurred, please try again."
264
+ msgstr ""
265
+
266
+ #: includes/extensions.php:196
267
+ msgid "Your license key expired on %s."
268
+ msgstr ""
269
+
270
+ #: includes/extensions.php:202
271
+ msgid "Your license key has been disabled."
272
+ msgstr ""
273
+
274
+ #: includes/extensions.php:210
275
+ msgid "Invalid license."
276
+ msgstr ""
277
+
278
+ #: includes/extensions.php:214
279
+ msgid "Your license key has reached its activation limit."
280
+ msgstr ""
281
+
282
+ #: includes/extensions.php:218
283
+ msgid "You are attempting to activate a bundle license. Please use the license that corresponds to the individual extension you are attemtping to activate."
284
+ msgstr ""
285
+
286
+ #: includes/extensions.php:257
287
+ msgid "Unable to deactivate license. Please deactivate it on <a href=\"%1$s\" target=\"_blank\">our site</a>."
288
+ msgstr ""
289
+
290
+ #: includes/forms.php:146
291
+ msgid "Confirm Password"
292
+ msgstr ""
293
+
294
+ #: includes/functions.php:549
295
+ msgid "Theme My Login Action"
296
+ msgstr ""
297
+
298
+ #: includes/functions.php:577
299
+ #: includes/functions.php:604
300
+ #: includes/functions.php:619
301
+ msgid "TML Action"
302
+ msgstr ""
303
+
304
+ #: includes/functions.php:683
305
+ msgid "<strong>Error</strong>: Please enter a password."
306
+ msgstr ""
307
+
308
+ #: includes/functions.php:686
309
+ msgid "<strong>Error</strong>: Passwords may not contain the character \"\\\"."
310
+ msgstr ""
311
+
312
+ #: includes/functions.php:689
313
+ msgid "<strong>Error</strong>: Please enter the same password in both password fields."
314
+ msgstr ""
315
+
316
+ #: includes/functions.php:706
317
+ msgid "If you have already set your own password, you may disregard this email and use the password you have already set."
318
  msgstr ""
readme.txt CHANGED
@@ -59,6 +59,12 @@ Report bugs, suggest ideas and participate in development at [GitHub](https://gi
59
 
60
  == Changelog ==
61
 
 
 
 
 
 
 
62
  = 7.1 =
63
  * Implement AJAX support
64
  * Introduce new Dashboard action
@@ -748,5 +754,8 @@ Report bugs, suggest ideas and participate in development at [GitHub](https://gi
748
 
749
  == Upgrade Notice ==
750
 
 
 
 
751
  = 7.0 =
752
  Modules are no longer included with the plugin. Please consider this before you upgrade!
59
 
60
  == Changelog ==
61
 
62
+ = 7.1.1 =
63
+ * Implement option to enable/disable AJAX
64
+ * Fix AJAX not working on certain server environments
65
+ * Fix AJAX errors not displaying when the AJAX request fails
66
+ * Revert forcing actions to the Dashboard when logged in
67
+
68
  = 7.1 =
69
  * Implement AJAX support
70
  * Introduce new Dashboard action
754
 
755
  == Upgrade Notice ==
756
 
757
+ = 7.1 =
758
+ Theme My Login now requires WordPress 5.4+, and by extension, PHP 5.6.20+.
759
+
760
  = 7.0 =
761
  Modules are no longer included with the plugin. Please consider this before you upgrade!
theme-my-login.php CHANGED
@@ -10,7 +10,7 @@
10
  Plugin Name: Theme My Login
11
  Plugin URI: https://thememylogin.com
12
  Description: Creates an alternate login, registration and password recovery experience within your theme.
13
- Version: 7.1
14
  Author: Theme My Login
15
  Author URI: https://thememylogin.com
16
  License: GPLv2
@@ -24,7 +24,7 @@ Network: true
24
  *
25
  * @since 7.0
26
  */
27
- define( 'THEME_MY_LOGIN_VERSION', '7.1' );
28
 
29
  /**
30
  * Stores the path to TML.
10
  Plugin Name: Theme My Login
11
  Plugin URI: https://thememylogin.com
12
  Description: Creates an alternate login, registration and password recovery experience within your theme.
13
+ Version: 7.1.1
14
  Author: Theme My Login
15
  Author URI: https://thememylogin.com
16
  License: GPLv2
24
  *
25
  * @since 7.0
26
  */
27
+ define( 'THEME_MY_LOGIN_VERSION', '7.1.1' );
28
 
29
  /**
30
  * Stores the path to TML.