Custom Login Page Customizer | LoginPress - Version 1.2.2

Version Description

  • 2019-07-15 =
  • New Feature: One click Install / Activate / Deactivate Add-Ons on addons page.
  • Bugfix: Enable / Disable "Back To" link issue in customizer.
  • Bugfix: "remember me" color issue in customizer.
  • Bugfix: Login form transparacny issue in customizer.
  • Bugfix: Optimized plugin speed and code improvement.
  • Enhancement: Allow SVG file type if SVG mime enable in WordPress.
Download this release

Release Info

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

Code changes from version 1.2.1 to 1.2.2

classes/class-loginpress-addons.php CHANGED
@@ -76,13 +76,60 @@ if ( ! class_exists( 'LoginPress_Addons' ) ) :
76
  <?php echo wpautop( wp_strip_all_tags( $addon->excerpt ) ); ?>
77
  <p>
78
  <?php
79
- $this->check_plugin_status( $addon->id, $addon->slug, $this->convert_to_array( $addon->categories ) );
 
80
  ?>
81
  </p>
 
 
 
82
  </div>
83
 
84
  <?php }
85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  function _addon_card_free( $addon ) { ?>
87
 
88
  <div class="loginpress-extension<?php if( in_array('loginpress-free-add-ons', $this->convert_to_array($addon->categories) ) ){ echo ' loginpress-free-add-ons'; } ?>">
@@ -92,26 +139,45 @@ if ( ! class_exists( 'LoginPress_Addons' ) ) :
92
  </a>
93
 
94
  <?php echo wpautop( wp_strip_all_tags( $addon->excerpt ) );
95
-
96
  if( in_array('loginpress-free-add-ons', $this->convert_to_array($addon->categories) ) ){
97
  $slug = $addon->slug.'/'.$addon->slug.'.php';
98
 
99
- if ( is_plugin_active( $slug ) ) {
 
 
 
 
 
 
 
 
 
 
 
100
 
101
- echo sprintf( esc_html__( '%1$s Already Installed %2$s', 'loginpress' ), '<button class="button-primary">', '</button>' );
102
- }else if ( array_key_exists( $slug , $this->plugins_list ) ) {
 
 
 
103
 
104
- $link = wp_nonce_url( add_query_arg( array( 'action' => 'activate', 'plugin' => $slug ), admin_url( 'plugins.php' ) ), 'activate-plugin_' . $slug ) ;
105
- echo sprintf( esc_html__( '%1$s Activate Plugin %2$s', 'loginpress' ), '<a href="' . $link . '" class="button-primary">', '</a>' );
 
 
106
  }else{
107
 
108
  $action = 'install-plugin';
109
  $slug = 'login-logout-menu';
110
  $link = wp_nonce_url( add_query_arg( array( 'action' => $action, 'plugin' => $slug ), admin_url( 'update.php' ) ), $action . '_' . $slug );
111
  ?>
112
- <p>
113
- <a target="_self" href="<?php echo $link; ?>" class="button-primary">INSTALL</a>
114
- </p>
 
 
 
115
  <?php
116
  }
117
  }else{
@@ -123,6 +189,7 @@ if ( ! class_exists( 'LoginPress_Addons' ) ) :
123
  <?php
124
  }
125
  ?>
 
126
  </div>
127
 
128
  <?php }
@@ -187,21 +254,93 @@ if ( ! class_exists( 'LoginPress_Addons' ) ) :
187
 
188
  if ( $this->is_addon_licensed ( $categories ) ) {
189
 
190
- if ( is_plugin_active( $slug ) ) {
 
 
 
 
191
 
192
- echo sprintf( esc_html__( '%1$s Already Installed %2$s', 'loginpress' ), '<button class="button-primary">', '</button>' );
 
193
  }
194
- else if ( array_key_exists( $slug , $this->plugins_list ) ) {
 
 
 
 
195
 
196
- $link = wp_nonce_url( add_query_arg( array( 'action' => 'activate', 'plugin' => $slug ), admin_url( 'plugins.php' ) ), 'activate-plugin_' . $slug ) ;
197
- echo sprintf( esc_html__( '%1$s Activate Plugin %2$s', 'loginpress' ), '<a href="' . $link . '" class="button-primary">', '</a>' );
 
198
  }
199
  else{
 
 
200
 
201
- $link = wp_nonce_url( add_query_arg( array( 'action' => 'install-plugin', 'plugin' => $slug, 'lgp' => 1, 'id' => $id), admin_url( 'update.php' ) ), 'install-plugin_' . $slug );
202
- echo sprintf( esc_html__( '%1$s Install %2$s', 'loginpress' ), '<a href="' . $link . '" class="button-primary">', '</a>' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
 
204
  ?>
 
 
 
 
 
 
205
  <!-- <a target="_blank" href="https://wpbrigade.com/wordpress/plugins/loginpress-pro/?utm_source=loginpress-lite&utm_medium=addons-coming-soon&utm_campaign=pro-upgrade" class="button-primary">INSTALL NOW</a> -->
206
  <?php
207
  }
@@ -467,11 +606,308 @@ if ( ! class_exists( 'LoginPress_Addons' ) ) :
467
  }
468
  }
469
  @media only screen and (max-width: 600px) {
470
- .loginpress-extension{
471
  width:100%;
 
472
  }
473
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
474
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
475
  </style>
476
 
477
  <div class="wrap loginpress-addons-wrap">
76
  <?php echo wpautop( wp_strip_all_tags( $addon->excerpt ) ); ?>
77
  <p>
78
  <?php
79
+ // $this->check_plugin_status( $addon->id, $addon->slug, $this->convert_to_array( $addon->categories ) );
80
+ $this->sa_check_plugin_status( $addon->id, $addon->slug, $this->convert_to_array( $addon->categories ) );
81
  ?>
82
  </p>
83
+ <?php echo $this->_ajax_responce( $addon->title, $addon->slug ); ?>
84
+ <!-- <input id="<?php // echo $addon->slug ?>" type="checkbox" class="loginpress-radio loginpress-radio-ios" value="<?php // echo $addon->slug ?>"> -->
85
+ <!-- <label for="<?php // echo $addon->slug ?>" class="loginpress-radio-btn"></label> -->
86
  </div>
87
 
88
  <?php }
89
 
90
+ function _ajax_responce( $text, $slug ){
91
+ $html = '<div id="loginpressEnableAddon' . $slug . '" class="loginpress-addon-enable" style="display:none;">
92
+ <div class="loginpress-logo-container">
93
+ <img src="' . plugins_url( "../../loginpress-pro/img/loginpress-logo2.png", __FILE__ ) . '" alt="loginpress">
94
+ <svg class="circular-loader" viewBox="25 25 50 50" >
95
+ <circle class="loader-path" cx="50" cy="50" r="18" fill="none" stroke="#d8d8d8" stroke-width="1" />
96
+ </svg>
97
+ </div>
98
+ <p>' . __( "Activating " . $text . "...", "loginpress" ) . '</p>
99
+ </div>';
100
+ $html .= '<div id="loginpressActivatedAddon' . $slug . '" class="loginpress-install activated" style="display:none">
101
+ <svg class="circular-loader2" viewBox="25 25 50 50" >
102
+ <circle class="loader-path2" cx="50" cy="50" r="18" fill="none" stroke="#00c853" stroke-width="1" />
103
+ </svg>
104
+ <div class="checkmark draw"></div>
105
+ <p>' . __( $text . ' Activated.', 'loginpress' ) . '</p>
106
+ </div>';
107
+ $html .= '<div id="loginpressUnnstallingAddon' . $slug . '" class="loginpress-uninstalling activated" style="display:none">
108
+ <div class="loginpress-logo-container">
109
+ <img src="' . plugins_url( "../../loginpress-pro/img/loginpress-logo2.png", __FILE__ ) . '" alt="loginpress">
110
+ <svg class="circular-loader" viewBox="25 25 50 50" >
111
+ <circle class="loader-path" cx="50" cy="50" r="18" fill="none" stroke="#d8d8d8" stroke-width="1" />
112
+ </svg>
113
+ </div>
114
+ <p>' . __( "Deactivating " . $text . "...", "loginpress" ) . '</p>
115
+ </div>';
116
+ $html .= '<div id="loginpressDeactivatedAddon' . $slug . '" class="loginpress-uninstall activated" style="display:none">
117
+ <svg class="circular-loader2" viewBox="25 25 50 50" >
118
+ <circle class="loader-path2" cx="50" cy="50" r="18" fill="none" stroke="#ff0000" stroke-width="1" />
119
+ </svg>
120
+ <div class="checkmark draw"></div>
121
+ <p>' . __( $text . ' Deactivated.', 'loginpress' ) . '</p>
122
+ </div>';
123
+ $html .= '<div id="loginpressWrongAddon' . $slug . '" class="loginpress-wrong activated" style="display:none">
124
+ <svg class="checkmark_login" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">
125
+ <circle class="checkmark__circle" cx="26" cy="26" r="25" fill="none"></circle>
126
+ <path class="checkmark__check" stroke="#ff0000" fill="none" d="M16 16 36 36 M36 16 16 36"></path>
127
+ </svg>
128
+ <p>' . __( $text . ' Something Wrong.', 'loginpress' ) . '</p>
129
+ </div>';
130
+ return $html;
131
+ }
132
+
133
  function _addon_card_free( $addon ) { ?>
134
 
135
  <div class="loginpress-extension<?php if( in_array('loginpress-free-add-ons', $this->convert_to_array($addon->categories) ) ){ echo ' loginpress-free-add-ons'; } ?>">
139
  </a>
140
 
141
  <?php echo wpautop( wp_strip_all_tags( $addon->excerpt ) );
142
+ $slugid = $addon->slug;
143
  if( in_array('loginpress-free-add-ons', $this->convert_to_array($addon->categories) ) ){
144
  $slug = $addon->slug.'/'.$addon->slug.'.php';
145
 
146
+ if ( is_plugin_active( $slug ) ) { ?>
147
+
148
+ <input name="loginpress_pro_addon_nonce" type="hidden" value="<?php echo wp_create_nonce( 'uninstall_' . $slug ); ?>">
149
+ <input name="loginpress_pro_addon_slug" type="hidden" value="<?php echo $slug; ?>">
150
+ <!-- <a class="button-primary loginpress-uninstall-pro-addon" href="#">Uninstall</a> -->
151
+ <input id="<?php echo $slugid ?>" type="checkbox" checked class="loginpress-radio loginpress-radio-ios loginpress-uninstall-pro-addon" value="<?php echo $slugid ?>">
152
+ <label for="<?php echo $slugid ?>" class="loginpress-radio-btn"></label>
153
+
154
+ <?php
155
+
156
+ // echo sprintf( esc_html__( '%1$s Already Installed %2$s', 'loginpress' ), '<button class="button-primary">', '</button>' );
157
+ } else if ( array_key_exists( $slug , $this->plugins_list ) ) { ?>
158
 
159
+ <input name="loginpress_pro_addon_nonce" type="hidden" value="<?php echo wp_create_nonce( 'install-plugin_' . $slug ); ?>">
160
+ <input name="loginpress_pro_addon_slug" type="hidden" value="<?php echo $slug; ?>">
161
+ <!-- <a class="button-primary loginpress-active-pro-addon" href="#">Activate Plugin</a> -->
162
+ <input id="<?php echo $slugid ?>" type="checkbox" class="loginpress-radio loginpress-radio-ios loginpress-active-pro-addon" value="<?php echo $slugid ?>">
163
+ <label for="<?php echo $slugid ?>" class="loginpress-radio-btn"></label>
164
 
165
+ <?php
166
+
167
+ // $link = wp_nonce_url( add_query_arg( array( 'action' => 'activate', 'plugin' => $slug ), admin_url( 'plugins.php' ) ), 'activate-plugin_' . $slug ) ;
168
+ // echo sprintf( esc_html__( '%1$s Activate Plugin %2$s', 'loginpress' ), '<a href="' . $link . '" class="button-primary">', '</a>' );
169
  }else{
170
 
171
  $action = 'install-plugin';
172
  $slug = 'login-logout-menu';
173
  $link = wp_nonce_url( add_query_arg( array( 'action' => $action, 'plugin' => $slug ), admin_url( 'update.php' ) ), $action . '_' . $slug );
174
  ?>
175
+ <!-- <p> -->
176
+ <!-- <a target="_self" href="<?php // echo $link; ?>" class="button-primary">INSTALL</a> -->
177
+ <!-- </p> -->
178
+
179
+ <input id="<?php echo $slugid ?>" type="checkbox" class="loginpress-radio loginpress-radio-ios loginpress-install-pro-addon" value="<?php echo $slugid ?>">
180
+ <label for="<?php echo $slugid ?>" class="loginpress-radio-btn"></label>
181
  <?php
182
  }
183
  }else{
189
  <?php
190
  }
191
  ?>
192
+ <?php echo $this->_ajax_responce( $addon->title, $addon->slug ); ?>
193
  </div>
194
 
195
  <?php }
254
 
