Limit Login Attempts Reloaded - Version 2.25.9

Version Description

  • Welcome page replaced with a modal.
Download this release

Release Info

Developer wpchefgadget
Plugin Icon 128x128 Limit Login Attempts Reloaded
Version 2.25.9
Comparing to
See all releases

Code changes from version 2.25.8 to 2.25.9

assets/css/limit-login-attempts.css CHANGED
@@ -1 +1 @@
1
- .limit-login-page-settings .field-col{display:inline-block;margin-right:20px}.limit-login-page-settings .limit-login-log table{background-color:#fff}.limit-login-page-settings .limit-login-log table th,.limit-login-page-settings .limit-login-log table td{padding:10px}.limit-login-page-settings .limit-login-log table tr:nth-child(even){background-color:rgba(0,0,0,.09)}.limit-login-page-settings #limit-login-app-setup-code{width:85%}.limit-login-page-settings .nav-tab-wrapper{position:relative}.limit-login-page-settings .nav-tab-wrapper .llar-failover-link{font-size:14px;float:right;line-height:2}.limit-login-page-settings .limit-login-app-dashboard .llar-table-scroll-wrap{max-height:400px;overflow-y:auto}.limit-login-page-settings .limit-login-app-dashboard .form-table{background-color:#fff;border:1px solid #f4f4f4;border-top:3px solid #3c8dbc;position:relative}.limit-login-page-settings .limit-login-app-dashboard .form-table.llar-preloader:before{content:"";display:block;width:100%;height:100%;background-color:rgba(255,255,255,.7);z-index:999;position:absolute;top:0;left:0}.limit-login-page-settings .limit-login-app-dashboard .form-table th{font-weight:bold;border-bottom:1px solid #dbdbdb !important}.limit-login-page-settings .limit-login-app-dashboard .form-table th,.limit-login-page-settings .limit-login-app-dashboard .form-table td{padding:10px;border:1px solid #b9b9b9}.limit-login-page-settings .limit-login-app-dashboard .form-table th.llar-col-nowrap,.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-col-nowrap{white-space:nowrap}.limit-login-page-settings .limit-login-app-dashboard .form-table th .llar-log-country-flag,.limit-login-page-settings .limit-login-app-dashboard .form-table td .llar-log-country-flag{display:flex;align-items:center;white-space:nowrap}.limit-login-page-settings .limit-login-app-dashboard .form-table th .llar-log-country-flag img,.limit-login-page-settings .limit-login-app-dashboard .form-table td .llar-log-country-flag img{width:20px;height:auto}.limit-login-page-settings .limit-login-app-dashboard .form-table td button{line-height:1;margin-right:5px}.limit-login-page-settings .limit-login-app-dashboard .form-table td button:last-child{margin-right:0}.limit-login-page-settings .limit-login-app-dashboard .form-table td button .dashicons{vertical-align:middle}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions{text-align:center}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions .llar-app-log-action-btn{display:inline-block;line-height:20px;cursor:pointer}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions .llar-app-log-action-btn i{vertical-align:middle}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions .llar-app-log-action-btn:hover i{color:#3c8dbc}.limit-login-page-settings .limit-login-app-dashboard .form-table tr:nth-child(even){background-color:#f9f9f9}.limit-login-page-settings .limit-login-app-dashboard .llar-table-header{display:flex;justify-content:space-between;align-items:center;margin:15px 0 5px}.limit-login-page-settings .limit-login-app-dashboard .llar-table-header h3{margin:0}.limit-login-page-settings .limit-login-app-dashboard .llar-table-header .right-link{line-height:1.625}.limit-login-page-settings .limit-login-app-dashboard .llar-table-header .right-link a{font-size:14px}.limit-login-page-settings .limit-login-app-dashboard .llar-table-header .right-link .llar-tooltip{text-decoration:none;font-size:12px;display:inline-block}.limit-login-page-settings .limit-login-app-dashboard .llar-table-header .right-link .llar-tooltip:before{display:none}.limit-login-page-settings .limit-login-app-dashboard .llar-table-header .right-link .llar-tooltip:hover:before{display:block;right:0;left:auto}.limit-login-page-settings .limit-login-app-dashboard .llar-app-log-pagination>a{font-size:16px;line-height:1.625}.limit-login-page-settings .limit-login-app-dashboard .llar-app-log-pagination .spinner{float:none}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules{display:flex;justify-content:space-between}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col{flex:0 0 49%}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col h3{display:flex;justify-content:space-between}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col h3 .help-link{font-size:14px;font-weight:normal}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col h3 .help-link .dashicons{text-decoration:none !important}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table select{width:100%}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .origin{float:right;opacity:.5}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-acl-action-col{text-align:center}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-rule-pass{background-color:#cffbe8}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-rule-allow{background-color:#abdfff}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-rule-deny{background-color:rgba(253,44,44,.2392156863)}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-acl-remove{color:crimson;border-color:crimson}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section{background-color:#fff;padding:15px;border:1px solid #b9b9b9;border-top:3px solid #3c8dbc}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-mode{display:inline-block;margin-right:5px;vertical-align:top}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-toggle-countries-list{text-decoration-style:dotted;vertical-align:middle;line-height:1.6}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list{display:flex;flex-wrap:wrap;max-height:400px;overflow-y:auto}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list:first-child{margin-top:0}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list .llar-country{flex:0 0 10%}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list .llar-country label{padding-bottom:10px;display:inline-block}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list.llar-all-countries-selected{display:inline;vertical-align:middle;overflow:hidden}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list.llar-all-countries-selected .llar-country{margin-bottom:0;display:inline-block;margin-right:10px}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list.llar-all-countries-selected .llar-country label{padding-bottom:0;white-space:nowrap}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list.llar-all-countries-list{display:none;margin:10px 0}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list.llar-all-countries-list.visible{display:flex;border-top:1px solid #dddada;padding-top:10px}.limit-login-page-settings .llar-app-notice{background-color:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);padding:15px;border-radius:3px;margin-top:20px;margin-bottom:20px;font-size:14px;border-left:5px solid #ffba00}.limit-login-page-settings .llar-app-notice.success{border-color:#46b450}.limit-login-page-settings .llar-app-notice p{font-size:inherit;margin:0 0 20px}.limit-login-page-settings .llar-app-notice p:last-child{margin-bottom:0}.limit-login-page-settings input[name=admin_notify_email]{min-width:243px}.limit-login-page-settings .llar-protect-notice{font-size:15px;color:#848484;margin-left:10px}.limit-login-page-settings .llar-protect-notice a{color:#222;text-decoration:none;border-bottom:1px dashed}.limit-login-page-settings .llar-toggle-setup-field{color:#2271b1;text-decoration-style:dashed}.limit-login-page-settings .llar-toggle-setup-field:hover{color:#222}.limit-login-page-settings .setup-code-wrap{display:none}.limit-login-page-settings .setup-code-wrap.active{display:block}.limit-login-page-settings .app-form-field{display:none}.limit-login-page-settings .app-form-field.active{display:table-row}.limit-login-page-settings .llar-app-field{display:none}.limit-login-page-settings .llar-app-field.active{display:table-row}.llar-notice-review,.llar-notice-notify{display:flex;padding:15px 20px 0 !important;border-left:4px solid #333 !important}.llar-notice-review .llar-review-image img,.llar-notice-notify .llar-review-image img{margin-top:10px;margin-bottom:20px}.llar-notice-review .llar-review-image span,.llar-notice-notify .llar-review-image span{font-size:80px;color:orange;width:80px;height:auto;margin-bottom:20px}.llar-notice-review .llar-review-info,.llar-notice-notify .llar-review-info{flex:1;margin-left:30px}.llar-notice-review .llar-review-info .llar-buttons,.llar-notice-notify .llar-review-info .llar-buttons{display:flex;align-items:center}.llar-notice-review .llar-review-info .llar-buttons li,.llar-notice-notify .llar-review-info .llar-buttons li{margin-right:10px}.llar-notice-review .llar-review-info .llar-buttons li .dashicons,.llar-notice-notify .llar-review-info .llar-buttons li .dashicons{margin-right:5px}.llar-accordion .ui-accordion-header{font-weight:bold;background:#789;color:#fff}.llar-accordion .ui-accordion-header.ui-accordion-header-active{background:#87cefa}.custom-app-tab{position:relative}.custom-app-tab .spinner{float:none}.custom-app-tab .llar-app-ajax-msg{font-size:13px;margin-top:5px;display:block}.custom-app-tab .llar-app-ajax-msg.error{color:red}.custom-app-tab .llar-app-ajax-msg.success{color:green}.custom-app-tab .llar-delete-app{color:#dc3232;position:absolute;bottom:15px;right:15px}.custom-app-tab .llar-delete-app:hover{opacity:.8}.custom-app-tab .llar-why-use-premium-text{margin-top:20px}.custom-app-tab .llar-why-use-premium-text .title{font-weight:bold;font-size:16px;color:#4d4d4d}.custom-app-tab .llar-why-use-premium-text ul li .dashicons{color:#3ab54a;font-size:25px;width:25px;top:-2px;position:relative}#llar-progress-bar{position:fixed;top:0;height:6px;left:0;width:100%;z-index:999999;background-color:#eee}#llar-progress-bar span{height:100%;position:absolute;display:block;width:0;background-color:#00b357;transition:width .4s}#llar-header-upgrade-message{text-align:center;background-color:#f5f0c0;color:#222;padding:10px;margin-left:-20px;box-shadow:0 0 3px rgba(0,0,0,.2)}#llar-header-upgrade-message p{margin:0}#llar-header-upgrade-message p .dashicons{color:#f2a64c;margin-right:5px}.settings_page_limit-login-attempts .update-nag{display:none}#llar-welcome-page{padding:50px 0}#llar-welcome-page img{max-width:100%;height:auto}#llar-welcome-page .llar-welcome-page-container{width:100%;max-width:760px;margin:0 auto 30px;background-color:#fff;border-radius:4px;box-shadow:0 0 4px rgba(0,0,0,.1)}#llar-welcome-page .llar-welcome-page-container.llar-premium{border-top:5px solid #50c1cd}#llar-welcome-page .llar-welcome-page-container .llar-welcome-page-section{padding:20px;text-align:center}#llar-welcome-page .llar-welcome-page-container .llar-welcome-page-section .llar-logo{text-align:center;margin-top:20px;margin-bottom:30px}#llar-welcome-page .llar-welcome-page-container .llar-welcome-page-section h2{font-size:2.4em;line-height:1.4}#llar-welcome-page .llar-welcome-page-container .llar-welcome-page-section h3{font-size:1.5em;line-height:1.4}#llar-welcome-page .llar-welcome-page-container .llar-welcome-page-section p{font-size:17px;color:#444}#llar-welcome-page .llar-welcome-page-container .llar-welcome-page-video-wrap img{width:100%;height:auto;cursor:pointer}#llar-welcome-page .llar-welcome-page-features{display:flex;flex-wrap:wrap;justify-content:space-between;padding:0 15px;counter-reset:cnt1}#llar-welcome-page .llar-welcome-page-features .llar-feature-item{flex:0 0 24%;text-align:center;margin-bottom:40px;position:relative;padding-bottom:60px}#llar-welcome-page .llar-welcome-page-features .llar-feature-item:before{content:counter(cnt1);counter-increment:cnt1;position:absolute;left:50%;transform:translatex(-50%);bottom:0;font-size:1em;font-weight:600;width:40px;height:40px;line-height:40px;text-align:center;border-radius:50%;background-color:#ecedef;color:#979aaa}#llar-welcome-page .llar-welcome-page-features .llar-feature-item:after{position:absolute;content:"";left:-39%;width:69%;height:1px;bottom:1.4em;background-color:#ecedef}#llar-welcome-page .llar-welcome-page-features .llar-feature-item:nth-child(4n+1):after{display:none}#llar-welcome-page .llar-welcome-page-features .llar-feature-item .llar-feature-image{margin-bottom:15px}#llar-welcome-page .llar-welcome-page-features .llar-feature-item .llar-feature-info .llar-feature-title{font-weight:bold;margin-bottom:15px}#llar-welcome-page .llar-welcome-page-features .llar-feature-item .llar-feature-info .llar-feature-desc{color:#979aaa}@media(max-width: 768px){#llar-welcome-page .llar-welcome-page-features{display:block}}#llar-welcome-page .llar-why-recommend{text-align:left;font-size:17px}#llar-welcome-page .llar-why-recommend ul li span{margin-right:5px;width:auto;height:auto;font-size:25px;vertical-align:middle;color:green}#llar-welcome-page .llar-welcome-list{font-size:17px;text-align:left;line-height:1.4;list-style:none}#llar-welcome-page .llar-welcome-list li span{margin-right:10px;width:auto;height:auto;font-size:22px;vertical-align:top;color:orange}#llar-welcome-page .llar-upgrade-btn-wrap{padding:20px}#llar-welcome-page .llar-upgrade-btn-wrap a{display:inline-block;background-color:#e27800;color:#fff;font-size:22px;padding:20px;text-decoration:none;font-weight:600}#llar-welcome-page .llar-upgrade-btn-wrap a:hover{background-color:#af5d00}#llar-welcome-page .llar-upgrade-questions{font-size:17px}.dashboard_page_llar-welcome .update-nag,.dashboard_page_llar-welcome .notice,.toplevel_page_limit-login-attempts .update-nag,.toplevel_page_limit-login-attempts .notice{display:none}.dashboard_page_llar-welcome .video-container,.toplevel_page_limit-login-attempts .video-container{position:relative;padding-bottom:56.1%;height:0;overflow:hidden}.dashboard_page_llar-welcome .video-container iframe,.toplevel_page_limit-login-attempts .video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.jconfirm .jconfirm-box div.jconfirm-closeIcon{top:-2px !important;right:-2px !important}.llar-tooltip{text-decoration:underline;text-decoration-style:dotted;cursor:pointer;position:relative}.llar-tooltip:before{content:attr(data-text);position:absolute;width:200px;padding:5px;background-color:rgba(0,0,0,.8);color:#fff;font-size:13px;top:100%;z-index:999;visibility:hidden;opacity:0;transition:all .2s;font-weight:300;cursor:auto}.llar-tooltip:hover:before{visibility:visible;opacity:1}#toplevel_page_limit-login-attempts .wp-menu-image.svg{background-size:25px auto !important;margin-top:7px}.llar-alert-icon-animation{animation-duration:10s;animation-timing-function:ease-out;animation-delay:3s;animation-iteration-count:infinite;animation-direction:normal;animation-fill-mode:both;animation-play-state:running;animation-name:shake}#menu-settings li{position:relative}#menu-settings li .llar-alert-icon-animation{position:absolute;right:5px;top:7px;min-width:15px;line-height:15px;height:15px}@keyframes shake{1%,9%{transform:translate3d(-1px, 0, 0)}2%,8%{transform:translate3d(2px, 0, 0)}3%,5%,7%{transform:translate3d(-3px, 0, 0)}4%,6%{transform:translate3d(3px, 0, 0)}}#llar-dashboard-page{padding-top:10px}#llar-dashboard-page *{box-sizing:border-box}#llar-dashboard-page ul,#llar-dashboard-page ol{margin-left:0}#llar-dashboard-page ul li,#llar-dashboard-page ol li{list-style-position:inside}#llar-dashboard-page .dashboard-header{background-color:#0071a0;color:#fff;text-align:center;padding:15px}#llar-dashboard-page .dashboard-header h1{color:#fff}#llar-dashboard-page .section-title{font-weight:bold;padding:15px;border-bottom:1px solid #e4e4e4;font-size:14px;text-align:left}#llar-dashboard-page .section-content{padding:15px;overflow:hidden}#llar-dashboard-page .dashboard-section-1{margin-bottom:20px;background-color:#fff;display:flex;flex-wrap:wrap}#llar-dashboard-page .dashboard-section-1>[class^=info-box-]{text-align:center;flex:0 0 33.333%;max-width:33.333%;border-right:1px solid #e4e4e4}#llar-dashboard-page .dashboard-section-1>[class^=info-box-]:last-child{border:0}#llar-dashboard-page .dashboard-section-1>[class^=info-box-] .title{font-weight:600;font-size:16px;line-height:1.5;margin-bottom:10px}#llar-dashboard-page .dashboard-section-1 .info-box-1 .chart{max-width:300px;position:relative;margin-bottom:15px;margin-left:auto;margin-right:auto}#llar-dashboard-page .dashboard-section-1 .info-box-1 .chart .llar-retries-count{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:28px;font-weight:bold}#llar-dashboard-page .dashboard-section-1 .info-box-1 .desc{font-size:15px}#llar-dashboard-page .dashboard-section-1 .info-box-1 .actions{margin-top:5px}#llar-dashboard-page .dashboard-section-1 .info-box-2 .llar-chart-wrap{width:100%;max-width:80%;margin:0 auto;clear:both}#llar-dashboard-page .dashboard-section-1 .info-box-2 .llar-chart-wrap canvas{height:300px}#llar-dashboard-page .dashboard-section-1 .info-box-2 .chart-stats-legend{text-align:center;margin-top:10px}#llar-dashboard-page .dashboard-section-1 .info-box-3{text-align:left}#llar-dashboard-page .dashboard-section-1 .info-box-3 .desc{margin-bottom:20px}#llar-dashboard-page .dashboard-section-1 .info-box-3 .actions{text-align:center;padding-top:20px}#llar-dashboard-page .dashboard-section-1 .info-box-3 .actions a{text-transform:uppercase;font-size:16px;margin-bottom:5px}#llar-dashboard-page .dashboard-section-1.custom .info-box-2{flex:0 0 66.666%;max-width:66.666%}#llar-dashboard-page .dashboard-section-2{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:20px}#llar-dashboard-page .dashboard-section-2>[class^=info-box-]{flex:0 0 calc(50% - 10px);min-height:100px;background-color:#fff;border:1px solid #e4e4e4;padding:15px}#llar-dashboard-page .dashboard-section-2>[class^=info-box-]:last-child{margin-right:0}#llar-dashboard-page .dashboard-section-2 .info-box-1{padding:0}#llar-dashboard-page .dashboard-section-2 .info-box-1 .notifications-list{padding:0;margin:0}#llar-dashboard-page .dashboard-section-2 .info-box-1 .notifications-list li{margin:0;border-bottom:1px solid #e4e4e4}#llar-dashboard-page .dashboard-section-2 .info-box-1 .notifications-list li:last-child{border:0}#llar-dashboard-page .dashboard-section-2 .info-box-1 .notifications-list li a{text-decoration:none;padding:15px;font-size:15px;display:block}#llar-dashboard-page .dashboard-section-2 .info-box-1 .notifications-list li a:hover{background-color:#f9f9f9}#llar-dashboard-page .dashboard-section-2 .info-box-2{display:flex;flex-wrap:wrap}#llar-dashboard-page .dashboard-section-2 .info-box-2 .info-box-icon{flex:0 0 100px;display:flex;justify-content:center;align-items:center;margin-right:15px}#llar-dashboard-page .dashboard-section-2 .info-box-2 .info-box-icon .dashicons{color:#0073a0;font-size:50px;width:auto;height:auto}#llar-dashboard-page .dashboard-section-2 .info-box-2 .info-box-content{flex:1}#llar-dashboard-page .dashboard-section-2 .info-box-2 .info-box-content .title{font-size:20px;font-weight:bold;margin-bottom:10px;line-height:1.5}#llar-dashboard-page .dashboard-section-2 .info-box-2 .info-box-content .desc{font-size:15px;margin-bottom:15px}#llar-dashboard-page .dashboard-section-2 .info-box-2 .info-box-content .actions{display:flex;justify-content:space-between}#llar-dashboard-page .dashboard-section-3{display:flex;flex-wrap:wrap;background-color:#fff;margin-bottom:20px}#llar-dashboard-page .dashboard-section-3>[class^=info-box-]{display:flex;flex-wrap:wrap;padding:30px 15px 30px 0;flex:1;border-right:1px solid #e4e4e4}#llar-dashboard-page .dashboard-section-3>[class^=info-box-] .info-box-icon{flex:0 0 100px;display:flex;justify-content:center;align-items:center}#llar-dashboard-page .dashboard-section-3>[class^=info-box-] .info-box-icon .dashicons{color:#a1a2a2;font-size:60px;width:auto;height:auto}#llar-dashboard-page .dashboard-section-3>[class^=info-box-] .info-box-content{flex:1}#llar-dashboard-page .dashboard-section-3>[class^=info-box-] .info-box-content .title{font-size:20px;font-weight:bold;margin-bottom:10px;line-height:1.3}#llar-dashboard-page .dashboard-section-3>[class^=info-box-] .info-box-content .title a{text-decoration:none}#llar-dashboard-page .dashboard-section-3>[class^=info-box-] .info-box-content .desc{font-size:15px;margin-bottom:15px}#llar-dashboard-page .dashboard-section-3>[class^=info-box-] .info-box-content .actions{display:flex;justify-content:space-between}#llar-dashboard-page .dashboard-section-4{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:20px}#llar-dashboard-page .dashboard-section-4>[class^=info-box-]{flex:0 0 calc(50% - 10px);min-height:100px;background-color:#fff;border:1px solid #e4e4e4;padding:15px}#llar-dashboard-page .dashboard-section-4>[class^=info-box-]:last-child{margin-right:0}#llar-dashboard-page .dashboard-section-4 .info-box-1{padding:0}#llar-dashboard-page .dashboard-section-4 .info-box-1 .section-title{display:flex;justify-content:space-between}#llar-dashboard-page .dashboard-section-4 .info-box-1 .section-title .section-title-info{color:#a7a7a7;font-weight:400}#llar-dashboard-page .dashboard-section-4 .info-box-1 .lockouts-by-country-table{width:100%;border-collapse:collapse}#llar-dashboard-page .dashboard-section-4 .info-box-1 .lockouts-by-country-table tr th,#llar-dashboard-page .dashboard-section-4 .info-box-1 .lockouts-by-country-table tr td{padding:10px;border:1px solid #cecece}#llar-dashboard-page .dashboard-section-4 .info-box-1 .lockouts-by-country-table tr th{background-color:#000;color:#fff;text-align:left}#llar-dashboard-page .dashboard-section-4 .info-box-1 .lockouts-by-country-table tr:nth-child(odd) td{background-color:#eff0ef}#llar-dashboard-page .dashboard-section-4 .info-box-1 .lockouts-by-country-table tr td .flag-icon{width:24px;vertical-align:middle;margin-right:10px}#llar-dashboard-page .dashboard-section-4 .info-box-1 .countries-table-info{color:#a7a7a7;font-weight:400;margin-top:5px;margin-bottom:0;float:left}#llar-dashboard-page .dashboard-section-4 .info-box-1 .countries-table-info-right{color:#2271b1;font-weight:400;margin-top:5px;margin-bottom:0;float:right}#llar-dashboard-page .dashboard-section-4 .info-box-2{padding:0}#llar-dashboard-page .dashboard-section-4 .info-box-2 .section-title{display:flex;justify-content:space-between}#llar-dashboard-page .dashboard-section-4 .info-box-2 .section-title .section-title-info{color:#a7a7a7;font-weight:400}#llar-dashboard-page .dashboard-section-4 .info-box-2 .llar-chart-wrap{width:100%;max-width:80%;margin:0 auto;clear:both}#llar-dashboard-page .dashboard-section-4 .info-box-2 .llar-chart-wrap canvas{height:300px}#llar-admin-dashboard-widgets .widget-title{padding-bottom:15px;border-bottom:1px solid #e4e4e4;font-size:14px;text-align:left}#llar-admin-dashboard-widgets .widget-content{overflow:hidden}#llar-admin-dashboard-widgets .llar-widget{margin-bottom:20px;background-color:#fff;text-align:center}#llar-admin-dashboard-widgets .llar-widget .chart{max-width:300px;position:relative;margin-bottom:15px;margin-left:auto;margin-right:auto}#llar-admin-dashboard-widgets .llar-widget .chart .llar-retries-count{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:28px;font-weight:bold}#llar-admin-dashboard-widgets .llar-widget .title{font-weight:600;font-size:16px;line-height:1.5;margin-bottom:10px}#llar-admin-dashboard-widgets .llar-widget .desc{font-size:15px}#llar-admin-dashboard-widgets .llar-widget .actions{margin-top:5px}#llar-admin-dashboard-widgets .llar-widget.widget-2 .llar-chart-wrap{width:100%;margin:0 auto;clear:both}#llar-admin-dashboard-widgets .llar-widget.widget-2 .llar-chart-wrap canvas{height:300px}#llar-admin-dashboard-widgets .llar-widget.widget-2 .chart-stats-legend{text-align:center;margin-top:10px}
1
+ .limit-login-page-settings .field-col{display:inline-block;margin-right:20px}.limit-login-page-settings .limit-login-log table{background-color:#fff}.limit-login-page-settings .limit-login-log table th,.limit-login-page-settings .limit-login-log table td{padding:10px}.limit-login-page-settings .limit-login-log table tr:nth-child(even){background-color:rgba(0,0,0,0.09)}.limit-login-page-settings #limit-login-app-setup-code{width:85%}.limit-login-page-settings .nav-tab-wrapper{position:relative}.limit-login-page-settings .nav-tab-wrapper .llar-failover-link{font-size:14px;float:right;line-height:2}.limit-login-page-settings .limit-login-app-dashboard .llar-table-scroll-wrap{max-height:400px;overflow-y:auto}.limit-login-page-settings .limit-login-app-dashboard .form-table{background-color:#fff;border:1px solid #f4f4f4;border-top:3px solid #3c8dbc;position:relative}.limit-login-page-settings .limit-login-app-dashboard .form-table.llar-preloader:before{content:"";display:block;width:100%;height:100%;background-color:rgba(255,255,255,0.7);z-index:999;position:absolute;top:0;left:0}.limit-login-page-settings .limit-login-app-dashboard .form-table th{font-weight:bold;border-bottom:1px solid #dbdbdb !important}.limit-login-page-settings .limit-login-app-dashboard .form-table th,.limit-login-page-settings .limit-login-app-dashboard .form-table td{padding:10px;border:1px solid #b9b9b9}.limit-login-page-settings .limit-login-app-dashboard .form-table th.llar-col-nowrap,.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-col-nowrap{white-space:nowrap}.limit-login-page-settings .limit-login-app-dashboard .form-table th .llar-log-country-flag,.limit-login-page-settings .limit-login-app-dashboard .form-table td .llar-log-country-flag{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;white-space:nowrap}.limit-login-page-settings .limit-login-app-dashboard .form-table th .llar-log-country-flag img,.limit-login-page-settings .limit-login-app-dashboard .form-table td .llar-log-country-flag img{width:20px;height:auto}.limit-login-page-settings .limit-login-app-dashboard .form-table td button{line-height:1;margin-right:5px}.limit-login-page-settings .limit-login-app-dashboard .form-table td button:last-child{margin-right:0}.limit-login-page-settings .limit-login-app-dashboard .form-table td button .dashicons{vertical-align:middle}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions{text-align:center}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions .llar-app-log-action-btn{display:inline-block;line-height:20px;cursor:pointer}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions .llar-app-log-action-btn i{vertical-align:middle}.limit-login-page-settings .limit-login-app-dashboard .form-table td.llar-app-log-actions .llar-app-log-action-btn:hover i{color:#3c8dbc}.limit-login-page-settings .limit-login-app-dashboard .form-table tr:nth-child(even){background-color:#f9f9f9}.limit-login-page-settings .limit-login-app-dashboard .llar-table-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:15px 0 5px}.limit-login-page-settings .limit-login-app-dashboard .llar-table-header h3{margin:0}.limit-login-page-settings .limit-login-app-dashboard .llar-table-header .right-link{line-height:1.625}.limit-login-page-settings .limit-login-app-dashboard .llar-table-header .right-link a{font-size:14px}.limit-login-page-settings .limit-login-app-dashboard .llar-table-header .right-link .llar-tooltip{text-decoration:none;font-size:12px;display:inline-block}.limit-login-page-settings .limit-login-app-dashboard .llar-table-header .right-link .llar-tooltip:before{display:none}.limit-login-page-settings .limit-login-app-dashboard .llar-table-header .right-link .llar-tooltip:hover:before{display:block;right:0;left:auto}.limit-login-page-settings .limit-login-app-dashboard .llar-app-log-pagination>a{font-size:16px;line-height:1.625}.limit-login-page-settings .limit-login-app-dashboard .llar-app-log-pagination .spinner{float:none}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col{-webkit-box-flex:0;-ms-flex:0 0 49%;flex:0 0 49%}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col h3{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col h3 .help-link{font-size:14px;font-weight:normal}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col h3 .help-link .dashicons{text-decoration:none !important}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table select{width:100%}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .origin{float:right;opacity:0.5}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-acl-action-col{text-align:center}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-rule-pass{background-color:#cffbe8}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-rule-allow{background-color:#abdfff}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-rule-deny{background-color:#fd2c2c3d}.limit-login-page-settings .limit-login-app-dashboard .llar-app-acl-rules .app-rules-col .form-table .llar-app-acl-remove{color:crimson;border-color:crimson}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section{background-color:#fff;padding:15px;border:1px solid #b9b9b9;border-top:3px solid #3c8dbc}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-mode{display:inline-block;margin-right:5px;vertical-align:top}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-toggle-countries-list{-webkit-text-decoration-style:dotted;text-decoration-style:dotted;vertical-align:middle;line-height:1.6}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;max-height:400px;overflow-y:auto}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list:first-child{margin-top:0}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list .llar-country{-webkit-box-flex:0;-ms-flex:0 0 10%;flex:0 0 10%}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list .llar-country label{padding-bottom:10px;display:inline-block}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list.llar-all-countries-selected{display:inline;vertical-align:middle;overflow:hidden}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list.llar-all-countries-selected .llar-country{margin-bottom:0;display:inline-block;margin-right:10px}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list.llar-all-countries-selected .llar-country label{padding-bottom:0;white-space:nowrap}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list.llar-all-countries-list{display:none;margin:10px 0}.limit-login-page-settings .limit-login-app-dashboard .llar-block-country-section .llar-block-country-list.llar-all-countries-list.visible{display:-webkit-box;display:-ms-flexbox;display:flex;border-top:1px solid #dddada;padding-top:10px}.limit-login-page-settings .llar-app-notice{background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);padding:15px;border-radius:3px;margin-top:20px;margin-bottom:20px;font-size:14px;border-left:5px solid #ffba00}.limit-login-page-settings .llar-app-notice.success{border-color:#46b450}.limit-login-page-settings .llar-app-notice p{font-size:inherit;margin:0 0 20px}.limit-login-page-settings .llar-app-notice p:last-child{margin-bottom:0}.limit-login-page-settings input[name="admin_notify_email"]{min-width:243px}.limit-login-page-settings .llar-protect-notice{font-size:15px;color:#848484;margin-left:10px}.limit-login-page-settings .llar-protect-notice a{color:#222222;text-decoration:none;border-bottom:1px dashed}.limit-login-page-settings .llar-toggle-setup-field{color:#2271b1;-webkit-text-decoration-style:dashed;text-decoration-style:dashed}.limit-login-page-settings .llar-toggle-setup-field:hover{color:#222}.limit-login-page-settings .setup-code-wrap{display:none}.limit-login-page-settings .setup-code-wrap.active{display:block}.limit-login-page-settings .app-form-field{display:none}.limit-login-page-settings .app-form-field.active{display:table-row}.limit-login-page-settings .llar-app-field{display:none}.limit-login-page-settings .llar-app-field.active{display:table-row}.llar-notice-review,.llar-notice-notify{display:-webkit-box;display:-ms-flexbox;display:flex;padding:15px 20px 0 !important;border-left:4px solid #333 !important}.llar-notice-review .llar-review-image img,.llar-notice-notify .llar-review-image img{margin-top:10px;margin-bottom:20px}.llar-notice-review .llar-review-image span,.llar-notice-notify .llar-review-image span{font-size:80px;color:orange;width:80px;height:auto;margin-bottom:20px}.llar-notice-review .llar-review-info,.llar-notice-notify .llar-review-info{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:30px}.llar-notice-review .llar-review-info .llar-buttons,.llar-notice-notify .llar-review-info .llar-buttons{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.llar-notice-review .llar-review-info .llar-buttons li,.llar-notice-notify .llar-review-info .llar-buttons li{margin-right:10px}.llar-notice-review .llar-review-info .llar-buttons li .dashicons,.llar-notice-notify .llar-review-info .llar-buttons li .dashicons{margin-right:5px}.llar-accordion .ui-accordion-header{font-weight:bold;background:#778899;color:#fff}.llar-accordion .ui-accordion-header.ui-accordion-header-active{background:#87CEFA}.custom-app-tab{position:relative}.custom-app-tab .spinner{float:none}.custom-app-tab .llar-app-ajax-msg{font-size:13px;margin-top:5px;display:block}.custom-app-tab .llar-app-ajax-msg.error{color:red}.custom-app-tab .llar-app-ajax-msg.success{color:green}.custom-app-tab .llar-delete-app{color:#dc3232;position:absolute;bottom:15px;right:15px}.custom-app-tab .llar-delete-app:hover{opacity:0.8}.custom-app-tab .llar-why-use-premium-text{margin-top:20px}.custom-app-tab .llar-why-use-premium-text .title{font-weight:bold;font-size:16px;color:#4d4d4d}.custom-app-tab .llar-why-use-premium-text ul li .dashicons{color:#3ab54a;font-size:25px;width:25px;top:-2px;position:relative}#llar-progress-bar{position:fixed;top:0;height:6px;left:0;width:100%;z-index:999999;background-color:#eee}#llar-progress-bar span{height:100%;position:absolute;display:block;width:0;background-color:#00b357;-webkit-transition:width 0.4s;transition:width 0.4s}#llar-header-upgrade-message{text-align:center;background-color:#f5f0c0;color:#222;padding:10px;margin-left:-20px;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.2);box-shadow:0 0 3px rgba(0,0,0,0.2)}#llar-header-upgrade-message p{margin:0}#llar-header-upgrade-message p .dashicons{color:#f2a64c;margin-right:5px}.settings_page_limit-login-attempts .update-nag{display:none}#llar-welcome-page{padding:50px 0}#llar-welcome-page img{max-width:100%;height:auto}#llar-welcome-page .llar-welcome-page-container{width:100%;max-width:760px;margin:0 auto 30px;background-color:#fff;border-radius:4px;-webkit-box-shadow:0 0 4px rgba(0,0,0,0.1);box-shadow:0 0 4px rgba(0,0,0,0.1)}#llar-welcome-page .llar-welcome-page-container.llar-premium{border-top:5px solid #50c1cd}#llar-welcome-page .llar-welcome-page-container .llar-welcome-page-section{padding:20px;text-align:center}#llar-welcome-page .llar-welcome-page-container .llar-welcome-page-section .llar-logo{text-align:center;margin-top:20px;margin-bottom:30px}#llar-welcome-page .llar-welcome-page-container .llar-welcome-page-section h2{font-size:2.4em;line-height:1.4}#llar-welcome-page .llar-welcome-page-container .llar-welcome-page-section h3{font-size:1.5em;line-height:1.4}#llar-welcome-page .llar-welcome-page-container .llar-welcome-page-section p{font-size:17px;color:#444}#llar-welcome-page .llar-welcome-page-container .llar-welcome-page-video-wrap img{width:100%;height:auto;cursor:pointer}#llar-welcome-page .llar-welcome-page-features{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 15px;counter-reset:cnt1}#llar-welcome-page .llar-welcome-page-features .llar-feature-item{-webkit-box-flex:0;-ms-flex:0 0 24%;flex:0 0 24%;text-align:center;margin-bottom:40px;position:relative;padding-bottom:60px}#llar-welcome-page .llar-welcome-page-features .llar-feature-item:before{content:counter(cnt1);counter-increment:cnt1;position:absolute;left:50%;-webkit-transform:translatex(-50%);transform:translatex(-50%);bottom:0;font-size:1em;font-weight:600;width:40px;height:40px;line-height:40px;text-align:center;border-radius:50%;background-color:#ecedef;color:#979aaa}#llar-welcome-page .llar-welcome-page-features .llar-feature-item:after{position:absolute;content:'';left:-39%;width:69%;height:1px;bottom:1.4em;background-color:#ecedef}#llar-welcome-page .llar-welcome-page-features .llar-feature-item:nth-child(4n+1):after{display:none}#llar-welcome-page .llar-welcome-page-features .llar-feature-item .llar-feature-image{margin-bottom:15px}#llar-welcome-page .llar-welcome-page-features .llar-feature-item .llar-feature-info .llar-feature-title{font-weight:bold;margin-bottom:15px}#llar-welcome-page .llar-welcome-page-features .llar-feature-item .llar-feature-info .llar-feature-desc{color:#979aaa}@media (max-width: 768px){#llar-welcome-page .llar-welcome-page-features{display:block}}#llar-welcome-page .llar-why-recommend{text-align:left;font-size:17px}#llar-welcome-page .llar-why-recommend ul li span{margin-right:5px;width:auto;height:auto;font-size:25px;vertical-align:middle;color:green}#llar-welcome-page .llar-welcome-list{font-size:17px;text-align:left;line-height:1.4;list-style:none}#llar-welcome-page .llar-welcome-list li span{margin-right:10px;width:auto;height:auto;font-size:22px;vertical-align:top;color:orange}#llar-welcome-page .llar-upgrade-btn-wrap{padding:20px}#llar-welcome-page .llar-upgrade-btn-wrap a{display:inline-block;background-color:#e27800;color:#fff;font-size:22px;padding:20px;text-decoration:none;font-weight:600}#llar-welcome-page .llar-upgrade-btn-wrap a:hover{background-color:#af5d00}#llar-welcome-page .llar-upgrade-questions{font-size:17px}.dashboard_page_llar-welcome .update-nag,.dashboard_page_llar-welcome .notice,.toplevel_page_limit-login-attempts .update-nag,.toplevel_page_limit-login-attempts .notice{display:none}.dashboard_page_llar-welcome .video-container,.toplevel_page_limit-login-attempts .video-container{position:relative;padding-bottom:56.1%;height:0;overflow:hidden}.dashboard_page_llar-welcome .video-container iframe,.toplevel_page_limit-login-attempts .video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.llar-tooltip{text-decoration:underline;-webkit-text-decoration-style:dotted;text-decoration-style:dotted;cursor:pointer;position:relative}.llar-tooltip:before{content:attr(data-text);position:absolute;width:200px;padding:5px;background-color:rgba(0,0,0,0.8);color:#fff;font-size:13px;top:100%;z-index:999;visibility:hidden;opacity:0;-webkit-transition:all .2s;transition:all .2s;font-weight:300;cursor:auto}.llar-tooltip:hover:before{visibility:visible;opacity:1}#toplevel_page_limit-login-attempts .wp-menu-image.svg{background-size:25px auto !important;margin-top:7px}.llar-alert-icon-animation{-webkit-animation-duration:10s;animation-duration:10s;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-delay:3s;animation-delay:3s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:running;animation-play-state:running;-webkit-animation-name:shake;animation-name:shake}#menu-settings li{position:relative}#menu-settings li .llar-alert-icon-animation{position:absolute;right:5px;top:7px;min-width:15px;line-height:15px;height:15px}@-webkit-keyframes shake{1%, 9%{-webkit-transform:translate3d(-1px, 0, 0);transform:translate3d(-1px, 0, 0)}2%, 8%{-webkit-transform:translate3d(2px, 0, 0);transform:translate3d(2px, 0, 0)}3%, 5%, 7%{-webkit-transform:translate3d(-3px, 0, 0);transform:translate3d(-3px, 0, 0)}4%, 6%{-webkit-transform:translate3d(3px, 0, 0);transform:translate3d(3px, 0, 0)}}@keyframes shake{1%, 9%{-webkit-transform:translate3d(-1px, 0, 0);transform:translate3d(-1px, 0, 0)}2%, 8%{-webkit-transform:translate3d(2px, 0, 0);transform:translate3d(2px, 0, 0)}3%, 5%, 7%{-webkit-transform:translate3d(-3px, 0, 0);transform:translate3d(-3px, 0, 0)}4%, 6%{-webkit-transform:translate3d(3px, 0, 0);transform:translate3d(3px, 0, 0)}}#llar-dashboard-page{padding-top:10px}#llar-dashboard-page *{-webkit-box-sizing:border-box;box-sizing:border-box}#llar-dashboard-page ul,#llar-dashboard-page ol{margin-left:0}#llar-dashboard-page ul li,#llar-dashboard-page ol li{list-style-position:inside}#llar-dashboard-page .dashboard-header{background-color:#0071a0;color:#fff;text-align:center;padding:15px}#llar-dashboard-page .dashboard-header h1{color:#fff}#llar-dashboard-page .section-title{font-weight:bold;padding:15px;border-bottom:1px solid #e4e4e4;font-size:14px;text-align:left}#llar-dashboard-page .section-content{padding:15px;overflow:hidden}#llar-dashboard-page .dashboard-section-1{margin-bottom:20px;background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}#llar-dashboard-page .dashboard-section-1>[class^="info-box-"]{text-align:center;-webkit-box-flex:0;-ms-flex:0 0 33.333%;flex:0 0 33.333%;max-width:33.333%;border-right:1px solid #e4e4e4}#llar-dashboard-page .dashboard-section-1>[class^="info-box-"]:last-child{border:0}#llar-dashboard-page .dashboard-section-1>[class^="info-box-"] .title{font-weight:600;font-size:16px;line-height:1.5;margin-bottom:10px}#llar-dashboard-page .dashboard-section-1 .info-box-1 .section-title .llar-premium-label{float:right;color:#797777;font-weight:400}#llar-dashboard-page .dashboard-section-1 .info-box-1 .section-title .llar-premium-label .dashicons{color:#66cc66;margin-right:2px}#llar-dashboard-page .dashboard-section-1 .info-box-1 .chart{max-width:300px;position:relative;margin-bottom:15px;margin-left:auto;margin-right:auto}#llar-dashboard-page .dashboard-section-1 .info-box-1 .chart .llar-retries-count{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);font-size:28px;font-weight:bold}#llar-dashboard-page .dashboard-section-1 .info-box-1 .desc{font-size:15px}#llar-dashboard-page .dashboard-section-1 .info-box-1 .actions{margin-top:5px}#llar-dashboard-page .dashboard-section-1 .info-box-2 .llar-chart-wrap{width:100%;max-width:80%;margin:0 auto;clear:both}#llar-dashboard-page .dashboard-section-1 .info-box-2 .llar-chart-wrap canvas{height:300px}#llar-dashboard-page .dashboard-section-1 .info-box-2 .chart-stats-legend{text-align:center;margin-top:10px}#llar-dashboard-page .dashboard-section-1 .info-box-3{text-align:left}#llar-dashboard-page .dashboard-section-1 .info-box-3 .desc{margin-bottom:20px}#llar-dashboard-page .dashboard-section-1 .info-box-3 .actions{text-align:center;padding-top:20px}#llar-dashboard-page .dashboard-section-1 .info-box-3 .actions a{text-transform:uppercase;font-size:16px;margin-bottom:5px}#llar-dashboard-page .dashboard-section-1.custom .info-box-2{-webkit-box-flex:0;-ms-flex:0 0 66.666%;flex:0 0 66.666%;max-width:66.666%}#llar-dashboard-page .dashboard-section-2{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:20px}#llar-dashboard-page .dashboard-section-2>[class^="info-box-"]{-webkit-box-flex:0;-ms-flex:0 0 calc(50% - 10px);flex:0 0 calc(50% - 10px);min-height:100px;background-color:#fff;border:1px solid #e4e4e4;padding:15px}#llar-dashboard-page .dashboard-section-2>[class^="info-box-"]:last-child{margin-right:0}#llar-dashboard-page .dashboard-section-2 .info-box-1{padding:0}#llar-dashboard-page .dashboard-section-2 .info-box-1 .notifications-list{padding:0;margin:0}#llar-dashboard-page .dashboard-section-2 .info-box-1 .notifications-list li{margin:0;border-bottom:1px solid #e4e4e4}#llar-dashboard-page .dashboard-section-2 .info-box-1 .notifications-list li:last-child{border:0}#llar-dashboard-page .dashboard-section-2 .info-box-1 .notifications-list li a{text-decoration:none;padding:15px;font-size:15px;display:block}#llar-dashboard-page .dashboard-section-2 .info-box-1 .notifications-list li a:hover{background-color:#f9f9f9}#llar-dashboard-page .dashboard-section-2 .info-box-2{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}#llar-dashboard-page .dashboard-section-2 .info-box-2 .info-box-icon{-webkit-box-flex:0;-ms-flex:0 0 100px;flex:0 0 100px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:15px}#llar-dashboard-page .dashboard-section-2 .info-box-2 .info-box-icon .dashicons{color:#0073a0;font-size:50px;width:auto;height:auto}#llar-dashboard-page .dashboard-section-2 .info-box-2 .info-box-content{-webkit-box-flex:1;-ms-flex:1;flex:1}#llar-dashboard-page .dashboard-section-2 .info-box-2 .info-box-content .title{font-size:20px;font-weight:bold;margin-bottom:10px;line-height:1.5}#llar-dashboard-page .dashboard-section-2 .info-box-2 .info-box-content .desc{font-size:15px;margin-bottom:15px}#llar-dashboard-page .dashboard-section-2 .info-box-2 .info-box-content .actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}#llar-dashboard-page .dashboard-section-3{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;background-color:#fff;margin-bottom:20px}#llar-dashboard-page .dashboard-section-3>[class^="info-box-"]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:30px 15px 30px 0;-webkit-box-flex:1;-ms-flex:1;flex:1;border-right:1px solid #e4e4e4}#llar-dashboard-page .dashboard-section-3>[class^="info-box-"] .info-box-icon{-webkit-box-flex:0;-ms-flex:0 0 100px;flex:0 0 100px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#llar-dashboard-page .dashboard-section-3>[class^="info-box-"] .info-box-icon .dashicons{color:#a1a2a2;font-size:60px;width:auto;height:auto}#llar-dashboard-page .dashboard-section-3>[class^="info-box-"] .info-box-content{-webkit-box-flex:1;-ms-flex:1;flex:1}#llar-dashboard-page .dashboard-section-3>[class^="info-box-"] .info-box-content .title{font-size:20px;font-weight:bold;margin-bottom:10px;line-height:1.3}#llar-dashboard-page .dashboard-section-3>[class^="info-box-"] .info-box-content .title a{text-decoration:none}#llar-dashboard-page .dashboard-section-3>[class^="info-box-"] .info-box-content .desc{font-size:15px;margin-bottom:15px}#llar-dashboard-page .dashboard-section-3>[class^="info-box-"] .info-box-content .actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}#llar-dashboard-page .dashboard-section-4{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:20px}#llar-dashboard-page .dashboard-section-4>[class^="info-box-"]{-webkit-box-flex:0;-ms-flex:0 0 calc(50% - 10px);flex:0 0 calc(50% - 10px);min-height:100px;background-color:#fff;border:1px solid #e4e4e4;padding:15px}#llar-dashboard-page .dashboard-section-4>[class^="info-box-"]:last-child{margin-right:0}#llar-dashboard-page .dashboard-section-4 .info-box-1{padding:0}#llar-dashboard-page .dashboard-section-4 .info-box-1 .section-title{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}#llar-dashboard-page .dashboard-section-4 .info-box-1 .section-title .section-title-info{color:#a7a7a7;font-weight:400}#llar-dashboard-page .dashboard-section-4 .info-box-1 .lockouts-by-country-table{width:100%;border-collapse:collapse}#llar-dashboard-page .dashboard-section-4 .info-box-1 .lockouts-by-country-table tr th,#llar-dashboard-page .dashboard-section-4 .info-box-1 .lockouts-by-country-table tr td{padding:10px;border:1px solid #cecece}#llar-dashboard-page .dashboard-section-4 .info-box-1 .lockouts-by-country-table tr th{background-color:#000;color:#fff;text-align:left}#llar-dashboard-page .dashboard-section-4 .info-box-1 .lockouts-by-country-table tr:nth-child(odd) td{background-color:#eff0ef}#llar-dashboard-page .dashboard-section-4 .info-box-1 .lockouts-by-country-table tr td .flag-icon{width:24px;vertical-align:middle;margin-right:10px}#llar-dashboard-page .dashboard-section-4 .info-box-1 .countries-table-info{color:#a7a7a7;font-weight:400;margin-top:5px;margin-bottom:0;float:left}#llar-dashboard-page .dashboard-section-4 .info-box-1 .countries-table-info-right{color:#2271b1;font-weight:400;margin-top:5px;margin-bottom:0;float:right}#llar-dashboard-page .dashboard-section-4 .info-box-2{padding:0}#llar-dashboard-page .dashboard-section-4 .info-box-2 .section-title{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}#llar-dashboard-page .dashboard-section-4 .info-box-2 .section-title .section-title-info{color:#a7a7a7;font-weight:400}#llar-dashboard-page .dashboard-section-4 .info-box-2 .llar-chart-wrap{width:100%;max-width:80%;margin:0 auto;clear:both}#llar-dashboard-page .dashboard-section-4 .info-box-2 .llar-chart-wrap canvas{height:300px}#llar-admin-dashboard-widgets .widget-title{padding-bottom:15px;border-bottom:1px solid #e4e4e4;font-size:14px;text-align:left}#llar-admin-dashboard-widgets .widget-content{overflow:hidden}#llar-admin-dashboard-widgets .llar-widget{margin-bottom:20px;background-color:#fff;text-align:center}#llar-admin-dashboard-widgets .llar-widget .chart{max-width:300px;position:relative;margin-bottom:15px;margin-left:auto;margin-right:auto}#llar-admin-dashboard-widgets .llar-widget .chart .llar-retries-count{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);font-size:28px;font-weight:bold}#llar-admin-dashboard-widgets .llar-widget .title{font-weight:600;font-size:16px;line-height:1.5;margin-bottom:10px}#llar-admin-dashboard-widgets .llar-widget .desc{font-size:15px}#llar-admin-dashboard-widgets .llar-widget .actions{margin-top:5px}#llar-admin-dashboard-widgets .llar-widget.widget-2 .llar-chart-wrap{width:100%;margin:0 auto;clear:both}#llar-admin-dashboard-widgets .llar-widget.widget-2 .llar-chart-wrap canvas{height:300px}#llar-admin-dashboard-widgets .llar-widget.widget-2 .chart-stats-legend{text-align:center;margin-top:10px}.jconfirm .jconfirm-box{padding:0 !important}.jconfirm .jconfirm-box .jconfirm-closeIcon{top:17px !important}.jconfirm .jconfirm-box .jconfirm-title-c{background-color:#fcb40c;color:#fff;padding:15px;font-size:16px !important;font-weight:bold}.jconfirm .jconfirm-box .jconfirm-buttons{padding-right:15px}.jconfirm .jconfirm-box .llar-onboarding-popup-content{padding:15px}.jconfirm .jconfirm-box .llar-onboarding-popup-content .title{font-size:16px;line-height:22px;font-weight:bold;text-align:center;margin-bottom:20px}.jconfirm .jconfirm-box .llar-onboarding-popup-content .field-wrap{margin-bottom:20px}.jconfirm .jconfirm-box .llar-onboarding-popup-content .field-wrap input{display:block;width:100%;margin:0 auto;padding:7px 15px}.jconfirm .jconfirm-box .llar-onboarding-popup-content .field-wrap .field-desc{font-size:13px;color:#acacac;padding-top:0;text-align:center}.jconfirm .jconfirm-box .llar-onboarding-popup-content .security-alerts-options{display:-webkit-box;display:-ms-flexbox;display:flex}.jconfirm .jconfirm-box .llar-onboarding-popup-content .security-alerts-options .info{font-size:14px;line-height:22px}.jconfirm .jconfirm-box .llar-onboarding-popup-content .security-alerts-options .buttons{display:-webkit-box;display:-ms-flexbox;display:flex;padding-left:15px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.jconfirm .jconfirm-box .llar-onboarding-popup-content .security-alerts-options .buttons span{text-transform:uppercase;cursor:pointer;width:45px;text-align:center;vertical-align:middle;display:block;height:34px;line-height:34px}.jconfirm .jconfirm-box .llar-onboarding-popup-content .security-alerts-options .buttons span.llar-act{background-color:#0A75B5;color:#fff}.jconfirm .jconfirm-box .llar-onboarding-popup-content .security-alerts-options .buttons span:first-child{border:1px solid #ccc;border-radius:4px 0 0 4px}.jconfirm .jconfirm-box .llar-onboarding-popup-content .security-alerts-options .buttons span:last-child{border:1px solid #ccc;border-radius:0 4px 4px 0;border-left:0}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .title{font-size:20px;margin-bottom:10px}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .desc{text-align:center;margin-bottom:20px;max-width:400px;margin-left:auto;margin-right:auto}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .field-wrap{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:40px}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .field-wrap .field{-webkit-box-flex:1;-ms-flex:1;flex:1}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .field-wrap .field .error{display:none;color:red}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .field-wrap .button-col button{margin-left:10px;text-transform:uppercase;position:relative;height:44px}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .field-wrap .button-col button .preloader-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;background-color:rgba(255,255,255,0.5);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;display:none}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .field-wrap .button-col button.button-disabled .preloader-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .field-wrap .button-col button.button-disabled .preloader-wrapper span{visibility:visible}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .divider-line{border-top:1px solid #ccc;height:1px;text-align:center;margin-bottom:20px;margin-top:20px;position:relative}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .divider-line span{background-color:#fff;display:inline-block;top:-10px;position:relative;padding:0 10px;text-transform:uppercase}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .bottom-buttons{text-align:center}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .bottom-buttons .text{text-align:center;margin-bottom:20px}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .bottom-buttons .buttons .button{font-size:14px;text-transform:uppercase;height:40px;margin:0 5px}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .bottom-buttons .buttons .button-primary{line-height:1.5;background-color:#fcb40c;border-color:#b07c04}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .bottom-buttons .buttons .button-primary span{text-transform:none;display:block;font-size:12px;line-height:13px;margin-bottom:2px}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .bottom-buttons .buttons .button-secondary{line-height:40px}.jconfirm .jconfirm-box .llar-onboarding-popup-content.llar-app-setup-popup .bottom-buttons .buttons .button-link{vertical-align:middle;height:40px}
assets/sass/_dashboard-page.scss CHANGED
@@ -61,6 +61,19 @@
61
  }
62
  }
