Theme My Login - Version 7.0.6

Version Description

  • Fix a fatal error when removing form fields
  • Fix a 408/502 error when hosted with Namecheap
  • Fix notices in widget when upgrading from 6.4.x
  • Add default contextual help for extensions
  • Move after argument for forms to after the container
Download this release

Release Info

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

Code changes from version 7.0.5 to 7.0.6

admin/settings.php CHANGED
@@ -542,9 +542,13 @@ function tml_admin_add_settings_help_tabs( $screen ) {
542
 
543
  $help_tabs = $sidebar_links = array();
544
 
 
 
 
 
545
  // Core page
546
  if ( 'theme-my-login' == $plugin_page ) {
547
- $help_tabs[] = array(
548
  'id' => 'theme-my-login-overview',
549
  'title' => __( 'Overview' ),
550
  'content' => '<p>' . implode( '</p><p>', array(
@@ -555,19 +559,19 @@ function tml_admin_add_settings_help_tabs( $screen ) {
555
  ) ) . '</p>',
556
  );
557
 
558
- $sidebar_links[] = array(
559
- 'title' => __( 'Documentation', 'theme-my-login' ),
560
  'url' => 'https://docs.thememylogin.com',
561
  );
562
 
563
- $sidebar_links[] = array(
564
- 'title' => __( 'Support Forum', 'theme-my-login' ),
565
  'url' => 'https://wordpress.org/support/plugin/theme-my-login',
566
  );
567
 
568
  // Licenses page
569
  } elseif ( 'theme-my-login-licenses' == $plugin_page ) {
570
- $help_tabs[] = array(
571
  'id' => 'theme-my-login-licenses-overview',
572
  'title' => __( 'Overview' ),
573
  'content' => '<p>' . implode( '</p><p>', array(
@@ -578,18 +582,18 @@ function tml_admin_add_settings_help_tabs( $screen ) {
578
  ) ) . '</p>',
579
  );
580
 
581
- $sidebar_links[] = array(
582
- 'title' => __( 'Documentation on Installing Extensions', 'theme-my-login' ),
583
  'url' => 'https://docs.thememylogin.com/article/59-how-do-i-install-an-extension',
584
  );
585
- $sidebar_links[] = array(
586
- 'title' => __( 'Support Form', 'theme-my-login' ),
587
  'url' => 'https://thememylogin.com/support',
588
  );
589
 
590
  // Extensions page
591
  } elseif ( 'theme-my-login-extensions' == $plugin_page ) {
592
- $help_tabs[] = array(
593
  'id' => 'theme-my-login-extensions-overview',
594
  'title' => __( 'Overview' ),
595
  'content' => '<p>' . implode( '</p><p>', array(
@@ -598,27 +602,53 @@ function tml_admin_add_settings_help_tabs( $screen ) {
598
  ) ) . '</p>',
599
  );
600
 
601
- $sidebar_links[] = array(
602
- 'title' => __( 'Documentation on Installing Extensions', 'theme-my-login' ),
603
  'url' => 'https://docs.thememylogin.com/article/59-how-do-i-install-an-extension',
604
  );
605
- $sidebar_links[] = array(
606
- 'title' => __( 'Extensions Store', 'theme-my-login' ),
607
  'url' => 'https://thememylogin.com/extensions',
608
  );
609
- $sidebar_links[] = array(
610
- 'title' => __( 'Your Theme My Login Account', 'theme-my-login' ),
611
  'url' => 'https://thememylogin.com/your-account',
612
  );
613
 
614
  // Extension page
615
  } elseif ( $extension = tml_get_extension( $plugin_page ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
616
  $settings_page = $extension->get_settings_page_args();
617
  if ( ! empty( $settings_page['help_tabs'] ) ) {
618
- $help_tabs = $settings_page['help_tabs'];
619
  }
620
  if ( ! empty( $settings_page['help_sidebar_links'] ) ) {
621
- $sidebar_links = $settings_page['help_sidebar_links'];
622
  }
623
  }
624
 
542
 
543
  $help_tabs = $sidebar_links = array();
544
 
545
+ if ( ! theme_my_login_admin()->has_page( $plugin_page ) ) {
546
+ return;
547
+ }
548
+
549
  // Core page
550
  if ( 'theme-my-login' == $plugin_page ) {
551
+ $help_tabs['overview'] = array(
552
  'id' => 'theme-my-login-overview',
553
  'title' => __( 'Overview' ),
554
  'content' => '<p>' . implode( '</p><p>', array(
559
  ) ) . '</p>',
560
  );
561
 
562
+ $sidebar_links['documentation'] = array(
563
+ 'title' => __( 'View Documentation', 'theme-my-login' ),
564
  'url' => 'https://docs.thememylogin.com',
565
  );
566
 
567
+ $sidebar_links['support'] = array(
568
+ 'title' => __( 'Get Support', 'theme-my-login' ),
569
  'url' => 'https://wordpress.org/support/plugin/theme-my-login',
570
  );
571
 
572
  // Licenses page
573
  } elseif ( 'theme-my-login-licenses' == $plugin_page ) {
574
+ $help_tabs['overview'] = array(
575
  'id' => 'theme-my-login-licenses-overview',
576
  'title' => __( 'Overview' ),
577
  'content' => '<p>' . implode( '</p><p>', array(
582
  ) ) . '</p>',
583
  );
584
 
585
+ $sidebar_links['documentation'] = array(
586
+ 'title' => __( 'View Documentation', 'theme-my-login' ),
587
  'url' => 'https://docs.thememylogin.com/article/59-how-do-i-install-an-extension',
588
  );
589
+ $sidebar_links['support'] = array(
590
+ 'title' => __( 'Get Support', 'theme-my-login' ),
591
  'url' => 'https://thememylogin.com/support',
592
  );
593
 
594
  // Extensions page
595
  } elseif ( 'theme-my-login-extensions' == $plugin_page ) {
596
+ $help_tabs['overview'] = array(
597
  'id' => 'theme-my-login-extensions-overview',
598
  'title' => __( 'Overview' ),
599
  'content' => '<p>' . implode( '</p><p>', array(
602
  ) ) . '</p>',
603
  );
604
 
605
+ $sidebar_links['documentation'] = array(
606
+ 'title' => __( 'View Documentation', 'theme-my-login' ),
607
  'url' => 'https://docs.thememylogin.com/article/59-how-do-i-install-an-extension',
608
  );
609
+ $sidebar_links['store'] = array(
610
+ 'title' => __( 'Go to the Extensions Store', 'theme-my-login' ),
611
  'url' => 'https://thememylogin.com/extensions',
612
  );
613
+ $sidebar_links['account'] = array(
614
+ 'title' => __( 'View your Theme My Login account', 'theme-my-login' ),
615
  'url' => 'https://thememylogin.com/your-account',
616
  );
617
 
618
  // Extension page
619
  } elseif ( $extension = tml_get_extension( $plugin_page ) ) {
620
+ $help_tabs['overview'] = array(
621
+ 'id' => $plugin_page . '-overview',
622
+ 'title' => __( 'Overview' ),
623
+ 'content' => '<p>' . implode( '</p><p>', array(
624
+ sprintf(
625
+ __( 'On this page, you can configure the settings for the Theme My Login %s extension.', 'theme-my-login' ),
626
+ $extension->get_title()
627
+ ),
628
+ __( 'You must click the Save Changes button at the bottom of the screen for new settings to take effect.' ),
629
+ ) ) . '</p>',
630
+ );
631
+
632
+ if ( $documentation_url = $extension->get_documentation_url() ) {
633
+ $sidebar_links['documentation'] = array(
634
+ 'title' => __( 'View Documentation', 'theme-my-login' ),
635
+ 'url' => $documentation_url,
636
+ );
637
+ }
638
+
639
+ if ( $support_url = $extension->get_support_url() ) {
640
+ $sidebar_links['support'] = array(
641
+ 'title' => __( 'Get Support', 'theme-my-login' ),
642
+ 'url' => $support_url,
643
+ );
644
+ }
645
+
646
  $settings_page = $extension->get_settings_page_args();
647
  if ( ! empty( $settings_page['help_tabs'] ) ) {
648
+ $help_tabs = array_merge( $help_tabs, $settings_page['help_tabs'] );
649
  }
650
  if ( ! empty( $settings_page['help_sidebar_links'] ) ) {
651
+ $sidebar_links = array_merge( $sidebar_links, $settings_page['help_sidebar_links'] );
652
  }
653
  }
654
 
includes/class-theme-my-login-extension.php CHANGED
@@ -56,6 +56,27 @@ abstract class Theme_My_Login_Extension {
56
  */
57
  protected $url;
58
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  /**
60
  * The extension store URL.
61
  *
@@ -228,6 +249,39 @@ abstract class Theme_My_Login_Extension {
228
  return $this->url;
229
  }
230
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
231
  /**
232
  * Get the extension's store URL.
233
  *
56
  */
57
  protected $url;
58
 
59
+ /**
60
+ * The extension homepage URL.
61
+ *
62
+ * @var string
63
+ */
64
+ protected $homepage_url;
65
+
66
+ /**
67
+ * The extension documentation URL.
68
+ *
69
+ * @var string
70
+ */
71
+ protected $documentation_url;
72
+
73
+ /**
74
+ * The extension support URL.
75
+ *
76
+ * @var string
77
+ */
78
+ protected $support_url;
79
+
80
  /**
81
  * The extension store URL.
82
  *
249
  return $this->url;
250
  }
251
 
252
+ /**
253
+ * Get the extension's homepage URL.
254
+ *
255
+ * @since 7.0.6
256
+ *
257
+ * @return string The extension's homepage URL.
258
+ */
259
+ public function get_homepage_url() {
260
+ return $this->homepage_url;
261
+ }
262
+
263
+ /**
264
+ * Get the extension's documentation URL.
265
+ *
266
+ * @since 7.0.6
267
+ *
268
+ * @return string The extension's documentation URL.
269
+ */
270
+ public function get_documentation_url() {
271
+ return $this->documentation_url;
272
+ }
273
+
274
+ /**
275
+ * Get the extension's support URL.
276
+ *
277
+ * @since 7.0.6
278
+ *
279
+ * @return string The extension's support URL.
280
+ */
281
+ public function get_support_url() {
282
+ return $this->support_url;
283
+ }
284
+
285
  /**
286
  * Get the extension's store URL.
287
  *
includes/class-theme-my-login-form.php CHANGED
@@ -42,13 +42,6 @@ class Theme_My_Login_Form {
42
  */
43
  protected $fields = array();
44
 
45
- /**
46
- * The form field priorities.
47
- *
48
- * @var array
49
- */
50
- protected $priorities = array();
51
-
52
  /**
53
  * The form attributes.
54
  *
@@ -266,15 +259,7 @@ class Theme_My_Login_Form {
266
  * @param TML_Form_Field $field The field object.
267
  */
268
  public function add_field( Theme_My_Login_Form_Field $field ) {
269
- $name = $field->get_name();
270
-
271
- $this->fields[ $name ] = $field;
272
-
273
- $priority = $field->get_priority();
274
- if ( ! isset( $this->priorities[ $priority ] ) ) {
275
- $this->priorities[ $priority ] = array();
276
- }
277
- $this->priorities[ $priority ][] = $name;
278
  }
279
 
280
  /**
@@ -315,12 +300,22 @@ class Theme_My_Login_Form {
315
  * @return array The form fields.
316
  */
317
  public function get_fields() {
318
- ksort( $this->priorities );
319
-
320
  $sorted_fields = array();
321
- foreach ( $this->priorities as $priority => $fields ) {
 
 
 
 
 
 
 
 
 
 
 
322
  foreach ( $fields as $field ) {
323
- $sorted_fields[] = $this->get_field( $field );
324
  }
325
  }
326
 
@@ -571,8 +566,6 @@ class Theme_My_Login_Form {
571
 
572
  $output .= "</form>\n";
573
 
574
- $output .= $args['after'];
575
-
576
  if ( $args['show_links'] ) {
577
  $output .= $this->render_links();
578
  }
@@ -581,6 +574,8 @@ class Theme_My_Login_Form {
581
  $output .= '</' . $args['container'] . ">\n";
582
  }
583
 
 
 
584
  return $output;
585
  }
586
  }
42
  */
43
  protected $fields = array();
44
 
 
 
 
 
 
 
 
45
  /**
46
  * The form attributes.
47
  *
259
  * @param TML_Form_Field $field The field object.
260
  */
261
  public function add_field( Theme_My_Login_Form_Field $field ) {
262
+ $this->fields[ $field->get_name() ] = $field;
 
 
 
 
 
 
 
 
263
  }
264
 
265
  /**
300
  * @return array The form fields.
301
  */
302
  public function get_fields() {
303
+ $priorities = array();
 
304
  $sorted_fields = array();
305
+
306
+ // Prioritize the fields
307
+ foreach( $this->fields as $field ) {
308
+ $priority = $field->get_priority();
309
+ if ( ! isset( $priorities[ $priority ] ) ) {
310
+ $priorities[ $priority ] = array();
311
+ }
312
+ $priorities[ $priority ][] = $field;
313
+ }
314
+
315
+ // Sort the fields
316
+ foreach ( $priorities as $priority => $fields ) {
317
  foreach ( $fields as $field ) {
318
+ $sorted_fields[] = $field;
319
  }
320
  }
321
 
566
 
567
  $output .= "</form>\n";
568
 
 
 
569
  if ( $args['show_links'] ) {
570
  $output .= $this->render_links();
571
  }
574
  $output .= '</' . $args['container'] . ">\n";
575
  }
576
 
577
+ $output .= $args['after'];
578
+
579
  return $output;
580
  }
581
  }
includes/class-theme-my-login-widget.php CHANGED
@@ -35,6 +35,8 @@ class Theme_My_Login_Widget extends WP_Widget {
35
  * @param array $instance
36
  */
37
  public function widget( $args, $instance ) {
 
 
38
  $show_widget = ( is_user_logged_in() && 'login' != $instance['action'] ) || ! tml_is_action();
39
 
40
  /**
@@ -149,10 +151,7 @@ class Theme_My_Login_Widget extends WP_Widget {
149
  * @access public
150
  */
151
  public function form( $instance ) {
152
- $instance = wp_parse_args( $instance, array(
153
- 'action' => 'login',
154
- 'show_links' => true,
155
- ) );
156
 
157
  $actions = wp_list_filter( tml_get_actions(), array(
158
  'show_in_widget' => true,
@@ -189,10 +188,7 @@ class Theme_My_Login_Widget extends WP_Widget {
189
  public function update( $new_instance, $old_instance ) {
190
  $instance = $old_instance;
191
 
192
- $new_instance = wp_parse_args( (array) $new_instance, array(
193
- 'action' => 'login',
194
- 'show_links' => false,
195
- ) );
196
 
197
  $instance['action'] = sanitize_text_field( $new_instance['action'] );
198
  $instance['show_links'] = (bool) $new_instance['show_links'];
@@ -200,6 +196,20 @@ class Theme_My_Login_Widget extends WP_Widget {
200
  return $instance;
201
  }
202
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
  /**
204
  * Register the widget.
205
  *
35
  * @param array $instance
36
  */
37
  public function widget( $args, $instance ) {
38
+ $instance = wp_parse_args( $instance, $this->defaults() );
39
+
40
  $show_widget = ( is_user_logged_in() && 'login' != $instance['action'] ) || ! tml_is_action();
41
 
42
  /**
151
  * @access public
152
  */
153
  public function form( $instance ) {
154
+ $instance = wp_parse_args( $instance, $this->defaults() );
 
 
 
155
 
156
  $actions = wp_list_filter( tml_get_actions(), array(
157
  'show_in_widget' => true,
188
  public function update( $new_instance, $old_instance ) {
189
  $instance = $old_instance;
190
 
191
+ $new_instance = wp_parse_args( (array) $new_instance, $this->defaults() );
 
 
 
192
 
193
  $instance['action'] = sanitize_text_field( $new_instance['action'] );
194
  $instance['show_links'] = (bool) $new_instance['show_links'];
196
  return $instance;
197
  }
198
 
199
+ /**
200
+ * Get the default instance arguments.
201
+ *
202
+ * @since 7.0.6
203
+ *
204
+ * @return array The default instance arguments.
205
+ */
206
+ public function defaults() {
207
+ return array(
208
+ 'action' => 'login',
209
+ 'show_links' => false,
210
+ );
211
+ }
212
+
213
  /**
214
  * Register the widget.
215
  *
includes/forms.php CHANGED
@@ -47,7 +47,7 @@ function tml_register_login_form() {
47
  'label' => __( 'Password' ),
48
  'value' => '',
49
  'id' => 'user_pass',
50
- 'priority' => 15
51
  ) );
52
 
53
  tml_add_form_field( 'login', 'login_form', array(
@@ -68,12 +68,6 @@ function tml_register_login_form() {
68
  'priority' => 30,
69
  ) );
70
 
71
- tml_add_form_field( 'login', 'testcookie', array(
72
- 'type' => 'hidden' ,
73
- 'value' => 1,
74
- 'priority' => 30,
75
- ) );
76
-
77
  $redirect_to = tml_get_request_value( 'redirect_to' );
78
 
79
  tml_add_form_field( 'login', 'redirect_to', array(
@@ -83,6 +77,12 @@ function tml_register_login_form() {
83
  ),
84
  'priority' => 30,
85
  ) );
 
 
 
 
 
 
86
  }
87
 
88
  /**
47
  'label' => __( 'Password' ),
48
  'value' => '',
49
  'id' => 'user_pass',
50
+ 'priority' => 15,
51
  ) );
52
 
53
  tml_add_form_field( 'login', 'login_form', array(
68
  'priority' => 30,
69
  ) );
70
 
 
 
 
 
 
 
71
  $redirect_to = tml_get_request_value( 'redirect_to' );
72
 
73
  tml_add_form_field( 'login', 'redirect_to', array(
77
  ),
78
  'priority' => 30,
79
  ) );
80
+
81
+ tml_add_form_field( 'login', 'testcookie', array(
82
+ 'type' => 'hidden' ,
83
+ 'value' => 1,
84
+ 'priority' => 30,
85
+ ) );
86
  }
87
 
88
  /**
languages/theme-my-login.pot CHANGED
@@ -2,15 +2,15 @@
2
  # This file is distributed under the same license as the Theme My Login package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Theme My Login 7.0.5\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: 2018-06-20T16:01:48-04:00\n"
13
- "PO-Revision-Date: 2018-06-20T16:01:48-04:00\n"
14
  "X-Domain: theme-my-login\n"
15
 
16
  #: includes/functions.php:402
@@ -51,7 +51,7 @@ msgstr ""
51
  msgid "A login form for your site."
52
  msgstr ""
53
 
54
- #: includes/class-theme-my-login-widget.php:174
55
  msgid "Show action links?"
56
  msgstr ""
57
 
@@ -178,65 +178,65 @@ msgstr ""
178
  msgid "Activate"
179
  msgstr ""
180
 
181
- #: admin/settings.php:551
182
  msgid "Welcome to Theme My Login!"
183
  msgstr ""
184
 
185
- #: admin/settings.php:552
186
  msgid "Below, you can configure how you would like users to register and log in to your site."
187
  msgstr ""
188
 
189
- #: admin/settings.php:553
190
  msgid "Additionally, you can change the slugs that are used to generate the URLs that represent specific actions."
191
  msgstr ""
192
 
193
- #: admin/settings.php:559
194
- msgid "Documentation"
 
 
 
195
  msgstr ""
196
 
197
- #: admin/settings.php:564
198
- msgid "Support Forum"
 
 
199
  msgstr ""
200
 
201
- #: admin/settings.php:574
202
  msgid "When you purchase extensions for Theme My Login, you will enter your license keys on this page."
203
  msgstr ""
204
 
205
- #: admin/settings.php:575
206
  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."
207
  msgstr ""
208
 
209
- #: admin/settings.php:576
210
  msgid "If you have not yet activated your license, this button will say \"Activate\". Click this button to activate your license."
211
  msgstr ""
212
 
213
- #: admin/settings.php:577
214
  msgid "If you have already activated your license, this button will say \"Deactivate\". Click this button to deactivate your license."
215
  msgstr ""
216
 
217
- #: admin/settings.php:582
218
- #: admin/settings.php:602
219
- msgid "Documentation on Installing Extensions"
220
- msgstr ""
221
-
222
- #: admin/settings.php:586
223
- msgid "Support Form"
224
- msgstr ""
225
-
226
- #: admin/settings.php:596
227
  msgid "This page shows you all of the extensions available to purchase for Theme My Login."
228
  msgstr ""
229
 
230
- #: admin/settings.php:597
231
  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."
232
  msgstr ""
233
 
234
- #: admin/settings.php:606
235
- msgid "Extensions Store"
236
  msgstr ""
237
 
238
- #: admin/settings.php:610
239
- msgid "Your Theme My Login Account"
 
 
 
 
240
  msgstr ""
241
 
242
  #: admin/extensions.php:61
2
  # This file is distributed under the same license as the Theme My Login package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Theme My Login 7.0.6\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: 2018-06-22T15:04:10-04:00\n"
13
+ "PO-Revision-Date: 2018-06-22T15:04:10-04:00\n"
14
  "X-Domain: theme-my-login\n"
15
 
16
  #: includes/functions.php:402
51
  msgid "A login form for your site."
52
  msgstr ""
53
 
54
+ #: includes/class-theme-my-login-widget.php:173
55
  msgid "Show action links?"
56
  msgstr ""
57
 
178
  msgid "Activate"
179
  msgstr ""
180
 
181
+ #: admin/settings.php:555
182
  msgid "Welcome to Theme My Login!"
183
  msgstr ""
184
 
185
+ #: admin/settings.php:556
186
  msgid "Below, you can configure how you would like users to register and log in to your site."
187
  msgstr ""
188
 
189
+ #: admin/settings.php:557
190
  msgid "Additionally, you can change the slugs that are used to generate the URLs that represent specific actions."
191
  msgstr ""
192
 
193
+ #: admin/settings.php:563
194
+ #: admin/settings.php:586
195
+ #: admin/settings.php:606
196
+ #: admin/settings.php:634
197
+ msgid "View Documentation"
198
  msgstr ""
199
 
200
+ #: admin/settings.php:568
201
+ #: admin/settings.php:590
202
+ #: admin/settings.php:641
203
+ msgid "Get Support"
204
  msgstr ""
205
 
206
+ #: admin/settings.php:578
207
  msgid "When you purchase extensions for Theme My Login, you will enter your license keys on this page."
208
  msgstr ""
209
 
210
+ #: admin/settings.php:579
211
  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."
212
  msgstr ""
213
 
214
+ #: admin/settings.php:580
215
  msgid "If you have not yet activated your license, this button will say \"Activate\". Click this button to activate your license."
216
  msgstr ""
217
 
218
+ #: admin/settings.php:581
219
  msgid "If you have already activated your license, this button will say \"Deactivate\". Click this button to deactivate your license."
220
  msgstr ""
221
 
222
+ #: admin/settings.php:600
 
 
 
 
 
 
 
 
 
223
  msgid "This page shows you all of the extensions available to purchase for Theme My Login."
224
  msgstr ""
225
 
226
+ #: admin/settings.php:601
227
  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."
228
  msgstr ""
229
 
230
+ #: admin/settings.php:610
231
+ msgid "Go to the Extensions Store"
232
  msgstr ""
233
 
234
+ #: admin/settings.php:614
235
+ msgid "View your Theme My Login account"
236
+ msgstr ""
237
+
238
+ #: admin/settings.php:625
239
+ msgid "On this page, you can configure the settings for the Theme My Login %s extension."
240
  msgstr ""
241
 
242
  #: admin/extensions.php:61
readme.txt CHANGED
@@ -3,7 +3,7 @@ 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: 4.9.6
6
- Stable tag: 7.0.5
7
 
8
  The ultimate login branding solution! Theme My Login offers matchless customization of your WordPress user experience!
9
 
@@ -59,6 +59,13 @@ Report bugs, suggest ideas and participate in development at [GitHub](https://gi
59
 
60
  == Changelog ==
61
 
 
 
 
 
 
 
 
62
  = 7.0.5 =
63
  * Allow custom actions to have custom slugs
64
  * Show the URL below each slug setting field
3
  Tags: login, register, password, branding, customize, widget, wp-login, wp-login.php
4
  Requires at least: 4.6
5
  Tested up to: 4.9.6
6
+ Stable tag: 7.0.6
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.6 =
63
+ * Fix a fatal error when removing form fields
64
+ * Fix a 408/502 error when hosted with Namecheap
65
+ * Fix notices in widget when upgrading from 6.4.x
66
+ * Add default contextual help for extensions
67
+ * Move `after` argument for forms to after the container
68
+
69
  = 7.0.5 =
70
  * Allow custom actions to have custom slugs
71
  * Show the URL below each slug setting field
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.5
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.5' );
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.6
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.6' );
28
 
29
  /**
30
  * Stores the path to TML.