255
  if ( $this->is_addon_licensed ( $categories ) ) {
256
 
257
+ if ( is_plugin_active( $slug ) ) { ?>
258
+
259
+ <input name="loginpress_pro_addon_nonce" type="hidden" value="<?php echo wp_create_nonce( 'uninstall_' . $slug ); ?>">
260
+ <input name="loginpress_pro_addon_slug" type="hidden" value="<?php echo $slug; ?>">
261
+ <a class="button-primary loginpress-uninstall-pro-addon" href="#">Uninstall</a>
262
 
263
+ <?php
264
+ // echo sprintf( esc_html__( '%1$s Already Installed %2$s', 'loginpress' ), '<button class="button-primary">', '</button>' );
265
  }
266
+ else if ( array_key_exists( $slug , $this->plugins_list ) ) { ?>
267
+
268
+ <input name="loginpress_pro_addon_nonce" type="hidden" value="<?php echo wp_create_nonce( 'install-plugin_' . $slug ); ?>">
269
+ <input name="loginpress_pro_addon_slug" type="hidden" value="<?php echo $slug; ?>">
270
+ <a class="button-primary loginpress-active-pro-addon" href="#">Activate Plugin</a>
271
 
272
+ <?php
273
+ // $link = wp_nonce_url( add_query_arg( array( 'action' => 'activate', 'plugin' => $slug ), admin_url( 'plugins.php' ) ), 'activate-plugin_' . $slug ) ;
274
+ // echo sprintf( esc_html__( '%1$s Activate Plugin %2$s', 'loginpress' ), '<a href="' . $link . '" class="button-primary">', '</a>' );
275
  }
276
  else{
277
+ // $link = wp_nonce_url( add_query_arg( array( 'action' => 'install-plugin', 'plugin' => $slug, 'lgp' => 1, 'id' => $id), admin_url( 'update.php' ) ), 'install-plugin_' . $slug );
278
+ // echo sprintf( esc_html__( '%1$s Install %2$s', 'loginpress' ), '<a href="' . $link . '" class="button-primary">', '</a>' );
279
 
280
+ ?>
281
+ <input name="loginpress_pro_addon_nonce" type="hidden" value="<?php echo wp_create_nonce( 'install-plugin_' . $slug ); ?>">
282
+ <input name="loginpress_pro_addon_slug" type="hidden" value="<?php echo $slug; ?>">
283
+ <input name="loginpress_pro_addon_id" type="hidden" value="<?php echo $id; ?>">
284
+ <a class="button-primary loginpress-install-pro-addon" href="#">Install</a>
285
+ <!-- <a target="_blank" href="https://wpbrigade.com/wordpress/plugins/loginpress-pro/?utm_source=loginpress-lite&utm_medium=addons-coming-soon&utm_campaign=pro-upgrade" class="button-primary">INSTALL NOW</a> -->
286
+ <?php
287
+ }
288
+ }
289
+ else {
290
+
291
+ ?>
292
+ <a target="_blank" href="https://wpbrigade.com/wordpress/plugins/loginpress-pro/?utm_source=loginpress-lite&utm_medium=addons-coming-soon&utm_campaign=pro-upgrade" class="button-primary"><?php esc_html_e( 'UPGRADE NOW', 'loginpress' ); ?></a>
293
+ <?php
294
+ }
295
+ }
296
+
297
+ /**
298
+ * Check plugin status
299
+ *
300
+ * @return array
301
+ * @since 1.0.19
302
+ */
303
+ public function sa_check_plugin_status( $id, $slug, $categories = array() ) {
304
+ $slugid = $slug;
305
+ $slug = $slug.'/'.$slug.'.php';
306
+
307
+ if ( $this->is_addon_licensed ( $categories ) ) {
308
+
309
+ if ( is_plugin_active( $slug ) ) { ?>
310
+
311
+ <input name="loginpress_pro_addon_nonce" type="hidden" value="<?php echo wp_create_nonce( 'uninstall_' . $slug ); ?>">
312
+ <input name="loginpress_pro_addon_slug" type="hidden" value="<?php echo $slug; ?>">
313
+ <!-- <a class="button-primary loginpress-uninstall-pro-addon" href="#">Uninstall</a> -->
314
+
315
+ <input id="<?php echo $slugid ?>" type="checkbox" checked class="loginpress-radio loginpress-radio-ios loginpress-uninstall-pro-addon" value="<?php echo $slugid ?>">
316
+ <label for="<?php echo $slugid ?>" class="loginpress-radio-btn"></label>
317
+
318
+ <?php
319
+ // echo sprintf( esc_html__( '%1$s Already Installed %2$s', 'loginpress' ), '<button class="button-primary">', '</button>' );
320
+ }
321
+ else if ( array_key_exists( $slug , $this->plugins_list ) ) { ?>
322
+
323
+ <input name="loginpress_pro_addon_nonce" type="hidden" value="<?php echo wp_create_nonce( 'install-plugin_' . $slug ); ?>">
324
+ <input name="loginpress_pro_addon_slug" type="hidden" value="<?php echo $slug; ?>">
325
+ <input id="<?php echo $slugid ?>" type="checkbox" class="loginpress-radio loginpress-radio-ios loginpress-active-pro-addon" value="<?php echo $slugid ?>">
326
+ <label for="<?php echo $slugid ?>" class="loginpress-radio-btn"></label>
327
+ <!-- <a class="button-primary loginpress-active-pro-addon" href="#">Activate Plugin</a> -->
328
+
329
+ <?php
330
+ // $link = wp_nonce_url( add_query_arg( array( 'action' => 'activate', 'plugin' => $slug ), admin_url( 'plugins.php' ) ), 'activate-plugin_' . $slug ) ;
331
+ // echo sprintf( esc_html__( '%1$s Activate Plugin %2$s', 'loginpress' ), '<a href="' . $link . '" class="button-primary">', '</a>' );
332
+ }
333
+ else{
334
+ // $link = wp_nonce_url( add_query_arg( array( 'action' => 'install-plugin', 'plugin' => $slug, 'lgp' => 1, 'id' => $id), admin_url( 'update.php' ) ), 'install-plugin_' . $slug );
335
+ // echo sprintf( esc_html__( '%1$s Install %2$s', 'loginpress' ), '<a href="' . $link . '" class="button-primary">', '</a>' );
336
 
337
  ?>
338
+ <input name="loginpress_pro_addon_nonce" type="hidden" value="<?php echo wp_create_nonce( 'install-plugin_' . $slug ); ?>">
339
+ <input name="loginpress_pro_addon_slug" type="hidden" value="<?php echo $slug; ?>">
340
+ <input name="loginpress_pro_addon_id" type="hidden" value="<?php echo $id; ?>">
341
+ <input id="<?php echo $slugid ?>" type="checkbox" class="loginpress-radio loginpress-radio-ios loginpress-install-pro-addon" value="<?php echo $slugid ?>">
342
+ <label for="<?php echo $slugid ?>" class="loginpress-radio-btn"></label>
343
+ <!-- <a class="button-primary loginpress-install-pro-addon" href="#">Install</a> -->
344
  <!-- <a target="_blank" href="https://wpbrigade.com/wordpress/plugins/loginpress-pro/?utm_source=loginpress-lite&utm_medium=addons-coming-soon&utm_campaign=pro-upgrade" class="button-primary">INSTALL NOW</a> -->
345
  <?php
346
  }
606
  }
607
  }
608
  @media only screen and (max-width: 600px) {
609
+ .loginpress-extension:nth-child(n){
610
  width:100%;
611
+ margin-left: 0;
612
  }
613
  }
614
+ .loginpress-addon-enable{
615
+ position: absolute;
616
+ top: -2px;;
617
+ left: -2px;
618
+ bottom: -2px;
619
+ right: -2px;
620
+ background: rgba(255,255,255, .9);
621
+ z-index: 100;
622
+ }
623
+ .loginpress-logo-container{
624
+ position: absolute;
625
+ top: 50%;
626
+ left: 50%;
627
+ transform: translate(-50%, -50%);
628
+ width: 250px;
629
+ height: 250px;
630
+ display: flex;
631
+ flex-direction: column;
632
+ align-items: center;
633
+ }
634
+ .loginpress-logo-container img{
635
+ width: auto;
636
+ height: auto;
637
+ position: absolute;
638
+ top: 50%;
639
+ left: 50%;
640
+ transform: translate(-50%, -50%);
641
+ }
642
+ .loginpress-addon-enable p{
643
+ position: absolute;
644
+ bottom: 0;
645
+ left: 0;
646
+ width: 100%;
647
+ text-align: center;
648
+ box-sizing: border-box;
649
+ }
650
+ .loader-path {
651
+ stroke-dasharray: 150,200;
652
+ stroke-dashoffset: -10;
653
+ -webkit-animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
654
+ animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
655
+ stroke-linecap: round;
656
+ }
657
+ @-webkit-keyframes rotate {
658
+ 100% {
659
+ -webkit-transform: rotate(360deg);
660
+ transform: rotate(360deg);
661
+ }
662
+ }
663
 
664
+ @keyframes rotate {
665
+ 100% {
666
+ -webkit-transform: rotate(360deg);
667
+ transform: rotate(360deg);
668
+ }
669
+ }
670
+ .circular-loader{
671
+ -webkit-animation: rotate 2s ease-in-out infinite, color 6s ease-in-out infinite;
672
+ animation: rotate 2s ease-in-out infinite, color 6s ease-in-out infinite;
673
+ stroke-linecap: round;
674
+ }
675
+ @keyframes loader-spin {
676
+ 0% {
677
+ transform: rotate(0deg);
678
+ }
679
+ 100% {
680
+ transform: rotate(360deg);
681
+ }
682
+ }
683
+ @keyframes dash {
684
+ 0% {
685
+ stroke-dasharray: 1,200;
686
+ stroke-dashoffset: 0;
687
+ }
688
+ 50% {
689
+ stroke-dasharray: 89,200;
690
+ stroke-dashoffset: -35;
691
+ }
692
+ 100% {
693
+ stroke-dasharray: 89,200;
694
+ stroke-dashoffset: -124;
695
+ }
696
+ }
697
+ .loginpress-install,.loginpress-uninstall,.loginpress-uninstalling, .loginpress-wrong{
698
+ position: absolute;
699
+ top: -2px;;
700
+ left: -2px;
701
+ bottom: -2px;
702
+ right: -2px;
703
+ background: rgba(255,255,255, .9);
704
+ z-index: 100;
705
+ }
706
+ .loader-path2{
707
+ stroke-dasharray: 150,200;
708
+ stroke-dashoffset: 150px;
709
+ -webkit-animation: dashtwo 1s ease-in-out 1 forwards;
710
+ animation: dashtwo 1s ease-in-out 1 forwards;
711
+ }
712
+ .checkmark__circle {
713
+ stroke-width: 2;
714
+ stroke: #ff0000;
715
+ }
716
+ .checkmark_login {
717
+ width: 150px;
718
+ height: 150px;
719
+ border-radius: 50%;
720
+ display: block;
721
+ stroke-width: 2;
722
+ stroke: #fff;
723
+ stroke-miterlimit: 10;
724
+ margin: 10% auto;
725
+ animation: scale .3s ease-in-out .2s both;
726
+ position: absolute;
727
+ top: 50%;
728
+ left: 50%;
729
+ margin: -75px 0 0 -75px;
730
+ }
731
+ .checkmark__check {
732
+ transform-origin: 50% 50%;
733
+ stroke-dasharray: 29;
734
+ stroke-dashoffset: 29;
735
+ animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.5s forwards;
736
+ }
737
+ @keyframes stroke {
738
+ 100% {
739
+ stroke-dashoffset: 0;
740
+ }
741
+ }
742
+ @keyframes scale {
743
+ 0%, 100% {
744
+ transform: none;
745
+ }
746
+ 50% {
747
+ transform: scale3d(1.1, 1.1, 1);
748
+ }
749
+ }
750
+ @keyframes fill {
751
+ 100% {
752
+ box-shadow: inset 0px 0px 0px 30px #7ac142;
753
+ }
754
+ }
755
+ @keyframes dashtwo {
756
+ 0% {
757
+ stroke-dashoffset: 150px;
758
+ }
759
+ 100% {
760
+ stroke-dashoffset: 20px;
761
+ }
762
+ }
763
+ .circular-loader2, .circular-loader3{
764
+ width: 200px;
765
+ height: 200px;
766
+ top: 50%;
767
+ left: 50%;
768
+ transform: translate(-50%, -50%) rotate(-90deg);
769
+ position: absolute;
770
+ }
771
+ .loginpress-install.activated p{
772
+ position: absolute;
773
+ bottom: 0;
774
+ left: 0;
775
+ text-align: center;
776
+ width: 100%;
777
+ box-sizing: border-box;
778
+ }
779
+ .loginpress-wrong.activated p{
780
+ position: absolute;
781
+ bottom: 0;
782
+ left: 0;
783
+ text-align: center;
784
+ width: 100%;
785
+ box-sizing: border-box;
786
+ color: #ff0000;
787
+ font-weight: 700;
788
+ }
789
+ .checkmark {
790
+ /* display: none; */
791
+ top: 50%;
792
+ position: absolute;
793
+ left: 50%;
794
+ transform: translate(-50%, -50%);
795
+ width: 140px;
796
+ height: 140px;
797
+ }
798
+ .checkmark.draw:after {
799
+ animation-duration: 800ms;
800
+ animation-delay: 1s;
801
+ animation-timing-function: ease;
802
+ animation-name: checkmark;
803
+ transform: scaleX(-1) rotate(135deg);
804
+ opacity: 0;
805
+ animation-fill-mode: forwards;
806
+ }
807
+ .checkmark:after {
808
+ height: 4em;
809
+ width: 2em;
810
+ transform-origin: left top;
811
+ border-right: 2px solid #00c853;
812
+ border-top: 2px solid #00c853;
813
+ content: '';
814
+ left: 42px;
815
+ top: 70px;
816
+ position: absolute;
817
+ }
818
+ .loginpress-uninstall .checkmark:after{
819
+ border-right: 2px solid #ff0000;
820
+ border-top: 2px solid #ff0000;
821
+ }
822
+ .loginpress-uninstall p, .loginpress-uninstalling p{
823
+ position: absolute;
824
+ bottom: 0;
825
+ left: 0;
826
+ text-align: center;
827
+ width: 100%;
828
+ box-sizing: border-box;
829
+ }
830
+ @keyframes checkmark {
831
+ 0% {
832
+ height: 0;
833
+ width: 0;
834
+ opacity: 1;
835
+ }
836
+ 20% {
837
+ height: 0;
838
+ width: 2em;
839
+ opacity: 1;
840
+ }
841
+ 40% {
842
+ height: 4em;
843
+ width: 2em;
844
+ opacity: 1;
845
+ }
846
+ 100% {
847
+ height: 4em;
848
+ width: 2em;
849
+ opacity: 1;
850
+ }
851
+ }
852
+ .loginpress-extension input[type="checkbox"]{
853
+ display: none;
854
+ }
855
+ .loginpress-extension .loginpress-radio-btn{
856
+ outline: 0;
857
+ display: block;
858
+ width: 36px;
859
+ height: 18px;
860
+ position: relative;
861
+ cursor: pointer;
862
+ -webkit-user-select: none;
863
+ -moz-user-select: none;
864
+ -ms-user-select: none;
865
+ user-select: none;
866
+ }
867
+ .loginpress-extension input[type=checkbox].loginpress-radio-ios + .loginpress-radio-btn {
868
+ background: #fff;
869
+ border-radius: 2em;
870
+ padding: 2px;
871
+ -webkit-transition: all .4s ease;
872
+ transition: all .4s ease;
873
+ border: 2px solid #555d66;
874
+ position: absolute;
875
+ bottom: 15px;
876
+ left: 50%;
877
+ transform: translateX(-50%);
878
+ }
879
+ .loginpress-extension input[type=checkbox].loginpress-radio + .loginpress-radio-btn:after{
880
+ position: relative;
881
+ display: block;
882
+ content: "";
883
+ width: 18px;
884
+ height: 18px;
885
+ }
886
+ .loginpress-extension input[type=checkbox].loginpress-radio-ios + .loginpress-radio-btn:after {
887
+ border-radius: 2em;
888
+ background: #fbfbfb;
889
+ -webkit-transition: left 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), padding 0.3s ease, margin 0.3s ease;
890
+ transition: left 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), padding 0.3s ease, margin 0.3s ease;
891
+ border: 2px solid #555d66;
892
+ box-sizing: border-box;
893
+ left: 0;
894
+ }
895
+ .loginpress-extension input[type=checkbox].loginpress-radio + .loginpress-radio-btn:hover {
896
+ background-color: #e2e4e7;
897
+ }
898
+ .loginpress-extension input[type=checkbox].loginpress-radio-ios + .loginpress-radio-btn:active:after {
899
+ border-width: 9px;
900
+ }
901
+ .loginpress-extension input[type=checkbox].loginpress-radio:checked + .loginpress-radio-btn:after {
902
+ left: 18px;
903
+ border-color: #fff;
904
+ background: #33b3db;
905
+ border-width: 9px;
906
+ }
907
+ .loginpress-extension input[type=checkbox].loginpress-radio:checked + .loginpress-radio-btn{
908
+ background: #33b3db;
909
+ border-color: #33b3db;
910
+ }
911
  </style>