63
  .info-box-1 {
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  .chart {
65
  //margin-bottom: 10px;
66
  max-width: 300px;
61
  }
62
  }
63
  .info-box-1 {
64
+ .section-title {
65
+ .llar-premium-label {
66
+ float: right;
67
+ color: #797777;
68
+ font-weight: 400;
69
+
70
+ .dashicons {
71
+ color: #66cc66;
72
+ margin-right: 2px;
73
+ }
74
+
75
+ }
76
+ }
77
  .chart {
78
  //margin-bottom: 10px;
79
  max-width: 300px;
assets/sass/_onboarding-popup.scss ADDED
@@ -0,0 +1,196 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .jconfirm {
2
+ .jconfirm-box {
3
+ padding: 0 !important;
4
+
5
+ .jconfirm-closeIcon {
6
+ top: 17px !important;
7
+ }
8
+
9
+ .jconfirm-title-c {
10
+ background-color: #fcb40c;
11
+ color: #fff;
12
+ padding: 15px;
13
+ font-size: 16px !important;
14
+ font-weight: bold;
15
+ }
16
+ .jconfirm-buttons {
17
+ padding-right: 15px;
18
+ }
19
+ .llar-onboarding-popup-content {
20
+ padding: 15px;
21
+ .title {
22
+ font-size: 16px;
23
+ line-height: 22px;
24
+ font-weight: bold;
25
+ text-align: center;
26
+ margin-bottom: 20px;
27
+ }
28
+ .field-wrap {
29
+ margin-bottom: 20px;
30
+ input {
31
+ display: block;
32
+ width: 100%;
33
+ margin: 0 auto;
34
+ padding: 7px 15px;
35
+ }
36
+ .field-desc {
37
+ font-size: 13px;
38
+ color: #acacac;
39
+ padding-top: 0;
40
+ text-align: center;
41
+ }
42
+ }
43
+ .security-alerts-options {
44
+ display: flex;
45
+
46
+ .info {
47
+ font-size: 14px;
48
+ line-height: 22px;
49
+ }
50
+ .buttons {
51
+ display: flex;
52
+ padding-left: 15px;
53
+ align-items: center;
54
+
55
+ span {
56
+ text-transform: uppercase;
57
+ cursor: pointer;
58
+ width: 45px;
59
+ text-align: center;
60
+ vertical-align: middle;
61
+ display: block;
62
+ height: 34px;
63
+ line-height: 34px;
64
+
65
+ &.llar-act {
66
+ background-color: #0A75B5;
67
+ color: #fff;
68
+ }
69
+
70
+ &:first-child {
71
+ border: 1px solid #ccc;
72
+ border-radius: 4px 0 0 4px;
73
+ }
74
+
75
+ &:last-child {
76
+ border: 1px solid #ccc;
77
+ border-radius: 0 4px 4px 0;
78
+ border-left: 0;
79
+ }
80
+ }
81
+ }
82
+ }
83
+
84
+ &.llar-app-setup-popup {
85
+ .title {
86
+ font-size: 20px;
87
+ margin-bottom: 10px;
88
+ }
89
+ .desc {
90
+ text-align: center;
91
+ margin-bottom: 20px;
92
+ max-width: 400px;
93
+ margin-left: auto;
94
+ margin-right: auto;
95
+ }
96
+ .field-wrap {
97
+ display: flex;
98
+ margin-bottom: 40px;
99
+
100
+ .field {
101
+ flex: 1;
102
+
103
+ .error {
104
+ display: none;
105
+ color: red;
106
+ }
107
+ }
108
+
109
+ .button-col {
110
+ button {
111
+ margin-left: 10px;
112
+ text-transform: uppercase;
113
+ position: relative;
114
+ height: 44px;
115
+
116
+ .preloader-wrapper {
117
+ position: absolute;
118
+ top: 0;
119
+ left: 0;
120
+ right: 0;
121
+ bottom: 0;
122
+ background-color: rgba(#fff, 0.5);
123
+ align-items: center;
124
+ justify-content: center;
125
+ display: none;
126
+ }
127
+
128
+ &.button-disabled {
129
+ .preloader-wrapper {
130
+ display: flex;
131
+
132
+ span {
133
+ visibility: visible;
134
+ }
135
+ }
136
+ }
137
+ }
138
+ }
139
+ }
140
+ .divider-line {
141
+ border-top: 1px solid #ccc;
142
+ height: 1px;
143
+ text-align: center;
144
+ margin-bottom: 20px;
145
+ margin-top: 20px;
146
+ position: relative;
147
+
148
+ span {
149
+ background-color: #fff;
150
+ display: inline-block;
151
+ top: -10px;
152
+ position: relative;
153
+ padding: 0 10px;
154
+ text-transform: uppercase;
155
+ }
156
+ }
157
+ .bottom-buttons {
158
+ text-align: center;
159
+
160
+ .text {
161
+ text-align: center;
162
+ margin-bottom: 20px;
163
+ }
164
+ .buttons {
165
+ .button {
166
+ font-size: 14px;
167
+ text-transform: uppercase;
168
+ height: 40px;
169
+ margin: 0 5px;
170
+ }
171
+ .button-primary {
172
+ line-height: 1.5;
173
+ background-color: #fcb40c;
174
+ border-color: #b07c04;
175
+
176
+ span {
177
+ text-transform: none;
178
+ display: block;
179
+ font-size: 12px;
180
+ line-height: 13px;
181
+ margin-bottom: 2px;
182
+ }
183
+ }
184
+ .button-secondary {
185
+ line-height: 40px;
186
+ }
187
+ .button-link {
188
+ vertical-align: middle;
189
+ height: 40px;
190
+ }
191
+ }
192
+ }
193
+ }
194
+ }
195
+ }
196
+ }
assets/sass/limit-login-attempts.scss CHANGED
@@ -691,11 +691,6 @@
691
  }
692
  }
693
 
694
- .jconfirm .jconfirm-box div.jconfirm-closeIcon {
695
- top: -2px !important;
696
- right: -2px !important;
697
- }
698
-
699
  .llar-tooltip {
700
  text-decoration: underline;
701
  text-decoration-style: dotted;
@@ -791,4 +786,5 @@
791
  }
792
 
793
  @import "dashboard-page";
794
- @import "admin-dashboard-widgets";
 
691
  }
