Temporary Login Without Password - Version 1,6,8

Version Description

Download this release

Release Info

Developer storeapps
Plugin Icon 128x128 Temporary Login Without Password
Version 1,6,8
Comparing to
See all releases

Code changes from version 1.6.7 to 1,6,8

admin/class-wp-temporary-login-without-password-admin.php CHANGED
@@ -50,6 +50,10 @@ class Wp_Temporary_Login_Without_Password_Admin {
50
 
51
  if ( $this->is_plugin_page() ) {
52
 
 
 
 
 
53
  if ( ! wp_style_is( $this->plugin_name, 'enqueued' ) ) {
54
  wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/wp-temporary-login-without-password-admin.css', array(), $this->version, 'all' );
55
  }
50
 
51
  if ( $this->is_plugin_page() ) {
52
 
53
+ if ( ! wp_style_is( 'tailwind-css', 'enqueued' ) ) {
54
+ wp_enqueue_style( 'tailwind-css', plugin_dir_url( __FILE__ ) . 'dist/main.css', array(), $this->version, 'all' );
55
+ }
56
+
57
  if ( ! wp_style_is( $this->plugin_name, 'enqueued' ) ) {
58
  wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/wp-temporary-login-without-password-admin.css', array(), $this->version, 'all' );
59
  }
admin/css/wp-temporary-login-without-password-admin.css CHANGED
@@ -1,8 +1,8 @@
1
- .wtlwp-form {
2
  background-color: white;
3
  border: 1px solid;
4
  padding: 10px;
5
- }
6
 
7
  .new-wtlwp-form {
8
  display: none;
@@ -55,10 +55,10 @@
55
  width: 60%;
56
  }
57
 
58
- .generated-wtlwp-login-link {
59
  border: 1px solid;
60
  padding: 10px 10px 10px 10px;
61
- }
62
 
63
  .wtlwp-form-row {
64
  padding-left: 20px !important;
1
+ /*.wtlwp-form {
2
  background-color: white;
3
  border: 1px solid;
4
  padding: 10px;
5
+ }*/
6
 
7
  .new-wtlwp-form {
8
  display: none;
55
  width: 60%;
56
  }
57
 
58
+ /*.generated-wtlwp-login-link {
59
  border: 1px solid;
60
  padding: 10px 10px 10px 10px;
61
+ }*/
62
 
63
  .wtlwp-form-row {
64
  padding-left: 20px !important;
admin/dist/main.css ADDED
@@ -0,0 +1 @@
 
1
+ /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box;border:0 solid #d2d6dc}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#a0aec0}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0aec0}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:#a0aec0}input::placeholder,textarea::placeholder{color:#a0aec0}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}a{--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}img{border-width:0}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-input::-webkit-input-placeholder{color:#9fa6b2;opacity:1}.form-input::-moz-placeholder{color:#9fa6b2;opacity:1}.form-input::-ms-input-placeholder{color:#9fa6b2;opacity:1}.form-input::placeholder{color:#9fa6b2;opacity:1}.form-input:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-textarea::-webkit-input-placeholder{color:#9fa6b2;opacity:1}.form-textarea::-moz-placeholder{color:#9fa6b2;opacity:1}.form-textarea::-ms-input-placeholder{color:#9fa6b2;opacity:1}.form-textarea::placeholder{color:#9fa6b2;opacity:1}.form-textarea:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-multiselect{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem .75rem;font-size:1rem;line-height:1.5}.form-multiselect:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M7 7l3-3 3 3m0 6l-3 3-3-3' stroke='%239fa6b2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;background-repeat:no-repeat;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.375rem;padding:.5rem 2.5rem .5rem .75rem;font-size:1rem;line-height:1.5;background-position:right .5rem center;background-size:1.5em 1.5em}.form-select::-ms-expand{color:#9fa6b2;border:none}@media not print{.form-select::-ms-expand{display:none}}@media print and (-ms-high-contrast:active),print and (-ms-high-contrast:none){.form-select{padding-right:.75rem}}.form-select:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-checkbox:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-checkbox::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-negative:0;flex-shrink:0;height:1rem;width:1rem;color:#3f83f8;background-color:#fff;border-color:#d2d6dc;border-width:1px;border-radius:.25rem}.form-checkbox:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-checkbox:checked:focus,.form-radio:checked{border-color:transparent}.form-radio:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E");background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media not print{.form-radio::-ms-check{border-width:1px;color:transparent;background:inherit;border-color:inherit;border-radius:inherit}}.form-radio{-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-negative:0;flex-shrink:0;border-radius:100%;height:1rem;width:1rem;color:#3f83f8;background-color:#fff;border-color:#d2d6dc;border-width:1px}.form-radio:focus{outline:none;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45);border-color:#a4cafe}.form-radio:checked:focus{border-color:transparent}.ig-es-primary-button,.ig-es-send-queue-emails{border-color:transparent;padding:.5rem 1rem;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.ig-es-primary-button,.ig-es-send-queue-emails,.ig-es-title-button,.wp-heading-inline+.page-title-action{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:.375rem;border-width:1px;font-size:.875rem;line-height:1.25rem;font-weight:500;--text-opacity:1;--bg-opacity:1;-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.ig-es-title-button,.wp-heading-inline+.page-title-action{--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity));color:#374151;color:rgba(55,65,81,var(--text-opacity));background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));padding:.25rem .75rem}.wrap .wp-heading-inline+.page-title-action{margin-left:.5rem}.ig-es-title-button:hover,.wp-heading-inline+.page-title-action:hover{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity));--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity))}.ig-es-title-button:focus,.wp-heading-inline+.page-title-action:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(118,169,250,.45);box-shadow:0 0 0 3px rgba(118,169,250,.45);--border-opacity:1;border-color:#a4cafe;border-color:rgba(164,202,254,var(--border-opacity))}.ig-es-primary-button:hover{--bg-opacity:1;background-color:#6875f5;background-color:rgba(104,117,245,var(--bg-opacity));--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.ig-es-primary-button:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45);box-shadow:0 0 0 3px rgba(164,202,254,.45)}.ig-es-imp-button{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important;-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important;border-radius:.375rem!important;border-width:1px!important;border-color:transparent!important;background-color:#fff!important;background-color:rgba(255,255,255,var(--bg-opacity))!important;font-size:.875rem!important;line-height:1.25rem!important;font-weight:500!important;background-color:#0e9f6e!important;background-color:rgba(14,159,110,var(--bg-opacity))!important;-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform!important;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform!important;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;-webkit-transition-duration:.15s!important;transition-duration:.15s!important}.ig-es-imp-button,.ig-es-imp-button:hover{--text-opacity:1!important;color:#fff!important;color:rgba(255,255,255,var(--text-opacity))!important;--bg-opacity:1!important}.ig-es-imp-button:hover{background-color:#31c48d!important;background-color:rgba(49,196,141,var(--bg-opacity))!important}.ig-es-imp-button:focus{outline:2px solid transparent!important;outline-offset:2px!important;-webkit-box-shadow:0 0 0 3px rgba(132,225,188,.45)!important;box-shadow:0 0 0 3px rgba(132,225,188,.45)!important}.ig-es-link-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:transparent;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));font-size:.875rem;line-height:1.25rem;font-weight:500;background-color:#ff5a1f;background-color:rgba(255,90,31,var(--bg-opacity));-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.ig-es-link-button,.ig-es-link-button:hover{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity));--bg-opacity:1}.ig-es-link-button:hover{background-color:#ff8a4c;background-color:rgba(255,138,76,var(--bg-opacity))}.ig-es-link-button:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(253,186,140,.45);box-shadow:0 0 0 3px rgba(253,186,140,.45)}.ig-es-action.js-open .ig-es-action__header{--bg-opacity:1;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity));--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity));--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity))}.form-input{--bg-opacity:1!important;background-color:#fff!important;background-color:rgba(255,255,255,var(--bg-opacity))!important;border-width:1px!important;border-radius:.375rem!important;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05)!important;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)!important;--border-opacity:1!important;border-color:#d2d6dc!important;border-color:rgba(210,214,220,var(--border-opacity))!important}.form-input:focus{outline:2px solid transparent!important;outline-offset:2px!important;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;box-shadow:0 0 0 3px rgba(164,202,254,.45)!important}.form-checkbox{content:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.707 7.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 00-1.414-1.414L7 8.586 5.707 7.293z'/%3E%3C/svg%3E")}.form-radio{content:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}.form-checkbox:checked,.form-radio:checked{--text-opacity:1!important;color:#5850ec!important;color:rgba(88,80,236,var(--text-opacity))!important}.form-select{font-size:.875rem!important;--border-opacity:1!important;border-color:#9fa6b2!important;border-color:rgba(159,166,178,var(--border-opacity))!important;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M7 7l3-3 3 3m0 6l-3 3-3-3' stroke='%239fa6b2' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important}.form-select:focus,input[type=number]:focus{outline:2px solid transparent!important;outline-offset:2px!important;-webkit-box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;box-shadow:0 0 0 3px rgba(164,202,254,.45)!important;--border-opacity:1!important;border-color:#a4cafe!important;border-color:rgba(164,202,254,var(--border-opacity))!important}.es-check-toggle:checked~.es-mail-toggle-line{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity))}.es-check-toggle:checked~.es-mail-toggle-dot{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;-webkit-transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));--transform-translate-x:100%}.es-mail-toggle-line{width:2.25rem;height:1.25rem;background-color:#d2d6dc;background-color:rgba(210,214,220,var(--bg-opacity));-webkit-box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06);box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.es-mail-toggle-dot,.es-mail-toggle-line{display:block;--bg-opacity:1;border-radius:9999px}.es-mail-toggle-dot{width:.875rem;height:.875rem;margin-left:.25rem;position:absolute;top:0;bottom:0;-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.es-mail-toggle-dot:focus-within{-webkit-box-shadow:0 0 0 3px rgba(118,169,250,.45);box-shadow:0 0 0 3px rgba(118,169,250,.45)}[type=radio]:checked+.es-mailer-logo{-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.1s;transition-duration:.1s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;-webkit-transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));--transform-scale-x:1.1;--transform-scale-y:1.1;-webkit-box-shadow:0 0 3px 1px #5a67d8;box-shadow:0 0 3px 1px #5a67d8}[type=radio]:checked+.es-mailer-logo:hover{border-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.wp-core-ui .button,.wp-core-ui .button-secondary{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.wp-core-ui .button,.wp-core-ui .button-primary,.wp-core-ui .button-secondary{font-size:.875rem;border-radius:.375rem;border-width:1px;line-height:1.25rem;font-weight:500;--text-opacity:1}.wp-core-ui .button-primary{--bg-opacity:1;background-color:#5850ec;background-color:rgba(88,80,236,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s}.wp-core-ui .button-primary:hover,.wp-core-ui .button:hover{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity));--text-opacity:1;color:#6875f5;color:rgba(104,117,245,var(--text-opacity))}.wp-core-ui .search-box input[name=s],.wp-core-ui select{border-radius:.375rem}.wp-core-ui #bulk-action-selector-top,.wp-core-ui #doaction,.wp-core-ui #doaction2,.wp-core-ui #filter-by-date,.wp-core-ui #post-query-submit,.wp-core-ui #poststuff select,.wp-core-ui #search-submit{cursor:pointer;line-height:1.25rem;--text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--text-opacity));background-color:transparent;font-size:.875rem}.wp-core-ui #search-submit{margin-left:.375rem}.es-add-or-condition:hover,.wp-core-ui #doaction2:hover .wp-core-ui #post-query-submit:hover,.wp-core-ui #doaction:hover,.wp-core-ui #search-submit:hover{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));--border-opacity:1;border-color:#6b7280;border-color:rgba(107,114,128,var(--border-opacity))}.es-add-or-condition:focus,.wp-core-ui #doaction2:focus .wp-core-ui #post-query-submit:focus,.wp-core-ui #doaction:focus,.wp-core-ui #search-submit:focus{outline:2px solid transparent;outline-offset:2px;-webkit-box-shadow:0 0 0 3px rgba(159,166,178,.45);box-shadow:0 0 0 3px rgba(159,166,178,.45)}.es-items-lists table.fixed,.post-type-es_template table.fixed{margin-top:1rem;margin-bottom:1rem;-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);border-radius:.5rem;overflow:hidden}.es-items-lists table.fixed tfoot td,.es-items-lists table.fixed tfoot th,.es-items-lists table.fixed thead td,.es-items-lists table.fixed thead th,.post-type-es_template table.fixed tfoot th,.post-type-es_template table.fixed thead td,.post-type-es_template table.fixed thead th{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity));font-weight:500;letter-spacing:.05em}.es-items-lists table.fixed tfoot th,.es-items-lists table.fixed thead th,.post-type-es_template table.fixed tfoot th,.post-type-es_template table.fixed thead th{padding-top:.5rem;padding-bottom:.5rem}.es-items-lists .widefat thead td input,.post-type-es_template .widefat thead td input{margin-right:1.5rem}.post-type-es_template .wrap{padding-top:1rem;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.post-type-es_template .wrap>h1{padding-top:0;font-weight:600;--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity));line-height:2.25rem}.es-items-lists .striped>tbody tr,.post-type-es_template .striped>tbody tr{border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));padding-top:.5rem;padding-bottom:.5rem}.es-campaign-reports-table .striped>tbody tr{border-bottom-width:2px}.es-items-lists .striped>tbody>:nth-child(odd),.post-type-es_template .striped>tbody>:nth-child(odd){--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.es_onboard_email{padding:.25rem .75rem!important}.es_reports_table_header{border-bottom-width:1px;--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity));--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity));text-align:left;font-size:.875rem;line-height:1rem;font-weight:500;--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity));letter-spacing:.05em}.importing-progress,.progress{width:100%;height:2rem;--bg-opacity:1;background-color:#e5e7eb;background-color:rgba(229,231,235,var(--bg-opacity));overflow:hidden;position:relative;text-align:right;line-height:1rem;margin-top:.375rem;border-radius:.25rem}.importing-progress span.bar,.progress span.bar{display:block;position:absolute;line-height:2.5rem;padding-top:.25rem;padding-bottom:.25rem;top:0;bottom:0;left:0;border-radius:.25rem;overflow:hidden;background-image:-webkit-gradient(linear,left top,right top,from(var(--gradient-color-stops)));background-image:linear-gradient(90deg,var(--gradient-color-stops));--gradient-from-color:#42389d;--gradient-color-stops:var(--gradient-from-color),var(--gradient-to-color,rgba(66,56,157,0));--gradient-to-color:#6875f5;--bg-opacity:1;background-color:#8da2fb;background-color:rgba(141,162,251,var(--bg-opacity))}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.bg-gray-200{--bg-opacity:1;background-color:#e5e7eb;background-color:rgba(229,231,235,var(--bg-opacity))}.hover\:bg-gray-50:hover{--bg-opacity:1;background-color:#f9fafb;background-color:rgba(249,250,251,var(--bg-opacity))}.focus\:bg-gray-100:focus,.hover\:bg-gray-100:hover{--bg-opacity:1;background-color:#f4f5f7;background-color:rgba(244,245,247,var(--bg-opacity))}.border-transparent{border-color:transparent}.border-gray-100{--border-opacity:1;border-color:#f4f5f7;border-color:rgba(244,245,247,var(--border-opacity))}.border-gray-200{--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.border-gray-300{--border-opacity:1;border-color:#d2d6dc;border-color:rgba(210,214,220,var(--border-opacity))}.border-indigo-600{--border-opacity:1;border-color:#5850ec;border-color:rgba(88,80,236,var(--border-opacity))}.focus\:border-gray-200:focus,.hover\:border-gray-200:hover{--border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--border-opacity))}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border-2{border-width:2px}.border{border-width:1px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.cursor-pointer{cursor:pointer}.block{display:block}.inline-block{display:inline-block}.flex{display:-webkit-box;display:-ms-flexbox;display:flex}.table{display:table}.table-cell{display:table-cell}.hidden{display:none}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.h-6{height:1.5rem}.h-8{height:2rem}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-snug{line-height:1.375}.my-4{margin-top:1rem;margin-bottom:1rem}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mb-3{margin-bottom:.75rem}.ml-3{margin-left:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.-mt-1{margin-top:-.25rem}.-mt-0\.5{margin-top:-.125rem}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.overflow-hidden{overflow:hidden}.p-2{padding:.5rem}.p-4{padding:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.pt-1{padding-top:.25rem}.pr-1{padding-right:.25rem}.pt-2{padding-top:.5rem}.pb-2{padding-bottom:.5rem}.pt-3{padding-top:.75rem}.pr-3{padding-right:.75rem}.pl-4{padding-left:1rem}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.shadow-sm{-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.05);box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.shadow{-webkit-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.shadow-md{-webkit-box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.text-left{text-align:left}.text-gray-400{--text-opacity:1;color:#9fa6b2;color:rgba(159,166,178,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity))}.text-indigo-600{--text-opacity:1;color:#5850ec;color:rgba(88,80,236,var(--text-opacity))}.hover\:text-gray-600:hover{--text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--text-opacity))}.hover\:text-gray-700:hover{--text-opacity:1;color:#374151;color:rgba(55,65,81,var(--text-opacity))}.focus\:text-gray-600:focus{--text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--text-opacity))}.italic{font-style:italic}.uppercase{text-transform:uppercase}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.w-6{width:1.5rem}.w-1\/4{width:25%}.w-full{width:100%}.transition{-webkit-transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,-webkit-box-shadow,-webkit-transform}.ease-in-out{-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{-webkit-transition-duration:.15s;transition-duration:.15s}@-webkit-keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes ping{75%,to{-webkit-transform:scale(2);transform:scale(2);opacity:0}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{-webkit-transform:translateY(-25%);transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{-webkit-transform:none;transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}
admin/dist/main.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(r){var n={};function o(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return r[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.m=r,o.c=n,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)o.d(r,n,function(e){return t[e]}.bind(null,n));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t,r){"use strict";r.r(t);t=r(1)},function(e,t,r){}]);
admin/js/main.js ADDED
@@ -0,0 +1 @@
 
1
+ import '../css/style.css'
includes/class-wp-temporary-login-without-password-common.php CHANGED
@@ -209,7 +209,7 @@ class Wp_Temporary_Login_Without_Password_Common {
209
  foreach ( $expiry_options as $key => $options ) {
210
  $expiry_options[ $key ]['order'] = ! empty( $options['order'] ) ? $options['order'] : 100;
211
  $expiry_options[ $key ]['group'] = ! empty( $options['group'] ) ? $options['group'] : __( 'from_now', '' );
212
- $expiry_options[ $key ]['group_name'] = ! empty( $options['group_name'] ) ? $options['group_name'] : __( 'From Now', '' );
213
  $expiry_options[ $key ]['expiry_label'] = ! empty( $options['expiry_label'] ) ? $options['expiry_label'] : '';
214
 
215
  $orders[ $key ] = ! empty( $options['order'] ) ? $options['order'] : 100;
@@ -1032,4 +1032,137 @@ class Wp_Temporary_Login_Without_Password_Common {
1032
  return self::is_valid_temporary_login( $current_user_id );
1033
  }
1034
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1035
  }
209
  foreach ( $expiry_options as $key => $options ) {
210
  $expiry_options[ $key ]['order'] = ! empty( $options['order'] ) ? $options['order'] : 100;
211
  $expiry_options[ $key ]['group'] = ! empty( $options['group'] ) ? $options['group'] : __( 'from_now', '' );
212
+ $expiry_options[ $key ]['group_name'] = ! empty( $options['group_name'] ) ? $options['group_name'] : __( 'From Now', '' );
213
  $expiry_options[ $key ]['expiry_label'] = ! empty( $options['expiry_label'] ) ? $options['expiry_label'] : '';
214
 
215
  $orders[ $key ] = ! empty( $options['order'] ) ? $options['order'] : 100;
1032
  return self::is_valid_temporary_login( $current_user_id );
1033
  }
1034
 
1035
+ /**
1036
+ * @param array $args
1037
+ *
1038
+ * @return string|void
1039
+ *
1040
+ * @since 1.6.8
1041
+ */
1042
+ public static function wp_dropdown_languages( $args = array() ) {
1043
+
1044
+ $parsed_args = wp_parse_args(
1045
+ $args,
1046
+ array(
1047
+ 'id' => 'locale',
1048
+ 'class' => 'form-select font-normal text-gray-600 h-8 shadow-sm',
1049
+ 'name' => 'locale',
1050
+ 'languages' => array(),
1051
+ 'translations' => array(),
1052
+ 'selected' => '',
1053
+ 'echo' => 1,
1054
+ 'show_available_translations' => true,
1055
+ 'show_option_site_default' => false,
1056
+ 'show_option_en_us' => true,
1057
+ )
1058
+ );
1059
+
1060
+ // Bail if no ID or no name.
1061
+ if ( ! $parsed_args['id'] || ! $parsed_args['name'] ) {
1062
+ return;
1063
+ }
1064
+
1065
+ // English (United States) uses an empty string for the value attribute.
1066
+ if ( 'en_US' === $parsed_args['selected'] ) {
1067
+ $parsed_args['selected'] = '';
1068
+ }
1069
+
1070
+ $translations = $parsed_args['translations'];
1071
+ if ( empty( $translations ) ) {
1072
+ require_once ABSPATH . 'wp-admin/includes/translation-install.php';
1073
+ $translations = wp_get_available_translations();
1074
+ }
1075
+
1076
+ /*
1077
+ * $parsed_args['languages'] should only contain the locales. Find the locale in
1078
+ * $translations to get the native name. Fall back to locale.
1079
+ */
1080
+ $languages = array();
1081
+ foreach ( $parsed_args['languages'] as $locale ) {
1082
+ if ( isset( $translations[ $locale ] ) ) {
1083
+ $translation = $translations[ $locale ];
1084
+ $languages[] = array(
1085
+ 'language' => $translation['language'],
1086
+ 'native_name' => $translation['native_name'],
1087
+ 'lang' => current( $translation['iso'] ),
1088
+ );
1089
+
1090
+ // Remove installed language from available translations.
1091
+ unset( $translations[ $locale ] );
1092
+ } else {
1093
+ $languages[] = array(
1094
+ 'language' => $locale,
1095
+ 'native_name' => $locale,
1096
+ 'lang' => '',
1097
+ );
1098
+ }
1099
+ }
1100
+
1101
+ $translations_available = ( ! empty( $translations ) && $parsed_args['show_available_translations'] );
1102
+
1103
+ // Holds the HTML markup.
1104
+ $structure = array();
1105
+
1106
+ // List installed languages.
1107
+ if ( $translations_available ) {
1108
+ $structure[] = '<optgroup label="' . esc_attr_x( 'Installed', 'translations' ) . '">';
1109
+ }
1110
+
1111
+ // Site default.
1112
+ if ( $parsed_args['show_option_site_default'] ) {
1113
+ $structure[] = sprintf(
1114
+ '<option value="site-default" data-installed="1"%s>%s</option>',
1115
+ selected( 'site-default', $parsed_args['selected'], false ),
1116
+ _x( 'Site Default', 'default site language' )
1117
+ );
1118
+ }
1119
+
1120
+ if ( $parsed_args['show_option_en_us'] ) {
1121
+ $structure[] = sprintf(
1122
+ '<option value="" lang="en" data-installed="1"%s>English (United States)</option>',
1123
+ selected( '', $parsed_args['selected'], false )
1124
+ );
1125
+ }
1126
+
1127
+ // List installed languages.
1128
+ foreach ( $languages as $language ) {
1129
+ $structure[] = sprintf(
1130
+ '<option value="%s" lang="%s"%s data-installed="1">%s</option>',
1131
+ esc_attr( $language['language'] ),
1132
+ esc_attr( $language['lang'] ),
1133
+ selected( $language['language'], $parsed_args['selected'], false ),
1134
+ esc_html( $language['native_name'] )
1135
+ );
1136
+ }
1137
+ if ( $translations_available ) {
1138
+ $structure[] = '</optgroup>';
1139
+ }
1140
+
1141
+ // List available translations.
1142
+ if ( $translations_available ) {
1143
+ $structure[] = '<optgroup label="' . esc_attr_x( 'Available', 'translations' ) . '">';
1144
+ foreach ( $translations as $translation ) {
1145
+ $structure[] = sprintf(
1146
+ '<option value="%s" lang="%s"%s>%s</option>',
1147
+ esc_attr( $translation['language'] ),
1148
+ esc_attr( current( $translation['iso'] ) ),
1149
+ selected( $translation['language'], $parsed_args['selected'], false ),
1150
+ esc_html( $translation['native_name'] )
1151
+ );
1152
+ }
1153
+ $structure[] = '</optgroup>';
1154
+ }
1155
+
1156
+ // Combine the output string.
1157
+ $output = sprintf( '<select name="%s" id="%s" class="%s">', esc_attr( $parsed_args['name'] ), esc_attr( $parsed_args['id']), esc_attr( $parsed_args['class'] ) );
1158
+ $output .= implode( "\n", $structure );
1159
+ $output .= '</select>';
1160
+
1161
+ if ( $parsed_args['echo'] ) {
1162
+ echo $output;
1163
+ }
1164
+
1165
+ return $output;
1166
+ }
1167
+
1168
  }
includes/class-wp-temporary-login-without-password-layout.php CHANGED
@@ -21,14 +21,14 @@ class Wp_Temporary_Login_Without_Password_Layout {
21
  */
22
  public static function prepare_header_footer_row() {
23
 
24
- $row = '';
25
 
26
- $row .= '<th class="manage-column column-details" colspan="2">' . __( 'Users', 'temporary-login-without-password' ) . '</th>';
27
- $row .= '<th class="manage-column column-email">' . __( 'Role', 'temporary-login-without-password' ) . '</th>';
28
- $row .= '<th class="manage-column column-expired">' . __( 'Last Logged In', 'temporary-login-without-password' ) . '</th>';
29
- $row .= '<th class="manage-column column-expired">' . __( 'Count', 'temporary-login-without-password' ) . '</th>';
30
- $row .= '<th class="manage-column column-expired">' . __( 'Expiry', 'temporary-login-without-password' ) . '</th>';
31
- $row .= '<th class="manage-column column-expired">' . __( 'Actions', 'temporary-login-without-password' ) . '</th>';
32
 
33
  return $row;
34
  }
@@ -45,7 +45,7 @@ class Wp_Temporary_Login_Without_Password_Layout {
45
  $row = '';
46
 
47
  $row .= '<tr class="tempadmin-single-user-row tempadmin-empty-users-row standard">';
48
- $row .= '<td colspan="6">';
49
  $row .= '<span class="description">' . __( 'You have not created any temporary logins yet.', 'temporary-login-without-password' ) . '</span>';
50
  $row .= '</td>';
51
  $row .= '</tr>';
@@ -116,25 +116,25 @@ class Wp_Temporary_Login_Without_Password_Layout {
116
  $user_details .= " (<span class='wtlwp-user-login'>" . esc_attr( $user->user_login ) . ')</span><br />';
117
 
118
  if ( ( esc_attr( $user->user_email ) ) ) {
119
- $user_details .= '<span><b>' . esc_attr( $user->user_email ) . '</b></span> <br />';
120
  }
121
 
122
  $user_details .= '</span></div>';
123
 
124
  $row = '';
125
 
126
- $row .= '<tr id="single-user-' . absint( $user->ID ) . '" class="tempadmin-single-user-row">';
127
- $row .= '<td class="email column-details" colspan="2">' . $user_details . '</td>';
128
- $row .= '<td class="wtlwp-token column-role">' . esc_attr( $user_role ) . '</td>';
129
- $row .= '<td class="wtlwp-token column-last-login">' . esc_attr( $last_login_str ) . '</td>';
130
- $row .= '<td class="wtlwp-token column-total-count">' . esc_attr( $total_count ) . '</td>';
131
 
132
- $row .= '<td class="expired column-expired wtlwp-status-' . strtolower( $wtlwp_status ) . '">';
133
  if ( ! empty( $expire ) ) {
134
  $row .= Wp_Temporary_Login_Without_Password_Common::time_elapsed_string( $expire );
135
  }
136
  $row .= '</td>';
137
- $row .= '<td class="wtlwp-token column-email">' . self::prepare_row_actions( $user, $wtlwp_status ) . '</td>';
138
  $row .= '</tr>';
139
 
140
  return $row;
@@ -164,6 +164,7 @@ class Wp_Temporary_Login_Without_Password_Layout {
164
  'action' => 'update',
165
  ), admin_url( 'users.php' )
166
  );
 
167
  $disable_login_url = Wp_Temporary_Login_Without_Password_Common::get_manage_login_url( $user_id, 'disable' );
168
  $enable_login_url = Wp_Temporary_Login_Without_Password_Common::get_manage_login_url( $user_id, 'enable' );
169
  $temporary_login_link = Wp_Temporary_Login_Without_Password_Common::get_login_url( $user_id );
@@ -183,7 +184,7 @@ class Wp_Temporary_Login_Without_Password_Layout {
183
  // Shows these link only if temporary login active.
184
  if ( $is_active ) {
185
  $action_row .= "<span class='email'><a title='" . __( 'Email login link', 'temporary-login-without-password' ) . "' href='{$mail_to_link}'><span class='dashicons dashicons-email'></span></a></span>";
186
- $action_row .= "<span class='copy'><span id='text-{$user_id}' class='dashicons dashicons-admin-links wtlwp-copy-to-clipboard' title='" . __( 'Copy login link', 'temporary-login-without-password' ) . "' data-clipboard-text='{$temporary_login_link}'></span></span>";
187
  $action_row .= "<span id='copied-text-{$user_id}' class='copied-text-message'></span>";
188
  }
189
 
21
  */
22
  public static function prepare_header_footer_row() {
23
 
24
+ $row = '<tr class="bg-gray-100 text-sm text-left leading-4 text-gray-500 tracking-wider border-b border-t border-gray-200">';
25
 
26
+ $row .= '<th class="p-4 font-medium" colspan="2">' . __( 'Users', 'temporary-login-without-password' ) . '</th>';
27
+ $row .= '<th class="p-4 font-medium">' . __( 'Role', 'temporary-login-without-password' ) . '</th>';
28
+ $row .= '<th class="p-4 font-medium">' . __( 'Last Logged In', 'temporary-login-without-password' ) . '</th>';
29
+ $row .= '<th class="p-4 font-medium">' . __( 'Count', 'temporary-login-without-password' ) . '</th>';
30
+ $row .= '<th class="p-4 font-medium">' . __( 'Expiry', 'temporary-login-without-password' ) . '</th>';
31
+ $row .= '<th class="p-4 font-medium">' . __( 'Actions', 'temporary-login-without-password' ) . '</th></tr>';
32
 
33
  return $row;
34
  }
45
  $row = '';
46
 
47
  $row .= '<tr class="tempadmin-single-user-row tempadmin-empty-users-row standard">';
48
+ $row .= '<td colspan="6 pl-4 py-2 bg-white border-b border-gray-200 text-sm leading-5 text-gray-600">';
49
  $row .= '<span class="description">' . __( 'You have not created any temporary logins yet.', 'temporary-login-without-password' ) . '</span>';
50
  $row .= '</td>';
51
  $row .= '</tr>';
116
  $user_details .= " (<span class='wtlwp-user-login'>" . esc_attr( $user->user_login ) . ')</span><br />';
117
 
118
  if ( ( esc_attr( $user->user_email ) ) ) {
119
+ $user_details .= '<p class="inline-block pt-1 font-medium text-gray-500">' . esc_attr( $user->user_email ) . '</p> <br />';
120
  }
121
 
122
  $user_details .= '</span></div>';
123
 
124
  $row = '';
125
 
126
+ $row .= '<tr id="single-user-' . absint( $user->ID ) . '" class="tempadmin-single-user-row pl-4 py-3 border-b border-gray-200 text-sm leading-5 text-gray-600 bg-white">';
127
+ $row .= '<td class="email column-details pl-4 py-2 border-b border-gray-200 text-sm leading-5 text-gray-600" colspan="2">' . $user_details . '</td>';
128
+ $row .= '<td class="wtlwp-token column-role pl-4 py-2 border-b border-gray-200 text-sm leading-5 text-gray-600">' . esc_attr( $user_role ) . '</td>';
129
+ $row .= '<td class="wtlwp-token column-last-login pl-4 py-2 border-b border-gray-200 text-sm leading-5 text-gray-600">' . esc_attr( $last_login_str ) . '</td>';
130
+ $row .= '<td class="wtlwp-token column-total-count pl-4 py-2 border-b border-gray-200 text-sm leading-5 text-gray-600">' . esc_attr( $total_count ) . '</td>';
131
 
132
+ $row .= '<td class="expired column-expired wtlwp-status-' . strtolower( $wtlwp_status ) . ' pl-4 py-2 border-b border-gray-200 text-sm leading-5 text-gray-600">';
133
  if ( ! empty( $expire ) ) {
134
  $row .= Wp_Temporary_Login_Without_Password_Common::time_elapsed_string( $expire );
135
  }
136
  $row .= '</td>';
137
+ $row .= '<td class="wtlwp-token column-email pl-4 py-2 border-b border-gray-200 text-sm leading-5 text-gray-600">' . self::prepare_row_actions( $user, $wtlwp_status ) . '</td>';
138
  $row .= '</tr>';
139
 
140
  return $row;
164
  'action' => 'update',
165
  ), admin_url( 'users.php' )
166
  );
167
+
168
  $disable_login_url = Wp_Temporary_Login_Without_Password_Common::get_manage_login_url( $user_id, 'disable' );
169
  $enable_login_url = Wp_Temporary_Login_Without_Password_Common::get_manage_login_url( $user_id, 'enable' );
170
  $temporary_login_link = Wp_Temporary_Login_Without_Password_Common::get_login_url( $user_id );
184
  // Shows these link only if temporary login active.
185
  if ( $is_active ) {
186
  $action_row .= "<span class='email'><a title='" . __( 'Email login link', 'temporary-login-without-password' ) . "' href='{$mail_to_link}'><span class='dashicons dashicons-email'></span></a></span>";
187
+ $action_row .= "<span class='copy'><span id='text-{$user_id}' class='text-indigo-600 dashicons dashicons-admin-links wtlwp-copy-to-clipboard' title='" . __( 'Copy login link', 'temporary-login-without-password' ) . "' data-clipboard-text='{$temporary_login_link}'></span></span>";
188
  $action_row .= "<span id='copied-text-{$user_id}' class='copied-text-message'></span>";
189
  }
190
 
includes/class-wtlwp-system-info.php CHANGED
@@ -111,7 +111,7 @@ class Wtlwp_Sytem_Info {
111
 
112
  $space = 30;
113
  $information = $this->get_info( $space );
114
- $output = "### <b>System Info </b>###<br /><br />";
115
 
116
  foreach ( $information as $name => $value ) {
117
  if ( $value == '--' ) {
@@ -120,10 +120,10 @@ class Wtlwp_Sytem_Info {
120
  }
121
 
122
  $length = $space - strlen( $name );
123
- $output .= "<b>" . $name . "</b>" . str_repeat( ' ', $length ) . $value . "<br />";
124
  }
125
 
126
- $output .= "### End System Info ###<br />";
127
 
128
  return $output;
129
  }
111
 
112
  $space = 30;
113
  $information = $this->get_info( $space );
114
+ $output = "<div class='p-4'>### <p class='font-semibold text-base'>System Info </p>###<br /><br />";
115
 
116
  foreach ( $information as $name => $value ) {
117
  if ( $value == '--' ) {
120
  }
121
 
122
  $length = $space - strlen( $name );
123
+ $output .= "<b>" . $name . "</b>: " . str_repeat( ' ', $length ) . $value . "<br />";
124
  }
125
 
126
+ $output .= "<br/>###<p class='font-semibold text-base'> End System Info</p> ###<br /></div>";
127
 
128
  return $output;
129
  }
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Temporary Login Without Password ===
2
- Contributors: storeapps, icegram, niravmehta, malayladu
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=BMFRMVXQ87JWA&source=url
4
- Tags: temporary access, developer access, temporary login, passwordless login, secure login
5
  Requires at least: 3.0.1
6
- Tested up to: 5.6
7
- Stable tag: 1.6.7
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -33,6 +33,17 @@ Read [this article](https://www.storeapps.org/create-secure-login-without-passwo
33
  > ➡️ See the last logged in time of a temporary user
34
  > ➡️ Also see, how many times a temporary user accessed your setup
35
 
 
 
 
 
 
 
 
 
 
 
 
36
  **Spread The Love ❤️**
37
 
38
  If you like Temporary Login Without Password, please leave a [five stars ⭐⭐⭐⭐⭐](https://wordpress.org/support/plugin/temporary-login-without-password/reviews/#new-post) and also spread the word about it via [Facebook](https://www.facebook.com/sharer.php?u=https://wordpress.org/plugins/temporary-login-without-password/) and [Twitter](https://twitter.com/intent/tweet?url=https://wordpress.org/plugins/temporary-login-without-password/). That helps fellow website owners assess Temporary Login Without Password easily and benefit from it!
@@ -123,6 +134,10 @@ Yes, you can use a fake email address or your email address to generate temporar
123
 
124
  == Changelog ==
125
 
 
 
 
 
126
  **1.6.7 [2020-12-30]**
127
 
128
  * Update: WordPress 5.6 compatibility check
1
  === Temporary Login Without Password ===
2
+ Contributors: storeapps, icegram, niravmehta, malayladu, asmipatel
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=BMFRMVXQ87JWA&source=url
4
+ Tags: temporary access, developer access, passwordless login, magic pin, secure login
5
  Requires at least: 3.0.1
6
+ Tested up to: 5.6.2
7
+ Stable tag: 1.6.8
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
33
  > ➡️ See the last logged in time of a temporary user
34
  > ➡️ Also see, how many times a temporary user accessed your setup
35
 
36
+ #### **For Developers**
37
+
38
+ If you need an admin access to your client's WordPress setup to resolve any issues, use following template to ask your client to give you a temporary access to their WordPress setup.
39
+
40
+ > Hi {%customer_name%},
41
+ >
42
+ > To allow me to investigate on your site, install & activate the free WordPress plugin - [Temporary Login Without Password](https://wordpress.org/plugins/temporary-login-without-password/), and give me admin access to your site via the temporary link generated. Once I'll get the admin access, I'll check your site & will try to resolve the issue.
43
+ >
44
+ > **Note**:
45
+ > Keep the expiry of a temporary login link for one month. Send the created login link as a reply to this email.
46
+
47
  **Spread The Love ❤️**
48
 
49
  If you like Temporary Login Without Password, please leave a [five stars ⭐⭐⭐⭐⭐](https://wordpress.org/support/plugin/temporary-login-without-password/reviews/#new-post) and also spread the word about it via [Facebook](https://www.facebook.com/sharer.php?u=https://wordpress.org/plugins/temporary-login-without-password/) and [Twitter](https://twitter.com/intent/tweet?url=https://wordpress.org/plugins/temporary-login-without-password/). That helps fellow website owners assess Temporary Login Without Password easily and benefit from it!
134
 
135
  == Changelog ==
136
 
137
+ **1.6.8 [2020-03-05]**
138
+
139
+ * Update: Improve UI
140
+
141
  **1.6.7 [2020-12-30]**
142
 
143
  * Update: WordPress 5.6 compatibility check
templates/admin-settings.php CHANGED
@@ -16,9 +16,9 @@
16
 
17
  <?php if ( 'home' === $active_tab && !$is_temporary_login ) { ?>
18
  <div class="wrap wtlwp-settings-wrap" id="temporary-logins">
19
- <h2>
20
- <?php echo esc_html__( 'Temporary Logins', 'temporary-login-without-password' ); ?>
21
- <span class="page-title-action" id="add-new-wtlwp-form-button"><?php esc_html_e( 'Create New', 'temporary-login-without-password' ); ?></span>
22
  </h2>
23
  <div class="wtlwp-settings">
24
  <!-- Add New Form Start -->
@@ -38,14 +38,18 @@
38
  <?php $wtlwp_generated_url = esc_url( $wtlwp_generated_url );
39
  if ( ! empty( $wtlwp_generated_url ) ) { ?>
40
 
41
- <div class="wrap generated-wtlwp-login-link" id="generated-wtlwp-login-link">
42
- <p>
43
- <?php esc_attr_e( "Here's a temporary login link", 'temporary-login-without-password' ); ?>
44
  </p>
45
- <input id="wtlwp-click-to-copy-btn" type="text" class="wtlwp-wide-input" value="<?php echo esc_url( $wtlwp_generated_url ); ?>">
46
- <button class="wtlwp-click-to-copy-btn" data-clipboard-action="copy" data-clipboard-target="#wtlwp-click-to-copy-btn"><?php echo esc_html__( 'Click To Copy', 'temporary-login-without-password' ); ?></button>
 
 
 
 
47
  <span id="copied-text-message-wtlwp-click-to-copy-btn"></span>
48
- <p>
49
  <?php
50
  esc_attr_e( 'User can directly login to WordPress admin panel without username and password by opening this link.', 'temporary-login-without-password' );
51
  if ( ! empty( $user_email ) ) {
@@ -60,7 +64,7 @@
60
  <!-- Add New Form End -->
61
 
62
  <!-- List All Generated Logins Start -->
63
- <div class="wrap list-wtlwp-logins" id="list-wtlwp-logins">
64
  <?php load_template( WTLWP_PLUGIN_DIR . '/templates/list-temporary-logins.php' ); ?>
65
  </div>
66
  <!-- List All Generated Logins End -->
16
 
17
  <?php if ( 'home' === $active_tab && !$is_temporary_login ) { ?>
18
  <div class="wrap wtlwp-settings-wrap" id="temporary-logins">
19
+ <h2 class="font-semibold text-gray-700">
20
+ <?php echo esc_html__( 'Temporary Logins', 'temporary-login-without-password' ); ?>
21
+ <span class="cursor-pointer ml-3 border border-gray-300 text-sm leading-5 font-medium rounded-md text-gray-700 bg-white transition duration-150 ease-in-out px-3 py-1 hover:bg-gray-50 hover:text-gray-700 focus:ring-2 focus:ring-blue-200" id="add-new-wtlwp-form-button"><?php esc_html_e( 'Create New', 'temporary-login-without-password' ); ?></span>
22
  </h2>
23
  <div class="wtlwp-settings">
24
  <!-- Add New Form Start -->
38
  <?php $wtlwp_generated_url = esc_url( $wtlwp_generated_url );
39
  if ( ! empty( $wtlwp_generated_url ) ) { ?>
40
 
41
+ <div class="wrap rounded-md bg-white shadow-md my-4 py-4 pl-4 pr-3 border-indigo-600 border-2" id="generated-wtlwp-login-link">
42
+ <p class="py-1.5 text-gray-500 font-medium tracking-wide text-sm">
43
+ <?php esc_attr_e( "Here's a temporary login link", 'temporary-login-without-p2ssword' ); ?>
44
  </p>
45
+ <input id="wtlwp-click-to-copy-btn" type="text" class="wtlwp-wide-input form-input text-sm" value="<?php echo esc_url( $wtlwp_generated_url ); ?>">
46
+ <button class="wtlwp-copy-to-clipboard p-2 border-transparent text-indigo-600 rounded-full hover:text-gray-600 focus:outline-none focus:text-gray-600 focus:bg-gray-100 transition duration-150 ease-in-out ml-1 hover:rounded-full hover:bg-gray-100" data-clipboard-action="copy" data-clipboard-target="#wtlwp-click-to-copy-btn">
47
+ <svg data-clipboard-action="copy" data-clipboard-target="#wtlwp-click-to-copy-btn" class="w-6 h-6 inline-block -mt-1" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title><?php echo esc_html__( 'Copy', 'temporary-login-without-password' ); ?></title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg>
48
+ </button>
49
+
50
+
51
  <span id="copied-text-message-wtlwp-click-to-copy-btn"></span>
52
+ <p class="py-1.5 tracking-wide text-gray-600">
53
  <?php
54
  esc_attr_e( 'User can directly login to WordPress admin panel without username and password by opening this link.', 'temporary-login-without-password' );
55
  if ( ! empty( $user_email ) ) {
64
  <!-- Add New Form End -->
65
 
66
  <!-- List All Generated Logins Start -->
67
+ <div class="wrap list-wtlwp-logins mt-4" id="list-wtlwp-logins">
68
  <?php load_template( WTLWP_PLUGIN_DIR . '/templates/list-temporary-logins.php' ); ?>
69
  </div>
70
  <!-- List All Generated Logins End -->
templates/list-temporary-logins.php CHANGED
@@ -6,7 +6,7 @@
6
  */
7
 
8
  ?>
9
- <table class="wp-list-table widefat fixed striped users">
10
  <thead>
11
  <?php echo Wp_Temporary_Login_Without_Password_Layout::prepare_header_footer_row(); ?>
12
  </thead>
6
  */
7
 
8
  ?>
9
+ <table class="wp-list-table shadow rounded-lg overflow-hidden w-full">
10
  <thead>
11
  <?php echo Wp_Temporary_Login_Without_Password_Layout::prepare_header_footer_row(); ?>
12
  </thead>
templates/new-login.php CHANGED
@@ -6,52 +6,52 @@
6
  */
7
 
8
  ?>
9
- <h2> <?php echo esc_html__( 'Create a new Temporary Login', 'temporary-login-without-password' ); ?></h2>
10
  <form method="post">
11
- <table class="form-table wtlwp-form">
12
- <tr class="form-field form-required">
13
- <th scope="row" class="wtlwp-form-row">
14
- <label for="user_email"><?php echo esc_html__( 'Email*', 'temporary-login-without-password' ); ?> </label>
15
  </th>
16
- <td>
17
- <input name="wtlwp_data[user_email]" type="text" id="user_email" value="" aria-required="true" maxlength="60" class="wtlwp-form-input"/>
18
  </td>
19
  </tr>
20
 
21
  <tr class="form-field form-required">
22
  <th scope="row" class="wtlwp-form-row">
23
- <label for="user_first_name"><?php echo esc_html__( 'First Name', 'temporary-login-without-password' ); ?> </label>
24
  </th>
25
  <td>
26
- <input name="wtlwp_data[user_first_name]" type="text" id="user_first_name" value="" aria-required="true" maxlength="60" class="wtlwp-form-input"/>
27
  </td>
28
  </tr>
29
 
30
  <tr class="form-field form-required">
31
  <th scope="row" class="wtlwp-form-row">
32
- <label for="user_last_name"><?php echo esc_html__( 'Last Name', 'temporary-login-without-password' ); ?> </label>
33
  </th>
34
  <td>
35
- <input name="wtlwp_data[user_last_name]" type="text" id="user_last_name" value="" aria-required="true" maxlength="60" class="wtlwp-form-input"/>
36
  </td>
37
  </tr>
38
 
39
  <?php if ( is_network_admin() ) { ?>
40
  <tr class="form-field form-required">
41
  <th scope="row" class="wtlwp-form-row">
42
- <label for="user_super_admin"><?php echo esc_html__( 'Super Admin', 'temporary-login-without-password' ); ?> </label>
43
  </th>
44
  <td>
45
- <input type="checkbox" id="user_super_admin" name="wtlwp_data[super_admin]"><?php echo esc_html__( 'Grant this user super admin privileges for the Network.', 'temporary-login-without-password' ); ?>
46
  </td>
47
  </tr>
48
  <?php } else { ?>
49
  <tr class="form-field">
50
  <th scope="row" class="wtlwp-form-row">
51
- <label for="adduser-role"><?php echo esc_html__( 'Role', 'temporary-login-without-password' ); ?></label>
52
  </th>
53
  <td>
54
- <select name="wtlwp_data[role]" id="user-role">
55
  <?php Wp_Temporary_Login_Without_Password_Common::tlwp_dropdown_roles( $visible_roles, $default_role ); ?>
56
  </select>
57
  </td>
@@ -60,11 +60,11 @@
60
 
61
  <tr class="form-field">
62
  <th scope="row" class="wtlwp-form-row">
63
- <label for="adduser-role"><?php echo esc_html__( 'Expiry', 'temporary-login-without-password' ); ?></label>
64
  </th>
65
  <td>
66
  <span id="expiry-date-selection">
67
- <select name="wtlwp_data[expiry]" id="new-user-expiry-time">
68
  <?php Wp_Temporary_Login_Without_Password_Common::get_expiry_duration_html( $default_expiry_time ); ?>
69
  </select>
70
  </span>
@@ -78,19 +78,19 @@
78
 
79
  <tr class="form-field">
80
  <th scope="row" class="wtlwp-form-row">
81
- <label for="language"><?php echo esc_html__( 'Language', 'temporary-login-without-password' ); ?></label>
82
  </th>
83
  <td scope="row" class="">
84
  <?php
85
- wp_dropdown_languages(array('name' => 'wtlwp_data[locale]', 'selected' => get_locale()));
86
  ?>
87
  </td>
88
  </tr>
89
  <tr class="form-field">
90
- <th scope="row" class="wtlwp-form-row"><label for="adduser-role"></label></th>
91
  <td>
92
  <p class="submit">
93
- <input type="submit" class="button button-primary wtlwp-form-submit-button" value="<?php esc_html_e( 'Submit', 'temporary-login-without-password' ); ?>" class="button button-primary" id="generatetemporarylogin" name="generate_temporary_login"> <?php esc_html_e( 'or', 'temporary-login-without-password' ); ?>
94
  <span class="cancel-new-login-form" id="cancel-new-login-form"><?php esc_html_e( 'Cancel', 'temporary-login-without-password' ); ?></span>
95
  </p>
96
  </td>
6
  */
7
 
8
  ?>
9
+ <p class="text-base tracking-wide font-medium"> <?php echo esc_html__( 'Create a new Temporary Login', 'temporary-login-without-password' ); ?></h2>
10
  <form method="post">
11
+ <table class="form-table bg-white rounded-lg shadow-md">
12
+ <tr class="form-field form-required pt-2">
13
+ <th scope="row" class="wtlwp-form-row pt-2">
14
+ <label for="user_email"><span class="text-sm font-medium text-gray-600 pb-2"><?php echo esc_html__( 'Email*', 'temporary-login-without-password' ); ?> </span></label>
15
  </th>
16
+ <td class="pt-2">
17
+ <input name="wtlwp_data[user_email]" type="text" id="user_email" value="" aria-required="true" maxlength="60" class="wtlwp-form-input form-input"/>
18
  </td>
19
  </tr>
20
 
21
  <tr class="form-field form-required">
22
  <th scope="row" class="wtlwp-form-row">
23
+ <label for="user_first_name"><span class="text-sm font-medium text-gray-600 pb-2"><?php echo esc_html__( 'First Name', 'temporary-login-without-password' ); ?> </span></label>
24
  </th>
25
  <td>
26
+ <input name="wtlwp_data[user_first_name]" type="text" id="user_first_name" value="" aria-required="true" maxlength="60" class="wtlwp-form-input form-input"/>
27
  </td>
28
  </tr>
29
 
30
  <tr class="form-field form-required">
31
  <th scope="row" class="wtlwp-form-row">
32
+ <label for="user_last_name"><span class="text-sm font-medium text-gray-600 pb-2"><?php echo esc_html__( 'Last Name', 'temporary-login-without-password' ); ?> </span></label>
33
  </th>
34
  <td>
35
+ <input name="wtlwp_data[user_last_name]" type="text" id="user_last_name" value="" aria-required="true" maxlength="60" class="wtlwp-form-input form-input"/>
36
  </td>
37
  </tr>
38
 
39
  <?php if ( is_network_admin() ) { ?>
40
  <tr class="form-field form-required">
41
  <th scope="row" class="wtlwp-form-row">
42
+ <label for="user_super_admin"><span class="text-sm font-medium text-gray-600 pb-2"><?php echo esc_html__( 'Super Admin', 'temporary-login-without-password' ); ?> </span></label>
43
  </th>
44
  <td>
45
+ <input type="checkbox" id="user_super_admin" name="wtlwp_data[super_admin]" class="form-checkbox"><?php echo esc_html__( 'Grant this user super admin privileges for the Network.', 'temporary-login-without-password' ); ?>
46
  </td>
47
  </tr>
48
  <?php } else { ?>
49
  <tr class="form-field">
50
  <th scope="row" class="wtlwp-form-row">
51
+ <label for="adduser-role"><span class="text-sm font-medium text-gray-600 pb-2"><?php echo esc_html__( 'Role', 'temporary-login-without-password' ); ?></span></label>
52
  </th>
53
  <td>
54
+ <select name="wtlwp_data[role]" id="user-role" class="form-select font-normal text-gray-600 h-8 shadow-sm">
55
  <?php Wp_Temporary_Login_Without_Password_Common::tlwp_dropdown_roles( $visible_roles, $default_role ); ?>
56
  </select>
57
  </td>
60
 
61
  <tr class="form-field">
62
  <th scope="row" class="wtlwp-form-row">
63
+ <label for="adduser-role"><span class="text-sm font-medium text-gray-600 pb-2"><?php echo esc_html__( 'Expiry', 'temporary-login-without-password' ); ?></span></label>
64
  </th>
65
  <td>
66
  <span id="expiry-date-selection">
67
+ <select name="wtlwp_data[expiry]" id="new-user-expiry-time" class="form-select font-normal text-gray-600 h-8 shadow-sm">
68
  <?php Wp_Temporary_Login_Without_Password_Common::get_expiry_duration_html( $default_expiry_time ); ?>
69
  </select>
70
  </span>
78
 
79
  <tr class="form-field">
80
  <th scope="row" class="wtlwp-form-row">
81
+ <label for="language"><span class="text-sm font-medium text-gray-600 pb-2"><?php echo esc_html__( 'Language', 'temporary-login-without-password' ); ?></span></label>
82
  </th>
83
  <td scope="row" class="">
84
  <?php
85
+ Wp_Temporary_Login_Without_Password_Common::wp_dropdown_languages(array('name' => 'wtlwp_data[locale]', 'selected' => get_locale()));
86
  ?>
87
  </td>
88
  </tr>
89
  <tr class="form-field">
90
+ <th scope="row" class="wtlwp-form-row"><span class="text-sm font-medium text-gray-600 pb-2"><label for="adduser-role"></label></span></th>
91
  <td>
92
  <p class="submit">
93
+ <input type="submit" class="pr-1 button button-primary wtlwp-form-submit-button" value="<?php esc_html_e( 'Submit', 'temporary-login-without-password' ); ?>" class="button button-primary" id="generatetemporarylogin" name="generate_temporary_login"> <?php esc_html_e( 'or', 'temporary-login-without-password' ); ?>
94
  <span class="cancel-new-login-form" id="cancel-new-login-form"><?php esc_html_e( 'Cancel', 'temporary-login-without-password' ); ?></span>
95
  </p>
96
  </td>
templates/system-info.php CHANGED
@@ -9,9 +9,10 @@
9
  $system_info = new Wtlwp_Sytem_Info();
10
 
11
  ?>
12
-
13
- <button class="wtlwp-click-to-copy-btn" data-clipboard-action="copy" data-clipboard-target="#tlwp-system-info-data">Click To Copy</button>
14
- <div class="wrap wtlwp-form" id="tlwp-system-info-data">
 
15
  <?php
16
  echo $system_info->render_system_info_page();
17
  ?>
9
  $system_info = new Wtlwp_Sytem_Info();
10
 
11
  ?>
12
+ <div title="Copy">
13
+ <button class="wtlwp-click-to-copy-btn bg-gray-200 cursor-pointer border border-gray-100 text-sm leading-5 font-medium rounded-t-md text-gray-700 bg-white transition duration-150 ease-in-out px-3 py-1 hover:bg-gray-100 hover:border-2 hover:border-gray-200 hover:text-gray-700 focus:border-2 focus:border-gray-200" data-clipboard-action="copy" data-clipboard-target="#tlwp-system-info-data"><svg class="w-6 h-6 text-gray-600" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title><?php esc_html_e('Copy', 'temporary-login-without-password' ); ?></title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></button>
14
+ </div>
15
+ <div class="wrap wtlwp-form bg-white rounded-md shadow-md -mt-0.5" id="tlwp-system-info-data">
16
  <?php
17
  echo $system_info->render_system_info_page();
18
  ?>
templates/temporary-logins-settings.php CHANGED
@@ -6,37 +6,37 @@
6
  */
7
 
8
  ?>
9
- <h2> <?php echo esc_html__( 'Temporary Login Settings', 'temporary-login-without-password' ); ?></h2>
10
  <form method="post">
11
- <table class="form-table wtlwp-form">
12
  <tr class="form-field">
13
- <th scope="row" class="wtlwp-form-row">
14
- <label for="visible_roles"><?php echo esc_html__( 'Visible Roles', 'temporary-login-without-password' ); ?></label>
15
- <p class="description"><?php echo esc_html__( 'select roles from which you want to create a temporary login', 'temporary-login-without-password' ); ?></p>
16
 
17
  </th>
18
- <td>
19
- <select multiple name="tlwp_settings_data[visible_roles][]" id="visible-roles" class="visible-roles-dropdown">
20
  <?php Wp_Temporary_Login_Without_Password_Common::tlwp_multi_select_dropdown_roles( $visible_roles ); ?>
21
  </select>
22
  </td>
23
  </tr>
24
  <tr class="form-field">
25
  <th scope="row" class="wtlwp-form-row">
26
- <label for="adduser-role"><?php echo esc_html__( 'Default Role', 'temporary-login-without-password' ); ?></label>
27
  </th>
28
- <td>
29
- <select name="tlwp_settings_data[default_role]" id="default-role" class="default-role-dropdown">
30
  <?php wp_dropdown_roles( $default_role ); ?>
31
  </select>
32
  </td>
33
  </tr>
34
  <tr class="form-field">
35
  <th scope="row" class="wtlwp-form-row">
36
- <label for="adduser-role"><?php echo esc_html__( 'Default Expiry Time', 'temporary-login-without-password' ); ?></label>
37
  </th>
38
- <td>
39
- <select name="tlwp_settings_data[default_expiry_time]" id="default-expiry-time">
40
  <?php Wp_Temporary_Login_Without_Password_Common::get_expiry_duration_html( $default_expiry_time, array('custom_date') ); ?>
41
  </select>
42
  </td>
6
  */
7
 
8
  ?>
9
+ <h2 class="font-semibold text-gray-700"> <?php echo esc_html__( 'Temporary Login Settings', 'temporary-login-without-password' ); ?></h2>
10
  <form method="post">
11
+ <table class="wtlwp-form bg-white rounded-lg shadow-md text-left py-2 mt-5">
12
  <tr class="form-field">
13
+ <th scope="row" class="wtlwp-form-row w-1/4 text-left">
14
+ <label for="visible_roles"><span class="text-sm font-medium text-gray-600 pb-2"><?php echo esc_html__( 'Visible Roles', 'temporary-login-without-password' ); ?></span></label>
15
+ <p class="italic text-xs text-gray-400 mt-2 font-normal leading-snug"><?php echo esc_html__( 'Select roles from which you want to create a temporary login', 'temporary-login-without-password' ); ?></p>
16
 
17
  </th>
18
+ <td class="py-4">
19
+ <select multiple name="tlwp_settings_data[visible_roles][]" id="visible-roles" class="visible-roles-dropdown form-multiselect font-normal text-gray-600 h-8 shadow-sm">
20
  <?php Wp_Temporary_Login_Without_Password_Common::tlwp_multi_select_dropdown_roles( $visible_roles ); ?>
21
  </select>
22
  </td>
23
  </tr>
24
  <tr class="form-field">
25
  <th scope="row" class="wtlwp-form-row">
26
+ <label for="adduser-role" class="text-sm font-medium text-gray-600 pb-2"><?php echo esc_html__( 'Default Role', 'temporary-login-without-password' ); ?></label>
27
  </th>
28
+ <td class="py-3">
29
+ <select name="tlwp_settings_data[default_role]" id="default-role" class="default-role-dropdown form-select font-normal text-gray-600 h-8 shadow-sm">
30
  <?php wp_dropdown_roles( $default_role ); ?>
31
  </select>
32
  </td>
33
  </tr>
34
  <tr class="form-field">
35
  <th scope="row" class="wtlwp-form-row">
36
+ <label for="adduser-role" class="text-sm font-medium text-gray-600 pb-2"><?php echo esc_html__( 'Default Expiry Time', 'temporary-login-without-password' ); ?></label>
37
  </th>
38
+ <td class="pt-3">
39
+ <select name="tlwp_settings_data[default_expiry_time]" id="default-expiry-time" class="form-select font-normal text-gray-600 h-8 shadow-sm">
40
  <?php Wp_Temporary_Login_Without_Password_Common::get_expiry_duration_html( $default_expiry_time, array('custom_date') ); ?>
41
  </select>
42
  </td>
templates/update-login.php CHANGED
@@ -8,7 +8,7 @@
8
  ?>
9
  <h2> <?php echo esc_html__( 'Update Temporary Login', 'temporary-login-without-password' ); ?></h2>
10
  <form method="post">
11
- <table class="form-table wtlwp-form">
12
  <tr class="form-field form-required">
13
  <th scope="row" class="wtlwp-form-row">
14
  <label for="user_email"><?php echo esc_html__( 'Email', 'temporary-login-without-password' ); ?> </label>
@@ -23,7 +23,7 @@
23
  <label for="user_first_name"><?php echo esc_html__( 'First Name', 'temporary-login-without-password' ); ?> </label>
24
  </th>
25
  <td>
26
- <input name="wtlwp_data[user_first_name]" type="text" id="user_first_name" value="<?php echo esc_attr( $temporary_user_data['first_name'] ); ?>" aria-required="true" maxlength="60" class="wtlwp-form-input"/>
27
  </td>
28
  </tr>
29
 
@@ -32,7 +32,7 @@
32
  <label for="user_last_name"><?php echo esc_html__( 'Last Name', 'temporary-login-without-password' ); ?> </label>
33
  </th>
34
  <td>
35
- <input name="wtlwp_data[user_last_name]" type="text" id="user_last_name" value="<?php echo esc_attr( $temporary_user_data['last_name'] ); ?>" aria-required="true" maxlength="60" class="wtlwp-form-input"/>
36
  </td>
37
  </tr>
38
 
@@ -42,7 +42,7 @@
42
  <label for="user_super_admin"><?php echo esc_html__( 'Super Admin', 'temporary-login-without-password' ); ?> </label>
43
  </th>
44
  <td>
45
- <input type="checkbox" id="user_super_admin" name="wtlwp_data[super_admin]">
46
  <?php echo esc_html__( 'Grant this user super admin privileges for the Network.', 'temporary-login-without-password' ); ?>
47
  </td>
48
  </tr>
@@ -52,7 +52,7 @@
52
  <label for="adduser-role"><?php echo esc_html__( 'Role', 'temporary-login-without-password' ); ?></label>
53
  </th>
54
  <td>
55
- <select name="wtlwp_data[role]" id="user-role">
56
  <?php
57
  $role = $temporary_user_data['role'];
58
  Wp_Temporary_Login_Without_Password_Common::tlwp_dropdown_roles( $visible_roles, $role );
@@ -68,7 +68,7 @@
68
  </th>
69
  <td>
70
  <span id="expiry-date-selection">
71
- <select name="wtlwp_data[expiry]" id="update-user-expiry-time">
72
  <?php Wp_Temporary_Login_Without_Password_Common::get_expiry_duration_html( 'week' ); ?>
73
  </select>
74
  </span>
@@ -87,7 +87,7 @@
87
  <td scope="row" class="">
88
  <?php
89
  $locale = $temporary_user_data['locale'];
90
- wp_dropdown_languages( array( 'name' => 'wtlwp_data[locale]', 'selected' => $locale ) );
91
  ?>
92
  </td>
93
  </tr>
8
  ?>
9
  <h2> <?php echo esc_html__( 'Update Temporary Login', 'temporary-login-without-password' ); ?></h2>
10
  <form method="post">
11
+ <table class="form-table bg-white rounded-lg shadow-md">
12
  <tr class="form-field form-required">
13
  <th scope="row" class="wtlwp-form-row">
14
  <label for="user_email"><?php echo esc_html__( 'Email', 'temporary-login-without-password' ); ?> </label>
23
  <label for="user_first_name"><?php echo esc_html__( 'First Name', 'temporary-login-without-password' ); ?> </label>
24
  </th>
25
  <td>
26
+ <input name="wtlwp_data[user_first_name]" type="text" id="user_first_name" value="<?php echo esc_attr( $temporary_user_data['first_name'] ); ?>" aria-required="true" maxlength="60" class="wtlwp-form-input form-input"/>
27
  </td>
28
  </tr>
29
 
32
  <label for="user_last_name"><?php echo esc_html__( 'Last Name', 'temporary-login-without-password' ); ?> </label>
33
  </th>
34
  <td>
35
+ <input name="wtlwp_data[user_last_name]" type="text" id="user_last_name" value="<?php echo esc_attr( $temporary_user_data['last_name'] ); ?>" aria-required="true" maxlength="60" class="wtlwp-form-input form-input"/>
36
  </td>
37
  </tr>
38
 
42
  <label for="user_super_admin"><?php echo esc_html__( 'Super Admin', 'temporary-login-without-password' ); ?> </label>
43
  </th>
44
  <td>
45
+ <input type="checkbox" id="user_super_admin" name="wtlwp_data[super_admin]" class="form-checkbox">
46
  <?php echo esc_html__( 'Grant this user super admin privileges for the Network.', 'temporary-login-without-password' ); ?>
47
  </td>
48
  </tr>
52
  <label for="adduser-role"><?php echo esc_html__( 'Role', 'temporary-login-without-password' ); ?></label>
53
  </th>
54
  <td>
55
+ <select name="wtlwp_data[role]" id="user-role" class="form-select font-normal text-gray-600 h-8 shadow-sm">
56
  <?php
57
  $role = $temporary_user_data['role'];
58
  Wp_Temporary_Login_Without_Password_Common::tlwp_dropdown_roles( $visible_roles, $role );
68
  </th>
69
  <td>
70
  <span id="expiry-date-selection">
71
+ <select name="wtlwp_data[expiry]" id="update-user-expiry-time" class="form-select font-normal text-gray-600 h-8 shadow-sm">
72
  <?php Wp_Temporary_Login_Without_Password_Common::get_expiry_duration_html( 'week' ); ?>
73
  </select>
74
  </span>
87
  <td scope="row" class="">
88
  <?php
89
  $locale = $temporary_user_data['locale'];
90
+ Wp_Temporary_Login_Without_Password_Common::wp_dropdown_languages( array( 'name' => 'wtlwp_data[locale]', 'selected' => $locale ) );
91
  ?>
92
  </td>
93
  </tr>
temporary-login-without-password.php CHANGED
@@ -3,11 +3,11 @@
3
  * Plugin Name: Temporary Login Without Password
4
  * Plugin URI: http://www.storeapps.org/create-secure-login-without-password-for-wordpress/
5
  * Description: Create a temporary login link with any role using which one can access to your sytem without username and password for limited period of time.
6
- * Version: 1.6.7
7
  * Author: StoreApps
8
  * Author URI: https://storeapps.org
9
  * Requires at least: 3.0.1
10
- * Tested up to: 5.6
11
  * License: GPLv3
12
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
13
  * Text Domain: temporary-login-without-password
@@ -25,7 +25,7 @@ if ( ! defined( 'WPINC' ) ) {
25
  /**
26
  * Define constants
27
  */
28
- define( 'WTLWP_PLUGIN_VERSION', '1.6.7' );
29
  define( 'WTLWP_FEEDBACK_VERSION', '1.2.4' );
30
  define( 'WTLWP_PLUGIN_DIR', dirname( __FILE__ ) );
31
  define( 'WTLWP_PLUGIN_BASE_NAME', plugin_basename( __FILE__ ) );
3
  * Plugin Name: Temporary Login Without Password
4
  * Plugin URI: http://www.storeapps.org/create-secure-login-without-password-for-wordpress/
5
  * Description: Create a temporary login link with any role using which one can access to your sytem without username and password for limited period of time.
6
+ * Version: 1.6.8
7
  * Author: StoreApps
8
  * Author URI: https://storeapps.org
9
  * Requires at least: 3.0.1
10
+ * Tested up to: 5.6.2
11
  * License: GPLv3
12
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
13
  * Text Domain: temporary-login-without-password
25
  /**
26
  * Define constants
27
  */
28
+ define( 'WTLWP_PLUGIN_VERSION', '1.6.8' );
29
  define( 'WTLWP_FEEDBACK_VERSION', '1.2.4' );
30
  define( 'WTLWP_PLUGIN_DIR', dirname( __FILE__ ) );
31
  define( 'WTLWP_PLUGIN_BASE_NAME', plugin_basename( __FILE__ ) );