912
 
913
  <div class="wrap loginpress-addons-wrap">
classes/class-loginpress-ajax.php CHANGED
@@ -8,7 +8,7 @@ if ( ! defined( 'ABSPATH' ) ) {
8
  * Handling all the AJAX calls in LoginPress.
9
  *
10
  * @since 1.0.19
11
- * @version 1.1.23
12
  * @class LoginPress_AJAX
13
  */
14
 
@@ -26,13 +26,15 @@ if ( ! class_exists( 'LoginPress_AJAX' ) ) :
26
  public static function init() {
27
 
28
  $ajax_calls = array(
29
- 'export' => false,
30
- 'import' => false,
31
- 'help' => false,
32
- 'deactivate' => false,
33
- 'optout_yes' => false,
34
- 'presets' => false,
35
- 'video_url' => false
 
 
36
  );
37
 
38
  foreach ( $ajax_calls as $ajax_call => $no_priv ) {
@@ -43,7 +45,51 @@ if ( ! class_exists( 'LoginPress_AJAX' ) ) :
43
  add_action( 'wp_ajax_nopriv_loginpress_' . $ajax_call, array( __CLASS__, $ajax_call ) );
44
  }
45
  }
46
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
 
48
  /**
49
  * [Import LoginPress Settings]
8
  * Handling all the AJAX calls in LoginPress.
9
  *
10
  * @since 1.0.19
11
+ * @version 1.2.2
12
  * @class LoginPress_AJAX
13
  */
14
 
26
  public static function init() {
27
 
28
  $ajax_calls = array(
29
+ 'export' => false,
30
+ 'import' => false,
31
+ 'help' => false,
32
+ 'deactivate' => false,
33
+ 'optout_yes' => false,
34
+ 'presets' => false,
35
+ 'video_url' => false,
36
+ 'activate_addon' => false,
37
+ 'deactivate_addon' => false
38
  );
39
 
40
  foreach ( $ajax_calls as $ajax_call => $no_priv ) {
45
  add_action( 'wp_ajax_nopriv_loginpress_' . $ajax_call, array( __CLASS__, $ajax_call ) );
46
  }
47
  }
48
+ }
49
+
50
+ /**
51
+ * Activate Plugins.
52
+ * @since 1.2.2
53
+ */
54
+ function activate_addon() {
55
+
56
+ $plugin = esc_html( $_POST['slug'] );
57
+
58
+ check_ajax_referer( 'install-plugin_' . $plugin, '_wpnonce' );
59
+
60
+ if ( ! current_user_can( 'manage_options' ) ) {
61
+ wp_die( 'No cheating, huh!' );
62
+ }
63
+
64
+ if ( ! is_plugin_active( $plugin ) ) {
65
+ activate_plugin( $plugin );
66
+ }
67
+
68
+ echo wp_create_nonce( 'uninstall_' . $plugin );
69
+
70
+ wp_die();
71
+ }
72
+
73
+ /**
74
+ * Deactivate Plugins.
75
+ * @since 1.2.2
76
+ */
77
+ function deactivate_addon() {
78
+
79
+ $plugin = esc_html( $_POST['slug'] );
80
+
81
+ check_ajax_referer( 'uninstall_' . $plugin, '_wpnonce' );
82
+
83
+ if ( ! current_user_can( 'manage_options' ) ) {
84
+ wp_die( 'No cheating, huh!' );
85
+ }
86
+
87
+ deactivate_plugins( $plugin );
88
+
89
+ echo wp_create_nonce( 'install-plugin_' . $plugin );
90
+
91
+ wp_die();
92
+ }
93
 
94
  /**
95
  * [Import LoginPress Settings]
classes/class-loginpress-filter-plugin.php CHANGED
@@ -217,7 +217,7 @@ if ( ! class_exists( 'LoginPress_Filter_API' ) ) :
217
  'buy-now' => 'https://wpbrigade.com/wordpress/plugins/loginpress/?utm_source=loginpress-lite&utm_medium=featured-filter&utm_campaign=pro-upgrade',
218
  'num_ratings' => 51,
219
  'last_updated' => '2017-07-06 7:07pm GMT',
220
- 'description' => __( 'LoginPress Plugin by LoginPress holds a lot of customization fields to change the layout of the login page of WordPress. You can modify the look and feel of login page completely even the login error messages, forgot error messages, registration error messages, forget password hint message and many more.', 'loginpress' ),
221
  ),
222
  );
223
 
217
  'buy-now' => 'https://wpbrigade.com/wordpress/plugins/loginpress/?utm_source=loginpress-lite&utm_medium=featured-filter&utm_campaign=pro-upgrade',
218
  'num_ratings' => 51,
219
  'last_updated' => '2017-07-06 7:07pm GMT',
220
+ 'description' => __( 'LoginPress Plugin by WPBrigade holds a lot of customization fields to change the layout of the login page of WordPress. You can modify the look and feel of login page completely even the login error messages, forgot error messages, registration error messages, forget password hint message and many more.', 'loginpress' ),
221
  ),
222
  );
223
 
classes/class-loginpress-setup.php CHANGED
@@ -55,9 +55,55 @@ class LoginPress_Settings {
55
  printf( '<div class="%1$s"><p>%2$s</p></div>', $class, $message );
56
  }
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
 
55
  printf( '<div class="%1$s"><p>%2$s</p></div>', $class, $message );
56
  }
57
 
58
+ // Code for add loginpress icon
59
  function loginpress_setting_menu() {
60
+ add_action('admin_head', 'loginpressicon'); // admin_head is a hook loginpressicon is a function we are adding it to the hook
61
+
62
+
63
+ function loginpressicon() {
64
+ $ttf = plugins_url( '../loginpressfonts/loginpress.ttf?gb7unf', __FILE__ );
65
+ $woff = plugins_url( '../loginpressfonts/loginpress.woff?gb7unf', __FILE__ );
66
+ $svg = plugins_url( '../loginpressfonts/loginpress.svg?gb7unf', __FILE__ );
67
+ $eotie = plugins_url( '../loginpressfonts/loginpress.eot?gb7unf#iefix', __FILE__ );
68
+ $eot = plugins_url( '../loginpressfonts/loginpress.eot?gb7unf', __FILE__ );
69
+ echo "<style>
70
+ @font-face {
71
+ font-family: 'loginpress';
72
+ src: url('".$eot."');
73
+ src: url('".$eotie."') format('embedded-opentype'),
74
+ url('".$ttf."') format('truetype'),
75
+ url('".$woff."') format('woff'),
76
+ url('".$svg."') format('svg');
77
+ font-weight: normal;
78
+ font-style: normal;
79
+ }
80
+
81
+ [class^='icon-'], [class*=' icon-'] {
82
+ /* use !important to prevent issues with browser extensions that change fonts */
83
+ font-family: 'loginpress' !important;
84
+ speak: none;
85
+ font-style: normal;
86
+ font-weight: normal;
87
+ font-variant: normal;
88
+ text-transform: none;
89
+ line-height: 1;
90
+
91
+ /* Better Font Rendering =========== */
92
+ -webkit-font-smoothing: antialiased;
93
+ -moz-osx-font-smoothing: grayscale;
94
+ }
95
 
96
+ .icon-loginpress-dashicon:before {
97
+ content: '\\e560';
98
+ color: #fff;
99
+ }
100
+ #adminmenu li#toplevel_page_loginpress-settings>a>div.wp-menu-image:before{
101
+ content: '\\e560';
102
+ font-family: 'loginpress' !important;
103
+ }
104
+ </style>";
105
+ }
106
+ add_menu_page( __( 'LoginPress', 'loginpress' ), __( 'LoginPress', 'loginpress' ), 'manage_options', "loginpress-settings", array( $this, 'plugin_page' ), false, 50 );
107
 
108
  add_submenu_page( 'loginpress-settings', __( 'Settings', 'loginpress' ), __( 'Settings', 'loginpress' ), 'manage_options', "loginpress-settings", array( $this, 'plugin_page' ) );
109
 