692
  }
693
 
 
 
 
 
 
694
  .llar-tooltip {
695
  text-decoration: underline;
696
  text-decoration-style: dotted;
786
  }
787
 
788
  @import "dashboard-page";
789
+ @import "admin-dashboard-widgets";
790
+ @import "onboarding-popup";
core/LimitLoginAttempts.php CHANGED
@@ -49,6 +49,7 @@ class Limit_Login_Attempts {
49
  'show_top_level_menu_item' => true,
50
  'hide_dashboard_widget' => false,
51
  'show_warning_badge' => true,
 
52
 
53
  'logged' => array(),
54
  'retries_valid' => array(),
@@ -61,11 +62,6 @@ class Limit_Login_Attempts {
61
  */
62
  private $_options_page_slug = 'limit-login-attempts';
63
 
64
- /**
65
- * @var string
66
- */
67
- private $_welcome_page_slug = 'llar-welcome';
68
-
69
  /**
70
  * Errors messages
71
  *
@@ -133,14 +129,15 @@ class Limit_Login_Attempts {
133
  add_action( 'wp_ajax_app_acl_add_rule', array( $this, 'app_acl_add_rule_callback' ) );
134
  add_action( 'wp_ajax_app_acl_remove_rule', array( $this, 'app_acl_remove_rule_callback' ) );
135
  add_action( 'wp_ajax_nopriv_get_remaining_attempts_message', array( $this, 'get_remaining_attempts_message_callback' ) );
 
 
136
 
137
  add_action( 'admin_print_scripts-toplevel_page_limit-login-attempts', array( $this, 'load_admin_scripts' ) );
138
  add_action( 'admin_print_scripts-settings_page_limit-login-attempts', array( $this, 'load_admin_scripts' ) );
139
  add_action( 'admin_print_scripts-index.php', array( $this, 'load_admin_scripts' ) );
140
 
141
- add_action( 'admin_init', array( $this, 'welcome_page_redirect' ), 9999 );
142
  add_action( 'admin_init', array( $this, 'setup_cookie' ), 10 );
143
- add_action( 'admin_head', array( $this, 'welcome_page_hide_menu' ) );
144
 
145
  add_action( 'login_footer', array( $this, 'login_page_gdpr_message' ) );
146
  add_action( 'login_footer', array( $this, 'login_page_render_js' ), 9999 );
@@ -157,7 +154,10 @@ class Limit_Login_Attempts {
157
  */
158
  public function activation() {
159
 
160
- set_transient( 'llar_welcome_redirect', true, 30 );
 
 
 
161
  }
162
 
163
  public function setup_cookie() {
@@ -191,25 +191,20 @@ class Limit_Login_Attempts {
191
  }
192
 
193
  /**
194
- * Redirect to Welcome page after installed
195
  */
196
- public function welcome_page_redirect() {
197
 
198
- if( ! get_transient( 'llar_welcome_redirect' ) || isset( $_GET['activate-multi'] ) || is_network_admin() ) {
199
  return;
200
  }
201
 
202
- delete_transient( 'llar_welcome_redirect' );
203
 
204
- wp_redirect( admin_url( 'index.php?page=' . $this->_welcome_page_slug ) );
205
  exit();
206
  }
207
 
208
- public function welcome_page_hide_menu() {
209
-
210
- remove_submenu_page( 'index.php', $this->_welcome_page_slug );
211
- }
212
-
213
  /**
214
  * Hook 'plugins_loaded'
215
  */
@@ -666,7 +661,7 @@ class Limit_Login_Attempts {
666
  wp_enqueue_style( 'lla-main', LLA_PLUGIN_URL . 'assets/css/limit-login-attempts.css', array(), $plugin_data['Version'] );
667
  wp_enqueue_script( 'lla-main', LLA_PLUGIN_URL . 'assets/js/limit-login-attempts.js', array(), $plugin_data['Version'] );
668
 
669
- if( !empty( $_REQUEST['page'] ) && $_REQUEST['page'] === $this->_welcome_page_slug ) {
670
 
671
  wp_enqueue_style( 'lla-jquery-confirm', LLA_PLUGIN_URL . 'assets/css/jquery-confirm.min.css' );
672
  wp_enqueue_script( 'lla-jquery-confirm', LLA_PLUGIN_URL . 'assets/js/jquery-confirm.min.js' );
@@ -705,14 +700,6 @@ class Limit_Login_Attempts {
705
  }
706
 
707
  add_options_page( 'Limit Login Attempts', 'Limit Login Attempts' . $this->menu_alert_icon(), 'manage_options', $this->_options_page_slug, array( $this, 'options_page' ) );
708
-
709
- add_dashboard_page(
710
- 'Welcome to Limit Login Attempts Reloaded',
711
- 'Limit Login Attempts Welcome',
712
- 'manage_options',
713
- $this->_welcome_page_slug,
714
- array( $this, 'welcome_page' )
715
- );
716
  }
717
 
718
  public function get_svg_logo_content() {
@@ -1872,14 +1859,6 @@ into a must-use (MU) folder.</i></p>', 'limit-login-attempts-reloaded' );
1872
  include_once( LLA_PLUGIN_DIR . '/views/options-page.php' );
1873
  }
1874
 
1875
- /**
1876
- * Render Welcome page
1877
- */
1878
- public function welcome_page() {
1879
-
1880
- include_once( LLA_PLUGIN_DIR . '/views/welcome-page.php' );
1881
- }
1882
-
1883
  public function ajax_unlock()
1884
  {
1885
  check_ajax_referer('limit-login-unlock', 'sec');
@@ -2667,6 +2646,72 @@ into a must-use (MU) folder.</i></p>', 'limit-login-attempts-reloaded' );
2667
  }
2668
  }
2669
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2670
  public function get_remaining_attempts_message_callback() {
2671
 
2672
  check_ajax_referer('llar-action', 'sec');
49
  'show_top_level_menu_item' => true,
50
  'hide_dashboard_widget' => false,
51
  'show_warning_badge' => true,
52
+ 'onboarding_popup_shown' => false,
53
 
54
  'logged' => array(),
55
  'retries_valid' => array(),
62
  */
63
  private $_options_page_slug = 'limit-login-attempts';
64
 
 
 
 
 
 
65
  /**
66
  * Errors messages
67
  *
129
  add_action( 'wp_ajax_app_acl_add_rule', array( $this, 'app_acl_add_rule_callback' ) );
130
  add_action( 'wp_ajax_app_acl_remove_rule', array( $this, 'app_acl_remove_rule_callback' ) );
131
  add_action( 'wp_ajax_nopriv_get_remaining_attempts_message', array( $this, 'get_remaining_attempts_message_callback' ) );
132
+ add_action( 'wp_ajax_subscribe_email', array( $this, 'subscribe_email_callback' ) );
133
+ add_action( 'wp_ajax_dismiss_onboarding_popup', array( $this, 'dismiss_onboarding_popup_callback' ) );
134
 
135
  add_action( 'admin_print_scripts-toplevel_page_limit-login-attempts', array( $this, 'load_admin_scripts' ) );
136
  add_action( 'admin_print_scripts-settings_page_limit-login-attempts', array( $this, 'load_admin_scripts' ) );
137
  add_action( 'admin_print_scripts-index.php', array( $this, 'load_admin_scripts' ) );
138
 
139
+ add_action( 'admin_init', array( $this, 'dashboard_page_redirect' ), 9999 );
140
  add_action( 'admin_init', array( $this, 'setup_cookie' ), 10 );
 
141
 
142
  add_action( 'login_footer', array( $this, 'login_page_gdpr_message' ) );
143
  add_action( 'login_footer', array( $this, 'login_page_render_js' ), 9999 );
154
  */
155
  public function activation() {
156
 
157
+ if( !$this->get_option( 'activation_timestamp' ) ) {
158
+
159
+ set_transient( 'llar_dashboard_redirect', true, 30 );
160
+ }
161
  }
162
 
163
  public function setup_cookie() {
191
  }
192
 
193
  /**
194
+ * Redirect to dashboard page after installed
195
  */
196
+ public function dashboard_page_redirect() {
197
 
198
+ if( ! get_transient( 'llar_dashboard_redirect' ) || isset( $_GET['activate-multi'] ) || is_network_admin() ) {
199
  return;
200
  }
201
 
202
+ delete_transient( 'llar_dashboard_redirect' );
203
 
204
+ wp_redirect( admin_url( 'index.php?page=' . $this->_options_page_slug ) );
205
  exit();
206
  }
207
 
 
 
 
 
 
208
  /**
209
  * Hook 'plugins_loaded'
210
  */
661
  wp_enqueue_style( 'lla-main', LLA_PLUGIN_URL . 'assets/css/limit-login-attempts.css', array(), $plugin_data['Version'] );
662
  wp_enqueue_script( 'lla-main', LLA_PLUGIN_URL . 'assets/js/limit-login-attempts.js', array(), $plugin_data['Version'] );
663
 
664
+ if( !empty( $_REQUEST['page'] ) && $_REQUEST['page'] === $this->_options_page_slug ) {
665
 
666
  wp_enqueue_style( 'lla-jquery-confirm', LLA_PLUGIN_URL . 'assets/css/jquery-confirm.min.css' );
667
  wp_enqueue_script( 'lla-jquery-confirm', LLA_PLUGIN_URL . 'assets/js/jquery-confirm.min.js' );
700
  }
701
 
702
  add_options_page( 'Limit Login Attempts', 'Limit Login Attempts' . $this->menu_alert_icon(), 'manage_options', $this->_options_page_slug, array( $this, 'options_page' ) );
 
 
 
 
 
 
 
 
703
  }
704
 
705
  public function get_svg_logo_content() {
1859
  include_once( LLA_PLUGIN_DIR . '/views/options-page.php' );
1860
  }
1861
 
 
 
 
 
 
 
 
 
1862
  public function ajax_unlock()
1863
  {
1864
  check_ajax_referer('limit-login-unlock', 'sec');
2646
  }
2647
  }
2648
 
2649
+ public function subscribe_email_callback() {
2650
+
2651
+ if ( !current_user_can('activate_plugins') ) {
2652
+
2653
+ wp_send_json_error(array());
2654
+ }
2655
+
2656
+ check_ajax_referer('llar-action', 'sec');
2657
+
2658
+ $this->update_option( 'onboarding_popup_shown', true );
2659
+
2660
+ $email = sanitize_text_field( trim( $_POST['email'] ) );
2661
+ $is_subscribe_yes = sanitize_text_field( $_POST['is_subscribe_yes'] ) === 'true';
2662
+
2663
+ $admin_email = ( !is_multisite() ) ? get_option( 'admin_email' ) : get_site_option( 'admin_email' );
2664
+ $current_email = $this->get_option( 'admin_notify_email' );
2665
+
2666
+ if( !empty( $email ) && is_email( $email ) ) {
2667
+
2668
+ $this->update_option( 'admin_notify_email', $email );
2669
+ $this->update_option( 'lockout_notify', 'email' );
2670
+
2671
+ if( $is_subscribe_yes ) {
2672
+ $response = wp_remote_post( 'https://api.limitloginattempts.com/my/key', array(
2673
+ 'body' => json_encode( array(
2674
+ 'email' => $email
2675
+ ), JSON_FORCE_OBJECT )
2676
+ ));
2677
+
2678
+ if( is_wp_error( $response ) ) {
2679
+
2680
+ wp_send_json_error( $response );
2681
+ } else {
2682
+
2683
+ $response_body = json_decode( wp_remote_retrieve_body( $response ), JSON_FORCE_OBJECT );
2684
+
2685
+ if( !empty( $response_body['key'] ) ) {
2686
+ $this->update_option( 'cloud_key', $response_body['key'] );
2687
+ }
2688
+
2689
+ wp_send_json_success( $response_body );
2690
+ }
2691
+ }
2692
+ }
2693
+ else if ( empty( $email ) ) {
2694
+ $this->update_option( 'admin_notify_email', $admin_email );
2695
+ $this->update_option( 'lockout_notify', '' );
2696
+ }
2697
+
2698
+ wp_send_json_error(array('email' => $email, 'is_subscribe_yes' => $is_subscribe_yes));exit();
2699
+ }
2700
+
2701
+ public function dismiss_onboarding_popup_callback() {
2702
+
2703
+ if ( !current_user_can('activate_plugins') ) {
2704
+
2705
+ wp_send_json_error(array());
2706
+ }
2707
+
2708
+ check_ajax_referer('llar-action', 'sec');
2709
+
2710
+ $this->update_option( 'onboarding_popup_shown', true );
2711
+
2712
+ wp_send_json_success();
2713
+ }
2714
+
2715
  public function get_remaining_attempts_message_callback() {
2716
 
2717
  check_ajax_referer('llar-action', 'sec');
limit-login-attempts-reloaded.php CHANGED
@@ -5,7 +5,7 @@ Description: Block excessive login attempts and protect your site against brute
5
  Author: Limit Login Attempts Reloaded
6
  Author URI: https://www.limitloginattempts.com/
7
  Text Domain: limit-login-attempts-reloaded
8
- Version: 2.25.8
9
 
10
  Copyright 2008 - 2012 Johan Eenfeldt, 2016 - 2022 Limit Login Attempts Reloaded
11
  */
5
  Author: Limit Login Attempts Reloaded
6
  Author URI: https://www.limitloginattempts.com/
7
  Text Domain: limit-login-attempts-reloaded
8
+ Version: 2.25.9
9
 
10
  Copyright 2008 - 2012 Johan Eenfeldt, 2016 - 2022 Limit Login Attempts Reloaded
11
  */
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: wpchefgadget
3
  Donate link: https://www.paypal.com/donate?hosted_button_id=FKD4MYFCMNVQQ
4
  Tags: brute force, login, security, firewall, protection
5
  Requires at least: 3.0
6
- Tested up to: 6.0
7
- Stable tag: 2.25.8
8
 
9
  Block excessive login attempts and protect your site against brute force attacks. Simple, yet powerful tools to improve site performance.
10
 
@@ -98,6 +98,9 @@ Please follow this link: <a href="https://www.limitloginattempts.com/resources/"
98
 
99
  == Changelog ==
100
 
 
 
 
101
  = 2.25.8 =
102
  * Email text, links updated.
103
 
3
  Donate link: https://www.paypal.com/donate?hosted_button_id=FKD4MYFCMNVQQ
4
  Tags: brute force, login, security, firewall, protection
5
  Requires at least: 3.0
6
+ Tested up to: 6.1
7
+ Stable tag: 2.25.9
8
 
9
  Block excessive login attempts and protect your site against brute force attacks. Simple, yet powerful tools to improve site performance.
10
 
98
 
99
  == Changelog ==
100
 
101
+ = 2.25.9 =
102
+ * Welcome page replaced with a modal.
103
+
104
  = 2.25.8 =
105
  * Email text, links updated.
106
 
views/onboarding-popup.php ADDED
@@ -0,0 +1,175 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if( !defined( 'ABSPATH' ) ) exit();
4
+
5
+ /**
6
+ * @var $this Limit_Login_Attempts
7
+ */
8
+
9
+ $admin_email = ( !is_multisite() ) ? get_option( 'admin_email' ) : get_site_option( 'admin_email' );
10
+ $onboarding_popup_shown = $this->get_option( 'onboarding_popup_shown' );
11
+ $setup_code = $this->get_option( 'app_setup_code' );
12
+
13
+ if( $onboarding_popup_shown || !empty( $setup_code ) ) return;
14
+
15
+ ob_start(); ?>
16
+ <div class="llar-onboarding-popup-content">
17
+ <div class="title"><?php _e( 'Please tell us where Limit Login Attempts Reloaded should send security notifications for your website?', 'limit-login-attempts-reloaded' ); ?></div>
18
+ <div class="field-wrap">
19
+ <input type="email" id="llar-subscribe-email" placeholder="you@example.com" value="<?php esc_attr_e( $admin_email ); ?>">
20
+ <div class="field-desc"><?php _e( 'We do not use this email address for any other purpose unless you opt-in to receive other mailings. You can turn off alerts in the settings.', 'limit-login-attempts-reloaded' ); ?></div>
21
+ </div>
22
+ <div class="security-alerts-options">
23
+ <div class="info" style="font-size: 16px;"><?php _e( 'Would you also like to join our email newsletter to receive plugin updates, WordPress security news, and other relevant content?', 'limit-login-attempts-reloaded' ); ?></div>
24
+ <div class="buttons">
25
+ <span data-val="yes"><?php _e( 'Yes', 'limit-login-attempts-reloaded' ); ?></span>
26
+ <span data-val="no"><?php _e( 'No', 'limit-login-attempts-reloaded' ); ?></span>
27
+ </div>
28
+ </div>
29
+ </div>
30
+ <?php
31
+ $popup_complete_install_content = ob_get_clean();
32
+ ?>
33
+ <?php
34
+ ob_start(); ?>
35
+ <div class="llar-onboarding-popup-content llar-app-setup-popup">
36
+ <div class="title"><?php _e( 'Activate Premium', 'limit-login-attempts-reloaded' ); ?></div>
37
+ <div class="desc" style="font-size: 16px; line-height: 24px;"><?php _e( 'Enter your setup code to enable cloud protection. This will provide the highest level of security and performance during brute force attacks.', 'limit-login-attempts-reloaded' ); ?></div>
38
+ <div class="field-wrap">
39
+ <div class="field">
40
+ <input type="text" id="llar-setup-code-field" placeholder="<?php esc_attr_e( 'Enter Setup Code', 'limit-login-attempts-reloaded' ); ?>">
41
+ <span class="error"></span>
42
+ </div>
43
+ <div class="button-col">
44
+ <button class="button button-primary" id="llar-app-install-btn">
45
+ <?php _e( 'Install', 'limit-login-attempts-reloaded' ); ?>
46
+ <span class="preloader-wrapper"><span class="spinner llar-app-ajax-spinner"></span></span>
47
+ </button>
48
+ </div>
49
+ </div>
50
+ <div class="divider-line"><span><?php _e( 'Or', 'limit-login-attempts-reloaded' ); ?></span></div>
51
+ <div class="bottom-buttons">
52
+ <div class="text" style="font-size: 16px;"><?php _e( 'If you don\'t have one, you can purchase one now.', 'limit-login-attempts-reloaded' ); ?></div>
53
+ <div class="buttons">
54
+ <a href="https://checkout.limitloginattempts.com/plan?from=plugin-welcome" target="_blank"
55
+ class="button button-primary size-medium"><?php _e( 'Upgrade To Premium', 'limit-login-attempts-reloaded' ); ?><span><?php _e( 'Starting from $8/month', 'limit-login-attempts-reloaded' ); ?></span></a>
56
+ <a href="https://www.limitloginattempts.com/features/?from=plugin-welcome" target="_blank"
57
+ class="button button-secondary"><?php _e( 'Learn More', 'limit-login-attempts-reloaded' ); ?></a>
58
+ <button class="button-link" id="llar-popup-no-thanks-btn"><?php _e( 'No thanks', 'limit-login-attempts-reloaded' ); ?></button>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ <?php
63
+ $popup_app_setup_content = ob_get_clean();
64
+ ?>
65
+ ?>
66
+ <script>
67
+ (function($){
68
+
69
+ $(document).ready(function(){
70
+ const app_setup_popup = $.confirm({
71
+ title: '<?php _e( 'Please Complete Limit Login Attempts Reloaded Installation', 'limit-login-attempts-reloaded' ) ?>',
72
+ content: `<?php echo trim( $popup_app_setup_content ); ?>`,
73
+ type: 'default',
74
+ typeAnimated: true,
75
+ draggable: false,
76
+ boxWidth: '40%',
77
+ bgOpacity: 0.9,
78
+ useBootstrap: false,
79
+ lazyOpen: true,
80
+ buttons: false,
81
+ closeIcon: true
82
+ });
83
+
84
+ $.confirm({
85
+ title: '<?php _e( 'Complete Limit Login Attempts Reloaded Installation', 'limit-login-attempts-reloaded' ) ?>',
86
+ content: `<?php echo trim( $popup_complete_install_content ); ?>`,
87
+ type: 'default',
88
+ typeAnimated: true,
89
+ draggable: false,
90
+ boxWidth: '40%',
91
+ bgOpacity: 0.9,
92
+ useBootstrap: false,
93
+ closeIcon: true,
94
+ onClose: function() {
95
+ $.post(ajaxurl, {
96
+ action: 'dismiss_onboarding_popup',
97
+ sec: '<?php echo esc_js( wp_create_nonce( "llar-action" ) ); ?>'
98
+ }, function(){});
99
+ },
100
+ buttons: {
101
+ continue: {
102
+ text: '<?php _e( 'Continue', 'limit-login-attempts-reloaded' ) ?>',
103
+ btnClass: 'btn-blue',
104
+ keys: ['enter'],
105
+ action: function(){
106
+
107
+ app_setup_popup.open();
108
+
109
+ $.post(ajaxurl, {
110
+ action: 'subscribe_email',
111
+ email: $('body').find('#llar-subscribe-email').val(),
112
+ is_subscribe_yes: !!$('body').find('.security-alerts-options .buttons span[data-val="yes"].llar-act').length,
113
+ sec: '<?php echo esc_js( wp_create_nonce( "llar-action" ) ); ?>'
114
+ }, function(){});
115
+ }
116
+ }
117
+ }
118
+ });
119
+
120
+
121
+ $('body').on('click', '.security-alerts-options .buttons span', function() {
122
+ const $this = $(this);
123
+ $this.parent().find('span').removeClass('llar-act');
124
+ $this.addClass('llar-act');
125
+ });
126
+
127
+ $('body').on('click', '#llar-app-install-btn', function(e) {
128
+ e.preventDefault();
129
+
130
+ const $this = $(this);
131
+ const $error = $this.closest('.field-wrap').find('.error');
132
+
133
+ if($this.hasClass('button-disabled')) {
134
+ return;
135
+ }
136
+
137
+ const setup_code = $this.closest('.field-wrap').find('input').val();
138
+
139
+ $error.text('').hide();
140
+ $this.addClass('button-disabled');
141
+
142
+ $.post(ajaxurl, {
143
+ action: 'app_setup',
144
+ code: setup_code,
145
+ sec: '<?php echo esc_js( wp_create_nonce( "llar-action" ) ); ?>'
146
+ }, function(response){
147
+
148
+ if(response.success) {
149
+ setTimeout(function(){
150
+
151
+ window.location = window.location + '&activated';
152
+
153
+ }, 500);
154
+ }
155
+
156
+ if(!response.success && response.data.msg) {
157
+
158
+ $error.text(response.data.msg).show();
159
+ }
160
+
161
+ $this.removeClass('button-disabled');
162
+
163
+ });
164
+
165
+ });
166
+
167
+ $('body').on('click', '#llar-popup-no-thanks-btn', function(e) {
168
+ e.preventDefault();
169
+
170
+ app_setup_popup.close();
171
+ });
172
+ })
173
+
174
+ })(jQuery)
175
+ </script>
views/tab-dashboard.php CHANGED
@@ -63,7 +63,7 @@ if( $active_app === 'local' ) {
63
  </div>
64
  <div class="dashboard-section-1 <?php echo esc_attr( $active_app ); ?>">
65
  <div class="info-box-1">
66
- <div class="section-title"><?php _e( 'Failed Login Attempts', 'limit-login-attempts-reloaded' ); ?></div>
67
  <div class="section-content">
68
  <div class="chart">
69
  <canvas id="llar-attack-velocity-chart"></canvas>
@@ -441,3 +441,5 @@ if( $active_app === 'local' ) {
441
  </div>
442
  <?php endif; ?>
443
  </div>
 
 
63
  </div>
64
  <div class="dashboard-section-1 <?php echo esc_attr( $active_app ); ?>">
65
  <div class="info-box-1">
66
+ <div class="section-title"><?php _e( 'Failed Login Attempts', 'limit-login-attempts-reloaded' ); ?><?php echo $active_app === 'custom' ? '<span class="llar-premium-label"><span class="dashicons dashicons-yes-alt"></span>' . __( 'Premium protection enabled', 'limit-login-attempts-reloaded' ) . '</span>' : ''; ?></div>
67
  <div class="section-content">
68
  <div class="chart">
69
  <canvas id="llar-attack-velocity-chart"></canvas>
441
  </div>
442
  <?php endif; ?>
443
  </div>
444
+
445
+ <?php require_once( LLA_PLUGIN_DIR . '/views/onboarding-popup.php')?>
views/welcome-page.php DELETED
@@ -1,163 +0,0 @@
1
- <?php
2
- if (!defined('ABSPATH')) exit();
3
- ?>
4
-
5
- <div id="llar-welcome-page">
6
- <div class="llar-welcome-page-container">
7
- <div class="llar-welcome-page-section">
8
- <div class="llar-logo">
9
- <a href="https://www.limitloginattempts.com/" target="_blank">
10
- <img src="<?php echo LLA_PLUGIN_URL; ?>/assets/img/logo.png"
11
- alt="<?php esc_attr_e('Limit Login Attempts Reloaded', 'limit-login-attempts-reloaded'); ?>">
12
- </a>
13
- </div>
14
- <h2><?php esc_html_e('Welcome to Limit Login Attempts Reloaded', 'limit-login-attempts-reloaded'); ?></h2>
15
- <p><?php esc_html_e('Thank you for choosing Limit Login Attempts Reloaded - A simple, yet powerful bot-blocking plugin that keeps your login page safe. ', 'limit-login-attempts-reloaded'); ?></p>
16
-
17
- <h2><?php esc_html_e('With This Plugin, You Can…', 'limit-login-attempts-reloaded'); ?></h2>
18
- <ul class="llar-welcome-list">
19
- <li><span class="dashicons dashicons-star-filled"></span><?php _e('View who’s trying to access your site', 'limit-login-attempts-reloaded'); ?></li>
20
- <li><span class="dashicons dashicons-star-filled"></span><?php _e('Protect from future attacks by allowing or denying IPs', 'limit-login-attempts-reloaded'); ?></li>
21
- <li><span class="dashicons dashicons-star-filled"></span><?php _e('Optimize site performance by redirecting malicious logins', 'limit-login-attempts-reloaded'); ?></li>
22
- <li><span class="dashicons dashicons-star-filled"></span><?php _e('Receive email alerts when your site is under attack', 'limit-login-attempts-reloaded'); ?></li>
23
- <li><span class="dashicons dashicons-star-filled"></span><?php _e('Synchronize lockout data across a network of sites', 'limit-login-attempts-reloaded'); ?></li>
24
- </ul>
25
- <h2><?php esc_html_e('And Much More!', 'limit-login-attempts-reloaded'); ?></h2>
26
- </div>
27
- <div class="llar-welcome-page-video-wrap">
28
- <img src="<?php echo LLA_PLUGIN_URL; ?>/assets/img/llar-video-1.jpg" class="play-video" data-id="IsotthPWCPA">
29
- </div>
30
- <div class="llar-welcome-page-section">
31
- <p><?php esc_html_e('Although we recommend using the default settings, you can get a quick video tutorial if you wanted to learn more about the plugin and what it does.', 'limit-login-attempts-reloaded'); ?></p>
32
- </div>
33
- <div class="llar-welcome-page-video-wrap">
34
- <img src="<?php echo LLA_PLUGIN_URL; ?>/assets/img/llar-video-2.jpg" class="play-video" data-id="xXAcLYC_Sis">
35
- </div>
36
- <div class="llar-welcome-page-section">
37
- <p><?php echo sprintf(__('If you have more questions, please check out the <a href="%s" target="_blank">help section</a> on our website.', 'limit-login-attempts-reloaded'), 'https://www.limitloginattempts.com/resources/?from=plugin-welcome'); ?></p>
38
- </div>
39
- </div>
40
- <div class="llar-welcome-page-container llar-premium">
41
- <div class="llar-welcome-page-section">
42
- <h2><?php _e('2,000,000+ active installations on <br>WordPress worldwide!', 'limit-login-attempts-reloaded'); ?></h2>
43
- <h3><?php echo sprintf(
44
- __('Looking for advanced protection? <a href="%s" target="_blank">Try our premium service</a> for only $4.99/month!', 'limit-login-attempts-reloaded'),
45
- 'https://www.limitloginattempts.com/info.php?from=plugin-welcome'
46
- ); ?></h3>
47
- </div>
48
- <div class="llar-welcome-page-features">
49
- <div class="llar-feature-item">
50
- <div class="llar-feature-image">
51
- <img src="<?php echo LLA_PLUGIN_URL; ?>/assets/img/features/icon1.png">
52
- </div>
53
- <div class="llar-feature-info">
54
- <div class="llar-feature-title"><?php _e('Performance Optimizer', 'limit-login-attempts-reloaded'); ?></div>
55
- <div class="llar-feature-desc"><?php _e('We absorb up to 100k login attempts (per month) to keep your site at optimal performance', 'limit-login-attempts-reloaded'); ?></div>
56
- </div>
57
- </div>
58
- <div class="llar-feature-item">
59
- <div class="llar-feature-image">
60
- <img src="<?php echo LLA_PLUGIN_URL; ?>/assets/img/features/icon2.png">
61
- </div>
62
- <div class="llar-feature-info">
63
- <div class="llar-feature-title"><?php _e('Lockout/IP Throttling', 'limit-login-attempts-reloaded'); ?></div>
64
- <div class="llar-feature-desc"><?php _e('Longer lockout intervals each time a hacker/bot tries to login unsuccessfully', 'limit-login-attempts-reloaded'); ?></div>
65
- </div>
66
- </div>
67
- <div class="llar-feature-item">
68
- <div class="llar-feature-image">
69
- <img src="<?php echo LLA_PLUGIN_URL; ?>/assets/img/features/icon11.png">
70
- </div>
71
- <div class="llar-feature-info">
72
- <div class="llar-feature-title"><?php _e('Premium Support Forum', 'limit-login-attempts-reloaded'); ?></div>
73
- <div class="llar-feature-desc"><?php _e('Get your technical questions answered by our experts', 'limit-login-attempts-reloaded'); ?></div>
74
- </div>
75
- </div>
76
- <div class="llar-feature-item">
77
- <div class="llar-feature-image">
78
- <img src="<?php echo LLA_PLUGIN_URL; ?>/assets/img/features/icon4.png">
79
- </div>
80
- <div class="llar-feature-info">
81
- <div class="llar-feature-title"><?php _e('Intelligent IP Blocking/Unblocking', 'limit-login-attempts-reloaded'); ?></div>
82
- <div class="llar-feature-desc"><?php _e('We make sure the legitimate IP’s are allowed automatically', 'limit-login-attempts-reloaded'); ?></div>
83
- </div>
84
- </div>
85
- <div class="llar-feature-item">
86
- <div class="llar-feature-image">
87
- <img src="<?php echo LLA_PLUGIN_URL; ?>/assets/img/features/icon5.png">
88
- </div>
89
- <div class="llar-feature-info">
90
- <div class="llar-feature-title"><?php _e('CSV Download of IP Data', 'limit-login-attempts-reloaded'); ?></div>
91
- <div class="llar-feature-desc"><?php _e('CSV Download of all IP data', 'limit-login-attempts-reloaded'); ?></div>
92
- </div>
93
- </div>
94
- <div class="llar-feature-item">
95
- <div class="llar-feature-image">
96
- <img src="<?php echo LLA_PLUGIN_URL; ?>/assets/img/features/icon6.png">
97
- </div>
98
- <div class="llar-feature-info">
99
- <div class="llar-feature-title"><?php _e('Synchronized Lockouts', 'limit-login-attempts-reloaded'); ?></div>
100
- <div class="llar-feature-desc"><?php _e('Lockouts can be shared between multiple domains', 'limit-login-attempts-reloaded'); ?></div>
101
- </div>
102
- </div>
103
- <div class="llar-feature-item">
104
- <div class="llar-feature-image">
105
- <img src="<?php echo LLA_PLUGIN_URL; ?>/assets/img/features/icon7.png">
106
- </div>
107
- <div class="llar-feature-info">
108
- <div class="llar-feature-title"><?php _e('Synchronized Safelist/Blacklist', 'limit-login-attempts-reloaded'); ?></div>
109
- <div class="llar-feature-desc"><?php _e('Safelist/Blacklists can be shared between multiple domains', 'limit-login-attempts-reloaded'); ?></div>
110
- </div>
111
- </div>
112
- <div class="llar-feature-item">
113
- <div class="llar-feature-image">
114
- <img src="<?php echo LLA_PLUGIN_URL; ?>/assets/img/features/icon3.png">
115
- </div>
116
- <div class="llar-feature-info">
117
- <div class="llar-feature-title"><?php _e('Auto Backup Of All Data', 'limit-login-attempts-reloaded'); ?></div>
118
- <div class="llar-feature-desc"><?php _e('Regular cloud backups of all data', 'limit-login-attempts-reloaded'); ?></div>
119
- </div>
120
- </div>
121
- </div>
122
- <div class="llar-welcome-page-section">
123
- <h2><?php _e('We highly recommend upgrading if you are a…', 'limit-login-attempts-reloaded'); ?></h2>
124
- <div class="llar-why-recommend">
125
- <ul>
126
- <li><span class="dashicons dashicons-yes"></span><?php _e('Digital Agency', 'limit-login-attempts-reloaded'); ?></li>
127
- <li><span class="dashicons dashicons-yes"></span><?php _e('Site admin w/ multiple domains', 'limit-login-attempts-reloaded'); ?></li>
128
- <li><span class="dashicons dashicons-yes"></span><?php _e('E-commerce website', 'limit-login-attempts-reloaded'); ?></li>
129
- <li><span class="dashicons dashicons-yes"></span><?php _e('A forum', 'limit-login-attempts-reloaded'); ?></li>
130
- <li><span class="dashicons dashicons-yes"></span><?php _e('A website with a lot of traffic', 'limit-login-attempts-reloaded'); ?></li>
131
- <li><span class="dashicons dashicons-yes"></span><?php _e('A website that holds sensitive data', 'limit-login-attempts-reloaded'); ?></li>
132
- <li><span class="dashicons dashicons-yes"></span><?php _e('A website with hundreds or thousands of registered users', 'limit-login-attempts-reloaded'); ?></li>
133
- <li><span class="dashicons dashicons-yes"></span><?php _e('A website that is constantly being attacked', 'limit-login-attempts-reloaded'); ?></li>
134
- </ul>
135
- </div>
136
- <div class="llar-upgrade-btn-wrap">
137
- <a href="https://www.limitloginattempts.com/info.php?from=plugin-welcome" target="_blank"><?php _e( 'Upgrade Now', 'limit-login-attempts-reloaded' ); ?></a>
138
- </div>
139
- <div class="llar-upgrade-questions"><?php _e( 'Questions? Email us at <a href="mailto:sales@limitloginattempts.com">sales@limitloginattempts.com</a>', 'limit-login-attempts-reloaded' ); ?></div>
140
- </div>
141
- </div>
142
- </div>
143
- <script type="text/javascript">
144
- (function($){
145
-
146
- $(document).on( 'click', '#llar-welcome-page .play-video', function(e) {
147
- e.preventDefault();
148
-
149
- var video_id = $(this).data('id'),
150
- video = '<div class="video-container"><iframe width="1280" height="720" src="https://www.youtube.com/embed/'+video_id+'?rel=0&amp;showinfo=0&amp;autoplay=1" frameborder="0" allowfullscreen></iframe></div>';
151
-
152
- $.dialog({
153
- title: false,
154
- content: video,
155
- closeIcon: true,
156
- boxWidth: '70%',
157
- useBootstrap: false,
158
- backgroundDismiss: true
159
- });
160
- });
161
-
162
- })(jQuery);
163
- </script>