Theme My Login - Version 7.0.15

Version Description

  • Fix extension update issues caused by caching
  • Add tml_script_dependencies filter
  • Add tml_script_data filter
Download this release

Release Info

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

Code changes from version 7.0.14 to 7.0.15

admin/class-theme-my-login-admin.php CHANGED
@@ -47,7 +47,7 @@ final class Theme_My_Login_Admin {
47
  *
48
  * @since 7.0
49
  *
50
- * @param array|Theme_My_Login_Extension $args {
51
  * Optional. An array of arguments for adding an admin page.
52
  *
53
  * @param string $page_title Required. The page title.
@@ -100,7 +100,7 @@ final class Theme_My_Login_Admin {
100
  }
101
 
102
  /**
103
- * Determine if a speficic plugin page is a TML page.
104
  *
105
  * @since 7.0
106
  *
47
  *
48
  * @since 7.0
49
  *
50
+ * @param array $args {
51
  * Optional. An array of arguments for adding an admin page.
52
  *
53
  * @param string $page_title Required. The page title.
100
  }
101
 
102
  /**
103
+ * Determine if a specific admin page has been added.
104
  *
105
  * @since 7.0
106
  *
admin/class-theme-my-login-walker-nav-menu-edit.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
 
3
  /**
4
- * TML Restrictions Nav Menu Edit Walker
5
  *
6
  * @package Theme_My_Login_Restrictions
7
  * @subpackage Walker
1
  <?php
2
 
3
  /**
4
+ * Theme My Login Nav Menu Edit Walker
5
  *
6
  * @package Theme_My_Login_Restrictions
7
  * @subpackage Walker
admin/extensions.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
 
3
  /**
4
- * Theme MY Login Extensions Admin
5
  *
6
  * @package Theme_My_Login
7
  * @subpackage Administration
@@ -48,7 +48,6 @@ function tml_admin_get_extensions_feed( $args = array() ) {
48
 
49
  set_site_transient( $transient_key, $feed, DAY_IN_SECONDS / 2 );
50
  }
51
-
52
  return $feed;
53
  }
54
 
@@ -104,7 +103,6 @@ function tml_admin_extensions_page() {
104
  <div class="tml-view-all-extensions-wrap">
105
  <a class="tml-view-all-extensions-link" href="<?php echo THEME_MY_LOGIN_EXTENSIONS_URL; ?>"><?php esc_html_e( 'View All Extensions', 'theme-my-login' ); ?></a>
106
  </div>
107
-
108
  </div>
109
 
110
  <?php
1
  <?php
2
 
3
  /**
4
+ * Theme My Login Extensions Admin
5
  *
6
  * @package Theme_My_Login
7
  * @subpackage Administration
48
 
49
  set_site_transient( $transient_key, $feed, DAY_IN_SECONDS / 2 );
50
  }
 
51
  return $feed;
52
  }
53
 
103
  <div class="tml-view-all-extensions-wrap">
104
  <a class="tml-view-all-extensions-link" href="<?php echo THEME_MY_LOGIN_EXTENSIONS_URL; ?>"><?php esc_html_e( 'View All Extensions', 'theme-my-login' ); ?></a>
105
  </div>
 
106
  </div>
107
 
108
  <?php
admin/functions.php CHANGED
@@ -30,10 +30,10 @@ function tml_admin_is_plugin_page( $page = '' ) {
30
  global $plugin_page;
31
 
32
  if ( ! empty( $page ) ) {
33
- return ( "theme-my-login-$page" == $plugin_page );
34
  }
35
 
36
- return ( strpos( $plugin_page, 'theme-my-login' ) === 0 );
37
  }
38
 
39
  /**
@@ -43,14 +43,14 @@ function tml_admin_is_plugin_page( $page = '' ) {
43
  *
44
  * @see Theme_My_Login_Admin::add_menu_item()
45
  *
46
- * @param array|Theme_My_Login_Extension $args
47
  */
48
  function tml_admin_add_menu_item( $args = array() ) {
49
  theme_my_login_admin()->add_menu_item( $args );
50
  }
51
 
52
  /**
53
- * Register the admin menus.
54
  *
55
  * @since 7.0
56
  */
@@ -61,10 +61,8 @@ function tml_admin_add_menu_items() {
61
  return;
62
  }
63
 
64
- $tml_admin = theme_my_login_admin();
65
-
66
  // Add the main menu item
67
- $tml_admin->add_menu_item( array(
68
  'page_title' => esc_html__( 'Theme My Login Settings', 'theme-my-login' ),
69
  'menu_title' => esc_html__( 'Theme My Login', 'theme-my-login' ),
70
  'menu_slug' => 'theme-my-login',
@@ -75,7 +73,7 @@ function tml_admin_add_menu_items() {
75
  ) );
76
 
77
  // Add the submenu item
78
- $tml_admin->add_menu_item( array(
79
  'page_title' => esc_html__( 'Theme My Login Settings', 'theme-my-login' ),
80
  'menu_title' => esc_html__( 'General', 'theme-my-login' ),
81
  'menu_slug' => 'theme-my-login',
@@ -88,7 +86,7 @@ function tml_admin_add_menu_items() {
88
  foreach ( tml_get_extensions() as $extension ) {
89
  $args = $extension->get_settings_page_args();
90
  if ( ! empty( $args ) ) {
91
- $tml_admin->add_menu_item( $args );
92
  }
93
  if ( $extension->get_license_key_option() ) {
94
  $has_licenses = true;
@@ -97,7 +95,7 @@ function tml_admin_add_menu_items() {
97
 
98
  if ( $has_licenses ) {
99
  // Add the licenses menu item
100
- $tml_admin->add_menu_item( array(
101
  'page_title' => esc_html__( 'Theme My Login Licenses', 'theme-my-login' ),
102
  'menu_title' => esc_html__( 'Licenses', 'theme-my-login' ),
103
  'menu_slug' => 'theme-my-login-licenses',
@@ -107,7 +105,7 @@ function tml_admin_add_menu_items() {
107
  }
108
 
109
  // Add the extensions menu item
110
- $tml_admin->add_menu_item( array(
111
  'page_title' => esc_html__( 'Theme My Login Extensions', 'theme-my-login' ),
112
  'menu_title' => esc_html__( 'Extensions', 'theme-my-login' ),
113
  'menu_slug' => 'theme-my-login-extensions',
@@ -125,6 +123,7 @@ function tml_admin_enqueue_style_and_scripts() {
125
  $suffix = SCRIPT_DEBUG ? '' : '.min';
126
 
127
  wp_enqueue_style( 'theme-my-login-admin', THEME_MY_LOGIN_URL . "admin/assets/styles/theme-my-login-admin$suffix.css", array(), THEME_MY_LOGIN_VERSION );
 
128
  wp_enqueue_script( 'theme-my-login-admin', THEME_MY_LOGIN_URL . "admin/assets/scripts/theme-my-login-admin$suffix.js", array( 'jquery', 'postbox' ), THEME_MY_LOGIN_VERSION );
129
  wp_localize_script( 'theme-my-login-admin', 'tmlAdmin', array(
130
  'interimLoginUrl' => site_url( add_query_arg( array(
@@ -345,7 +344,6 @@ function tml_admin_filter_edit_nav_menu_walker( $walker ) {
345
  * @return array The plugin action links.
346
  */
347
  function tml_admin_filter_plugin_action_links( $actions, $file, $data, $context ) {
348
-
349
  if ( 'theme-my-login/theme-my-login.php' == $file ) {
350
  $actions['settings'] = sprintf( '<a href="%1$s">%2$s</a>',
351
  admin_url( 'admin.php?page=theme-my-login' ),
@@ -356,6 +354,5 @@ function tml_admin_filter_plugin_action_links( $actions, $file, $data, $context
356
  __( 'Extensions', 'theme-my-login' )
357
  );
358
  }
359
-
360
  return $actions;
361
  }
30
  global $plugin_page;
31
 
32
  if ( ! empty( $page ) ) {
33
+ return ( "theme-my-login-$page" == $plugin_page ) || ( "tml-$page" == $plugin_page );
34
  }
35
 
36
+ return ( strpos( $plugin_page, 'theme-my-login' ) === 0 ) || ( strpos( $plugin_page, 'tml-' ) === 0 );
37
  }
38
 
39
  /**
43
  *
44
  * @see Theme_My_Login_Admin::add_menu_item()
45
  *
46
+ * @param array $args An array of arguments for adding an admin page.
47
  */
48
  function tml_admin_add_menu_item( $args = array() ) {
49
  theme_my_login_admin()->add_menu_item( $args );
50
  }
51
 
52
  /**
53
+ * Register the admin pages.
54
  *
55
  * @since 7.0
56
  */
61
  return;
62
  }
63
 
 
 
64
  // Add the main menu item
65
+ tml_admin_add_menu_item( array(
66
  'page_title' => esc_html__( 'Theme My Login Settings', 'theme-my-login' ),
67
  'menu_title' => esc_html__( 'Theme My Login', 'theme-my-login' ),
68
  'menu_slug' => 'theme-my-login',
73
  ) );
74
 
75
  // Add the submenu item
76
+ tml_admin_add_menu_item( array(
77
  'page_title' => esc_html__( 'Theme My Login Settings', 'theme-my-login' ),
78
  'menu_title' => esc_html__( 'General', 'theme-my-login' ),
79
  'menu_slug' => 'theme-my-login',
86
  foreach ( tml_get_extensions() as $extension ) {
87
  $args = $extension->get_settings_page_args();
88
  if ( ! empty( $args ) ) {
89
+ tml_admin_add_menu_item( $args );
90
  }
91
  if ( $extension->get_license_key_option() ) {
92
  $has_licenses = true;
95
 
96
  if ( $has_licenses ) {
97
  // Add the licenses menu item
98
+ tml_admin_add_menu_item( array(
99
  'page_title' => esc_html__( 'Theme My Login Licenses', 'theme-my-login' ),
100
  'menu_title' => esc_html__( 'Licenses', 'theme-my-login' ),
101
  'menu_slug' => 'theme-my-login-licenses',
105
  }
106
 
107
  // Add the extensions menu item
108
+ tml_admin_add_menu_item( array(
109
  'page_title' => esc_html__( 'Theme My Login Extensions', 'theme-my-login' ),
110
  'menu_title' => esc_html__( 'Extensions', 'theme-my-login' ),
111
  'menu_slug' => 'theme-my-login-extensions',
123
  $suffix = SCRIPT_DEBUG ? '' : '.min';
124
 
125
  wp_enqueue_style( 'theme-my-login-admin', THEME_MY_LOGIN_URL . "admin/assets/styles/theme-my-login-admin$suffix.css", array(), THEME_MY_LOGIN_VERSION );
126
+
127
  wp_enqueue_script( 'theme-my-login-admin', THEME_MY_LOGIN_URL . "admin/assets/scripts/theme-my-login-admin$suffix.js", array( 'jquery', 'postbox' ), THEME_MY_LOGIN_VERSION );
128
  wp_localize_script( 'theme-my-login-admin', 'tmlAdmin', array(
129
  'interimLoginUrl' => site_url( add_query_arg( array(
344
  * @return array The plugin action links.
345
  */
346
  function tml_admin_filter_plugin_action_links( $actions, $file, $data, $context ) {
 
347
  if ( 'theme-my-login/theme-my-login.php' == $file ) {
348
  $actions['settings'] = sprintf( '<a href="%1$s">%2$s</a>',
349
  admin_url( 'admin.php?page=theme-my-login' ),
354
  __( 'Extensions', 'theme-my-login' )
355
  );
356
  }
 
357
  return $actions;
358
  }
admin/settings.php CHANGED
@@ -15,7 +15,7 @@
15
  function tml_admin_register_settings() {
16
 
17
  $settings = array(
18
- 'theme-my-login' =>array(
19
  'sections' => tml_admin_get_settings_sections(),
20
  'fields' => tml_admin_get_settings_fields(),
21
  ),
@@ -86,6 +86,13 @@ function tml_admin_register_settings() {
86
  * @return array The settings sections.
87
  */
88
  function tml_admin_get_settings_sections() {
 
 
 
 
 
 
 
89
  return (array) apply_filters( 'tml_admin_get_settings_sections', array(
90
  'tml_settings_login' => array(
91
  'title' => __( 'Log In' ),
@@ -224,9 +231,19 @@ function tml_admin_setting_callback_slugs_section() {
224
  }
225
 
226
  /**
227
- * Render a text setting field.
228
  *
229
  * @since 7.0
 
 
 
 
 
 
 
 
 
 
230
  */
231
  function tml_admin_setting_callback_input_field( $args ) {
232
  $args = wp_parse_args( $args, array(
@@ -251,6 +268,16 @@ function tml_admin_setting_callback_input_field( $args ) {
251
  * Render a checkbox setting field.
252
  *
253
  * @since 7.0
 
 
 
 
 
 
 
 
 
 
254
  */
255
  function tml_admin_setting_callback_checkbox_field( $args ) {
256
  $args = wp_parse_args( $args, array(
@@ -272,12 +299,16 @@ function tml_admin_setting_callback_checkbox_field( $args ) {
272
  }
273
 
274
  /**
275
- * Render a radio group setting field.
276
  *
277
  * @since 7.0
278
  *
279
  * @param array $args {
280
- * Optional. An array of arguments.
 
 
 
 
281
  * }
282
  */
283
  function tml_admin_setting_callback_checkbox_group_field( $args ) {
@@ -317,7 +348,12 @@ function tml_admin_setting_callback_checkbox_group_field( $args ) {
317
  * @since 7.0
318
  *
319
  * @param array $args {
320
- * Optional. An array of arguments.
 
 
 
 
 
321
  * }
322
  */
323
  function tml_admin_setting_callback_dropdown_field( $args ) {
@@ -356,7 +392,13 @@ function tml_admin_setting_callback_dropdown_field( $args ) {
356
  * @since 7.0
357
  *
358
  * @param array $args {
359
- * Optional. An array of arguments.
 
 
 
 
 
 
360
  * }
361
  */
362
  function tml_admin_setting_callback_radio_group_field( $args ) {
@@ -399,6 +441,9 @@ function tml_admin_setting_callback_radio_group_field( $args ) {
399
  *
400
  * @param array $args {
401
  * Optional. An array of arguments.
 
 
 
402
  * }
403
  */
404
  function tml_admin_setting_callback_license_key_field( $args ) {
15
  function tml_admin_register_settings() {
16
 
17
  $settings = array(
18
+ 'theme-my-login' => array(
19
  'sections' => tml_admin_get_settings_sections(),
20
  'fields' => tml_admin_get_settings_fields(),
21
  ),
86
  * @return array The settings sections.
87
  */
88
  function tml_admin_get_settings_sections() {
89
+ /**
90
+ * Filters the settings sections.
91
+ *
92
+ * @since 7.0
93
+ *
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' ),
231
  }
232
 
233
  /**
234
+ * Render an input setting field.
235
  *
236
  * @since 7.0
237
+ *
238
+ * @param array $args {
239
+ * Optional. An array of arguments for rendering an input.
240
+ *
241
+ * @type string $label_for The input name/ID.
242
+ * @type string $value The input value.
243
+ * @type string $description A short description of the input.
244
+ * @type string $input_type The type of input. Default is "text".
245
+ * @type string $input_class The input class. Default is "regular-text".
246
+ * }
247
  */
248
  function tml_admin_setting_callback_input_field( $args ) {
249
  $args = wp_parse_args( $args, array(
268
  * Render a checkbox setting field.
269
  *
270
  * @since 7.0
271
+ *
272
+ * @param array $args {
273
+ * Optional. An array of arguments for rendering a checkbox.
274
+ *
275
+ * @type string $label_for The checkbox name/ID.
276
+ * @type stirng $label The checkbox label text.
277
+ * @type string $value The checkbox value.
278
+ * @type bool $checked Whether the checkbox is checked or not.
279
+ * @type string $description A short description of the checkbox.
280
+ * }
281
  */
282
  function tml_admin_setting_callback_checkbox_field( $args ) {
283
  $args = wp_parse_args( $args, array(
299
  }
300
 
301
  /**
302
+ * Render a checkbox group setting field.
303
  *
304
  * @since 7.0
305
  *
306
  * @param array $args {
307
+ * Optional. An array of arguments for rendering a checkbox group.
308
+ *
309
+ * @type string $legend The legend text.
310
+ * @type array $options An array of options for the checkbox group.
311
+ * @type string $description A short description of the checkbox group.
312
  * }
313
  */
314
  function tml_admin_setting_callback_checkbox_group_field( $args ) {
348
  * @since 7.0
349
  *
350
  * @param array $args {
351
+ * Optional. An array of arguments for rendering a dropdown.
352
+ *
353
+ * @type string $label_for The dropdown name/ID.
354
+ * @type array $options An array of options for the dropdown.
355
+ * @type string $selected The value of the selected option.
356
+ * @type string $description A short description of the dropdown.
357
  * }
358
  */
359
  function tml_admin_setting_callback_dropdown_field( $args ) {
392
  * @since 7.0
393
  *
394
  * @param array $args {
395
+ * Optional. An array of arguments for rendering a radio group.
396
+ *
397
+ * @type string $label_for The radio button name/ID.
398
+ * @type string $legend The legend text.
399
+ * @type array $options An array of options for the radio group.
400
+ * @type string $checked The value of the checked option.
401
+ * @type string $description A short description of the radio group.
402
  * }
403
  */
404
  function tml_admin_setting_callback_radio_group_field( $args ) {
441
  *
442
  * @param array $args {
443
  * Optional. An array of arguments.
444
+ *
445
+ * @type string $label_for The key field name/ID.
446
+ * @type string|Theme_My_Login_Extention $extension The extension name or object.
447
  * }
448
  */
449
  function tml_admin_setting_callback_license_key_field( $args ) {
includes/actions.php CHANGED
@@ -80,10 +80,10 @@ function tml_register_default_actions() {
80
  *
81
  * @since 7.0
82
  *
 
 
83
  * @param string|Theme_My_Login_Action $action The action name or object.
84
- * @param array $args {
85
- * Optional. An array of arguments for registering an action.
86
- * }
87
  * @return Theme_My_Login_Action The action object.
88
  */
89
  function tml_register_action( $action, $args = array() ) {
@@ -322,7 +322,7 @@ function tml_action_handler() {
322
 
323
  // Add the testcookie field to the login form
324
  tml_add_form_field( 'login', 'testcookie', array(
325
- 'type' => 'hidden' ,
326
  'value' => 1,
327
  'priority' => 30,
328
  ) );
@@ -400,7 +400,7 @@ function tml_login_handler() {
400
  );
401
  }
402
  }
403
-
404
  $redirect_to = apply_filters( 'login_redirect', $redirect_to, isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '', $user );
405
 
406
  if ( ! is_wp_error( $user ) && ! $reauth ) {
@@ -464,6 +464,7 @@ function tml_login_handler() {
464
  $errors->add( 'updated', __( '<strong>You have successfully updated WordPress!</strong> Please log back in to see what&#8217;s new.' ), 'message' );
465
  }
466
 
 
467
  $errors = apply_filters( 'wp_login_errors', $errors, $redirect_to );
468
 
469
  tml_set_errors( $errors );
@@ -494,7 +495,9 @@ function tml_logout_handler() {
494
  $requested_redirect_to = '';
495
  }
496
 
 
497
  $redirect_to = apply_filters( 'logout_redirect', $redirect_to, $requested_redirect_to, $user );
 
498
  wp_safe_redirect( $redirect_to );
499
  exit;
500
  }
@@ -507,7 +510,10 @@ function tml_logout_handler() {
507
  function tml_registration_handler() {
508
 
509
  if ( is_multisite() ) {
510
- wp_redirect( apply_filters( 'wp_signup_location', network_site_url( 'wp-signup.php' ) ) );
 
 
 
511
  exit;
512
  }
513
 
@@ -611,6 +617,7 @@ function tml_password_reset_handler() {
611
  $errors->add( 'password_reset_mismatch', __( 'The passwords do not match.' ) );
612
  }
613
 
 
614
  do_action( 'validate_password_reset', $errors, $user );
615
 
616
  if ( ( ! $errors->get_error_code() ) && isset( $_POST['pass1'] ) && ! empty( $_POST['pass1'] ) ) {
80
  *
81
  * @since 7.0
82
  *
83
+ * @see Theme_My_Login::register_action()
84
+ *
85
  * @param string|Theme_My_Login_Action $action The action name or object.
86
+ * @param array $args Optional. An array of arguments for registering an action.
 
 
87
  * @return Theme_My_Login_Action The action object.
88
  */
89
  function tml_register_action( $action, $args = array() ) {
322
 
323
  // Add the testcookie field to the login form
324
  tml_add_form_field( 'login', 'testcookie', array(
325
+ 'type' => 'hidden',
326
  'value' => 1,
327
  'priority' => 30,
328
  ) );
400
  );
401
  }
402
  }
403
+ /** This filter is documented in wp-login.php */
404
  $redirect_to = apply_filters( 'login_redirect', $redirect_to, isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '', $user );
405
 
406
  if ( ! is_wp_error( $user ) && ! $reauth ) {
464
  $errors->add( 'updated', __( '<strong>You have successfully updated WordPress!</strong> Please log back in to see what&#8217;s new.' ), 'message' );
465
  }
466
 
467
+ /** This filter is documented in wp-login.php */
468
  $errors = apply_filters( 'wp_login_errors', $errors, $redirect_to );
469
 
470
  tml_set_errors( $errors );
495
  $requested_redirect_to = '';
496
  }
497
 
498
+ /** This filter is documented in wp-login.php */
499
  $redirect_to = apply_filters( 'logout_redirect', $redirect_to, $requested_redirect_to, $user );
500
+
501
  wp_safe_redirect( $redirect_to );
502
  exit;
503
  }
510
  function tml_registration_handler() {
511
 
512
  if ( is_multisite() ) {
513
+ /** This filter is documented in wp-login.php */
514
+ $signup_location = apply_filters( 'wp_signup_location', network_site_url( 'wp-signup.php' ) );
515
+
516
+ wp_redirect( $signup_location );
517
  exit;
518
  }
519
 
617
  $errors->add( 'password_reset_mismatch', __( 'The passwords do not match.' ) );
618
  }
619
 
620
+ /** This action is documented in wp-login.php */
621
  do_action( 'validate_password_reset', $errors, $user );
622
 
623
  if ( ( ! $errors->get_error_code() ) && isset( $_POST['pass1'] ) && ! empty( $_POST['pass1'] ) ) {
includes/class-theme-my-login-extension.php CHANGED
@@ -19,7 +19,7 @@ abstract class Theme_My_Login_Extension {
19
  *
20
  * @var string
21
  */
22
- protected $name = 'theme-my-login-extension';
23
 
24
  /**
25
  * The extension title.
@@ -180,7 +180,7 @@ abstract class Theme_My_Login_Extension {
180
  if ( isset( $this->slug ) ) {
181
  return $this->slug;
182
  }
183
- return str_replace( 'theme-my-login-', '', $this->name );
184
  }
185
 
186
  /**
@@ -422,7 +422,7 @@ abstract class Theme_My_Login_Extension {
422
  */
423
  public function deactivate() {
424
  /**
425
- * Fires when the extension is being deactivated.
426
  *
427
  * @since 7.0.14
428
  *
19
  *
20
  * @var string
21
  */
22
+ protected $name = 'tml-extension';
23
 
24
  /**
25
  * The extension title.
180
  if ( isset( $this->slug ) ) {
181
  return $this->slug;
182
  }
183
+ return str_replace( array( 'theme-my-login-', 'tml-' ), '', $this->name );
184
  }
185
 
186
  /**
422
  */
423
  public function deactivate() {
424
  /**
425
+ * Fires when an extension is being deactivated.
426
  *
427
  * @since 7.0.14
428
  *
includes/class-theme-my-login-form-field.php CHANGED
@@ -85,14 +85,14 @@ class Theme_My_Login_Form_Field {
85
  protected $classes = array();
86
 
87
  /**
88
- * The field's parent form.
89
  *
90
  * @var Theme_My_Login_Form
91
  */
92
  protected $form;
93
 
94
  /**
95
- * The field's priority within the form.
96
  *
97
  * @var int
98
  */
@@ -396,22 +396,22 @@ class Theme_My_Login_Form_Field {
396
  }
397
 
398
  /**
399
- * Get the field's parent form.
400
  *
401
  * @since 7.0
402
  *
403
- * @return Theme_My_Login_Form The field's parent form.
404
  */
405
  public function get_form() {
406
  return $this->form;
407
  }
408
 
409
  /**
410
- * Set the field's parent form.
411
  *
412
  * @since 7.0
413
  *
414
- * @param Theme_My_Login_Form $form The field's parent form.
415
  */
416
  public function set_form( Theme_My_Login_Form $form ) {
417
  $this->form = $form;
@@ -422,7 +422,7 @@ class Theme_My_Login_Form_Field {
422
  *
423
  * @since 7.0
424
  *
425
- * @param string $key The attribute key.
426
  * @param string $value The attribute value.
427
  */
428
  public function add_attribute( $key, $value = null ) {
@@ -521,7 +521,7 @@ class Theme_My_Login_Form_Field {
521
  }
522
 
523
  /**
524
- * Set the priority.
525
  *
526
  * @since 7.0
527
  *
@@ -532,7 +532,7 @@ class Theme_My_Login_Form_Field {
532
  }
533
 
534
  /**
535
- * Get the priority.
536
  *
537
  * @since 7.0
538
  *
85
  protected $classes = array();
86
 
87
  /**
88
+ * The parent form of the field.
89
  *
90
  * @var Theme_My_Login_Form
91
  */
92
  protected $form;
93
 
94
  /**
95
+ * The priority of the field within the form.
96
  *
97
  * @var int
98
  */
396
  }
397
 
398
  /**
399
+ * Get the parent form of the field.
400
  *
401
  * @since 7.0
402
  *
403
+ * @return Theme_My_Login_Form The parent form of the field.
404
  */
405
  public function get_form() {
406
  return $this->form;
407
  }
408
 
409
  /**
410
+ * Set the parent form of the field.
411
  *
412
  * @since 7.0
413
  *
414
+ * @param Theme_My_Login_Form $form The parent form of the field.
415
  */
416
  public function set_form( Theme_My_Login_Form $form ) {
417
  $this->form = $form;
422
  *
423
  * @since 7.0
424
  *
425
+ * @param string $key The attribute key.
426
  * @param string $value The attribute value.
427
  */
428
  public function add_attribute( $key, $value = null ) {
521
  }
522
 
523
  /**
524
+ * Set the priority of the field.
525
  *
526
  * @since 7.0
527
  *
532
  }
533
 
534
  /**
535
+ * Get the priority of the field.
536
  *
537
  * @since 7.0
538
  *
includes/class-theme-my-login-form.php CHANGED
@@ -81,8 +81,9 @@ class Theme_My_Login_Form {
81
  * @param array $args {
82
  * Optional. An array of arguments.
83
  *
84
- * @type string $action The form action. Default empty.
85
- * @type string $method The form method. Default 'post'.
 
86
  * }
87
  */
88
  public function __construct( $name, $args = array() ) {
@@ -535,6 +536,7 @@ class Theme_My_Login_Form {
535
  * @type string $container_id The form container ID.
536
  * @type string $before The content to render before the form.
537
  * @type string $after The content to render after the form.
 
538
  * }
539
  * @return string The form markup.
540
  */
81
  * @param array $args {
82
  * Optional. An array of arguments.
83
  *
84
+ * @type string $action The form action. Default empty.
85
+ * @type string $method The form method. Default 'post'.
86
+ * @type array $attributes The form attributes. Default empty array.
87
  * }
88
  */
89
  public function __construct( $name, $args = array() ) {
536
  * @type string $container_id The form container ID.
537
  * @type string $before The content to render before the form.
538
  * @type string $after The content to render after the form.
539
+ * @type bool $show_links Whether to show the links or not.
540
  * }
541
  * @return string The form markup.
542
  */
includes/class-theme-my-login.php CHANGED
@@ -304,7 +304,7 @@ final class Theme_My_Login {
304
  *
305
  * @since 7.0
306
  *
307
- * @param string $name The property name.
308
  * @param mixed $default The value to return if the property is not set.
309
  * @return mixed The property value or $default if not set.
310
  */
304
  *
305
  * @since 7.0
306
  *
307
+ * @param string $name The property name.
308
  * @param mixed $default The value to return if the property is not set.
309
  * @return mixed The property value or $default if not set.
310
  */
includes/compat.php CHANGED
@@ -68,7 +68,7 @@ function tml_retrieve_password() {
68
  * @since 7.0
69
  *
70
  * @param WP_User $user The user object.
71
- * @param string $key The password reset key.
72
  */
73
  function tml_retrieve_password_notification( $user, $key ) {
74
  if ( is_multisite() ) {
68
  * @since 7.0
69
  *
70
  * @param WP_User $user The user object.
71
+ * @param string $key The password reset key.
72
  */
73
  function tml_retrieve_password_notification( $user, $key ) {
74
  if ( is_multisite() ) {
includes/extensions.php CHANGED
@@ -13,7 +13,7 @@
13
  * @since 7.0
14
  *
15
  * @param string|Theme_My_Login_Extension $extension The extension name or object.
16
- * @param array $args {
17
  * Optional. An array of arguments for registering an extension.
18
  * }
19
  * @return Theme_My_Login_Extension The extension object.
@@ -82,7 +82,7 @@ function tml_extension_exists( $extension ) {
82
  *
83
  * @since 7.0
84
  *
85
- * @param bool $exists Whether the extension exists or not.
86
  * @param string $extension The extension name.
87
  */
88
  return apply_filters( 'tml_extension_exists', $exists, $extension );
@@ -109,9 +109,11 @@ function tml_add_extension_data_to_plugins_api( $result = false, $action = '', $
109
  return $result;
110
  }
111
 
112
- $extension_data = tml_get_extension_data();
113
- if ( isset( $extension_data[ $extension->get_name() ] ) ) {
114
- $result = $extension_data[ $extension->get_name() ];
 
 
115
  if ( ! empty( $result->new_version ) ) {
116
  $result->version = $result->new_version;
117
  }
@@ -133,29 +135,31 @@ function tml_add_extension_data_to_plugins_transient( $transient = '' ) {
133
  $transient = (object) array();
134
  }
135
 
136
- $extension_data = tml_get_extension_data();
137
-
138
  foreach ( tml_get_extensions() as $extension ) {
139
- if ( ! isset( $extension_data[ $extension->get_name() ] ) ) {
140
- continue;
141
- }
 
 
142
 
143
- $data = $extension_data[ $extension->get_name() ];
 
144
 
145
- if ( empty( $data->plugin ) ) {
146
- $data->plugin = $extension->get_basename();
147
- }
148
 
149
- // This is a valid update
150
- if ( ! empty( $data->new_version ) && version_compare( $extension->get_version(), $data->new_version, '<' ) ) {
151
- $transient->response[ $data->plugin ] = $data;
152
 
153
- // This is just fetching the plugin information
154
- } else {
155
- $transient->no_update[ $data->plugin ] = $data;
156
- }
157
 
158
- $transient->last_checked = time();
 
159
  }
160
 
161
  return $transient;
@@ -250,7 +254,7 @@ function tml_deactivate_extension_license( $extension ) {
250
  }
251
 
252
  /**
253
- * Check an extenstion's license status.
254
  *
255
  * @since 7.0.8
256
  *
@@ -278,7 +282,7 @@ function tml_check_extension_license( $extension ) {
278
  }
279
 
280
  /**
281
- * Make an API call to an extension's store.
282
  *
283
  * @since 7.0
284
  *
@@ -290,7 +294,7 @@ function tml_check_extension_license( $extension ) {
290
  * @param string $license The extension license key.
291
  * @param int $item_id The extension item ID.
292
  * @param string $slug The extension slug.
293
- * @param string $url
294
  * @param bool $beta Whether to include beta versions or not.
295
  * }
296
  * @return object|false The response object or false on failure.
@@ -305,58 +309,35 @@ function tml_extension_api_call( $url, $args = array() ) {
305
  'beta' => false,
306
  ) );
307
 
308
- $response = wp_remote_post( $url, array(
309
- 'timeout' => 30,
310
- 'sslverify' => true,
311
- 'body' => $args,
312
- ) );
313
-
314
- if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
315
- return false;
316
- }
317
 
318
- $response = json_decode( wp_remote_retrieve_body( $response ) );
 
 
 
 
 
 
319
 
320
- if ( is_object( $response ) ) {
321
- if ( isset( $response->sections ) ) {
322
- $response->sections = maybe_unserialize( $response->sections );
323
- }
324
- if ( isset( $response->banners ) ) {
325
- $response->banners = maybe_unserialize( $response->banners );
326
  }
327
- } else {
328
- $response = false;
329
- }
330
 
331
- return $response;
332
- }
333
 
334
- /**
335
- * Get all extension data.
336
- *
337
- * @since 7.0.14
338
- *
339
- * @return array An array of objects containing extension data.
340
- */
341
- function tml_get_extension_data( $refresh = false ) {
342
- $extension_data = get_site_transient( 'tml_extension_data' );
343
- if ( ! is_array( $extension_data ) ) {
344
- $extension_data = array();
345
- }
346
-
347
- if ( empty( $extension_data ) || $refresh ) {
348
- foreach ( tml_get_extensions() as $extension ) {
349
- $data = tml_extension_api_call( $extension->get_store_url(), array(
350
- 'license' => $extension->get_license_key(),
351
- 'item_id' => $extension->get_item_id(),
352
- 'slug' => $extension->get_name(),
353
- ) );
354
- if ( $data ) {
355
- $extension_data[ $extension->get_name() ] = $data;
356
  }
 
 
357
  }
358
- set_site_transient( 'tml_extension_data', $extension_data, DAY_IN_SECONDS / 2 );
 
359
  }
360
 
361
- return $extension_data;
362
  }
13
  * @since 7.0
14
  *
15
  * @param string|Theme_My_Login_Extension $extension The extension name or object.
16
+ * @param array $args {
17
  * Optional. An array of arguments for registering an extension.
18
  * }
19
  * @return Theme_My_Login_Extension The extension object.
82
  *
83
  * @since 7.0
84
  *
85
+ * @param bool $exists Whether the extension exists or not.
86
  * @param string $extension The extension name.
87
  */
88
  return apply_filters( 'tml_extension_exists', $exists, $extension );
109
  return $result;
110
  }
111
 
112
+ if ( $result = tml_extension_api_call( $extension->get_store_url(), array(
113
+ 'license' => $extension->get_license_key(),
114
+ 'item_id' => $extension->get_item_id(),
115
+ 'slug' => $extension->get_name(),
116
+ ) ) ) {
117
  if ( ! empty( $result->new_version ) ) {
118
  $result->version = $result->new_version;
119
  }
135
  $transient = (object) array();
136
  }
137
 
 
 
138
  foreach ( tml_get_extensions() as $extension ) {
139
+ $response = tml_extension_api_call( $extension->get_store_url(), array(
140
+ 'license' => $extension->get_license_key(),
141
+ 'item_id' => $extension->get_item_id(),
142
+ 'slug' => $extension->get_name(),
143
+ ) );
144
 
145
+ if ( is_object( $response ) ) {
146
+ $basename = $extension->get_basename();
147
 
148
+ if ( empty( $response->plugin ) ) {
149
+ $response->plugin = $basename;
150
+ }
151
 
152
+ // This is a valid update
153
+ if ( ! empty( $response->new_version ) && version_compare( $extension->get_version(), $response->new_version, '<' ) ) {
154
+ $transient->response[ $basename ] = $response;
155
 
156
+ // This is just fetching the plugin information
157
+ } else {
158
+ $transient->no_update[ $basename ] = $response;
159
+ }
160
 
161
+ $transient->last_checked = time();
162
+ }
163
  }
164
 
165
  return $transient;
254
  }
255
 
256
  /**
257
+ * Check the status of an extension license.
258
  *
259
  * @since 7.0.8
260
  *
282
  }
283
 
284
  /**
285
+ * Make an API call the store of an extension.
286
  *
287
  * @since 7.0
288
  *
294
  * @param string $license The extension license key.
295
  * @param int $item_id The extension item ID.
296
  * @param string $slug The extension slug.
297
+ * @param string $url The client WP URL.
298
  * @param bool $beta Whether to include beta versions or not.
299
  * }
300
  * @return object|false The response object or false on failure.
309
  'beta' => false,
310
  ) );
311
 
312
+ $cache_key = md5( serialize( $args ) );
 
 
 
 
 
 
 
 
313
 
314
+ $response = wp_cache_get( $cache_key, 'tml_api_calls' );
315
+ if ( ! $response ) {
316
+ $response = wp_remote_post( $url, array(
317
+ 'timeout' => 30,
318
+ 'sslverify' => true,
319
+ 'body' => $args,
320
+ ) );
321
 
322
+ if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
323
+ return false;
 
 
 
 
324
  }
 
 
 
325
 
326
+ $response = json_decode( wp_remote_retrieve_body( $response ) );
 
327
 
328
+ if ( is_object( $response ) ) {
329
+ if ( isset( $response->sections ) ) {
330
+ $response->sections = maybe_unserialize( $response->sections );
331
+ }
332
+ if ( isset( $response->banners ) ) {
333
+ $response->banners = maybe_unserialize( $response->banners );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
334
  }
335
+ } else {
336
+ $response = false;
337
  }
338
+
339
+ wp_cache_set( $cache_key, $response, 'tml_api_calls' );
340
  }
341
 
342
+ return $response;
343
  }
includes/forms.php CHANGED
@@ -283,12 +283,10 @@ function tml_register_password_reset_form() {
283
  *
284
  * @since 7.0
285
  *
286
- * @param string|Theme_My_Login_Form $form The form name or object.
287
- * @param array $args {
288
- * Optional. An array of arguments for registering a form.
289
  *
290
- * @type bool $show_links Whether to show links to other actions or not.
291
- * }
292
  * @return Theme_My_Login_Form The form object.
293
  */
294
  function tml_register_form( $form, $args = array() ) {
@@ -362,11 +360,11 @@ function tml_form_exists( $form ) {
362
  *
363
  * @since 7.0
364
  *
 
 
365
  * @param string|Theme_My_Login_Form $form The form name or object.
366
  * @param string|Theme_My_Login_Form_Field $field The field name or object.
367
- * @param array {
368
- * Optional. An array of arguments for registering a form field.
369
- * }
370
  * @return Theme_My_Login_Form_Field The field object.
371
  */
372
  function tml_add_form_field( $form, $field, $args = array() ) {
@@ -387,7 +385,7 @@ function tml_add_form_field( $form, $field, $args = array() ) {
387
  *
388
  * @since 7.0
389
  *
390
- * @param string|Theme_My_Login_Form $form The form name or object.
391
  * @param string|Theme_My_Login_Form_Field $field The field name or object.
392
  */
393
  function tml_remove_form_field( $form, $field ) {
283
  *
284
  * @since 7.0
285
  *
286
+ * @see Theme_My_Login::register_form()
 
 
287
  *
288
+ * @param string|Theme_My_Login_Form $form The form name or object.
289
+ * @param array $args Optional. An array of arguments for registering a form.
290
  * @return Theme_My_Login_Form The form object.
291
  */
292
  function tml_register_form( $form, $args = array() ) {
360
  *
361
  * @since 7.0
362
  *
363
+ * @see Theme_My_Login_Form::add_field()
364
+ *
365
  * @param string|Theme_My_Login_Form $form The form name or object.
366
  * @param string|Theme_My_Login_Form_Field $field The field name or object.
367
+ * @param array $args Optional. An array of arguments for registering a form field.
 
 
368
  * @return Theme_My_Login_Form_Field The field object.
369
  */
370
  function tml_add_form_field( $form, $field, $args = array() ) {
385
  *
386
  * @since 7.0
387
  *
388
+ * @param string|Theme_My_Login_Form $form The form name or object.
389
  * @param string|Theme_My_Login_Form_Field $field The field name or object.
390
  */
391
  function tml_remove_form_field( $form, $field ) {
includes/functions.php CHANGED
@@ -228,7 +228,7 @@ function tml_body_class( $classes ) {
228
  }
229
 
230
  /**
231
- * Enqueue TML's styles.
232
  *
233
  * @since 7.0
234
  */
@@ -239,7 +239,7 @@ function tml_enqueue_styles() {
239
  }
240
 
241
  /**
242
- * Enqueue TML's scripts.
243
  *
244
  * @since 7.0
245
  *
@@ -252,12 +252,31 @@ function tml_enqueue_scripts() {
252
  $dependencies[] = 'password-strength-meter';
253
  }
254
 
 
 
 
 
 
 
 
 
 
255
  wp_enqueue_script( 'theme-my-login', THEME_MY_LOGIN_URL . "assets/scripts/theme-my-login$suffix.js", $dependencies, THEME_MY_LOGIN_VERSION, true );
256
- wp_localize_script( 'theme-my-login', 'themeMyLogin', array(
 
 
 
 
 
 
 
 
257
  'action' => tml_is_action() ? tml_get_action()->get_name() : '',
258
  'errors' => tml_get_errors()->get_error_codes(),
259
  ) );
260
 
 
 
261
  if ( tml_is_action() ) {
262
  /** This action is documented in wp-login.php */
263
  do_action( 'login_enqueue_scripts' );
@@ -265,7 +284,7 @@ function tml_enqueue_scripts() {
265
  }
266
 
267
  /**
268
- * Do the login_head action hook.
269
  *
270
  * @since 7.0.13
271
  */
@@ -282,7 +301,7 @@ function tml_do_login_head() {
282
  }
283
 
284
  /**
285
- * Add TML's rewrite tags.
286
  *
287
  * @since 7.0
288
  */
@@ -291,7 +310,7 @@ function tml_add_rewrite_tags() {
291
  }
292
 
293
  /**
294
- * Add TML's rewrite rules.
295
  *
296
  * @since 7.0
297
  */
@@ -318,10 +337,13 @@ function tml_flush_rewrite_rules() {
318
  }
319
 
320
  /**
321
- * Filter the result of get_site_url().
322
  *
323
  * @since 7.0
324
  *
 
 
 
325
  * @param string $url The URL.
326
  * @param string $path The path.
327
  * @param string $scheme The URL scheme.
@@ -411,10 +433,12 @@ function tml_filter_site_url( $url, $path, $scheme ) {
411
  }
412
 
413
  /**
414
- * Filter the result of wp_logout_url().
415
  *
416
  * @since 7.0
417
  *
 
 
418
  * @param string $url The URL.
419
  * @param string $redirect The redirect.
420
  * @return string The logout URL.
@@ -441,10 +465,12 @@ function tml_filter_logout_url( $url, $redirect ) {
441
  }
442
 
443
  /**
444
- * Filter the result of wp_lostpassword_url().
445
  *
446
  * @since 7.0.11
447
  *
 
 
448
  * @param string $url The URL.
449
  * @param string $redirect The redirect.
450
  * @return string The lostpassword URL.
@@ -468,10 +494,12 @@ function tml_filter_lostpassword_url( $url, $redirect ) {
468
  }
469
 
470
  /**
471
- * Filter the result of get_edit_post_link().
472
  *
473
  * @since 7.0
474
  *
 
 
475
  * @param string $link The edit post link.
476
  * @param int $post_id The post ID.
477
  * @return string The edit post link.
@@ -628,7 +656,7 @@ function tml_nav_menu_css_class( $classes, $item ) {
628
  }
629
 
630
  /**
631
- * Validate a new user's password.
632
  *
633
  * @since 7.0
634
  *
@@ -773,7 +801,7 @@ function tml_enforce_login_type( $user, $username, $password ) {
773
  }
774
 
775
  /**
776
- * Set the new user password.
777
  *
778
  * @since 7.0
779
  *
@@ -921,7 +949,6 @@ function tml_has_errors() {
921
  if ( ! $form = tml_get_form() ) {
922
  return false;
923
  }
924
-
925
  return $form->has_errors();
926
  }
927
 
228
  }
229
 
230
  /**
231
+ * Enqueue styles for TML.
232
  *
233
  * @since 7.0
234
  */
239
  }
240
 
241
  /**
242
+ * Enqueue scripts for TML.
243
  *
244
  * @since 7.0
245
  *
252
  $dependencies[] = 'password-strength-meter';
253
  }
254
 
255
+ /**
256
+ * Filter the dependencies of the main TML script.
257
+ *
258
+ * @since 7.0.15
259
+ *
260
+ * @param array $dependencies The dependencies of the main TML script.
261
+ */
262
+ $dependencies = apply_filters( 'tml_script_dependencies', $dependencies );
263
+
264
  wp_enqueue_script( 'theme-my-login', THEME_MY_LOGIN_URL . "assets/scripts/theme-my-login$suffix.js", $dependencies, THEME_MY_LOGIN_VERSION, true );
265
+
266
+ /**
267
+ * Filter the main TML script data.
268
+ *
269
+ * @since 7.0.15
270
+ *
271
+ * @param array $data The main TML script data.
272
+ */
273
+ $data = apply_filters( 'tml_script_data', array(
274
  'action' => tml_is_action() ? tml_get_action()->get_name() : '',
275
  'errors' => tml_get_errors()->get_error_codes(),
276
  ) );
277
 
278
+ wp_localize_script( 'theme-my-login', 'themeMyLogin', $data );
279
+
280
  if ( tml_is_action() ) {
281
  /** This action is documented in wp-login.php */
282
  do_action( 'login_enqueue_scripts' );
284
  }
285
 
286
  /**
287
+ * Do the `login_head` action hook.
288
  *
289
  * @since 7.0.13
290
  */
301
  }
302
 
303
  /**
304
+ * Add rewrite tags for TML.
305
  *
306
  * @since 7.0
307
  */
310
  }
311
 
312
  /**
313
+ * Add rewrite rules for TML.
314
  *
315
  * @since 7.0
316
  */
337
  }
338
 
339
  /**
340
+ * Filter the site URL.
341
  *
342
  * @since 7.0
343
  *
344
+ * @see site_url()
345
+ * @see network_site_url()
346
+ *
347
  * @param string $url The URL.
348
  * @param string $path The path.
349
  * @param string $scheme The URL scheme.
433
  }
434
 
435
  /**
436
+ * Filter the logout URL.
437
  *
438
  * @since 7.0
439
  *
440
+ * @see wp_logout_url()
441
+ *
442
  * @param string $url The URL.
443
  * @param string $redirect The redirect.
444
  * @return string The logout URL.
465
  }
466
 
467
  /**
468
+ * Filter the lost password URL.
469
  *
470
  * @since 7.0.11
471
  *
472
+ * @see wp_lostpassword_url()
473
+ *
474
  * @param string $url The URL.
475
  * @param string $redirect The redirect.
476
  * @return string The lostpassword URL.
494
  }
495
 
496
  /**
497
+ * Filter the post edit link.
498
  *
499
  * @since 7.0
500
  *
501
+ * @see get_edit_post_link()
502
+ *
503
  * @param string $link The edit post link.
504
  * @param int $post_id The post ID.
505
  * @return string The edit post link.
656
  }
657
 
658
  /**
659
+ * Validate the password of a new user.
660
  *
661
  * @since 7.0
662
  *
801
  }
802
 
803
  /**
804
+ * Set the password of a new user.
805
  *
806
  * @since 7.0
807
  *
949
  if ( ! $form = tml_get_form() ) {
950
  return false;
951
  }
 
952
  return $form->has_errors();
953
  }
954
 
includes/hooks.php CHANGED
@@ -22,7 +22,6 @@ add_action( 'init', 'tml_add_rewrite_rules' );
22
  // Widgets
23
  add_action( 'widgets_init', 'Theme_My_Login_Widget::register' );
24
 
25
-
26
  // Request
27
  add_action( 'parse_request', 'tml_parse_request' );
28
 
@@ -54,11 +53,9 @@ add_action( 'retrieved_password_key', 'tml_retrieve_password_notification', 10,
54
 
55
  // Activation
56
  add_action( 'tml_activate', 'tml_flush_rewrite_rules' );
57
- add_action( 'tml_activate_extension', 'tml_get_extension_data' );
58
 
59
  // Deactivation
60
  add_action( 'tml_deactivate', 'tml_flush_rewrite_rules' );
61
- add_action( 'tml_deactivate_extension', 'tml_get_extension_data' );
62
 
63
  /**
64
  * Add Filters
22
  // Widgets
23
  add_action( 'widgets_init', 'Theme_My_Login_Widget::register' );
24
 
 
25
  // Request
26
  add_action( 'parse_request', 'tml_parse_request' );
27
 
53
 
54
  // Activation
55
  add_action( 'tml_activate', 'tml_flush_rewrite_rules' );
 
56
 
57
  // Deactivation
58
  add_action( 'tml_deactivate', 'tml_flush_rewrite_rules' );
 
59
 
60
  /**
61
  * Add Filters
languages/theme-my-login.pot CHANGED
@@ -2,24 +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.0.14\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: 2019-05-13T11:01:02-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
- #: build/includes/class-theme-my-login-widget.php:23
20
- #: build/admin/functions.php:69
21
- #: src/includes/class-theme-my-login-widget.php:23
22
- #: src/admin/functions.php:69
23
  msgid "Theme My Login"
24
  msgstr ""
25
 
@@ -32,349 +30,269 @@ msgstr ""
32
  msgid "Creates an alternate login, registration and password recovery experience within your theme."
33
  msgstr ""
34
 
35
- #: build/includes/functions.php:511
36
- #: build/admin/functions.php:278
37
- #: src/includes/functions.php:511
38
- #: src/admin/functions.php:278
39
  msgid "Theme My Login Actions"
40
  msgstr ""
41
 
42
- #: build/includes/functions.php:512
43
- #: src/includes/functions.php:512
44
  msgid "Theme My Login Action"
45
  msgstr ""
46
 
47
- #: build/includes/functions.php:540
48
- #: build/includes/functions.php:567
49
- #: build/includes/functions.php:582
50
- #: src/includes/functions.php:540
51
- #: src/includes/functions.php:567
52
- #: src/includes/functions.php:582
53
  msgid "TML Action"
54
  msgstr ""
55
 
56
- #: build/includes/functions.php:646
57
- #: src/includes/functions.php:646
58
  msgid "<strong>ERROR</strong>: Please enter a password."
59
  msgstr ""
60
 
61
- #: build/includes/functions.php:649
62
- #: src/includes/functions.php:649
63
  msgid "<strong>ERROR</strong>: Passwords may not contain the character \"\\\"."
64
  msgstr ""
65
 
66
- #: build/includes/functions.php:652
67
- #: src/includes/functions.php:652
68
  msgid "<strong>ERROR</strong>: Please enter the same password in both password fields."
69
  msgstr ""
70
 
71
- #: build/includes/functions.php:669
72
- #: src/includes/functions.php:669
73
  msgid "If you have already set your own password, you may disregard this email and use the password you have already set."
74
  msgstr ""
75
 
76
- #: build/includes/actions.php:68
77
- #: src/includes/actions.php:68
78
  msgid "Your Data Request"
79
  msgstr ""
80
 
81
- #: build/includes/actions.php:455
82
- #: src/includes/actions.php:455
83
  msgid "Registration complete. You may now log in."
84
  msgstr ""
85
 
86
- #: build/includes/class-theme-my-login-widget.php:25
87
- #: src/includes/class-theme-my-login-widget.php:25
88
  msgid "A login form for your site."
89
  msgstr ""
90
 
91
- #: build/includes/class-theme-my-login-widget.php:57
92
- #: src/includes/class-theme-my-login-widget.php:57
93
  msgctxt "Howdy"
94
  msgid "Welcome"
95
  msgstr ""
96
 
97
- #: build/includes/class-theme-my-login-widget.php:92
98
- #: src/includes/class-theme-my-login-widget.php:92
99
  msgid "Profile"
100
  msgstr ""
101
 
102
- #: build/includes/class-theme-my-login-widget.php:173
103
- #: src/includes/class-theme-my-login-widget.php:173
104
  msgid "Show action links?"
105
  msgstr ""
106
 
107
- #: build/includes/forms.php:133
108
- #: src/includes/forms.php:133
109
  msgid "Confirm Password"
110
  msgstr ""
111
 
112
- #: build/includes/extensions.php:185
113
- #: build/includes/extensions.php:216
114
- #: build/includes/extensions.php:246
115
- #: build/includes/extensions.php:274
116
- #: src/includes/extensions.php:185
117
- #: src/includes/extensions.php:216
118
- #: src/includes/extensions.php:246
119
- #: src/includes/extensions.php:274
120
  msgid "An error occurred, please try again."
121
  msgstr ""
122
 
123
- #: build/includes/extensions.php:198
124
- #: src/includes/extensions.php:198
125
  msgid "Your license key has been disabled."
126
  msgstr ""
127
 
128
- #: build/includes/extensions.php:203
129
- #: src/includes/extensions.php:203
130
  msgid "Invalid license."
131
  msgstr ""
132
 
133
- #: build/includes/extensions.php:208
134
- #: src/includes/extensions.php:208
135
  msgid "Your license is not active for this URL."
136
  msgstr ""
137
 
138
- #: build/includes/extensions.php:212
139
- #: src/includes/extensions.php:212
140
  msgid "Your license key has reached its activation limit."
141
  msgstr ""
142
 
143
- #: build/admin/functions.php:68
144
- #: build/admin/functions.php:79
145
- #: src/admin/functions.php:68
146
- #: src/admin/functions.php:79
147
  msgid "Theme My Login Settings"
148
  msgstr ""
149
 
150
- #: build/admin/functions.php:80
151
- #: src/admin/functions.php:80
152
  msgid "General"
153
  msgstr ""
154
 
155
- #: build/admin/functions.php:101
156
- #: src/admin/functions.php:101
157
  msgid "Theme My Login Licenses"
158
  msgstr ""
159
 
160
- #: build/admin/functions.php:102
161
- #: src/admin/functions.php:102
162
  msgid "Licenses"
163
  msgstr ""
164
 
165
- #: build/admin/functions.php:111
166
- #: src/admin/functions.php:111
167
  msgid "Theme My Login Extensions"
168
  msgstr ""
169
 
170
- #: build/admin/functions.php:112
171
- #: build/admin/functions.php:356
172
- #: src/admin/functions.php:112
173
- #: src/admin/functions.php:356
174
  msgid "Extensions"
175
  msgstr ""
176
 
177
- #: build/admin/functions.php:163
178
- #: src/admin/functions.php:163
179
  msgid "As a token of our gratitude, we would like to offer your an incentive for upgrading Theme My Login to version 7.0. For a limited time, we are offering a <strong>20% discount</strong> when you use the code <strong>SAVINGFACE</strong> at checkout. Act now - this offer won't last!"
180
  msgstr ""
181
 
182
- #: build/admin/functions.php:179
183
- #: src/admin/functions.php:179
184
  msgid "A new <strong>Theme My Login</strong> extension is available!"
185
  msgstr ""
186
 
187
- #: build/admin/functions.php:186
188
- #: build/admin/extensions.php:95
189
- #: src/admin/functions.php:186
190
- #: src/admin/extensions.php:95
191
  msgid "Get This Extension"
192
  msgstr ""
193
 
194
- #: build/admin/settings.php:96
195
- #: src/admin/settings.php:96
196
  msgid "Registration"
197
  msgstr ""
198
 
199
- #: build/admin/settings.php:101
200
- #: src/admin/settings.php:101
201
  msgid "Slugs"
202
  msgstr ""
203
 
204
- #: build/admin/settings.php:122
205
- #: build/admin/settings.php:127
206
- #: src/admin/settings.php:122
207
- #: src/admin/settings.php:127
208
  msgid "Login Type"
209
  msgstr ""
210
 
211
- #: build/admin/settings.php:129
212
- #: build/admin/settings.php:149
213
- #: src/admin/settings.php:129
214
- #: src/admin/settings.php:149
215
  msgid "Default"
216
  msgstr ""
217
 
218
- #: build/admin/settings.php:130
219
- #: src/admin/settings.php:130
220
  msgid "Username only"
221
  msgstr ""
222
 
223
- #: build/admin/settings.php:131
224
- #: build/admin/settings.php:150
225
- #: src/admin/settings.php:131
226
- #: src/admin/settings.php:150
227
  msgid "Email only"
228
  msgstr ""
229
 
230
- #: build/admin/settings.php:142
231
- #: build/admin/settings.php:147
232
- #: src/admin/settings.php:142
233
- #: src/admin/settings.php:147
234
  msgid "Registration Type"
235
  msgstr ""
236
 
237
- #: build/admin/settings.php:157
238
- #: src/admin/settings.php:157
239
  msgid "Passwords"
240
  msgstr ""
241
 
242
- #: build/admin/settings.php:162
243
- #: src/admin/settings.php:162
244
  msgid "Allow users to set their own password"
245
  msgstr ""
246
 
247
- #: build/admin/settings.php:169
248
- #: src/admin/settings.php:169
249
  msgid "Auto-Login"
250
  msgstr ""
251
 
252
- #: build/admin/settings.php:174
253
- #: src/admin/settings.php:174
254
  msgid "Automatically log in users after registration"
255
  msgstr ""
256
 
257
- #: build/admin/settings.php:221
258
- #: src/admin/settings.php:221
259
  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."
260
  msgstr ""
261
 
262
- #: build/admin/settings.php:420
263
- #: src/admin/settings.php:420
264
  msgid "Active"
265
  msgstr ""
266
 
267
- #: build/admin/settings.php:424
268
- #: src/admin/settings.php:424
269
  msgid "Invalid"
270
  msgstr ""
271
 
272
- #: build/admin/settings.php:427
273
- #: src/admin/settings.php:427
274
  msgid "Inactive"
275
  msgstr ""
276
 
277
- #: build/admin/settings.php:442
278
- #: src/admin/settings.php:442
279
  msgid "Deactivate"
280
  msgstr ""
281
 
282
- #: build/admin/settings.php:444
283
- #: src/admin/settings.php:444
284
  msgid "Activate"
285
  msgstr ""
286
 
287
- #: build/admin/settings.php:557
288
- #: src/admin/settings.php:557
289
  msgid "Welcome to Theme My Login!"
290
  msgstr ""
291
 
292
- #: build/admin/settings.php:558
293
- #: src/admin/settings.php:558
294
  msgid "Below, you can configure how you would like users to register and log in to your site."
295
  msgstr ""
296
 
297
- #: build/admin/settings.php:559
298
- #: src/admin/settings.php:559
299
  msgid "Additionally, you can change the slugs that are used to generate the URLs that represent specific actions."
300
  msgstr ""
301
 
302
- #: build/admin/settings.php:565
303
- #: build/admin/settings.php:588
304
- #: build/admin/settings.php:608
305
- #: build/admin/settings.php:636
306
- #: src/admin/settings.php:565
307
- #: src/admin/settings.php:588
308
- #: src/admin/settings.php:608
309
- #: src/admin/settings.php:636
310
  msgid "View Documentation"
311
  msgstr ""
312
 
313
- #: build/admin/settings.php:570
314
- #: build/admin/settings.php:592
315
- #: build/admin/settings.php:643
316
- #: src/admin/settings.php:570
317
- #: src/admin/settings.php:592
318
- #: src/admin/settings.php:643
319
  msgid "Get Support"
320
  msgstr ""
321
 
322
- #: build/admin/settings.php:580
323
- #: src/admin/settings.php:580
324
  msgid "When you purchase extensions for Theme My Login, you will enter your license keys on this page."
325
  msgstr ""
326
 
327
- #: build/admin/settings.php:581
328
- #: src/admin/settings.php:581
329
  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."
330
  msgstr ""
331
 
332
- #: build/admin/settings.php:582
333
- #: src/admin/settings.php:582
334
  msgid "If you have not yet activated your license, this button will say \"Activate\". Click this button to activate your license."
335
  msgstr ""
336
 
337
- #: build/admin/settings.php:583
338
- #: src/admin/settings.php:583
339
  msgid "If you have already activated your license, this button will say \"Deactivate\". Click this button to deactivate your license."
340
  msgstr ""
341
 
342
- #: build/admin/settings.php:602
343
- #: src/admin/settings.php:602
344
  msgid "This page shows you all of the extensions available to purchase for Theme My Login."
345
  msgstr ""
346
 
347
- #: build/admin/settings.php:603
348
- #: src/admin/settings.php:603
349
  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."
350
  msgstr ""
351
 
352
- #: build/admin/settings.php:612
353
- #: src/admin/settings.php:612
354
  msgid "Go to the Extensions Store"
355
  msgstr ""
356
 
357
- #: build/admin/settings.php:616
358
- #: src/admin/settings.php:616
359
  msgid "View your Theme My Login account"
360
  msgstr ""
361
 
362
- #: build/admin/settings.php:627
363
- #: src/admin/settings.php:627
364
  msgid "On this page, you can configure the settings for the Theme My Login %s extension."
365
  msgstr ""
366
 
367
- #: build/admin/extensions.php:72
368
- #: src/admin/extensions.php:72
369
  msgid "Whoops! Looks like there was an error fetching extensions from the server. Please try again."
370
  msgstr ""
371
 
372
- #: build/admin/extensions.php:73
373
- #: src/admin/extensions.php:73
374
  msgid "Error: %s"
375
  msgstr ""
376
 
377
- #: build/admin/extensions.php:105
378
- #: src/admin/extensions.php:105
379
  msgid "View All Extensions"
380
  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.0.15\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: 2019-09-06T17:31:13-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
  msgid "Creates an alternate login, registration and password recovery experience within your theme."
31
  msgstr ""
32
 
33
+ #: includes/functions.php:539
34
+ #: admin/functions.php:277
 
 
35
  msgid "Theme My Login Actions"
36
  msgstr ""
37
 
38
+ #: includes/functions.php:540
 
39
  msgid "Theme My Login Action"
40
  msgstr ""
41
 
42
+ #: includes/functions.php:568
43
+ #: includes/functions.php:595
44
+ #: includes/functions.php:610
 
 
 
45
  msgid "TML Action"
46
  msgstr ""
47
 
48
+ #: includes/functions.php:674
 
49
  msgid "<strong>ERROR</strong>: Please enter a password."
50
  msgstr ""
51
 
52
+ #: includes/functions.php:677
 
53
  msgid "<strong>ERROR</strong>: Passwords may not contain the character \"\\\"."
54
  msgstr ""
55
 
56
+ #: includes/functions.php:680
 
57
  msgid "<strong>ERROR</strong>: Please enter the same password in both password fields."
58
  msgstr ""
59
 
60
+ #: includes/functions.php:697
 
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:68
 
65
  msgid "Your Data Request"
66
  msgstr ""
67
 
68
+ #: includes/actions.php:455
 
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:92
 
82
  msgid "Profile"
83
  msgstr ""
84
 
85
+ #: includes/class-theme-my-login-widget.php:173
 
86
  msgid "Show action links?"
87
  msgstr ""
88
 
89
+ #: includes/forms.php:133
 
90
  msgid "Confirm Password"
91
  msgstr ""
92
 
93
+ #: includes/extensions.php:189
94
+ #: includes/extensions.php:220
95
+ #: includes/extensions.php:250
96
+ #: includes/extensions.php:278
 
 
 
 
97
  msgid "An error occurred, please try again."
98
  msgstr ""
99
 
100
+ #: includes/extensions.php:202
 
101
  msgid "Your license key has been disabled."
102
  msgstr ""
103
 
104
+ #: includes/extensions.php:207
 
105
  msgid "Invalid license."
106
  msgstr ""
107
 
108
+ #: includes/extensions.php:212
 
109
  msgid "Your license is not active for this URL."
110
  msgstr ""
111
 
112
+ #: includes/extensions.php:216
 
113
  msgid "Your license key has reached its activation limit."
114
  msgstr ""
115
 
116
+ #: admin/functions.php:66
117
+ #: admin/functions.php:77
 
 
118
  msgid "Theme My Login Settings"
119
  msgstr ""
120
 
121
+ #: admin/functions.php:78
 
122
  msgid "General"
123
  msgstr ""
124
 
125
+ #: admin/functions.php:99
 
126
  msgid "Theme My Login Licenses"
127
  msgstr ""
128
 
129
+ #: admin/functions.php:100
 
130
  msgid "Licenses"
131
  msgstr ""
132
 
133
+ #: admin/functions.php:109
 
134
  msgid "Theme My Login Extensions"
135
  msgstr ""
136
 
137
+ #: admin/functions.php:110
138
+ #: admin/functions.php:354
 
 
139
  msgid "Extensions"
140
  msgstr ""
141
 
142
+ #: admin/functions.php:162
 
143
  msgid "As a token of our gratitude, we would like to offer your an incentive for upgrading Theme My Login to version 7.0. For a limited time, we are offering a <strong>20% discount</strong> when you use the code <strong>SAVINGFACE</strong> at checkout. Act now - this offer won't last!"
144
  msgstr ""
145
 
146
+ #: admin/functions.php:178
 
147
  msgid "A new <strong>Theme My Login</strong> extension is available!"
148
  msgstr ""
149
 
150
+ #: admin/functions.php:185
151
+ #: admin/extensions.php:94
 
 
152
  msgid "Get This Extension"
153
  msgstr ""
154
 
155
+ #: admin/settings.php:103
 
156
  msgid "Registration"
157
  msgstr ""
158
 
159
+ #: admin/settings.php:108
 
160
  msgid "Slugs"
161
  msgstr ""
162
 
163
+ #: admin/settings.php:129
164
+ #: admin/settings.php:134
 
 
165
  msgid "Login Type"
166
  msgstr ""
167
 
168
+ #: admin/settings.php:136
169
+ #: admin/settings.php:156
 
 
170
  msgid "Default"
171
  msgstr ""
172
 
173
+ #: admin/settings.php:137
 
174
  msgid "Username only"
175
  msgstr ""
176
 
177
+ #: admin/settings.php:138
178
+ #: admin/settings.php:157
 
 
179
  msgid "Email only"
180
  msgstr ""
181
 
182
+ #: admin/settings.php:149
183
+ #: admin/settings.php:154
 
 
184
  msgid "Registration Type"
185
  msgstr ""
186
 
187
+ #: admin/settings.php:164
 
188
  msgid "Passwords"
189
  msgstr ""
190
 
191
+ #: admin/settings.php:169
 
192
  msgid "Allow users to set their own password"
193
  msgstr ""
194
 
195
+ #: admin/settings.php:176
 
196
  msgid "Auto-Login"
197
  msgstr ""
198
 
199
+ #: admin/settings.php:181
 
200
  msgid "Automatically log in users after registration"
201
  msgstr ""
202
 
203
+ #: admin/settings.php:228
 
204
  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."
205
  msgstr ""
206
 
207
+ #: admin/settings.php:465
 
208
  msgid "Active"
209
  msgstr ""
210
 
211
+ #: admin/settings.php:469
 
212
  msgid "Invalid"
213
  msgstr ""
214
 
215
+ #: admin/settings.php:472
 
216
  msgid "Inactive"
217
  msgstr ""
218
 
219
+ #: admin/settings.php:487
 
220
  msgid "Deactivate"
221
  msgstr ""
222
 
223
+ #: admin/settings.php:489
 
224
  msgid "Activate"
225
  msgstr ""
226
 
227
+ #: admin/settings.php:602
 
228
  msgid "Welcome to Theme My Login!"
229
  msgstr ""
230
 
231
+ #: admin/settings.php:603
 
232
  msgid "Below, you can configure how you would like users to register and log in to your site."
233
  msgstr ""
234
 
235
+ #: admin/settings.php:604
 
236
  msgid "Additionally, you can change the slugs that are used to generate the URLs that represent specific actions."
237
  msgstr ""
238
 
239
+ #: admin/settings.php:610
240
+ #: admin/settings.php:633
241
+ #: admin/settings.php:653
242
+ #: admin/settings.php:681
 
 
 
 
243
  msgid "View Documentation"
244
  msgstr ""
245
 
246
+ #: admin/settings.php:615
247
+ #: admin/settings.php:637
248
+ #: admin/settings.php:688
 
 
 
249
  msgid "Get Support"
250
  msgstr ""
251
 
252
+ #: admin/settings.php:625
 
253
  msgid "When you purchase extensions for Theme My Login, you will enter your license keys on this page."
254
  msgstr ""
255
 
256
+ #: admin/settings.php:626
 
257
  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."
258
  msgstr ""
259
 
260
+ #: admin/settings.php:627
 
261
  msgid "If you have not yet activated your license, this button will say \"Activate\". Click this button to activate your license."
262
  msgstr ""
263
 
264
+ #: admin/settings.php:628
 
265
  msgid "If you have already activated your license, this button will say \"Deactivate\". Click this button to deactivate your license."
266
  msgstr ""
267
 
268
+ #: admin/settings.php:647
 
269
  msgid "This page shows you all of the extensions available to purchase for Theme My Login."
270
  msgstr ""
271
 
272
+ #: admin/settings.php:648
 
273
  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."
274
  msgstr ""
275
 
276
+ #: admin/settings.php:657
 
277
  msgid "Go to the Extensions Store"
278
  msgstr ""
279
 
280
+ #: admin/settings.php:661
 
281
  msgid "View your Theme My Login account"
282
  msgstr ""
283
 
284
+ #: admin/settings.php:672
 
285
  msgid "On this page, you can configure the settings for the Theme My Login %s extension."
286
  msgstr ""
287
 
288
+ #: admin/extensions.php:71
 
289
  msgid "Whoops! Looks like there was an error fetching extensions from the server. Please try again."
290
  msgstr ""
291
 
292
+ #: admin/extensions.php:72
 
293
  msgid "Error: %s"
294
  msgstr ""
295
 
296
+ #: admin/extensions.php:104
 
297
  msgid "View All Extensions"
298
  msgstr ""
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: thememylogin, jfarthing84
3
  Tags: login, register, password, branding, customize, widget, wp-login, wp-login.php
4
  Requires at least: 4.6
5
- Tested up to: 5.2.1
6
- Stable tag: 7.0.14
7
 
8
  The ultimate login branding solution! Theme My Login offers matchless customization of your WordPress user experience!
9
 
@@ -59,6 +59,11 @@ Report bugs, suggest ideas and participate in development at [GitHub](https://gi
59
 
60
  == Changelog ==
61
 
 
 
 
 
 
62
  = 7.0.14 =
63
  * Fix login page error on on WP 5.2+
64
  * Implement caching for remote extension data to speed up plugins screen
2
  Contributors: thememylogin, jfarthing84
3
  Tags: login, register, password, branding, customize, widget, wp-login, wp-login.php
4
  Requires at least: 4.6
5
+ Tested up to: 5.2.4
6
+ Stable tag: 7.0.15
7
 
8
  The ultimate login branding solution! Theme My Login offers matchless customization of your WordPress user experience!
9
 
59
 
60
  == Changelog ==
61
 
62
+ = 7.0.15 =
63
+ * Fix extension update issues caused by caching
64
+ * Add `tml_script_dependencies` filter
65
+ * Add `tml_script_data` filter
66
+
67
  = 7.0.14 =
68
  * Fix login page error on on WP 5.2+
69
  * Implement caching for remote extension data to speed up plugins screen
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.0.14
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.0.14' );
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.0.15
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.0.15' );
28
 
29
  /**
30
  * Stores the path to TML.