css/style-login.php CHANGED
@@ -18,7 +18,7 @@ function loginpress_get_option_key( $loginpress_key, $loginpress_array ) {
18
 
19
  if ( array_key_exists( $loginpress_key, $loginpress_array ) ) {
20
 
21
- if ( 'loginpress_custom_js' == $loginpress_key || 'loginpress_custom_css' == $loginpress_key ) {
22
  return $loginpress_array[ $loginpress_key ];
23
  } else {
24
  return esc_js( $loginpress_array[ $loginpress_key ] );
@@ -191,7 +191,6 @@ $loginpress_footer_link_color = loginpress_get_option_key( 'login_footer_text_
191
  $loginpress_footer_link_hover = loginpress_get_option_key( 'login_footer_text_hover', $loginpress_array );
192
  $loginpress_footer_link_bg_clr = loginpress_get_option_key( 'login_footer_backgroung_hover', $loginpress_array );
193
  $loginpress_custom_css = loginpress_get_option_key( 'loginpress_custom_css', $loginpress_array );
194
- $loginpress_custom_js = loginpress_get_option_key( 'loginpress_custom_js', $loginpress_array );
195
 
196
  $loginpress_display_bg = loginpress_bg_option( 'loginpress_display_bg', $loginpress_array );
197
  $loginpress_display_bg_video = loginpress_bg_option( 'loginpress_display_bg_video', $loginpress_array );
@@ -294,7 +293,7 @@ body.login #loginpress_video-background-wrapper{
294
  top: 0;
295
  overflow: hidden;
296
  right: 0;
297
- width: calc(50% + 100px);
298
  height: 100%;
299
  z-index: 1;
300
  <?php endif; ?>
@@ -429,9 +428,9 @@ body.login {
429
  height: <?php echo $loginpress_logo_height . loginpress_important(); ?>;
430
  <?php endif; ?>
431
  <?php if ( ! empty( $loginpress_logo_width ) || ! empty( $loginpress_logo_height ) ) : ?>
432
- background-size: cover <?php echo loginpress_important(); ?>;
433
  <?php else: ?>
434
- background-size: cover;
435
  <?php endif; ?>
436
 
437
  <?php if ( ! empty( $loginpress_logo_padding ) ) : ?>
@@ -529,9 +528,9 @@ box-shadow: <?php echo loginpress_box_shadow( $loginpress_textfield_shadow, $log
529
  <?php endif; ?>
530
  }
531
 
532
- .login label[for="rememberme"] {
533
  <?php if ( ! empty( $loginpress_form_remeber_label ) ) : ?>
534
- color: <?php echo $loginpress_form_remeber_label; ?>;
535
  <?php endif; ?>
536
  }
537
 
@@ -982,6 +981,14 @@ text-shadow: none;
982
  left: 5px;
983
  right: auto;
984
  }
 
 
 
 
 
 
 
 
985
  }
986
  /* The only rule that matters */
987
  #loginpress_video-background {
@@ -993,44 +1000,41 @@ text-shadow: none;
993
  height: 100% !important ;
994
  z-index: -100 !important ;
995
  }
 
 
 
996
  </style>
997
 
998
  <?php // $content = ob_get_clean(); ?>
999
-
1000
- <?php if ( ! empty( $loginpress_custom_js ) ) : ?>
1001
- <script>
1002
- <?php echo $loginpress_custom_js; ?>
1003
- </script>
1004
- <?php endif; ?>
1005
-
1006
  <?php if ( isset( $loginpress_display_bg_video ) && $loginpress_display_bg_video && ! empty( $loginpress_bg_video ) ) : ?>
1007
  <?php if ( ( $loginpress_theme_tem == 'default6' || $loginpress_theme_tem == 'default10' || $loginpress_theme_tem == 'default17' ) ) : ?>
1008
  <script>
1009
- window.onload = function() {
1010
  // document.body.innerHTML="<video autoplay loop id=\"loginpress_video-background\" muted plays-inline>\n" + "<source src=\"<?php // echo $loginpress_bg_video;?>\">\n" + "</video>\n"+document.body.innerHTML;
1011
  // '"<video autoplay loop id=\"loginpress_video-background\" muted plays-inline>\n" + "<source src=\"<?php // echo $loginpress_bg_video;?>\">\n" + "</video>\n"'.
1012
  // document.getElementById("login").appendChild("<video autoplay loop id=\"loginpress_video-background\" muted plays-inline>\n" + "<source src=\"<?php // echo $loginpress_bg_video;?>\">\n" + "</video>\n");
1013
- (function($){
1014
- $('<div id="loginpress_video-background-wrapper"><video autoplay loop id="loginpress_video-background" <?php echo $loginpress_video_voice; ?> plays-inline><source src="<?php echo $loginpress_bg_video;?>"></video></div>').appendTo($('#login'));
1015
- }(jQuery));
1016
- }
 
1017
  </script>
1018
  <?php else: ?>
1019
  <script>
1020
  <?php if ($loginpress_theme_tem == 'default17') : ?>
1021
- window.onload = function() {
1022
  document.body.innerHTML="<div id=\"loginpress_video-background-wrapper\"><video autoplay loop id=\"loginpress_video-background\" <?php echo $loginpress_video_voice; ?> plays-inline>\n" + "<source src=\"<?php echo $loginpress_bg_video;?>\">\n" + "</video></div>\n"+document.body.innerHTML;
1023
- }
1024
  <?php endif; ?>
1025
  <?php if ($loginpress_theme_tem == 'default8') : ?>
1026
- window.onload = function() {
1027
  document.body.innerHTML="<div id=\"loginpress_video-background-wrapper\"><video autoplay loop id=\"loginpress_video-background\" <?php echo $loginpress_video_voice; ?> plays-inline>\n" + "<source src=\"<?php echo $loginpress_bg_video;?>\">\n" + "</video></div>\n"+document.body.innerHTML;
1028
- }
1029
  <?php endif; ?>
1030
  <?php if ($loginpress_theme_tem != 'default17' && $loginpress_theme_tem != 'default8') : ?>
1031
- window.onload = function() {
1032
  document.body.innerHTML="<video autoplay loop id=\"loginpress_video-background\" <?php echo $loginpress_video_voice; ?> plays-inline>\n" + "<source src=\"<?php echo $loginpress_bg_video;?>\">\n" + "</video>\n"+document.body.innerHTML;
1033
- }
1034
  <?php endif; ?>
1035
  </script>
1036
  <?php endif; ?>
18
 
19
  if ( array_key_exists( $loginpress_key, $loginpress_array ) ) {
20
 
21
+ if ( 'loginpress_custom_css' == $loginpress_key ) {
22
  return $loginpress_array[ $loginpress_key ];
23
  } else {
24
  return esc_js( $loginpress_array[ $loginpress_key ] );
191
  $loginpress_footer_link_hover = loginpress_get_option_key( 'login_footer_text_hover', $loginpress_array );
192
  $loginpress_footer_link_bg_clr = loginpress_get_option_key( 'login_footer_backgroung_hover', $loginpress_array );
193
  $loginpress_custom_css = loginpress_get_option_key( 'loginpress_custom_css', $loginpress_array );
 
194
 
195
  $loginpress_display_bg = loginpress_bg_option( 'loginpress_display_bg', $loginpress_array );
196
  $loginpress_display_bg_video = loginpress_bg_option( 'loginpress_display_bg_video', $loginpress_array );
293
  top: 0;
294
  overflow: hidden;
295
  right: 0;
296
+ width: calc(50% + 130px);
297
  height: 100%;
298
  z-index: 1;
299
  <?php endif; ?>
428
  height: <?php echo $loginpress_logo_height . loginpress_important(); ?>;
429
  <?php endif; ?>
430
  <?php if ( ! empty( $loginpress_logo_width ) || ! empty( $loginpress_logo_height ) ) : ?>
431
+ background-size: contain <?php echo loginpress_important(); ?>;
432
  <?php else: ?>
433
+ background-size: contain;
434
  <?php endif; ?>
435
 
436
  <?php if ( ! empty( $loginpress_logo_padding ) ) : ?>
528
  <?php endif; ?>
529
  }
530
 
531
+ .login form .forgetmenot label {
532
  <?php if ( ! empty( $loginpress_form_remeber_label ) ) : ?>
533
+ color: <?php echo $loginpress_form_remeber_label . loginpress_important(); ?>;
534
  <?php endif; ?>
535
  }
536
 
981
  left: 5px;
982
  right: auto;
983
  }
984
+ .loginpress-show-love{
985
+ display: none !important;
986
+ }
987
+ }
988
+ @media screen and (max-height: 700px) {
989
+ .loginpress-show-love{
990
+ display: none !important;
991
+ }
992
  }
993
  /* The only rule that matters */
994
  #loginpress_video-background {
1000
  height: 100% !important ;
1001
  z-index: -100 !important ;
1002
  }
1003
+ body.login #login.login_tranparent,body.login #login.login_tranparent #loginform{
1004
+ background: none !important;
1005
+ }
1006
  </style>
1007
 
1008
  <?php // $content = ob_get_clean(); ?>
 
 
 
 
 
 
 
1009
  <?php if ( isset( $loginpress_display_bg_video ) && $loginpress_display_bg_video && ! empty( $loginpress_bg_video ) ) : ?>
1010
  <?php if ( ( $loginpress_theme_tem == 'default6' || $loginpress_theme_tem == 'default10' || $loginpress_theme_tem == 'default17' ) ) : ?>
1011
  <script>
1012
+ document.addEventListener('DOMContentLoaded', function(){
1013
  // document.body.innerHTML="<video autoplay loop id=\"loginpress_video-background\" muted plays-inline>\n" + "<source src=\"<?php // echo $loginpress_bg_video;?>\">\n" + "</video>\n"+document.body.innerHTML;
1014
  // '"<video autoplay loop id=\"loginpress_video-background\" muted plays-inline>\n" + "<source src=\"<?php // echo $loginpress_bg_video;?>\">\n" + "</video>\n"'.
1015
  // document.getElementById("login").appendChild("<video autoplay loop id=\"loginpress_video-background\" muted plays-inline>\n" + "<source src=\"<?php // echo $loginpress_bg_video;?>\">\n" + "</video>\n");
1016
+ // (function($){
1017
+ // $('<div id="loginpress_video-background-wrapper"><video autoplay loop id="loginpress_video-background" <?php echo $loginpress_video_voice; ?> plays-inline><source src="<?php //echo $loginpress_bg_video;?>"></video></div>').appendTo($('#login'));
1018
+ // }(jQuery));
1019
+ document.getElementById('login').innerHTML="<div id=\"loginpress_video-background-wrapper\"><video autoplay loop id=\"loginpress_video-background\" <?php echo $loginpress_video_voice; ?> plays-inline>\n" + "<source src=\"<?php echo $loginpress_bg_video;?>\">\n" + "</video></div>\n"+document.getElementById('login').innerHTML;
1020
+ }, false);
1021
  </script>
1022
  <?php else: ?>
1023
  <script>
1024
  <?php if ($loginpress_theme_tem == 'default17') : ?>
1025
+ document.addEventListener('DOMContentLoaded', function(){
1026
  document.body.innerHTML="<div id=\"loginpress_video-background-wrapper\"><video autoplay loop id=\"loginpress_video-background\" <?php echo $loginpress_video_voice; ?> plays-inline>\n" + "<source src=\"<?php echo $loginpress_bg_video;?>\">\n" + "</video></div>\n"+document.body.innerHTML;
1027
+ }, false);
1028
  <?php endif; ?>
1029
  <?php if ($loginpress_theme_tem == 'default8') : ?>
1030
+ document.addEventListener('DOMContentLoaded', function(){
1031
  document.body.innerHTML="<div id=\"loginpress_video-background-wrapper\"><video autoplay loop id=\"loginpress_video-background\" <?php echo $loginpress_video_voice; ?> plays-inline>\n" + "<source src=\"<?php echo $loginpress_bg_video;?>\">\n" + "</video></div>\n"+document.body.innerHTML;
1032
+ }, false);
1033
  <?php endif; ?>
1034
  <?php if ($loginpress_theme_tem != 'default17' && $loginpress_theme_tem != 'default8') : ?>
1035
+ document.addEventListener('DOMContentLoaded', function(){
1036
  document.body.innerHTML="<video autoplay loop id=\"loginpress_video-background\" <?php echo $loginpress_video_voice; ?> plays-inline>\n" + "<source src=\"<?php echo $loginpress_bg_video;?>\">\n" + "</video>\n"+document.body.innerHTML;
1037
+ }, false);
1038
  <?php endif; ?>
1039
  </script>
1040
  <?php endif; ?>
custom.php CHANGED
@@ -307,7 +307,8 @@ class LoginPress_Entities {
307
  __( 'Persona', 'loginpress' ),
308
  __( 'Geek', 'loginpress' ),
309
  __( 'Innovation', 'loginpress' ),
310
- __( 'Photographers', 'loginpress' ) );
 
311
 
312
  // 1st template that is default
