Custom Login Page Customizer | LoginPress - Version 1.2.1

Version Description

  • 2019-07-08 =
  • Bugfix: PHP warning.
  • Enhancement: Update log file.
Download this release

Release Info

Developer hiddenpearls
Plugin Icon 128x128 Custom Login Page Customizer | LoginPress
Version 1.2.1
Comparing to
See all releases

Code changes from version 1.2.0 to 1.2.1

classes/class-loginpress-addons.php CHANGED
@@ -164,6 +164,10 @@ if ( ! class_exists( 'LoginPress_Addons' ) ) :
164
  return true;
165
  }else if( LoginPress_Pro::get_license_id() == 7 and in_array('loginpress-pro-agency', $categories) ){
166
  return true;
 
 
 
 
167
  }else if( LoginPress_Pro::get_license_id() == 1 and in_array('loginpress-free-add-ons', $categories) ){
168
  return true;
169
  }else{
164
  return true;
165
  }else if( LoginPress_Pro::get_license_id() == 7 and in_array('loginpress-pro-agency', $categories) ){
166
  return true;
167
+ }else if( LoginPress_Pro::get_license_id() == 8 and in_array('loginpress-pro-agency', $categories) ){
168
+ return true;
169
+ }else if( LoginPress_Pro::get_license_id() == 9 and in_array('loginpress-pro-agency', $categories) ){
170
+ return true;
171
  }else if( LoginPress_Pro::get_license_id() == 1 and in_array('loginpress-free-add-ons', $categories) ){
172
  return true;
173
  }else{
classes/class-loginpress-log.php CHANGED
@@ -56,6 +56,7 @@ class LoginPress_Log_Info {
56
  if ( class_exists( 'LoginPress_Pro' ) ) {
57
 
58
  $enable_repatcha = ( isset( $loginpress_setting['enable_repatcha'] ) ) ? $loginpress_setting['enable_repatcha'] : 'Off';
 
59
  $loginpress_preset = get_option( 'customize_presets_settings', 'default1' );
60
  $license_key = LoginPress_Pro::get_registered_license_status();
61
 
@@ -63,17 +64,18 @@ class LoginPress_Log_Info {
63
  $html .= 'Plugin Version: ' . LOGINPRESS_PRO_VERSION . "\n";
64
  $html .= 'LoginPress Template: ' . $loginpress_preset . "\n";
65
  $html .= 'License Status: ' . $license_key . "\n";
 
66
  $html .= 'Google Repatcha Status: ' . $enable_repatcha . "\n";
67
 
68
  if ( 'on' == $enable_repatcha ) {
69
- $site_key = ( isset( $loginpress_setting['site_key'] ) ) ? $loginpress_setting['site_key'] : 'Not Set';
70
- $secret_key = ( isset( $loginpress_setting['secret_key'] ) ) ? $loginpress_setting['secret_key'] : 'Not Set';
71
- $captcha_theme = ( isset( $loginpress_setting['captcha_theme'] ) ) ? $loginpress_setting['captcha_theme'] : 'Light';
72
  $captcha_language = ( isset( $loginpress_setting['captcha_language'] ) ) ? $loginpress_setting['captcha_language'] : 'English (US)';
73
- $captcha_enable_on = ( isset( $loginpress_setting['captcha_enable'] ) ) ? $loginpress_setting['captcha_enable'] : 'Not Set';
74
 
75
- $html .= 'Repatcha Site Key: ' . $site_key . "\n";
76
- $html .= 'Repatcha Secret Key: ' . $secret_key . "\n";
77
  $html .= 'Repatcha Theme Used: ' . $captcha_theme . "\n";
78
  $html .= 'Repatcha Language Used: ' . $captcha_language . "\n";
79
  if ( is_array( $captcha_enable_on ) ) {
@@ -116,7 +118,7 @@ class LoginPress_Log_Info {
116
  foreach( $plugins as $plugin_path => $plugin ) {
117
  if( !in_array( $plugin_path, $active_plugins ) )
118
  continue;
119
- $html .= $plugin['Name'] . ': ' . $plugin['Version'] . "\n";
120
  }
121
 
122
  // WordPress inactive plugins
@@ -124,7 +126,7 @@ class LoginPress_Log_Info {
124
  foreach( $plugins as $plugin_path => $plugin ) {
125
  if( in_array( $plugin_path, $active_plugins ) )
126
  continue;
127
- $html .= $plugin['Name'] . ': ' . $plugin['Version'] . "\n";
128
  }
129
 
130
  if( is_multisite() ) {
@@ -137,7 +139,7 @@ class LoginPress_Log_Info {
137
  if( ! array_key_exists( $plugin_base, $active_plugins ) )
138
  continue;
139
  $plugin = get_plugin_data( $plugin_path );
140
- $html .= $plugin['Name'] . ': ' . $plugin['Version'] . "\n";
141
  }
142
  }
143
 
56
  if ( class_exists( 'LoginPress_Pro' ) ) {
57
 
58
  $enable_repatcha = ( isset( $loginpress_setting['enable_repatcha'] ) ) ? $loginpress_setting['enable_repatcha'] : 'Off';
59
+ $enable_force = ( isset( $loginpress_setting['force_login'] ) ) ? $loginpress_setting['force_login'] : 'Off';
60
  $loginpress_preset = get_option( 'customize_presets_settings', 'default1' );
61
  $license_key = LoginPress_Pro::get_registered_license_status();
62
 
64
  $html .= 'Plugin Version: ' . LOGINPRESS_PRO_VERSION . "\n";
65
  $html .= 'LoginPress Template: ' . $loginpress_preset . "\n";
66
  $html .= 'License Status: ' . $license_key . "\n";
67
+ $html .= 'Force Login: ' . $enable_force . "\n";
68
  $html .= 'Google Repatcha Status: ' . $enable_repatcha . "\n";
69
 
70
  if ( 'on' == $enable_repatcha ) {
71
+ $site_key = ( isset( $loginpress_setting['site_key'] ) ) ? $loginpress_setting['site_key'] : 'Not Set';
72
+ $secret_key = ( isset( $loginpress_setting['secret_key'] ) ) ? $loginpress_setting['secret_key'] : 'Not Set';
73
+ $captcha_theme = ( isset( $loginpress_setting['captcha_theme'] ) ) ? $loginpress_setting['captcha_theme'] : 'Light';
74
  $captcha_language = ( isset( $loginpress_setting['captcha_language'] ) ) ? $loginpress_setting['captcha_language'] : 'English (US)';
75
+ $captcha_enable_on = ( isset( $loginpress_setting['captcha_enable'] ) ) ? $loginpress_setting['captcha_enable'] : 'Not Set';
76
 
77
+ $html .= 'Repatcha Site Key: ' . LoginPress_Pro::mask_license( $site_key ) . "\n";
78
+ $html .= 'Repatcha Secret Key: ' . LoginPress_Pro::mask_license( $secret_key ) . "\n";
79
  $html .= 'Repatcha Theme Used: ' . $captcha_theme . "\n";
80
  $html .= 'Repatcha Language Used: ' . $captcha_language . "\n";
81
  if ( is_array( $captcha_enable_on ) ) {
118
  foreach( $plugins as $plugin_path => $plugin ) {
119
  if( !in_array( $plugin_path, $active_plugins ) )
120
  continue;
121
+ $html .= $plugin['Name'] . ': v(' . $plugin['Version'] . ")\n";
122
  }
123
 
124
  // WordPress inactive plugins
126
  foreach( $plugins as $plugin_path => $plugin ) {
127
  if( in_array( $plugin_path, $active_plugins ) )
128
  continue;
129
+ $html .= $plugin['Name'] . ': v(' . $plugin['Version'] . ")\n";
130
  }
131
 
132
  if( is_multisite() ) {
139
  if( ! array_key_exists( $plugin_base, $active_plugins ) )
140
  continue;
141
  $plugin = get_plugin_data( $plugin_path );
142
+ $html .= $plugin['Name'] . ': v(' . $plugin['Version'] . ")\n";
143
  }
144
  }
145
 
classes/class-loginpress-notifications.php CHANGED
@@ -28,11 +28,13 @@ if ( ! class_exists( 'LoginPress_Notification' ) ) :
28
  /**
29
  * Hook into actions and filters
30
  * @since 1.0.0
 
31
  */
32
  private function _hooks() {
33
  add_action( 'admin_init', array( $this, 'loginpress_review_notice' ) );
34
  // add_action( 'admin_init' , array( $this, 'loginpress_addon_notice' ) );
35
- add_action( 'admin_init', array( $this, 'loginpress_friday_sale_notice' ) );
 
36
  }
37
 
38
  /**
@@ -221,11 +223,12 @@ if ( ! class_exists( 'LoginPress_Notification' ) ) :
221
  * Ask users to review our plugin on wordpress.org
222
  *
223
  * @since 1.1.3
 
224
  * @return boolean false
225
  */
226
  public function loginpress_friday_sale_notice() {
227
 
228
- $this->loginpress_friday_sale_dismissal();
229
 
230
  $activation_time = get_site_option( 'loginpress_friday_sale_active_time' );
231
  $addon_dismissal = get_site_option( 'loginpress_friday_sale_dismiss' );
@@ -244,6 +247,32 @@ if ( ! class_exists( 'LoginPress_Notification' ) ) :
244
  endif;
245
  }
246
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
247
  /**
248
  * Review notice message
249
  *
@@ -300,6 +329,30 @@ if ( ! class_exists( 'LoginPress_Notification' ) ) :
300
  }
301
  }
302
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
303
  /**
304
  * Add custom admin notice
305
  * @param string $message Custom Message
@@ -323,19 +376,20 @@ if ( ! class_exists( 'LoginPress_Notification' ) ) :
323
  * Check and Dismiss addon message.
324
  *
325
  * @since 1.1.3
 
326
  */
327
- private function loginpress_friday_sale_dismissal() {
328
- //delete_site_option( 'loginpress_friday_sale_dismiss' );
329
  if ( ! is_admin() ||
330
  ! current_user_can( 'manage_options' ) ||
331
  ! isset( $_GET['_wpnonce'] ) ||
332
- ! wp_verify_nonce( sanitize_key( wp_unslash( $_GET['_wpnonce'] ) ), 'loginpress-friday-sale-nonce' ) ||
333
- ! isset( $_GET['loginpress_friday_sale_dismiss'] ) ) :
334
 
335
  return;
336
  endif;
337
 
338
- add_site_option( 'loginpress_friday_sale_dismiss', 'yes' );
339
  }
340
 
341
  }
28
  /**
29
  * Hook into actions and filters
30
  * @since 1.0.0
31
+ * @version 1.2.1
32
  */
33
  private function _hooks() {
34
  add_action( 'admin_init', array( $this, 'loginpress_review_notice' ) );
35
  // add_action( 'admin_init' , array( $this, 'loginpress_addon_notice' ) );
36
+ // add_action( 'admin_init', array( $this, 'loginpress_friday_sale_notice' ) );
37
+ // add_action( 'admin_init', array( $this, 'loginpress_appsumo_notice' ) );
38
  }
39
 
40
  /**
223
  * Ask users to review our plugin on wordpress.org
224
  *
225
  * @since 1.1.3
226
+ * @version 1.2.1
227
  * @return boolean false
228
  */
229
  public function loginpress_friday_sale_notice() {
230
 
231
+ $this->loginpress_deals_notice_dismis( 'loginpress-friday-sale-nonce', 'loginpress_friday_sale_dismiss' );
232
 
233
  $activation_time = get_site_option( 'loginpress_friday_sale_active_time' );
234
  $addon_dismissal = get_site_option( 'loginpress_friday_sale_dismiss' );
247
  endif;
248
  }
249
 
250
+ /**
251
+ * Ask users to review our plugin on wordpress.org
252
+ *
253
+ * @since 1.2.1
254
+ * @return boolean false
255
+ */
256
+ public function loginpress_appsumo_notice() {
257
+
258
+ $this->loginpress_deals_notice_dismis( 'loginpress-appsumo-nonce', 'loginpress_appsumo_dismiss' );
259
+
260
+ $activation_time = get_site_option( 'loginpress_appsumo_active_time' );
261
+ $addon_dismissal = get_site_option( 'loginpress_appsumo_dismiss' );
262
+
263
+ if ( 'yes' == $addon_dismissal ) return;
264
+
265
+ if ( ! $activation_time ) :
266
+
267
+ $activation_time = time();
268
+ add_site_option( 'loginpress_appsumo_active_time', $activation_time );
269
+ endif;
270
+
271
+ if ( ! has_action( 'loginpress_pro_add_template' ) ) :
272
+ add_action( 'admin_notices', array( $this, 'loginpress_appsumo_notice_text' ) );
273
+ endif;
274
+ }
275
+
276
  /**
277
  * Review notice message
278
  *
329
  }
330
  }
331
 
332
+ /**
333
+ * [loginpress_appsumo_notice_text description]
334
+ * @return [type] [description]
335
+ * @since 1.2.1
336
+ */
337
+ function loginpress_appsumo_notice_text() {
338
+
339
+ $scheme = ( parse_url( $_SERVER['REQUEST_URI'], PHP_URL_QUERY ) ) ? '&' : '?';
340
+ $url = $_SERVER['REQUEST_URI'] . $scheme . 'loginpress_appsumo_dismiss=yes';
341
+ $dismiss_url = wp_nonce_url( $url, 'loginpress-appsumo-nonce' );
342
+
343
+ if ( current_user_can( 'install_plugins' ) && ! has_action( 'loginpress_pro_add_template' ) ) {
344
+
345
+ wp_enqueue_style( 'loginpress_review_stlye', plugins_url( '../css/style-review.css', __FILE__ ), array(), LOGINPRESS_VERSION );
346
+
347
+ $message = '<p> ';
348
+ $message .= sprintf (__( '<strong>Biggest Summer Deal</strong> in the WordPress Universe! Get <strong>LoginPress Pro and all Premium Add-ons</strong> with <strong>20%% OFF</strong> [Limited Availability].<a href="https://wpbrigade.com/wordpress/plugins/loginpress-pro/?utm_source=loginpress-lite&utm_medium=freepluginbanner-button&utm_campaign=early20" target="_blank" style="text-decoration: none;"><span class="dashicons dashicons-smiley" style="margin-left: 10px;"></span> Grab The Deal</a>
349
+ <a href="%1$s" style="text-decoration: none; margin-left: 10px;"><span class="dashicons dashicons-dismiss"></span> I\'m good with free version</a>' ), $dismiss_url );
350
+ $message .= "</p>";
351
+ $class = 'loginpress-notice-success';
352
+ $this->loginpress_admin_notice( $message, $class );
353
+ }
354
+ }
355
+
356
  /**
357
  * Add custom admin notice
358
  * @param string $message Custom Message
376
  * Check and Dismiss addon message.
377
  *
378
  * @since 1.1.3
379
+ * @version
380
  */
381
+ private function loginpress_deals_notice_dismis( $nonce, $option ) {
382
+ //delete_site_option( $option );
383
  if ( ! is_admin() ||
384
  ! current_user_can( 'manage_options' ) ||
385
  ! isset( $_GET['_wpnonce'] ) ||
386
+ ! wp_verify_nonce( sanitize_key( wp_unslash( $_GET['_wpnonce'] ) ), $nonce ) ||
387
+ ! isset( $_GET[$option] ) ) :
388
 
389
  return;
390
  endif;
391
 
392
+ add_site_option( $option, 'yes' );
393
  }
394
 
395
  }
classes/class-loginpress-setup.php CHANGED
@@ -57,7 +57,7 @@ class LoginPress_Settings {
57
 
58
  function loginpress_setting_menu() {
59
 
60
- add_menu_page( __( 'LoginPress', 'loginpress' ), __( 'LoginPress', 'loginpress' ), 'manage_options', "loginpress-settings", array( $this, 'plugin_page' ), '', 50 );
61
 
62
  add_submenu_page( 'loginpress-settings', __( 'Settings', 'loginpress' ), __( 'Settings', 'loginpress' ), 'manage_options', "loginpress-settings", array( $this, 'plugin_page' ) );
63
 
@@ -105,16 +105,16 @@ class LoginPress_Settings {
105
  */
106
  $_free_fields = array(
107
  array(
108
- 'name' => 'session_expiration',
109
- 'label' => __( 'Session Expire', 'loginpress' ),
110
- 'desc' => __( 'Set the session expiration time in minutes. e.g: 10', 'loginpress' ), //<br /> When you set the time, here you need to set the expiration cookies. for this, you just need to logout at least one time. After login again, it should be working fine.<br />For removing the session expiration just pass empty value in “Expiration” field and save it. Now clear the expiration cookies by logout at least one time.
111
- 'placeholder' => __( '10', 'loginpress' ),
112
- 'min' => 0,
113
- // 'max' => 100,
114
- 'step' => '1',
115
- 'type' => 'number',
116
- 'default' => 'Title',
117
- 'sanitize_callback' => 'intval'
118
  ),
119
  // array(
120
  // 'name' => 'enable_privacy_policy',
@@ -142,9 +142,9 @@ class LoginPress_Settings {
142
  'type' => 'radio',
143
  'default' => 'default',
144
  'options' => array(
145
- 'default' => 'Both Username Or Email Address',
146
- 'username' => 'Only Username',
147
- 'email' => 'Only Email Address'
148
  )
149
  ),
150
  // array(
@@ -211,11 +211,17 @@ class LoginPress_Settings {
211
 
212
  $html = '<div class="loginpress-help-page">';
213
  $html .= '<h2>Help & Troubleshooting</h2>';
214
- $html .= sprintf( __( 'Free support is available on the %1$s plugin support forums%2$s.', 'loginpress' ), '<a href="https://wordpress.org/support/plugin/loginpress" target="_blank">', '</a>' );
215
  $html .="<br /><br />";
216
- $html .= sprintf( __( 'For premium features, add-ons and priority email support, %1$s upgrade to pro%2$s.', 'loginpress' ), '<a href="https://wpbrigade.com/wordpress/plugins/loginpress-pro/?utm_source=loginpress-lite&utm_medium=help-page&utm_campaign=pro-upgrade" target="_blank">', '</a>' );
 
 
 
 
 
 
217
  $html .="<br /><br />";
218
- $html .= 'Found a bug or have a feature request? Please submit an issue <a href="https://wpbrigade.com/contact/" target="_blank">here</a>!';
219
  $html .= '<pre><textarea rows="25" cols="75" readonly="readonly">';
220
  $html .= LoginPress_Log_Info::get_sysinfo();
221
  $html .= '</textarea></pre>';
57
 
58
  function loginpress_setting_menu() {
59
 
60
+ add_menu_page( __( 'LoginPress', 'loginpress' ), __( 'LoginPress', 'loginpress' ), 'manage_options', "loginpress-settings", array( $this, 'plugin_page' ), plugins_url( 'loginpress/img/icon.svg' ), 50 );
61
 
62
  add_submenu_page( 'loginpress-settings', __( 'Settings', 'loginpress' ), __( 'Settings', 'loginpress' ), 'manage_options', "loginpress-settings", array( $this, 'plugin_page' ) );
63
 
105
  */
106
  $_free_fields = array(
107
  array(
108
+ 'name' => 'session_expiration',
109
+ 'label' => __( 'Session Expire', 'loginpress' ),
110
+ 'desc' => __( 'Set the session expiration time in minutes. e.g: 10', 'loginpress' ), //<br /> When you set the time, here you need to set the expiration cookies. for this, you just need to logout at least one time. After login again, it should be working fine.<br />For removing the session expiration just pass empty value in “Expiration” field and save it. Now clear the expiration cookies by logout at least one time.
111
+ 'placeholder' => __( '10', 'loginpress' ),
112
+ 'min' => 0,
113
+ // 'max' => 100,
114
+ 'step' => '1',
115
+ 'type' => 'number',
116
+ 'default' => 'Title',
117
+ 'sanitize_callback' => 'abs'
118
  ),
119
  // array(
120
  // 'name' => 'enable_privacy_policy',
142
  'type' => 'radio',
143
  'default' => 'default',
144
  'options' => array(
145
+ 'default' => 'Both Username Or Email Address',
146
+ 'username' => 'Only Username',
147
+ 'email' => 'Only Email Address'
148
  )
149
  ),
150
  // array(
211
 
212
  $html = '<div class="loginpress-help-page">';
213
  $html .= '<h2>Help & Troubleshooting</h2>';
214
+ $html .= sprintf( __( 'Free plugin support is available on the %1$s plugin support forums%2$s.', 'loginpress' ), '<a href="https://wordpress.org/support/plugin/loginpress" target="_blank">', '</a>' );
215
  $html .="<br /><br />";
216
+
217
+ if( ! class_exists('LoginPress_Pro')){
218
+ $html .= sprintf( __( 'For premium features, add-ons and priority email support, %1$s upgrade to pro%2$s.', 'loginpress' ), '<a href="https://wpbrigade.com/wordpress/plugins/loginpress-pro/?utm_source=loginpress-lite&utm_medium=help-page&utm_campaign=pro-upgrade" target="_blank">', '</a>' );
219
+ }else{
220
+ $html .= 'For premium features, add-ons and priority email support, Please submit a question <a href="https://loginpress.pro/contact/" target="_blank">here</a>!';
221
+ }
222
+
223
  $html .="<br /><br />";
224
+ $html .= 'Found a bug or have a feature request? Please submit an issue <a href="https://loginpress.pro/contact/" target="_blank">here</a>!';
225
  $html .= '<pre><textarea rows="25" cols="75" readonly="readonly">';
226
  $html .= LoginPress_Log_Info::get_sysinfo();
227
  $html .= '</textarea></pre>';
css/style.css CHANGED
@@ -219,7 +219,7 @@ html[dir="rtl"] .loginpress-premium{
219
  .form-table td fieldset label{
220
  font-size: 13px;
221
  }
222
- .site_key, .secret_key, .captcha_theme, .captcha_language, .captcha_enable, .privacy_policy, .rename_email_send_to{
223
  display: none;
224
  }
225
 
219
  .form-table td fieldset label{
220
  font-size: 13px;
221
  }
222
+ .site_key, .secret_key, .captcha_theme, .captcha_language, .good_score, .captcha_enable, .privacy_policy, .rename_email_send_to{
223
  display: none;
224
  }
225
 
custom.php CHANGED
@@ -7,7 +7,7 @@ class LoginPress_Entities {
7
  *
8
  * @var string
9
  * @since 1.0.0
10
- * @version 1.1.26
11
  */
12
  public $loginpress_key;
13
 
@@ -25,7 +25,7 @@ class LoginPress_Entities {
25
  * Hook into actions and filters
26
  *
27
  * @since 1.0.0
28
- * @version 1.1.26
29
  */
30
  private function _hooks() {
31
 
@@ -66,7 +66,7 @@ class LoginPress_Entities {
66
  * Enqueue jQuery and use wp_localize_script.
67
  *
68
  * @since 1.0.9
69
- * @version 1.1.26
70
  */
71
  function loginpress_customizer_js() {
72
 
@@ -81,12 +81,14 @@ class LoginPress_Entities {
81
  wp_enqueue_script( 'loginpress-control-script', plugins_url( 'js/customizer.js' , LOGINPRESS_ROOT_FILE ), array( 'customize-controls' ), LOGINPRESS_VERSION, true );
82
 
83
  // Get Background URL for use in Customizer JS.
84
- $user = wp_get_current_user();
85
- $name = empty( $user->user_firstname ) ? ucfirst( $user->display_name ) : ucfirst( $user->user_firstname );
86
- $loginpress_bg = get_option( 'loginpress_customization');
 
 
87
  $loginpress_bg_url = $loginpress_bg['setting_background'] ? $loginpress_bg['setting_background'] : false;
88
 
89
- if( $_GET['autofocus'] == 'loginpress_panel' ) { // 1.1.26
90
  $loginpress_auto_focus = true;
91
  } else {
92
  $loginpress_auto_focus = false;
@@ -103,6 +105,7 @@ class LoginPress_Entities {
103
  'attachment_nonce' => wp_create_nonce( 'loginpress-attachment-nonce' ),
104
  'preset_loader' => includes_url( 'js/tinymce/skins/lightgray/img/loader.gif' ),
105
  'autoFocusPanel' => $loginpress_auto_focus,
 
106
  );
107
 
108
  wp_localize_script( 'loginpress-customize-control', 'loginpress_script', $loginpress_localize );
@@ -1937,7 +1940,7 @@ class LoginPress_Entities {
1937
  * This function is removed the error messages in the customizer.
1938
  * @param array $errors [description]
1939
  * @param string $redirect_to [description]
1940
- * @since 1.1.26
1941
  */
1942
  function remove_error_messages_in_wp_customizer( $errors, $redirect_to ) {
1943
 
7
  *
8
  * @var string
9
  * @since 1.0.0
10
+ * @version 1.2.0
11
  */
12
  public $loginpress_key;
13
 
25
  * Hook into actions and filters
26
  *
27
  * @since 1.0.0
28
+ * @version 1.2.0
29
  */
30
  private function _hooks() {
31
 
66
  * Enqueue jQuery and use wp_localize_script.
67
  *
68
  * @since 1.0.9
69
+ * @version 1.2.1
70
  */
71
  function loginpress_customizer_js() {
72
 
81
  wp_enqueue_script( 'loginpress-control-script', plugins_url( 'js/customizer.js' , LOGINPRESS_ROOT_FILE ), array( 'customize-controls' ), LOGINPRESS_VERSION, true );
82
 
83
  // Get Background URL for use in Customizer JS.
84
+ $user = wp_get_current_user();
85
+ $name = empty( $user->user_firstname ) ? ucfirst( $user->display_name ) : ucfirst( $user->user_firstname );
86
+ $loginpress_bg = get_option( 'loginpress_customization');
87
+ $loginpress_st = get_option( 'loginpress_setting');
88
+ $cap_type = isset( $loginpress_st['recaptcha_type'] ) ? $loginpress_st['recaptcha_type'] : 'v2-robot'; // 1.2.1
89
  $loginpress_bg_url = $loginpress_bg['setting_background'] ? $loginpress_bg['setting_background'] : false;
90
 
91
+ if( isset( $_GET['autofocus'] ) && $_GET['autofocus'] == 'loginpress_panel' ) { // 1.2.0
92
  $loginpress_auto_focus = true;
93
  } else {
94
  $loginpress_auto_focus = false;
105
  'attachment_nonce' => wp_create_nonce( 'loginpress-attachment-nonce' ),
106
  'preset_loader' => includes_url( 'js/tinymce/skins/lightgray/img/loader.gif' ),
107
  'autoFocusPanel' => $loginpress_auto_focus,
108
+ 'recaptchaType' => $cap_type,
109
  );
110
 
111
  wp_localize_script( 'loginpress-customize-control', 'loginpress_script', $loginpress_localize );
1940
  * This function is removed the error messages in the customizer.
1941
  * @param array $errors [description]
1942
  * @param string $redirect_to [description]
1943
+ * @since 1.2.0
1944
  */
1945
  function remove_error_messages_in_wp_customizer( $errors, $redirect_to ) {
1946
 
img/icon.svg ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ width="23.3px" height="18.2px" viewBox="0 0 23.3 18.2" style="enable-background:new 0 0 23.3 18.2;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#FFFFFF;}
7
+ </style>
8
+ <g>
9
+ <g>
10
+ <path class="st0" d="M13.3,8.8c-0.6-0.4-1.1-0.6-1.6-0.5c-0.6,0-1.2,0.4-1.8,1.2c-0.7,0.9-1.2,2-2.5,2.3c0.7,0.8,1.7,1.3,2.7,1.3
11
+ c1.3,0,2.7-0.7,3.7-2.3C13.1,10.3,13,9.6,13.3,8.8z"/>
12
+ <path class="st0" d="M23,5.3C23,5.3,23,5.3,23,5.3c-0.2,0-0.3,0.1-0.4,0.2c-4.4,1.7-3.5,1.3-7.9,3c-0.2,0.1-0.3,0.1-0.4,0.2
13
+ c-0.2,0.2-0.2,0.6-0.1,0.8c0.1,0.2,0.4,0.5,0.8,0.5c0.1,0,0.1,0,0.2,0c0.4-0.1,3.4-1.9,7.8-3.9C23,6,23.1,5.9,23.2,5.8
14
+ c0.1-0.1,0.2-0.3,0.1-0.3C23.3,5.4,23.1,5.3,23,5.3z"/>
15
+ </g>
16
+ <g>
17
+ <path class="st0" d="M17,10.6c-0.2,0.7-0.5,1.4-0.8,1.9c-1.1,1.5-2.4,2.7-4.1,3.4l-0.8,0.3L10.6,16c0,0,0,0,0,0
18
+ c0,0.1,0,0.2-0.1,0.3c-0.4,0.3-0.7,0.5-1.1,0.8c0.2,0.1,0.3,0.2,0.5,0.2l1.4,0.5l1.4-0.5c1.9-0.9,3.5-2.2,4.8-4
19
+ c0.8-1.1,1.1-2.4,1.3-3.7c-0.6,0.3-1.2,0.6-1.6,0.9C17.1,10.6,17.1,10.6,17,10.6z"/>
20
+ <path class="st0" d="M11.3,1.6c1.8,0.9,3.5,1.5,6.2,1.8c0.1,0.8,0.1,1.6,0.1,2.3c0.2-0.1,0.4-0.1,0.5-0.2c0.3-0.1,0.6-0.2,1-0.3
21
+ c0-0.8-0.1-1.7-0.2-2.5c0-0.4-0.2-0.6-0.6-0.7c-2.7-0.3-4.5-0.8-6.4-1.8c0,0-0.5-0.2-0.6-0.2l-0.5,0.1C8.6,1.1,6.4,1.7,4.3,2
22
+ C3.9,2,3.7,2.3,3.7,2.7C3.5,3.9,3.5,5.1,3.5,6.2c0.1,0,0.1-0.1,0.2-0.1c0.1,0,0.2,0,0.3,0c0.3,0.2,0.5,0.5,0.8,0.7
23
+ C4.8,6.9,4.9,7,5,7c0-1.1,0-2.3,0.1-3.6C7.1,3.1,9.2,2.4,11.3,1.6z"/>
24
+ </g>
25
+ <g>
26
+ <path class="st0" d="M9.4,7.7C9.4,7.7,9.4,7.7,9.4,7.7C9.4,7.7,9.4,7.7,9.4,7.7z"/>
27
+ <path class="st0" d="M10.6,16C10.6,16,10.6,16,10.6,16c-0.1-0.4-0.3-0.7-0.4-1.1c0-0.1-0.1-0.1,0-0.3c-0.1,0-0.2,0-0.2,0
28
+ c-0.8,0-1.5-0.3-2.2-0.7c0,0-0.1,0-0.1,0.1c-0.3,0.2-0.6,0.3-0.9,0.4c-0.2,0.1-0.5,0.1-0.7,0c-1.2-0.1-2.2-0.9-2.4-2.1
29
+ c-0.1-0.7,0-1.4,0.3-1.9C4.2,10,4.7,9.5,5.2,9.3c0.1-0.1,0.3-0.1,0.4-0.1C6.5,9,7.3,9.2,7.9,9.7C8,9.6,8.1,9.4,8.3,9.1
30
+ c0.1-0.2,0.3-0.4,0.4-0.6C9,8.3,9,8,9.4,7.7c0,0,0,0,0,0C9.1,7.9,8.6,7.6,8.6,7.3c0-0.4-0.1-0.7-0.1-1.1c0-0.2-0.1-0.3-0.3-0.3
31
+ C7.7,5.8,7.1,5.6,6.4,5.5C6.2,5.5,6,5.6,6,5.8C5.9,6.1,5.7,6.4,5.6,6.7C5.5,6.9,5.2,7,5,7C4.9,7,4.8,6.9,4.7,6.8
32
+ C4.4,6.6,4.2,6.4,3.9,6.2c-0.1-0.1-0.2-0.1-0.3,0c-0.1,0-0.1,0.1-0.2,0.1c-0.5,0.3-1,0.7-1.5,1C1.8,7.4,1.8,7.6,1.8,7.7
33
+ C1.9,8,2,8.3,2.1,8.5C2.3,9,2.1,9.4,1.6,9.4c-0.3,0-0.6,0-0.9,0.1c-0.1,0-0.3,0.1-0.3,0.2c-0.1,0.7-0.3,1.4-0.4,2.1
34
+ C0,11.9,0.1,12,0.2,12c0.3,0.2,0.6,0.3,0.9,0.4c0.4,0.2,0.5,0.6,0.2,0.9c-0.2,0.3-0.5,0.5-0.7,0.8c-0.1,0.1-0.1,0.2,0,0.3
35
+ c0.3,0.7,0.7,1.3,1.2,1.8c0.1,0.1,0.2,0.1,0.3,0.1c0.3-0.1,0.7-0.2,1-0.4c0.3-0.1,0.7,0.2,0.7,0.5c0,0.3,0,0.7,0,1
36
+ c0,0.2,0.1,0.3,0.3,0.3c0.7,0.1,1.3,0.2,2,0.4c0.2,0,0.3,0,0.3-0.2c0.1-0.3,0.3-0.6,0.4-0.9c0.1-0.2,0.2-0.4,0.4-0.4
37
+ c0.2-0.1,0.4,0,0.5,0.1c0.2,0.2,0.5,0.5,0.7,0.7c0.1,0.1,0.2,0.1,0.3,0c0.2-0.1,0.4-0.3,0.6-0.5c0.4-0.3,0.7-0.5,1.1-0.8
38
+ C10.6,16.3,10.6,16.1,10.6,16z"/>
39
+ </g>
40
+ </g>
41
+ </svg>
js/customize-controls.js CHANGED
@@ -1473,10 +1473,13 @@ jQuery(document).ready(function($) {
1473
  $("<style type='text/css' id='loginpress-scbg-size'></style>").appendTo(loginpress_find('head'));
1474
  $("<style type='text/css' id='loginpress-scbg-repeat'></style>").appendTo(loginpress_find('head'));
1475
 
1476
- if ( loginpress_script.autoFocusPanel ) { // Auto Focus on LoginPress Panel // 1.1.26
1477
  wp.customize.panel("loginpress_panel").focus();
1478
  }
1479
 
 
 
 
1480
  });
1481
 
1482
  })(jQuery);
1473
  $("<style type='text/css' id='loginpress-scbg-size'></style>").appendTo(loginpress_find('head'));
1474
  $("<style type='text/css' id='loginpress-scbg-repeat'></style>").appendTo(loginpress_find('head'));
1475
 
1476
+ if ( loginpress_script.autoFocusPanel ) { // Auto Focus on LoginPress Panel // 1.2.0
1477
  wp.customize.panel("loginpress_panel").focus();
1478
  }
1479
 
1480
+ if ( 'v2-robot' != loginpress_script.recaptchaType ) { // Disabled reCaptcha Size Option in customizer. // 1.2.1 - 2.1.2 Pro
1481
+ $("#customize-control-loginpress_customization-recaptcha_size select").attr('disabled', 'disabled');
1482
+ }
1483
  });
1484
 
1485
  })(jQuery);
loginpress.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: LoginPress - Customizing the WordPress Login
4
  * Plugin URI: https://WPBrigade.com/wordpress/plugins/loginpress/
5
  * Description: LoginPress is the best <code>wp-login</code> Login Page Customizer plugin by <a href="https://wpbrigade.com/">WPBrigade</a> which allows you to completely change the layout of login, register and forgot password forms.
6
- * Version: 1.2.0
7
  * Author: WPBrigade
8
  * Author URI: https://WPBrigade.com/
9
  * Text Domain: loginpress
@@ -22,7 +22,7 @@ if ( ! class_exists( 'LoginPress' ) ) :
22
  /**
23
  * @var string
24
  */
25
- public $version = '1.2.0';
26
 
27
  /**
28
  * @var The single instance of the class
3
  * Plugin Name: LoginPress - Customizing the WordPress Login
4
  * Plugin URI: https://WPBrigade.com/wordpress/plugins/loginpress/
5
  * Description: LoginPress is the best <code>wp-login</code> Login Page Customizer plugin by <a href="https://wpbrigade.com/">WPBrigade</a> which allows you to completely change the layout of login, register and forgot password forms.
6
+ * Version: 1.2.1
7
  * Author: WPBrigade
8
  * Author URI: https://WPBrigade.com/
9
  * Text Domain: loginpress
22
  /**
23
  * @var string
24
  */
25
+ public $version = '1.2.1';
26
 
27
  /**
28
  * @var The single instance of the class
readme.txt CHANGED
@@ -3,8 +3,8 @@ Requires at least: 4.0
3
  Tested up to: 5.2
4
  Contributors: WPBrigade, hiddenpearls, AbdulWahab610
5
  Author URI: https://wpbrigade.com
6
- Tags: wp-login, login, login customizer, custom login, wordpress login, login customizer, custom login page, login error, login page style, loginpress
7
- Stable tag: 1.2.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -214,6 +214,10 @@ Please visit <a target="_blank" rel="friend" href="https://WPBrigade.com/wordpre
214
 
215
  == Changelog ==
216
 
 
 
 
 
217
  = 1.2.0 - 2019-06-09 =
218
  * Bugfix: Login error message in Customizer.
219
  * Enhancement: Auto Focus on the LoginPress Panel in Customizer.
@@ -312,7 +316,7 @@ Please visit <a target="_blank" rel="friend" href="https://WPBrigade.com/wordpre
312
 
313
  = 1.1.6 - 2018-06-25 =
314
  * Bugfix: Forget & Registration Form Transparency issue.
315
- * Bugfix: license issue fix for premium users.
316
  * Update: LoginPress addons ( Auto Login, Login Redirects, Social Login ) and LoginPress Pro.
317
  * Compatibility: Compatible with WordPress 4.9.
318
 
@@ -324,7 +328,7 @@ Please visit <a target="_blank" rel="friend" href="https://WPBrigade.com/wordpre
324
  * Compatibility: Compatible with WordPress 4.9.
325
 
326
  = 1.1.4 - 2018-03-31 =
327
- * Bugfix: addons notice links
328
 
329
  = 1.1.3 - 2018-03-30 =
330
  * New Feature: Compatible with Multisite.
@@ -336,84 +340,84 @@ Please visit <a target="_blank" rel="friend" href="https://WPBrigade.com/wordpre
336
  * New Feature: Introducing Login Button (Padding, Padding top, Padding bottom, Radius, Shadow, Opacity, Text size) control.
337
  * New Feature: Introducing Footer Copyright Text (Enable / Disable) control.
338
  * New Feature: Introducing Brand text position control in footer.
339
- * Enhancement: Compatible with Plugin Password Protected.
340
- * Enhancement: Compatible with Plugin Divi 100 Login Page.
341
- * Enhancement: Compatible with Plugin Fusion Builder.
342
- * Enhancement: Code refactoring.
343
  * Bugfix: Login Logo issue in mobile Responsive.
344
  * Bugfix: Form Background Color issue.
345
  * Bugfix: Footer text issue in Customizer.
346
  * Bugfix: Typos in Customizer.
 
 
 
 
347
  * Compatibility: Compatible with WordPress 4.9.
348
 
349
  = 1.1.2 - 2018-01-20 =
350
- * Compatibility: Compatible with WordPress 4.9.
351
- * Bugfix: logo sizing
352
  * Bugfix: Compatibility issue with PHP 5.3
 
353
 
354
  = 1.1.1 - 2018-01-19 =
355
  * Compatibility: Compatible with WordPress 4.9.
356
- * Bugfix: default background fixed
357
 
358
  = 1.1.0 - 2018-01-19 =
359
- * Compatibility: Compatible with WordPress 4.9.
360
  * New Feature: Introducing Background Gallery with a selected set of HD Backgrounds for Login Screen.
361
  * New Feature: Launched LoginPress addons (Auto Login, Hide Login, Login Redirects, Social Login, Login Widget, Limit Login Attempts)
362
  * New Feature: Login Addons can be installed from addons page within the plugin.
363
  * New Feature: Launched login logout menu addon on wordpress.org can be installed from LoginPress addons screen.
364
  * Bugfix: Custom Previewer Icon issue on Preview screen
365
  * Bugfix: Date_function() is deprecated
366
- * Enhancement: Code refactoring
 
367
 
368
  = 1.0.23 - 2017-12-26 =
369
- * Compatibility: Compatible with WordPress 4.9.1
370
  * New Feature: Implement Edit Shortcut Icons in the Customizer Preview.
371
- * Enhancement: Improved the UI/UX of the whole plugin.
372
- * Enhancement: Apply live Google Fonts on footer text in Customizer (Pro Feature).
373
  * Bugfix: Welcome messages in Customizer.
374
  * Bugfix: Activation multiple plugins issue.
375
  * Bugfix: PHP 7 Warning.
376
  * Bugfix: RTL Settings pages.
377
  * Bugfix: Typo in log file.
378
  * Bugfix: Optimized plugin speed and code improvement.
 
 
 
379
 
380
 
381
  = 1.0.22 - 2017-09-08 =
382
  * New Feature: Custom Password Field on Registration Form.
383
  * New Feature: Should be Login with Username and/or Email Address.
384
- * Enhancement: LoginPress Customization array in configuration. "Help Page"
385
  * Bugfix: array_key_exists(); on installation.
 
386
 
387
  = 1.0.21 - 2017-08-25 =
388
- * Bugfix: Translation bug fixed which changes multilingual backend to english.
389
 
390
  = 1.0.20 - 2017-08-25 =
391
- * Enhancement: Make Placeholder in customizer welcome input fields
392
- * Bugfix: CSS Confliction with Jetpack
393
- * Bugfix: optin form style issue on RTL WP
394
- * Bugfix: welcome message support issue
395
 
396
  = 1.0.19 - 2017-08-22 =
397
- * Enhancement: (New Feature) User Login with Email only.
398
- * Enhancement: (New Feature) Introduced Help Page with System Info.
399
- * Enhancement: (New Feature) Introduced Add-ons page, list of all possible add-ons.
400
- * Enhancement: (New Feature) Introduced Export/Import settings page.
401
- * Enhancement: (New Feature) Compatible with WPML.
402
  * Enhancement: Add 'px' automatically in input field.
403
- * Bugfix: code cleanup.
404
 
405
  = 1.0.18 - 2017-07-03 =
406
- * Enhancement: Set login session expiration time.
407
  * Bugfix: Compatible with Rename wp-login.php
408
  * Bugfix: Conflict with Leaflet Maps Marker.
409
- * Bugfix: Password Reset Success Message
410
  * Bugfix: Enqueue settings page CSS & JS files only on settings page.
411
  * Bugfix: Optimized plugin speed and code improvement.
 
412
 
413
 
414
  = 1.0.17 - 2017-06-14 =
415
- * Enhancement: Compatible with 4.8
416
  * Enhancement: Pro features promo introducing in Free version.
 
417
 
418
  = 1.0.16 - 2017-06-09 =
419
  * Bugfix: Login errors confliction with WooCommerce login form.
@@ -426,20 +430,20 @@ Please visit <a target="_blank" rel="friend" href="https://WPBrigade.com/wordpre
426
  * Enhancement: Code improvement.
427
 
428
  = 1.0.15 - 2017-05-31 =
429
- * Enhancement: opt-in for plugin users.
430
  * Enhancement: Add footer link through customizer.
431
- * Enhancement: Code cleanup
432
 
433
  = 1.0.14 - 2017-04-29 =
434
  * Bugfix: Backgrounds and Colors for pre-defined templates.
435
- * Enhancement: Code cleanup
436
 
437
  = 1.0.13 - 2017-04-14 =
438
- * Bugfix: Code improvement
439
  * Enhancement: Introducing Pro features e.g Google fonts, Google reCaptcha. Adding compatibility for those features in Free version.
 
440
 
441
  = 1.0.12 - 2017-03-23 =
442
- * Bugfix: Remove conflictions
443
  * Enhancement: Add Button to deactivate plugin without feedback.
444
 
445
 
@@ -455,40 +459,40 @@ Please visit <a target="_blank" rel="friend" href="https://WPBrigade.com/wordpre
455
  * Bugfix: Default background issue fixed.
456
 
457
  = 1.0.9 - 2017-02-01 =
458
- * Bugfix: path issue in 1.0.8
459
 
460
  = 1.0.8 - 2017-02-01 =
461
- * Enhancement: Reset settings option added
462
- * Enhancement: Login Page themes launch
463
- * Enhancement: Added Premium version
464
 
465
  = 1.0.7 - 2017-01-24 =
466
  * Bug fix: Color and Background management fixed and themes launch.
467
 
468
  = 1.0.6 - 2017-01-20 =
469
- * Bug fix: site lock out bug fixed.
470
 
471
  = 1.0.5 - 2017-01-13 =
472
  * Bug fix: Redirect 404 page error.
473
 
474
  = 1.0.4 - 2017-01-12 =
475
  * Bug fix: Default background path fixed.
476
- * Bug fix: bugfix for PHP 5.3
477
 
478
  = 1.0.3 - 2017-01-06 =
479
  * Bug fix: Default background.
480
  * Bug fix: Responsive layout.
481
 
482
  = 1.0.2 - 2016-12-24 =
483
- * code cleanup and readme update.
484
 
485
  = 1.0.1 - 2016-11-08 =
486
- * Changing menu name to LoginPress in WordPress Customizer
487
 
488
  = 1.0.0 - 2016-09-08 =
489
  * Initial Release.
490
 
491
  == Upgrade Notice ==
492
 
493
- = 1.2.0=
494
  * Important Release, upgrade immediately.
3
  Tested up to: 5.2
4
  Contributors: WPBrigade, hiddenpearls, AbdulWahab610
5
  Author URI: https://wpbrigade.com
6
+ Tags: wp-login, login, login customizer, custom login, wordpress login,
7
+ Stable tag: 1.2.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
214
 
215
  == Changelog ==
216
 
217
+ = 1.2.1 - 2019-07-08 =
218
+ * Bugfix: PHP warning.
219
+ * Enhancement: Update log file.
220
+
221
  = 1.2.0 - 2019-06-09 =
222
  * Bugfix: Login error message in Customizer.
223
  * Enhancement: Auto Focus on the LoginPress Panel in Customizer.
316
 
317
  = 1.1.6 - 2018-06-25 =
318
  * Bugfix: Forget & Registration Form Transparency issue.
319
+ * Bugfix: License issue fix for premium users.
320
  * Update: LoginPress addons ( Auto Login, Login Redirects, Social Login ) and LoginPress Pro.
321
  * Compatibility: Compatible with WordPress 4.9.
322
 
328
  * Compatibility: Compatible with WordPress 4.9.
329
 
330
  = 1.1.4 - 2018-03-31 =
331
+ * Bugfix: Addons notice links.
332
 
333
  = 1.1.3 - 2018-03-30 =
334
  * New Feature: Compatible with Multisite.
340
  * New Feature: Introducing Login Button (Padding, Padding top, Padding bottom, Radius, Shadow, Opacity, Text size) control.
341
  * New Feature: Introducing Footer Copyright Text (Enable / Disable) control.
342
  * New Feature: Introducing Brand text position control in footer.
 
 
 
 
343
  * Bugfix: Login Logo issue in mobile Responsive.
344
  * Bugfix: Form Background Color issue.
345
  * Bugfix: Footer text issue in Customizer.
346
  * Bugfix: Typos in Customizer.
347
+ * Enhancement: Compatible with Plugin Password Protected.
348
+ * Enhancement: Compatible with Plugin Divi 100 Login Page.
349
+ * Enhancement: Compatible with Plugin Fusion Builder.
350
+ * Enhancement: Code refactoring.
351
  * Compatibility: Compatible with WordPress 4.9.
352
 
353
  = 1.1.2 - 2018-01-20 =
354
+ * Bugfix: Logo sizing
 
355
  * Bugfix: Compatibility issue with PHP 5.3
356
+ * Compatibility: Compatible with WordPress 4.9.
357
 
358
  = 1.1.1 - 2018-01-19 =
359
  * Compatibility: Compatible with WordPress 4.9.
360
+ * Bugfix: Default background fixed
361
 
362
  = 1.1.0 - 2018-01-19 =
 
363
  * New Feature: Introducing Background Gallery with a selected set of HD Backgrounds for Login Screen.
364
  * New Feature: Launched LoginPress addons (Auto Login, Hide Login, Login Redirects, Social Login, Login Widget, Limit Login Attempts)
365
  * New Feature: Login Addons can be installed from addons page within the plugin.
366
  * New Feature: Launched login logout menu addon on wordpress.org can be installed from LoginPress addons screen.
367
  * Bugfix: Custom Previewer Icon issue on Preview screen
368
  * Bugfix: Date_function() is deprecated
369
+ * Enhancement: Code refactoring.
370
+ * Compatibility: Compatible with WordPress 4.9.
371
 
372
  = 1.0.23 - 2017-12-26 =
 
373
  * New Feature: Implement Edit Shortcut Icons in the Customizer Preview.
 
 
374
  * Bugfix: Welcome messages in Customizer.
375
  * Bugfix: Activation multiple plugins issue.
376
  * Bugfix: PHP 7 Warning.
377
  * Bugfix: RTL Settings pages.
378
  * Bugfix: Typo in log file.
379
  * Bugfix: Optimized plugin speed and code improvement.
380
+ * Enhancement: Improved the UI/UX of the whole plugin.
381
+ * Enhancement: Apply live Google Fonts on footer text in Customizer (Pro Feature).
382
+ * Compatibility: Compatible with WordPress 4.9.1
383
 
384
 
385
  = 1.0.22 - 2017-09-08 =
386
  * New Feature: Custom Password Field on Registration Form.
387
  * New Feature: Should be Login with Username and/or Email Address.
 
388
  * Bugfix: array_key_exists(); on installation.
389
+ * Enhancement: LoginPress Customization array in configuration. "Help Page"
390
 
391
  = 1.0.21 - 2017-08-25 =
392
+ * Bugfix: Translation bug fixed which changes multilingual backend to English.
393
 
394
  = 1.0.20 - 2017-08-25 =
395
+ * Bugfix: CSS Confliction with Jetpack.
396
+ * Bugfix: Optin form style issue on RTL WP.
397
+ * Bugfix: Welcome message support issue.
398
+ * Enhancement: Make Placeholder in customizer welcome input fields.
399
 
400
  = 1.0.19 - 2017-08-22 =
401
+ * New Feature: User Login with Email only.
402
+ * New Feature: Introduced Help Page with System Info.
403
+ * New Feature: Introduced Add-ons page, list of all possible Add-Ons.
404
+ * New Feature: Introduced Export/Import settings page.
405
+ * New Feature: Compatible with WPML.
406
  * Enhancement: Add 'px' automatically in input field.
407
+ * Enhancement: Code refactoring.
408
 
409
  = 1.0.18 - 2017-07-03 =
 
410
  * Bugfix: Compatible with Rename wp-login.php
411
  * Bugfix: Conflict with Leaflet Maps Marker.
412
+ * Bugfix: Password Reset Success Message.
413
  * Bugfix: Enqueue settings page CSS & JS files only on settings page.
414
  * Bugfix: Optimized plugin speed and code improvement.
415
+ * Enhancement: Set login session expiration time.
416
 
417
 
418
  = 1.0.17 - 2017-06-14 =
 
419
  * Enhancement: Pro features promo introducing in Free version.
420
+ * Enhancement: Compatible with 4.8
421
 
422
  = 1.0.16 - 2017-06-09 =
423
  * Bugfix: Login errors confliction with WooCommerce login form.
430
  * Enhancement: Code improvement.
431
 
432
  = 1.0.15 - 2017-05-31 =
433
+ * Enhancement: Opt-in for plugin users.
434
  * Enhancement: Add footer link through customizer.
435
+ * Enhancement: Code refactoring.
436
 
437
  = 1.0.14 - 2017-04-29 =
438
  * Bugfix: Backgrounds and Colors for pre-defined templates.
439
+ * Enhancement: Code refactoring.
440
 
441
  = 1.0.13 - 2017-04-14 =
 
442
  * Enhancement: Introducing Pro features e.g Google fonts, Google reCaptcha. Adding compatibility for those features in Free version.
443
+ * Enhancement: Code improvement.
444
 
445
  = 1.0.12 - 2017-03-23 =
446
+ * Bugfix: Remove conflictions.
447
  * Enhancement: Add Button to deactivate plugin without feedback.
448
 
449
 
459
  * Bugfix: Default background issue fixed.
460
 
461
  = 1.0.9 - 2017-02-01 =
462
+ * Bugfix: Path issue in 1.0.8
463
 
464
  = 1.0.8 - 2017-02-01 =
465
+ * Enhancement: Reset settings option added.
466
+ * Enhancement: Login Page themes launch.
467
+ * Enhancement: Added Premium version.
468
 
469
  = 1.0.7 - 2017-01-24 =
470
  * Bug fix: Color and Background management fixed and themes launch.
471
 
472
  = 1.0.6 - 2017-01-20 =
473
+ * Bug fix: Site lock out bug fixed.
474
 
475
  = 1.0.5 - 2017-01-13 =
476
  * Bug fix: Redirect 404 page error.
477
 
478
  = 1.0.4 - 2017-01-12 =
479
  * Bug fix: Default background path fixed.
480
+ * Bug fix: Bugfix for PHP 5.3
481
 
482
  = 1.0.3 - 2017-01-06 =
483
  * Bug fix: Default background.
484
  * Bug fix: Responsive layout.
485
 
486
  = 1.0.2 - 2016-12-24 =
487
+ * Enhancement: Code refactoring and readme update.
488
 
489
  = 1.0.1 - 2016-11-08 =
490
+ * Enhancement: Changing panel name "LoginPress" in WordPress Customizer.
491
 
492
  = 1.0.0 - 2016-09-08 =
493
  * Initial Release.
494
 
495
  == Upgrade Notice ==
496
 
497
+ = 1.2.1 =
498
  * Important Release, upgrade immediately.