313
  $loginpress_free_templates["default1" ] = array(
@@ -1530,7 +1531,7 @@ class LoginPress_Entities {
1530
  * Manage the Login Footer Links
1531
  *
1532
  * @since 1.0.0
1533
- * @version 1.1.7
1534
  * * * * * * * * * * * * * * * */
1535
  public function login_page_custom_footer() {
1536
 
@@ -1569,13 +1570,19 @@ class LoginPress_Entities {
1569
 
1570
  }
1571
  echo '</div></div>';
 
 
 
 
 
 
1572
  }
1573
 
1574
  /**
1575
  * Manage the Login Head
1576
  *
1577
  * @since 1.0.0
1578
- * @version 1.1.7
1579
  * * * * * * * * * * * */
1580
  public function login_page_custom_head() {
1581
 
@@ -1586,7 +1593,9 @@ class LoginPress_Entities {
1586
  add_filter( 'gettext', array( $this, 'change_username_label' ), 20, 3 );
1587
  // add_filter( 'gettext', array( $this, 'change_password_label' ), 20, 3 );
1588
  // Include CSS File in heared.
1589
- wp_enqueue_script( 'jquery' );
 
 
1590
  include( LOGINPRESS_DIR_PATH . 'css/style-presets.php' );
1591
  include( LOGINPRESS_DIR_PATH . 'css/style-login.php' );
1592
 
307
  __( 'Persona', 'loginpress' ),
308
  __( 'Geek', 'loginpress' ),
309
  __( 'Innovation', 'loginpress' ),
310
+ __( 'Photographers', 'loginpress' ),
311
+ __( 'Animated Wapo', 'loginpress' ) );
312
 
313
  // 1st template that is default
314
  $loginpress_free_templates["default1" ] = array(
1531
  * Manage the Login Footer Links
1532
  *
1533
  * @since 1.0.0
1534
+ * @version 1.2.2
1535
  * * * * * * * * * * * * * * * */
1536
  public function login_page_custom_footer() {
1537
 
1570
 
1571
  }
1572
  echo '</div></div>';
1573
+
1574
+ /**
1575
+ * Include LoginPress script in footer.
1576
+ * @since 1.2.2
1577
+ */
1578
+ include( LOGINPRESS_DIR_PATH . 'js/script-login.php' );
1579
  }
1580
 
1581
  /**
1582
  * Manage the Login Head
1583
  *
1584
  * @since 1.0.0
1585
+ * @version 1.2.2
1586
  * * * * * * * * * * * */
1587
  public function login_page_custom_head() {
1588
 
1593
  add_filter( 'gettext', array( $this, 'change_username_label' ), 20, 3 );
1594
  // add_filter( 'gettext', array( $this, 'change_password_label' ), 20, 3 );
1595
  // Include CSS File in heared.
1596
+ if ( isset( $this->loginpress_key['loginpress_custom_js'] ) && ! empty( $this->loginpress_key['loginpress_custom_js'] ) ) { // 1.2.2
1597
+ wp_enqueue_script( 'jquery' );
1598
+ }
1599
  include( LOGINPRESS_DIR_PATH . 'css/style-presets.php' );
1600
  include( LOGINPRESS_DIR_PATH . 'css/style-login.php' );
1601
 
img/login-field-icons.svg ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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="120px" height="20px" viewBox="0 0 120 20" style="enable-background:new 0 0 120 20;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#919090;}
7
+ .st1{fill:#909090;}
8
+ </style>
9
+ <path class="st0" d="M36.3,12.6c-1.2-1.2-2.6-2-4.2-2.4c1.7-0.7,2.8-2.5,2.8-4.5c0-2.7-2.2-5-5-5c-2.7,0-5,2.2-5,5
10
+ c0,2,1.2,3.7,2.8,4.5c-1.6,0.4-3,1.2-4.2,2.4c-1.7,1.7-2.6,4-2.6,6.4c0,0.2,0.2,0.4,0.4,0.4c0.2,0,0.4-0.2,0.4-0.4
11
+ c0-4.6,3.7-8.3,8.3-8.3s8.3,3.7,8.3,8.3c0,0.2,0.2,0.4,0.4,0.4c0.2,0,0.4-0.2,0.4-0.4C38.9,16.5,38,14.3,36.3,12.6z M25.7,5.7
12
+ c0-2.3,1.9-4.2,4.2-4.2s4.2,1.9,4.2,4.2s-1.9,4.2-4.2,4.2C27.6,9.9,25.7,8,25.7,5.7z"/>
13
+ <g>
14
+ <polygon class="st1" points="80.5,19.5 80.5,19.5 80.4,19.5 "/>
15
+ <path class="st1" d="M94.6,0c-3,0-5.4,2.4-5.4,5.4c0,0.9,0.2,1.7,0.6,2.5l-9.3,9.3c-0.6,0.6-0.6,1.7,0,2.3c0.6,0.6,1.7,0.6,2.3,0
16
+ l1.4-1.4l1.9,1.9l2.3-2.3l-1.9-1.9l1.2-1.2l1.5,1.5l2.3-2.3L90,12.3l2.1-2.1c0.7,0.4,1.6,0.6,2.5,0.6c3,0,5.4-2.4,5.4-5.4
17
+ S97.6,0,94.6,0z M94.6,10c-1,0-1.9-0.3-2.6-0.8l-3.1,3.1l1.5,1.5L89.2,15l-1.5-1.5l-2.3,2.3l1.9,1.9l-1.2,1.2L84.2,17l-2,2
18
+ c-0.3,0.3-0.9,0.3-1.2,0l0,0c-0.3-0.3-0.3-0.9,0-1.2L90.8,8C90.3,7.3,90,6.4,90,5.4c0-2.5,2.1-4.6,4.6-4.6s4.6,2.1,4.6,4.6
19
+ S97.2,10,94.6,10z"/>
20
+ <path class="st1" d="M94.6,2.3c-1.7,0-3.1,1.4-3.1,3.1s1.4,3.1,3.1,3.1c1.7,0,3.1-1.4,3.1-3.1C97.7,3.6,96.3,2.3,94.6,2.3z
21
+ M94.6,7.7c-1.3,0-2.3-1-2.3-2.3s1-2.3,2.3-2.3c1.3,0,2.3,1,2.3,2.3S95.9,7.7,94.6,7.7z"/>
22
+ </g>
23
+ </svg>
img/thumbnail/default-18.png ADDED
Binary file
include/compatibility.php CHANGED
@@ -4,6 +4,7 @@
4
  * This is a LoginPress Compatibility to make it compatible for older versions.
5
  *
6
  * @since 1.0.22
 
7
  */
8
 
9
 
@@ -124,7 +125,8 @@ if ( ! class_exists( 'LoginPress_Compatibility' ) ) :
124
  include( LOGINPRESS_DIR_PATH . 'css/style-presets.php' );
125
  include( LOGINPRESS_DIR_PATH . 'css/style-login.php' );
126
  }
127
- }
 
128
 
129
  endif;
130
 
4
  * This is a LoginPress Compatibility to make it compatible for older versions.
5
  *
6
  * @since 1.0.22
7
+ * @version 1.2.2
8
  */
9
 
10
 
125
  include( LOGINPRESS_DIR_PATH . 'css/style-presets.php' );
126
  include( LOGINPRESS_DIR_PATH . 'css/style-login.php' );
127
  }
128
+
129
+ }
130
 
131
  endif;
132
 
include/customizer-validation.php CHANGED
@@ -62,13 +62,15 @@ function loginpress_sanitize_select( $input, $setting ) {
62
  * @param string $image Image filename.
63
  * @param WP_Customize_Setting $setting Setting instance.
64
  * @return string The image filename if the extension is allowed; otherwise, the setting default.
 
65
  */
66
  function loginpress_sanitize_image( $image, $setting ) {
67
- /*
68
- * Array of valid image file types.
69
- *
70
- * The array includes image mime types that are included in wp_get_mime_types()
71
- */
 
72
  $mimes = array(
73
  'jpg|jpeg|jpe' => 'image/jpeg',
74
  'gif' => 'image/gif',
@@ -77,8 +79,18 @@ function loginpress_sanitize_image( $image, $setting ) {
77
  'tif|tiff' => 'image/tiff',
78
  'ico' => 'image/x-icon'
79
  );
80
- // Return an array with file extension and mime_type.
 
 
 
 
 
 
 
 
 
 
81
  $file = wp_check_filetype( $image, $mimes );
82
- // If $image has a valid mime_type, return it; otherwise, return the default.
83
  return ( $file['ext'] ? $image : $setting->default );
84
  }
62
  * @param string $image Image filename.
63
  * @param WP_Customize_Setting $setting Setting instance.
64
  * @return string The image filename if the extension is allowed; otherwise, the setting default.
65
+ * @version 1.2.2
66
  */
67
  function loginpress_sanitize_image( $image, $setting ) {
68
+
69
+ /*
70
+ * Array of valid image file types.
71
+ *
72
+ * The array includes image mime types that are included in wp_get_mime_types()
73
+ */
74
  $mimes = array(
75
  'jpg|jpeg|jpe' => 'image/jpeg',
76
  'gif' => 'image/gif',
79
  'tif|tiff' => 'image/tiff',
80
  'ico' => 'image/x-icon'
81
  );
82
+
83
+ // Allowed svg mime type in version 1.2.2
84
+ $allowed_mime = get_allowed_mime_types();
85
+ $svg_mime_check = isset( $allowed_mime['svg'] ) ? true : false;
86
+
87
+ if ( $svg_mime_check ) {
88
+ $allow_mime = array( 'svg' => 'image/svg+xml' );
89
+ $mimes = array_merge( $mimes, $allow_mime );
90
+ }
91
+
92
+ // Return an array with file extension and mime_type.
93
  $file = wp_check_filetype( $image, $mimes );
94
+ // If $image has a valid mime_type, return it; otherwise, return the default.
95
  return ( $file['ext'] ? $image : $setting->default );
96
  }
js/admin-custom.js CHANGED
@@ -1,17 +1,172 @@
1
  (function($) {
2
  'use strict';
3
 
4
- $(function() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  // Code to fire when the DOM is ready.
6
- $('.wpbrigade-video-link').on('click', function(e) {
7
  e.preventDefault();
8
  var target = $(this).data('video-id');
9
- $('#' + target).fadeIn();
10
- });
11
  $('.wpbrigade-close-popup').on('click', function(e) {
12
  $(this).parent().parent().fadeOut();
13
- $('.wpbrigade-video-wrapper iframe').attr('src',
14
- 'https://www.youtube.com/embed/GMAwsHomJlE');
15
  });
16
 
17
  // $("#wpb-loginpress_setting\\[enable_repatcha_promo\\]").on('click', function() {
@@ -32,9 +187,9 @@
32
  var loginpressFileExt = loginpressFileImp.substr(
33
  loginpressFileImp.lastIndexOf('.') + 1);
34
 
35
- $('.loginpress-import').attr("disabled", "disabled");
36
 
37
- if ('json' == loginpressFileExt) {
38
  $(".import_setting .wrong-import").html("");
39
  $('.loginpress-import').removeAttr("disabled");
40
  } else {
@@ -43,8 +198,7 @@
43
  }
44
  });
45
 
46
- $("#wpb-loginpress_setting\\[enable_privacy_policy\\]").on('click',
47
- function() {
48
 
49
  var privacy_editor = $(
50
  '#wpb-loginpress_setting\\[enable_privacy_policy\\]');
@@ -57,11 +211,7 @@
57
 
58
  $(window).on('load', function() {
59
 
60
- $(
61
- '<tr class="recapthca-promo-img"><th class="recapthca-promo" colspan="2"><img src="' +
62
- loginpress_script.plugin_url +
63
- '/loginpress/img/promo/recaptcha_promo.png"><a class="recapthca-promo-link" href="https://wpbrigade.com/wordpress/plugins/loginpress-pro/?utm_source=loginpress-lite&amp;utm_medium=recaptcha-settings&amp;utm_campaign=pro-upgrade" target="_blank"><span>Unlock Premium Feature</span></a></th></tr>'
64
- ).insertAfter($(".enable_repatcha_promo").closest('tr'));
65
 
66
  var promotion = $(
67
  '#wpb-loginpress_setting\\[enable_repatcha_promo\\]');
1
  (function($) {
2
  'use strict';
3
 
4
+ $( function() {
5
+
6
+ /**
7
+ * Install LoginPress Add-Ons on one click.
8
+ * @since 1.2.2
9
+ */
10
+ $(document).on( 'change', '.loginpress-install-pro-addon', function (e) {
11
+
12
+ e.preventDefault();
13
+ e.stopPropagation();
14
+ var addonBtn = $(this);
15
+ var addonWrapper = $(this).closest('.loginpress-extension');
16
+ var nonce = addonWrapper.find('input[name="loginpress_pro_addon_nonce"]').val();
17
+ var pluginSlug = addonWrapper.find('input[name="loginpress_pro_addon_slug"]').val();
18
+ var pluginID = addonWrapper.find('input[name="loginpress_pro_addon_id"]').val();
19
+
20
+ $.ajax({
21
+ type: 'GET',
22
+ url : 'update.php',
23
+ data: {
24
+ action : 'install-plugin',
25
+ plugin : pluginSlug,
26
+ lgp : 1,
27
+ id : pluginID,
28
+ _wpnonce: nonce
29
+ },
30
+ beforeSend: function(){
31
+ addonWrapper.find('.loginpress-addon-enable').show();
32
+ },
33
+ success: function (res) {
34
+ activateAddon( pluginSlug, nonce, addonWrapper, addonBtn );
35
+ },
36
+ error : function (res) {
37
+ console.log(res);
38
+ addonWrapper.find('.loginpress-uninstalling').hide();
39
+ addonWrapper.find('.loginpress-uninstall').hide();
40
+ addonWrapper.find('.loginpress-addon-enable').hide();
41
+ addonWrapper.find('.loginpress-wrong').show();
42
+ setTimeout( function() {
43
+ addonWrapper.find('.loginpress-wrong').hide();
44
+ }, 2000);
45
+ }
46
+ });
47
+
48
+ });
49
+
50
+ /**
51
+ * Deactivate LoginPress Add-Ons on one click.
52
+ * @since 1.2.2
53
+ */
54
+ $(document).on( 'change', '.loginpress-uninstall-pro-addon', function (e) {
55
+
56
+ e.preventDefault();
57
+ e.stopPropagation();
58
+ var addonBtn = $(this);
59
+ var addonWrapper = $(this).closest('.loginpress-extension');
60
+ var nonce = addonWrapper.find('input[name="loginpress_pro_addon_nonce"]').val();
61
+ var pluginSlug = addonWrapper.find('input[name="loginpress_pro_addon_slug"]').val();
62
+
63
+ $.ajax({
64
+ type: 'POST',
65
+ url : ajaxurl,
66
+ data: {
67
+ action : 'loginpress_deactivate_addon',
68
+ slug : pluginSlug,
69
+ _wpnonce: nonce
70
+ },
71
+ beforeSend: function(){
72
+ addonWrapper.find('.loginpress-uninstalling').show();
73
+ },
74
+ success: function (res) {
75
+ var newNonce = res;
76
+
77
+ addonWrapper.find('input[name="loginpress_pro_addon_nonce"]').val(newNonce);
78
+ addonWrapper.find('.loginpress-uninstalling').hide();
79
+ addonWrapper.find('.loginpress-uninstall').show();
80
+ addonBtn.addClass('loginpress-active-pro-addon').removeClass('loginpress-install-pro-addon loginpress-uninstall-pro-addon').html('Activate Plugin');
81
+ setTimeout( function() {
82
+ addonWrapper.find('.loginpress-uninstall').hide();
83
+ }, 3000);
84
+ },
85
+ error: function (res) {
86
+ console.log(res);
87
+ addonWrapper.find('.loginpress-uninstalling').hide();
88
+ addonWrapper.find('.loginpress-uninstall').hide();
89
+ addonWrapper.find('.loginpress-wrong').show();
90
+ setTimeout( function() {
91
+ addonWrapper.find('.loginpress-wrong').hide();
92
+ }, 2000);
93
+ }
94
+ });
95
+
96
+ });
97
+
98
+ /**
99
+ * Activate LoginPress Add-Ons on one click.
100
+ * @since 1.2.2
101
+ */
102
+ $(document).on( 'change', '.loginpress-active-pro-addon', function (e) {
103
+
104
+ e.preventDefault();
105
+ e.stopPropagation();
106
+ var addonBtn = $(this);
107
+ var addonWrapper = $(this).closest('.loginpress-extension');
108
+ var nonce = addonWrapper.find('input[name="loginpress_pro_addon_nonce"]').val();
109
+ var pluginSlug = addonWrapper.find('input[name="loginpress_pro_addon_slug"]').val();
110
+
111
+ activateAddon( pluginSlug, nonce, addonWrapper, addonBtn );
112
+
113
+ });
114
+
115
+ /**
116
+ * Activate LoginPress Add-Ons.
117
+ * @param string pluginSlug
118
+ * @param string nonce
119
+ * @param string addonWrapper
120
+ * @param string addonBtn
121
+ * @since 1.2.2
122
+ */
123
+ function activateAddon( pluginSlug, nonce, addonWrapper, addonBtn ) {
124
+
125
+ $.ajax({
126
+ url : ajaxurl,
127
+ type: 'POST',
128
+ data: {
129
+ slug : pluginSlug,
130
+ action: 'loginpress_activate_addon',
131
+ _wpnonce: nonce
132
+ },
133
+ beforeSend: function(){
134
+ addonWrapper.find('.loginpress-addon-enable').show();
135
+ },
136
+ success: function (res) {
137
+ var newNonce = res;
138
+
139
+ addonWrapper.find('.loginpress-addon-enable').hide();
140
+ addonWrapper.find('.loginpress-install').show();
141
+ addonBtn.addClass('loginpress-uninstall-pro-addon').removeClass('loginpress-install-pro-addon loginpress-active-pro-addon').html('Uninstall');
142
+ addonWrapper.find('input[name="loginpress_pro_addon_nonce"]').val(newNonce);
143
+
144
+ setTimeout( function() {
145
+ addonWrapper.find('.loginpress-install').hide();
146
+ }, 3000);
147
+ },
148
+ error : function ( xhr, textStatus, errorThrown ) {
149
+ console.log('Ajax Not Working');
150
+ addonWrapper.find('.loginpress-uninstalling').hide();
151
+ addonWrapper.find('.loginpress-uninstall').hide();
152
+ addonWrapper.find('.loginpress-wrong').show();
153
+ setTimeout( function() {
154
+ addonWrapper.find('.loginpress-wrong').hide();
155
+ }, 2000);
156
+ }
157
+ });
158
+
159
+ }
160
+
161
  // Code to fire when the DOM is ready.
162
+ $('.wpbrigade-video-link').on( 'click', function(e) {
163
  e.preventDefault();
164
  var target = $(this).data('video-id');
165
+ $( '#' + target ).fadeIn();
166
+ } );
167
  $('.wpbrigade-close-popup').on('click', function(e) {
168
  $(this).parent().parent().fadeOut();
169
+ $('.wpbrigade-video-wrapper iframe').attr( 'src', 'https://www.youtube.com/embed/GMAwsHomJlE' );
 
170
  });
171
 
172
  // $("#wpb-loginpress_setting\\[enable_repatcha_promo\\]").on('click', function() {
187
  var loginpressFileExt = loginpressFileImp.substr(
188
  loginpressFileImp.lastIndexOf('.') + 1);
189
 
190
+ $('.loginpress-import').attr( "disabled", "disabled" );
191
 
192
+ if ( 'json' == loginpressFileExt ) {
193
  $(".import_setting .wrong-import").html("");
194
  $('.loginpress-import').removeAttr("disabled");
195
  } else {
198
  }
199
  });
200
 
201
+ $("#wpb-loginpress_setting\\[enable_privacy_policy\\]").on( 'click', function() {
 
202
 
203
  var privacy_editor = $(
204
  '#wpb-loginpress_setting\\[enable_privacy_policy\\]');
211
 
212
  $(window).on('load', function() {
213
 
214
+ $( '<tr class="recapthca-promo-img"><th class="recapthca-promo" colspan="2"><img src="' + loginpress_script.plugin_url + '/loginpress/img/promo/recaptcha_promo.png"><a class="recapthca-promo-link" href="https://wpbrigade.com/wordpress/plugins/loginpress-pro/?utm_source=loginpress-lite&amp;utm_medium=recaptcha-settings&amp;utm_campaign=pro-upgrade" target="_blank"><span>Unlock Premium Feature</span></a></th></tr>' ).insertAfter($(".enable_repatcha_promo").closest('tr'));
 
 
 
 
215
 
216
  var promotion = $(
217
  '#wpb-loginpress_setting\\[enable_repatcha_promo\\]');
js/customize-controls.js CHANGED
@@ -1,6 +1,31 @@
1
  /**
2
  * This file handling some LIVE to the LoginPress Customizer live preview.
3
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  jQuery(document).ready(function($) {
5
 
6
  // Update gallery default thumbnail on load. @since 1.1.3
@@ -46,7 +71,12 @@ jQuery(document).ready(function($) {
46
  }else{
47
  $('#customize-control-loginpress_customization-textfield_label_color,#customize-control-loginpress_customization-customize_form_label').show();
48
  }
49
-
 
 
 
 
 
50
  } );
51
  } ); // jQuery( document ).ready
52
 
@@ -391,7 +421,7 @@ jQuery(document).ready(function($) {
391
  // Control on footer back link text.
392
  if ('loginpress_customization[back_display_text]' == setting && false == loginPressVal ) {
393
 
394
- // $( '#customize-preview iframe' ).contents().find( '.login #backtoblog' ).css( 'display', 'none' );
395
  $('#customize-control-loginpress_customization-login_back_text_decoration').fadeOut().css( 'display', 'none' );
396
  $('#customize-control-loginpress_customization-login_back_color').fadeOut().css( 'display', 'none' );
397
  $('#customize-control-loginpress_customization-login_back_color_hover').fadeOut().css( 'display', 'none' );
@@ -400,7 +430,7 @@ jQuery(document).ready(function($) {
400
 
401
  } else if ('loginpress_customization[back_display_text]' == setting && true == loginPressVal ) {
402
 
403
- // $( '#customize-preview iframe' ).contents().find( '.login #backtoblog' ).css( 'display', 'block' );
404
  $('#customize-control-loginpress_customization-login_back_text_decoration').fadeIn().css( 'display', 'list-item' );
405
  $('#customize-control-loginpress_customization-login_back_color').fadeIn().css( 'display', 'list-item' );
406
  $('#customize-control-loginpress_customization-login_back_color_hover').fadeIn().css( 'display', 'list-item' );
@@ -427,8 +457,28 @@ jQuery(document).ready(function($) {
427
  $( '#customize-preview iframe' ).contents().find( '.login #loginpress_video-background' ).css( 'display', 'block' );
428
  if( $( '#customize-preview iframe' ).contents().find( '.login #loginpress_video-background' ).length > 0 ){
429
  $( '#customize-preview iframe' ).contents().find( '.login #loginpress_video-background' )[0].play();
 
 
 
 
 
 
 
 
 
 
 
430
  }
431
  $('#customize-control-loginpress_customization-background_video').fadeIn().css( 'display', 'list-item' );
 
 
 
 
 
 
 
 
 
432
 
433
  }
434
 
@@ -455,23 +505,28 @@ jQuery(document).ready(function($) {
455
  });
456
  });
457
  }
 
 
 
 
458
 
459
- // Update the login logo width in real time...
 
460
  wp.customize( 'loginpress_customization[setting_form_display_bg]', function( value ) {
461
  value.bind( function( loginPressVal ) {
462
- var formbg;
463
  if($('#customize-control-loginpress_customization-form_background_color .wp-color-picker').val().length>0){
464
  formbg = $('#customize-control-loginpress_customization-form_background_color .wp-color-picker').val();
465
  }
466
-
467
  if ( loginPressVal == true ) {
468
- loginpress_find( '#login, #loginform' ).css( 'background-color', 'transparent' );
469
- loginpress_find( '#login, #loginform' ).css( 'background-image', 'none' );
 
470
  $('#customize-control-loginpress_customization-form_background_color').fadeOut().hide();
471
  $('#customize-control-loginpress_customization-setting_form_background').fadeOut().hide();
472
  } else{
473
- loginpress_find('#loginform').css('background-image', 'url('+formbgimg+')');
474
- loginpress_find( '#login, #loginform' ).css( 'background-color', formbg );
 
475
 
476
  $('#customize-control-loginpress_customization-form_background_color').fadeIn().show();
477
  $('#customize-control-loginpress_customization-setting_form_background').fadeIn().show();
@@ -523,6 +578,8 @@ jQuery(document).ready(function($) {
523
  }
524
  }
525
 
 
 
526
  // Enable / Disable LoginPress Background.
527
  wp.customize( 'loginpress_customization[loginpress_display_bg]', function(value) {
528
  value.bind( function(loginPressVal) {
@@ -550,7 +607,8 @@ jQuery(document).ready(function($) {
550
  }
551
 
552
  // Turn Off the Dependencies controls.
553
- $('#customize-control-loginpress_customization-loginpress_display_bg').nextAll().hide();
 
554
 
555
  } else {
556
  if ( localStorage.loginpress_bg ) {
@@ -617,8 +675,9 @@ jQuery(document).ready(function($) {
617
  }
618
 
619
  // Turn On the Dependencies controls.
620
- $('#customize-control-loginpress_customization-loginpress_display_bg').nextAll().show();
621
- if($('#customize-control-loginpress_customization-setting_background .attachment-thumb').length>0){
 
622
  $('#customize-control-loginpress_customization-gallery_background').hide();
623
  }
624
 
@@ -1361,6 +1420,8 @@ jQuery(document).ready(function($) {
1361
  }
1362
  });
1363
  });
 
 
1364
  /**
1365
  * @since 1.0.9
1366
  * @version 1.0.12
@@ -1380,12 +1441,12 @@ jQuery(document).ready(function($) {
1380
  }
1381
 
1382
  if ( $('#customize-control-loginpress_customization-loginpress_display_bg input[type="checkbox"]').is(":checked") ) {
1383
- $('#customize-control-loginpress_customization-loginpress_display_bg').nextAll().show();
1384
  if($('#customize-control-loginpress_customization-setting_background .attachment-thumb').length>0){
1385
  $('#customize-control-loginpress_customization-gallery_background').hide();
1386
  }
1387
  } else {
1388
- $('#customize-control-loginpress_customization-loginpress_display_bg').nextAll().hide();
1389
  }
1390
 
1391
  if ( $('#customize-control-loginpress_customization-setting_background .attachment-media-view-image').length > 0 ) {
@@ -1466,7 +1527,30 @@ jQuery(document).ready(function($) {
1466
  $('#customize-control-loginpress_customization-video_obj_position').css( 'display', 'none' );
1467
  $('#customize-control-loginpress_customization-background_video_muted').css( 'display', 'none' );
1468
  }
 
1469
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1470
  $("<style type='text/css' id='loginpress-customize'></style>").appendTo(loginpress_find('head'));
1471
  $("<style type='text/css' id='loginpress-iframe-bgColor'></style>").appendTo(loginpress_find('head'));
1472
  $("<style type='text/css' id='loginpress-scbg-position'></style>").appendTo(loginpress_find('head'));
@@ -1480,6 +1564,39 @@ jQuery(document).ready(function($) {
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);
1
  /**
2
  * This file handling some LIVE to the LoginPress Customizer live preview.
3
  */
4
+ /**
5
+ * [loginpress_manage_customizer_controls description]
6
+ * @param [array/string] controler controler name.
7
+ * @param boolean action Trun on/off the customizer control.
8
+ * @return string CSS code.
9
+ */
10
+ function loginpress_manage_customizer_controls( controler, action ) {
11
+
12
+ if ( Array.isArray( controler ) ) {
13
+ controler.forEach( function ( item, index ) {
14
+ if ( 'on' == action ) {
15
+ $( '#customize-control-loginpress_customization-' + item ).fadeIn().css( 'display', 'list-item' );
16
+ } else {
17
+ $( '#customize-control-loginpress_customization-' + item ).fadeOut().css( 'display', 'none' );
18
+ }
19
+ } );
20
+ } else {
21
+ if ( 'on' == action ) {
22
+ $( '#customize-control-loginpress_customization-' + controler ).fadeIn().css( 'display', 'list-item' );
23
+ } else {
24
+ $( '#customize-control-loginpress_customization-' + controler ).fadeOut().css( 'display', 'none' );
25
+ }
26
+ }
27
+ }
28
+ var formbg;
29
  jQuery(document).ready(function($) {
30
 
31
  // Update gallery default thumbnail on load. @since 1.1.3
71
  }else{
72
  $('#customize-control-loginpress_customization-textfield_label_color,#customize-control-loginpress_customization-customize_form_label').show();
73
  }
74
+ if(checkbox_values == 'default18') {
75
+ loginpress_manage_customizer_controls( ['setting_logo', 'customize_logo_width', 'customize_logo_height'], 'off' );
76
+ } else {
77
+ loginpress_manage_customizer_controls( ['setting_logo', 'customize_logo_width', 'customize_logo_height'], 'on' );
78
+ }
79
+ formbg = $('#customize-preview iframe').contents().find( '#login' ).css( 'background');
80
  } );
81
  } ); // jQuery( document ).ready
82
 
421
  // Control on footer back link text.
422
  if ('loginpress_customization[back_display_text]' == setting && false == loginPressVal ) {
423
 
424
+ $( '#customize-preview iframe' ).contents().find( '.login #backtoblog' ).css( 'display', 'none' );
425
  $('#customize-control-loginpress_customization-login_back_text_decoration').fadeOut().css( 'display', 'none' );
426
  $('#customize-control-loginpress_customization-login_back_color').fadeOut().css( 'display', 'none' );
427
  $('#customize-control-loginpress_customization-login_back_color_hover').fadeOut().css( 'display', 'none' );
430
 
431
  } else if ('loginpress_customization[back_display_text]' == setting && true == loginPressVal ) {
432
 
433
+ $( '#customize-preview iframe' ).contents().find( '.login #backtoblog' ).css( 'display', 'block' );
434
  $('#customize-control-loginpress_customization-login_back_text_decoration').fadeIn().css( 'display', 'list-item' );
435
  $('#customize-control-loginpress_customization-login_back_color').fadeIn().css( 'display', 'list-item' );
436
  $('#customize-control-loginpress_customization-login_back_color_hover').fadeIn().css( 'display', 'list-item' );
457
  $( '#customize-preview iframe' ).contents().find( '.login #loginpress_video-background' ).css( 'display', 'block' );
458
  if( $( '#customize-preview iframe' ).contents().find( '.login #loginpress_video-background' ).length > 0 ){
459
  $( '#customize-preview iframe' ).contents().find( '.login #loginpress_video-background' )[0].play();
460
+ } else {
461
+ // $( '#customize-preview iframe' ).contents().find( '.login #loginpress_video-background' )
462
+ var video = $('#customize-control-loginpress_customization-background_video video').html();
463
+ if($('#customize_presets_settingsdefault6').is(':checked') || $('#customize_presets_settingsdefault10').is(':checked') || $('#customize_presets_settingsdefault17').is(':checked')){
464
+ $( '#customize-preview iframe' ).contents().find('#login').append("<div id=\"loginpress_video-background-wrapper\"><video autoplay loop id=\"loginpress_video-background\""+$('[data-customize-setting-link="loginpress_customization[background_video_muted]"]').is(':checked')+" plays-inline>\n" + video + "</video></div>\n");
465
+ }else if($('#customize_presets_settingsdefault17').is(':checked') || $('#customize_presets_settingsdefault18').is(':checked')){
466
+ $( '#customize-preview iframe' ).contents().find('.login').append("<div id=\"loginpress_video-background-wrapper\"><video autoplay loop id=\"loginpress_video-background\""+$('[data-customize-setting-link="loginpress_customization[background_video_muted]"]').is(':checked')+" plays-inline>\n" + video + "</video></div>\n");
467
+ }else{
468
+ $( '#customize-preview iframe' ).contents().find('.login').append("<video autoplay loop id=\"loginpress_video-background\""+$('[data-customize-setting-link="loginpress_customization[background_video_muted]"]').is(':checked')+" plays-inline>\n" + video + "</video>\n");
469
+ }
470
+ $( '#customize-preview iframe' ).contents().find( '.login #loginpress_video-background' )[0].play();
471
  }
472
  $('#customize-control-loginpress_customization-background_video').fadeIn().css( 'display', 'list-item' );
473
+ if($('#customize-control-loginpress_customization-background_video video').length>0){
474
+ $('#customize-control-loginpress_customization-background_video_object').fadeIn().css( 'display', 'list-item' );
475
+ $('#customize-control-loginpress_customization-video_obj_position').fadeIn().css( 'display', 'list-item' );
476
+ $('#customize-control-loginpress_customization-background_video_muted').fadeIn().css( 'display', 'list-item' );
477
+ }else{
478
+ $('#customize-control-loginpress_customization-background_video_object').fadeOut().css( 'display', 'none' );
479
+ $('#customize-control-loginpress_customization-video_obj_position').fadeOut().css( 'display', 'none' );
480
+ $('#customize-control-loginpress_customization-background_video_muted').fadeOut().css( 'display', 'none' );
481
+ }
482
 
483
  }
484
 
505
  });
506
  });
507
  }
508
+ $(window).on('load',function(){
509
+ if($('[data-customize-setting-link="loginpress_customization[setting_form_display_bg]"]').is(':checked')){
510
+ loginpress_find('#login').addClass('login_tranparent');
511
+ }
512
 
513
+ });
514
+ // Update the login logo width in real time... // v1.2.2
515
  wp.customize( 'loginpress_customization[setting_form_display_bg]', function( value ) {
516
  value.bind( function( loginPressVal ) {
 
517
  if($('#customize-control-loginpress_customization-form_background_color .wp-color-picker').val().length>0){
518
  formbg = $('#customize-control-loginpress_customization-form_background_color .wp-color-picker').val();
519
  }
 
520
  if ( loginPressVal == true ) {
521
+ // loginpress_find( '#login, #loginform' ).css( 'background-color', 'transparent' );
522
+ // loginpress_find( '#login, #loginform' ).css( 'background-image', 'none' );
523
+ loginpress_find('#login').addClass('login_tranparent');
524
  $('#customize-control-loginpress_customization-form_background_color').fadeOut().hide();
525
  $('#customize-control-loginpress_customization-setting_form_background').fadeOut().hide();
526
  } else{
527
+ // loginpress_find('#loginform').css('background-image', 'url('+formbgimg+')');
528
+ // loginpress_find( '#login, #loginform' ).css( 'background-color', formbg );
529
+ loginpress_find('#login').removeClass('login_tranparent');
530
 
531
  $('#customize-control-loginpress_customization-form_background_color').fadeIn().show();
532
  $('#customize-control-loginpress_customization-setting_form_background').fadeIn().show();
578
  }
579
  }
580
 
581
+
582
+
583
  // Enable / Disable LoginPress Background.
584
  wp.customize( 'loginpress_customization[loginpress_display_bg]', function(value) {
585
  value.bind( function(loginPressVal) {
607
  }
608
 
609
  // Turn Off the Dependencies controls.
610
+ // $('#customize-control-loginpress_customization-loginpress_display_bg').nextAll().hide();
611
+ loginpress_manage_customizer_controls( ['gallery_background', 'setting_background', 'background_repeat_radio', 'background_position', 'background_image_size'], 'off' );
612
 
613
  } else {
614
  if ( localStorage.loginpress_bg ) {
675
  }
676
 
677
  // Turn On the Dependencies controls.
678
+ // $('#customize-control-loginpress_customization-loginpress_display_bg').nextAll().show();
679
+ loginpress_manage_customizer_controls( ['gallery_background', 'setting_background', 'background_repeat_radio', 'background_position', 'background_image_size'], 'on' );
680
+ if( $('#customize-control-loginpress_customization-setting_background .attachment-thumb').length > 0 ) {
681
  $('#customize-control-loginpress_customization-gallery_background').hide();
682
  }
683
 
1420
  }
1421
  });
1422
  });
1423
+
1424
+
1425
  /**
1426
  * @since 1.0.9
1427
  * @version 1.0.12
1441
  }
1442
 
1443
  if ( $('#customize-control-loginpress_customization-loginpress_display_bg input[type="checkbox"]').is(":checked") ) {
1444
+ $('#customize-control-loginpress_customization-loginpress_display_bg').nextUntil('#customize-control-loginpress_customization-bg_video_group').show();
1445
  if($('#customize-control-loginpress_customization-setting_background .attachment-thumb').length>0){
1446
  $('#customize-control-loginpress_customization-gallery_background').hide();
1447
  }
1448
  } else {
1449
+ $('#customize-control-loginpress_customization-loginpress_display_bg').nextUntil('#customize-control-loginpress_customization-bg_video_group').hide();
1450
  }
1451
 
1452
  if ( $('#customize-control-loginpress_customization-setting_background .attachment-media-view-image').length > 0 ) {
1527
  $('#customize-control-loginpress_customization-video_obj_position').css( 'display', 'none' );
1528
  $('#customize-control-loginpress_customization-background_video_muted').css( 'display', 'none' );
1529
  }
1530
+ if ( $('#customize-control-loginpress_customization-background_video video').length > 0 && !$('#customize-control-loginpress_customization-loginpress_display_bg_video input[type="checkbox"]').is(":checked") ) {
1531
 
1532
+ $('#customize-control-loginpress_customization-background_video').css( 'display', 'none' );
1533
+ $('#customize-control-loginpress_customization-background_video_object').css( 'display', 'none' );
1534
+ $('#customize-control-loginpress_customization-video_obj_position').css( 'display', 'none' );
1535
+ $('#customize-control-loginpress_customization-background_video_muted').css( 'display', 'none' );
1536
+ } else if( !$('#customize-control-loginpress_customization-loginpress_display_bg_video input[type="checkbox"]').is(":checked")) {
1537
+
1538
+ $('#customize-control-loginpress_customization-background_video').css( 'display', 'none' );
1539
+ $('#customize-control-loginpress_customization-background_video_object').css( 'display', 'none' );
1540
+ $('#customize-control-loginpress_customization-video_obj_position').css( 'display', 'none' );
1541
+ $('#customize-control-loginpress_customization-background_video_muted').css( 'display', 'none' );
1542
+ } else if($('#customize-control-loginpress_customization-background_video video').length == 0 && $('#customize-control-loginpress_customization-loginpress_display_bg_video input[type="checkbox"]').is(":checked")) {
1543
+
1544
+ $('#customize-control-loginpress_customization-background_video').css( 'display', 'list-item' );
1545
+ $('#customize-control-loginpress_customization-background_video_object').css( 'display', 'none' );
1546
+ $('#customize-control-loginpress_customization-video_obj_position').css( 'display', 'none' );
1547
+ $('#customize-control-loginpress_customization-background_video_muted').css( 'display', 'none' );
1548
+ } else {
1549
+ $('#customize-control-loginpress_customization-background_video').css( 'display', 'list-item' );
1550
+ $('#customize-control-loginpress_customization-background_video_object').css( 'display', 'list-item' );
1551
+ $('#customize-control-loginpress_customization-video_obj_position').css( 'display', 'list-item' );
1552
+ $('#customize-control-loginpress_customization-background_video_muted').css( 'display', 'list-item' );
1553
+ }
1554
  $("<style type='text/css' id='loginpress-customize'></style>").appendTo(loginpress_find('head'));
1555
  $("<style type='text/css' id='loginpress-iframe-bgColor'></style>").appendTo(loginpress_find('head'));
1556
  $("<style type='text/css' id='loginpress-scbg-position'></style>").appendTo(loginpress_find('head'));
1564
  if ( 'v2-robot' != loginpress_script.recaptchaType ) { // Disabled reCaptcha Size Option in customizer. // 1.2.1 - 2.1.2 Pro
1565
  $("#customize-control-loginpress_customization-recaptcha_size select").attr('disabled', 'disabled');
1566
  }
1567
+
1568
+ if( $('#customize_presets_settingsdefault18').is(':checked') == true ) {
1569
+
1570
+ loginpress_manage_customizer_controls( ['setting_logo', 'customize_logo_width', 'customize_logo_height'], 'off' );
1571
+ loginpress_find('#loginform #user_login').on('focus',function(){
1572
+ loginpress_find('.login h1 a').attr('data-state', 'uifocus');
1573
+ loginpress_find('.login h1 a').addClass('watchdown');
1574
+ });
1575
+ loginpress_find('#loginform #user_login').on('blur',function(){
1576
+ loginpress_find('.login h1 a').attr('data-state', 'uiblur');
1577
+ loginpress_find('.login h1 a').removeClass('watchdown').addClass('watchup');
1578
+ setTimeout( function() {
1579
+ loginpress_find('.login h1 a').removeClass('watchup');
1580
+ }, 800);
1581
+ });
1582
+ loginpress_find('#loginform #user_pass').on('focus',function(){
1583
+ loginpress_find('.login h1 a').attr('data-state', 'pwfocus');
1584
+ setTimeout( function() {
1585
+ loginpress_find('.login h1 a').addClass('yeti-hide');
1586
+ }, 800);
1587
+ });
1588
+ loginpress_find('#loginform #user_pass').on('blur',function(){
1589
+ loginpress_find('.login h1 a').attr('data-state', 'pwblur');
1590
+ loginpress_find('.login h1 a').removeClass('yeti-hide').addClass('yeti-seak');
1591
+ setTimeout( function() {
1592
+ loginpress_find('.login h1 a').removeClass('yeti-seak');
1593
+ }, 500);
1594
+ });
1595
+ } else {
1596
+ loginpress_manage_customizer_controls( ['setting_logo', 'customize_logo_width', 'customize_logo_height'], 'on' );
1597
+ }
1598
+
1599
+
1600
  });
1601
 
1602
  })(jQuery);
js/customizer-previewer.js CHANGED
@@ -25,6 +25,32 @@
25
  $document = $( document ); // Store references to the body and document elements
26
 
27
  // Append our button to the <body> element
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  if( $('.login-action-login').length > 0 ) { // If .login-action-login exist
29
 
30
  $body_bg.append( '<span class="loginpress-logo-partial loginpress-partial customize-partial-edit-shortcut" data-title="Change Logo"><button class="loginpress-event-button customize-partial-edit-shortcut-button" data-customizer-event="customize_logo_section"><span class="dashicons dashicons-edit"></span></button></span>' );
25
  $document = $( document ); // Store references to the body and document elements
26
 
27
  // Append our button to the <body> element
28
+ if( $('.login-action-login').length > 0 ) {
29
+ $('#loginform #user_login').on('focus',function(){
30
+ $('.login h1 a').attr('data-state', 'uifocus');
31
+ $('.login h1 a').addClass('watchdown');
32
+ });
33
+ $('#loginform #user_login').on('blur',function(){
34
+ $('.login h1 a').attr('data-state', 'uiblur');
35
+ $('.login h1 a').removeClass('watchdown').addClass('watchup');
36
+ setTimeout( function() {
37
+ $('.login h1 a').removeClass('watchup');
38
+ }, 800);
39
+ });
40
+ $('#loginform #user_pass').on('focus',function(){
41
+ $('.login h1 a').attr('data-state', 'pwfocus');
42
+ setTimeout( function() {
43
+ $('.login h1 a').addClass('yeti-hide');
44
+ }, 800);
45
+ });
46
+ $('#loginform #user_pass').on('blur',function(){
47
+ $('.login h1 a').attr('data-state', 'pwblur');
48
+ $('.login h1 a').removeClass('yeti-hide').addClass('yeti-seak');
49
+ setTimeout( function() {
50
+ $('.login h1 a').removeClass('yeti-seak');
51
+ }, 800);
52
+ });
53
+ }
54
  if( $('.login-action-login').length > 0 ) { // If .login-action-login exist
55
 
56
  $body_bg.append( '<span class="loginpress-logo-partial loginpress-partial customize-partial-edit-shortcut" data-title="Change Logo"><button class="loginpress-event-button customize-partial-edit-shortcut-button" data-customizer-event="customize_logo_section"><span class="dashicons dashicons-edit"></span></button></span>' );
js/loginpress.js DELETED
@@ -1,63 +0,0 @@
1
- (function($) {
2
- 'use strict';
3
-
4
- $(function() {
5
-
6
- $('#user_pass').each(function() {
7
- $(this).wrap('<div class="user-pass-fields"></div>');
8
- });
9
-
10
- $('.user-pass-fields').each(function() {
11
- $(this).append('<div class="loginpress-caps-lock">' + loginpress_script.caps_lock + '</div>');
12
- });
13
-
14
- // $('.input').each(function() {
15
- // if ( $(this).parent().hasClass('user-pass-fields') ) {
16
- // $(this).parent().addClass( "loginpress-input-wrap" );
17
- // $(this).addClass( "loginpres-input-field" );
18
- // } else {
19
- // $(this).wrap( "<div class='loginpress-input-wrap'></div>" ).addClass( "loginpres-input-field" );
20
- // }
21
- // $( '<span class="focus-border"><i></i></span>' ).appendTo( $(this).parent() );
22
- // });
23
-
24
- });
25
- window.onload = function(e) {
26
-
27
- var capsLock = 'off';
28
- var passwordField = document.getElementById("user_pass");
29
-
30
- passwordField.onkeydown = function(e) {
31
- var el = this;
32
- var caps = event.getModifierState && event.getModifierState( 'CapsLock' );
33
- if ( caps ) {
34
-
35
- capsLock = 'on';
36
- el.nextElementSibling.style.display = "block";
37
- } else {
38
-
39
- capsLock = 'off';
40
- el.nextElementSibling.style.display = "none";
41
- }
42
- };
43
-
44
- passwordField.onblur = function(e) {
45
-
46
- var el = this;
47
- el.nextElementSibling.style.display = "none";
48
- };
49
-
50
- passwordField.onfocus = function(e) {
51
-
52
- var el = this;
53
- if ( capsLock == 'on' ) {
54
-
55
- el.nextElementSibling.style.display = "block";
56
- }else{
57
-
58
- el.nextElementSibling.style.display = "none";
59
- }
60
- };
61
- };
62
-
63
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/script-login.php ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * script-login.php is created for adding JS code in login page footer.
5
+ * @since 1.2.2
6
+ */
7
+
8
+ function loginpress_custom_js( $loginpress_key ) {
9
+
10
+ $loginpress_array = (array) get_option( 'loginpress_customization' );
11
+ if ( array_key_exists( $loginpress_key, $loginpress_array ) ) {
12
+
13
+ if ( 'loginpress_custom_js' == $loginpress_key ) {
14
+ return $loginpress_array[ $loginpress_key ];
15
+ }
16
+
17
+ }
18
+ }
19
+ $loginpress_capslock = __( 'Caps Lock is on', 'loginpress' );
20
+ $loginpress_custom_js = loginpress_custom_js( 'loginpress_custom_js' );
21
+
22
+ if ( ! empty( $loginpress_custom_js ) ) : ?>
23
+ <script>
24
+ <?php echo $loginpress_custom_js; ?>
25
+ </script>
26
+ <?php endif; ?>
27
+
28
+ <script>
29
+
30
+ document.addEventListener('DOMContentLoaded', function(){
31
+ // your code goes here
32
+ var loginpress_user_pass = document.getElementById('user_pass');
33
+ var loginpress_wrapper = document.createElement('div');
34
+ loginpress_wrapper.classList.add('user-pass-fields');
35
+ // insert wrapper before el in the DOM tree
36
+ user_pass.parentNode.insertBefore(loginpress_wrapper, loginpress_user_pass);
37
+
38
+ // move el into wrapper
39
+ loginpress_wrapper.appendChild(loginpress_user_pass);
40
+ var loginpress_user_ps = document.getElementsByClassName('user-pass-fields');
41
+ var loginpress_node = document.createElement("div");
42
+ loginpress_node.classList.add('loginpress-caps-lock');
43
+ var loginpress_textnode = document.createTextNode('<?php echo $loginpress_capslock; ?>');
44
+ loginpress_node.appendChild(loginpress_textnode);
45
+ loginpress_user_ps[0].appendChild(loginpress_node);
46
+ }, false);
47
+ window.onload = function(e) {
48
+
49
+ var capsLock = 'off';
50
+ var passwordField = document.getElementById("user_pass");
51
+
52
+ passwordField.onkeydown = function(e) {
53
+ var el = this;
54
+ var caps = event.getModifierState && event.getModifierState( 'CapsLock' );
55
+ if ( caps ) {
56
+
57
+ capsLock = 'on';
58
+ el.nextElementSibling.style.display = "block";
59
+ } else {
60
+
61
+ capsLock = 'off';
62
+ el.nextElementSibling.style.display = "none";
63
+ }
64
+ };
65
+
66
+ passwordField.onblur = function(e) {
67
+
68
+ var el = this;
69
+ el.nextElementSibling.style.display = "none";
70
+ };
71
+
72
+ passwordField.onfocus = function(e) {
73
+
74
+ var el = this;
75
+ if ( capsLock == 'on' ) {
76
+
77
+ el.nextElementSibling.style.display = "block";
78
+ }else{
79
+
80
+ el.nextElementSibling.style.display = "none";
81
+ }
82
+ };
83
+ };
84
+ </script>
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.1
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.1';
26
 
27
  /**
28
  * @var The single instance of the class
@@ -111,6 +111,7 @@ if ( ! class_exists( 'LoginPress' ) ) :
111
  /**
112
  * Hook into actions and filters
113
  * @since 1.0.0
 
114
  */
115
  private function _hooks() {
116
 
@@ -123,7 +124,6 @@ if ( ! class_exists( 'LoginPress' ) ) :
123
  add_action( 'admin_init', array( $this, 'redirect_optin' ) );
124
  add_filter( 'auth_cookie_expiration', array( $this, '_change_auth_cookie_expiration' ), 10, 3 );
125
  //add_filter( 'plugins_api', array( $this, 'get_addon_info_' ) , 100, 3 );
126
- add_action( 'login_enqueue_scripts', array( $this, 'load_loginpress_assets' ) );
127
  if ( is_multisite() ) {
128
  add_action( 'admin_init', array( $this, 'redirect_loginpress_edit_page' ) );
129
  add_action( 'admin_init', array( $this, 'check_loginpress_page' ) );
@@ -327,24 +327,6 @@ if ( ! class_exists( 'LoginPress' ) ) :
327
 
328
  }
329
 
330
- /**
331
- * Load assets on login screen.
332
- *
333
- * @since 1.0.0
334
- * @version 1.1.14
335
- */
336
- function load_loginpress_assets() {
337
-
338
- wp_enqueue_script( 'loginpress-script', plugins_url( 'js/loginpress.js', __FILE__ ), array( 'jquery' ), LOGINPRESS_VERSION );
339
-
340
- // Array for localize.
341
- $loginpress_localize = array(
342
- 'caps_lock' => __( 'Caps Lock is on', 'loginpress' ),
343
- );
344
-
345
- wp_localize_script( 'loginpress-script', 'loginpress_script', $loginpress_localize );
346
- }
347
-
348
  /**
349
  * Session Expiration
350
  *
@@ -371,7 +353,7 @@ if ( ! class_exists( 'LoginPress' ) ) :
371
  */
372
  function _admin_scripts( $hook ) {
373
 
374
- if( $hook == 'toplevel_page_loginpress-settings' || $hook == 'loginpress_page_loginpress-help' || $hook == 'loginpress_page_loginpress-import-export' || $hook == 'loginpress_page_loginpress-license' ) {
375
 
376
  wp_enqueue_style( 'loginpress_stlye', plugins_url( 'css/style.css', __FILE__ ), array(), LOGINPRESS_VERSION );
377
  wp_enqueue_script( 'loginpress_js', plugins_url( 'js/admin-custom.js', __FILE__ ), array(), LOGINPRESS_VERSION );
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.2
7
  * Author: WPBrigade
8
  * Author URI: https://WPBrigade.com/
9
  * Text Domain: loginpress
22
  /**
23
  * @var string
24
  */
25
+ public $version = '1.2.2';
26
 
27
  /**
28
  * @var The single instance of the class
111
  /**
112
  * Hook into actions and filters
113
  * @since 1.0.0
114
+ * @version 1.2.2
115
  */
116
  private function _hooks() {
117
 
124
  add_action( 'admin_init', array( $this, 'redirect_optin' ) );
125
  add_filter( 'auth_cookie_expiration', array( $this, '_change_auth_cookie_expiration' ), 10, 3 );
126
  //add_filter( 'plugins_api', array( $this, 'get_addon_info_' ) , 100, 3 );
 
127
  if ( is_multisite() ) {
128
  add_action( 'admin_init', array( $this, 'redirect_loginpress_edit_page' ) );
129
  add_action( 'admin_init', array( $this, 'check_loginpress_page' ) );
327
 
328
  }
329
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
330
  /**
331
  * Session Expiration
332
  *
353
  */
354
  function _admin_scripts( $hook ) {
355
 
356
+ if( $hook == 'toplevel_page_loginpress-settings' || $hook == 'loginpress_page_loginpress-addons' || $hook == 'loginpress_page_loginpress-help' || $hook == 'loginpress_page_loginpress-import-export' || $hook == 'loginpress_page_loginpress-license' ) {
357
 
358
  wp_enqueue_style( 'loginpress_stlye', plugins_url( 'css/style.css', __FILE__ ), array(), LOGINPRESS_VERSION );
359
  wp_enqueue_script( 'loginpress_js', plugins_url( 'js/admin-custom.js', __FILE__ ), array(), LOGINPRESS_VERSION );
loginpressfonts/loginpress.eot ADDED
Binary file
loginpressfonts/loginpress.svg ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by IcoMoon</metadata>
5
+ <defs>
6
+ <font id="icomoon" horiz-adv-x="1024">
7
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
8
+ <missing-glyph horiz-adv-x="1024" />
9
+ <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#xe560;" glyph-name="loginpress-dashicon" horiz-adv-x="1311" d="M748.308 464.879c-33.758 22.505-61.89 33.758-90.022 28.132-33.758 0-67.516-22.505-101.275-67.516-39.385-50.637-67.516-112.527-140.659-129.407 39.385-45.011 95.648-73.143 151.912-73.143 73.143 0 151.912 39.385 208.176 129.407-39.385 28.132-45.011 67.516-28.132 112.527zM1294.066 661.802c0 0 0 0 0 0-11.253 0-16.879-5.626-22.505-11.253-247.56-95.648-196.923-73.143-444.483-168.791-11.253-5.626-16.879-5.626-22.505-11.253-11.253-11.253-11.253-33.758-5.626-45.011s22.505-28.132 45.011-28.132c5.626 0 5.626 0 11.253 0 22.505 5.626 191.297 106.901 438.857 219.429 0 5.626 5.626 11.253 11.253 16.879s11.253 16.879 5.626 16.879c0 5.626-11.253 11.253-16.879 11.253zM956.483 363.604c-11.253-39.385-28.132-78.769-45.011-106.901-61.89-84.396-135.033-151.912-230.681-191.297l-45.011-16.879-39.385 11.253c0 0 0 0 0 0 0-5.626 0-11.253-5.626-16.879-22.505-16.879-39.385-28.132-61.89-45.011 11.253-5.626 16.879-11.253 28.132-11.253l78.769-28.132 78.769 28.132c106.901 50.637 196.923 123.78 270.066 225.055 45.011 61.89 61.89 135.033 73.143 208.176-33.758-16.879-67.516-33.758-90.022-50.637-5.626-5.626-5.626-5.626-11.253-5.626zM635.78 869.978c101.275-50.637 196.923-84.396 348.835-101.275 5.626-45.011 5.626-90.022 5.626-129.407 11.253 5.626 22.505 5.626 28.132 11.253 16.879 5.626 33.758 11.253 56.264 16.879 0 45.011-5.626 95.648-11.253 140.659 0 22.505-11.253 33.758-33.758 39.385-151.912 16.879-253.187 45.011-360.088 101.275 0 0-28.132 11.253-33.758 11.253l-28.132-5.626c-123.78-56.264-247.56-90.022-365.714-106.901-22.505 0-33.758-16.879-33.758-39.385-11.253-67.516-11.253-135.033-11.253-196.923 5.626 0 5.626 5.626 11.253 5.626s11.253 0 16.879 0c16.879-11.253 28.132-28.132 45.011-39.385 0-5.626 5.626-11.253 11.253-11.253 0 61.89 0 129.407 5.626 202.549 112.527 16.879 230.681 56.264 348.835 101.275zM528.879 526.769c0 0 0 0 0 0s0 0 0 0zM596.396 59.78c0 0 0 0 0 0-5.626 22.505-16.879 39.385-22.505 61.89 0 5.626-5.626 5.626 0 16.879-5.626 0-11.253 0-11.253 0-45.011 0-84.396 16.879-123.78 39.385 0 0-5.626 0-5.626-5.626-16.879-11.253-33.758-16.879-50.637-22.505-11.253-5.626-28.132-5.626-39.385 0-67.516 5.626-123.78 50.637-135.033 118.154-5.626 39.385 0 78.769 16.879 106.901 11.253 22.505 39.385 50.637 67.516 61.89 5.626 5.626 16.879 5.626 22.505 5.626 50.637 11.253 95.648 0 129.407-28.132 5.626 5.626 11.253 16.879 22.505 33.758 5.626 11.253 16.879 22.505 22.505 33.758 16.879 11.253 16.879 28.132 39.385 45.011 0 0 0 0 0 0-16.879-11.253-45.011 5.626-45.011 22.505 0 22.505-5.626 39.385-5.626 61.89 0 11.253-5.626 16.879-16.879 16.879-28.132 5.626-61.89 16.879-101.275 22.505-11.253 0-22.505-5.626-22.505-16.879-5.626-16.879-16.879-33.758-22.505-50.637-5.626-11.253-22.505-16.879-33.758-16.879-5.626 0-11.253 5.626-16.879 11.253-16.879 11.253-28.132 22.505-45.011 33.758-5.626 5.626-11.253 5.626-16.879 0-5.626 0-5.626-5.626-11.253-5.626-28.132-16.879-56.264-39.385-84.396-56.264-5.626-5.626-5.626-16.879-5.626-22.505 5.626-16.879 11.253-33.758 16.879-45.011 11.253-28.132 0-50.637-28.132-50.637-16.879 0-33.758 0-50.637-5.626-5.626 0-16.879-5.626-16.879-11.253-5.626-39.385-16.879-78.769-22.505-118.154 0-5.626 5.626-11.253 11.253-11.253 16.879-11.253 33.758-16.879 50.637-22.505 22.505-11.253 28.132-33.758 11.253-50.637-11.253-16.879-28.132-28.132-39.385-45.011-5.626-5.626-5.626-11.253 0-16.879 16.879-39.385 39.385-73.143 67.516-101.275 5.626-5.626 11.253-5.626 16.879-5.626 16.879 5.626 39.385 11.253 56.264 22.505 16.879 5.626 39.385-11.253 39.385-28.132s0-39.385 0-56.264c0-11.253 5.626-16.879 16.879-16.879 39.385-5.626 73.143-11.253 112.527-22.505 11.253 0 16.879 0 16.879 11.253 5.626 16.879 16.879 33.758 22.505 50.637 5.626 11.253 11.253 22.505 22.505 22.505 11.253 5.626 22.505 0 28.132-5.626 11.253-11.253 28.132-28.132 39.385-39.385 5.626-5.626 11.253-5.626 16.879 0 11.253 5.626 22.505 16.879 33.758 28.132 22.505 16.879 39.385 28.132 61.89 45.011 11.253-11.253 11.253 0 11.253 5.626z" />
11
+ </font></defs></svg>
loginpressfonts/loginpress.ttf ADDED
Binary file
loginpressfonts/loginpress.woff ADDED
Binary file
readme.txt CHANGED
@@ -4,7 +4,7 @@ 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,6 +214,14 @@ Please visit <a target="_blank" rel="friend" href="https://WPBrigade.com/wordpre
214
 
215
  == Changelog ==
216
 
 
 
 
 
 
 
 
 
217
  = 1.2.1 - 2019-07-08 =
218
  * Bugfix: PHP warning.
219
  * Enhancement: Update log file.
@@ -494,5 +502,5 @@ Please visit <a target="_blank" rel="friend" href="https://WPBrigade.com/wordpre
494
 
495
  == Upgrade Notice ==
496
 
497
- = 1.2.1 =
498
  * Important Release, upgrade immediately.
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.2
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.2 - 2019-07-15 =
218
+ * New Feature: One click Install / Activate / Deactivate Add-Ons on addons page.
219
+ * Bugfix: Enable / Disable "Back To" link issue in customizer.
220
+ * Bugfix: "remember me" color issue in customizer.
221
+ * Bugfix: Login form transparacny issue in customizer.
222
+ * Bugfix: Optimized plugin speed and code improvement.
223
+ * Enhancement: Allow SVG file type if SVG mime enable in WordPress.
224
+
225
  = 1.2.1 - 2019-07-08 =
226
  * Bugfix: PHP warning.
227
  * Enhancement: Update log file.
502
 
503
  == Upgrade Notice ==
504
 
505
+ = 1.2.2 =
506
  * Important Release, upgrade immediately.