{"id":329082,"date":"2026-06-21T16:17:19","date_gmt":"2026-06-21T16:17:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/besecure-login-protector\/"},"modified":"2026-06-21T16:16:47","modified_gmt":"2026-06-21T16:16:47","slug":"za-creative-login-shield","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/za-creative-login-shield\/","author":23303947,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"4.0.3","stable_tag":"4.0.3","tested":"7.0","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"ZA Creative Login Shield","header_author":"Sipho Nhlapo","header_description":"Enterprise-grade login security plugin with 2FA, login attempt limiting, IP blocking, custom login URL, security dashboard, password policy, emergency lockdown, and device fingerprinting.","assets_banners_color":"052048","last_updated":"2026-06-21 16:16:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"4.0.3":{"tag":"4.0.3","author":"sipho213","date":"2026-06-21 16:16:47"}},"upgrade_notice":{"4.0.3":"<ul>\n<li>Database migration now detects missing columns on MySQL 5.7 automatically.<\/li>\n<li>Login recording system now auto-creates tables if missing and logs insert errors.<\/li>\n<li>Fixed duplicate login log entries (WordPress core fires wp_login_failed twice per attempt).<\/li>\n<li>Fixed device_id column overflow causing silent insert failures.<\/li>\n<li>All database tables are preserved during upgrade \u2014 no data loss.<\/li>\n<\/ul>","4.0.2":"<p>Complete plugin rename to ZA Creative Login Shield with new slug (za-creative-login-shield) and text domain (za-creative-login-shield). All option names, table prefixes, and hooks renamed from bslp_ to zacls_. Plugin now integrates under Settings menu. Security hardening applied.<\/p>","1.1.0":"<p>Important upgrade adding audit trail, country intelligence, scheduled reports, wizard, and dashboard widgets. Database migration runs automatically. Review new audit trail under ZA Creative &gt; Audit Trail after upgrading.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3580825,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3580825,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3580825,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3580825,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["4.0.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3580825,"resolution":"1","location":"assets","locale":"","width":1144,"height":1042},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3580825,"resolution":"2","location":"assets","locale":"","width":1123,"height":700},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3580825,"resolution":"3","location":"assets","locale":"","width":1144,"height":908},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3580825,"resolution":"4","location":"assets","locale":"","width":1144,"height":908},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3580825,"resolution":"5","location":"assets","locale":"","width":1144,"height":908},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3580825,"resolution":"6","location":"assets","locale":"","width":1144,"height":908},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3580825,"resolution":"7","location":"assets","locale":"","width":1144,"height":908},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3580825,"resolution":"8","location":"assets","locale":"","width":1144,"height":908}},"screenshots":{"1":"Security Dashboard with weighted score, analytics chart, and recommendations.","2":"Login logs with country intelligence and CSV export.","3":"IP blocking and whitelist management.","4":"Two-Factor Authentication settings and user status page.","5":"Setup wizard onboarding screen.","6":"Scheduled email security report example.","7":"WordPress Dashboard widgets (Security Score + Recent Activity).","8":"Audit Trail"}},"plugin_section":[262246],"plugin_tags":[2439,15756,232610,600,1909],"plugin_category":[54],"plugin_contributors":[243980],"plugin_business_model":[],"class_list":["post-329082","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-brute-force","plugin_tags-login-protection","plugin_tags-rate-limiting","plugin_tags-security","plugin_tags-two-factor-authentication","plugin_category-security-and-spam-protection","plugin_contributors-sipho213","plugin_committers-sipho213"],"banners":{"banner":"https:\/\/ps.w.org\/za-creative-login-shield\/assets\/banner-772x250.png?rev=3580825","banner_2x":"https:\/\/ps.w.org\/za-creative-login-shield\/assets\/banner-1544x500.png?rev=3580825","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/za-creative-login-shield\/assets\/icon-128x128.png?rev=3580825","icon_2x":"https:\/\/ps.w.org\/za-creative-login-shield\/assets\/icon-256x256.png?rev=3580825","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/za-creative-login-shield\/assets\/screenshot-1.png?rev=3580825","caption":"Security Dashboard with weighted score, analytics chart, and recommendations."},{"src":"https:\/\/ps.w.org\/za-creative-login-shield\/assets\/screenshot-2.png?rev=3580825","caption":"Login logs with country intelligence and CSV export."},{"src":"https:\/\/ps.w.org\/za-creative-login-shield\/assets\/screenshot-3.png?rev=3580825","caption":"IP blocking and whitelist management."},{"src":"https:\/\/ps.w.org\/za-creative-login-shield\/assets\/screenshot-4.png?rev=3580825","caption":"Two-Factor Authentication settings and user status page."},{"src":"https:\/\/ps.w.org\/za-creative-login-shield\/assets\/screenshot-5.png?rev=3580825","caption":"Setup wizard onboarding screen."},{"src":"https:\/\/ps.w.org\/za-creative-login-shield\/assets\/screenshot-6.png?rev=3580825","caption":"Scheduled email security report example."},{"src":"https:\/\/ps.w.org\/za-creative-login-shield\/assets\/screenshot-7.png?rev=3580825","caption":"WordPress Dashboard widgets (Security Score + Recent Activity)."},{"src":"https:\/\/ps.w.org\/za-creative-login-shield\/assets\/screenshot-8.png?rev=3580825","caption":"Audit Trail"}],"raw_content":"<!--section=description-->\n<p>ZA Creative Login Shield is a comprehensive security plugin that protects your WordPress site against brute force attacks, unauthorized access, and credential stuffing. It provides multiple layers of defense with an intuitive dashboard.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Two-Factor Authentication (2FA)<\/strong> - Email OTP and Google Authenticator (TOTP) support with per-role enforcement.<\/li>\n<li><strong>Login Rate Limiting<\/strong> - Automatically block IPs after configurable failed attempts with adjustable lockout duration.<\/li>\n<li><strong>IP Blocking &amp; Whitelist<\/strong> - Manual and automatic IP blocking with dedicated whitelist management and Cloudflare IP range import.<\/li>\n<li><strong>Custom Login URL<\/strong> - Hide wp-admin and wp-login behind a custom slug to block automated attacks.<\/li>\n<li><strong>Security Dashboard<\/strong> - Weighted security score (100 pts), 14-day stacked bar analytics, recommendations engine, and quick actions.<\/li>\n<li><strong>Password Policy<\/strong> - Enforce minimum length, uppercase, lowercase, digits, and special characters.<\/li>\n<li><strong>Session Management<\/strong> - Track active sessions with idle timeout enforcement.<\/li>\n<li><strong>Device Fingerprinting<\/strong> - Detect and track known devices with alerts for new device logins.<\/li>\n<li><strong>Emergency Lockdown<\/strong> - One-click full site lockdown with IP whitelist override.<\/li>\n<li><strong>Country Intelligence<\/strong> - GeoIP lookup via ip-api.com to display country codes on login attempts and blocked IPs.<\/li>\n<li><strong>Audit Trail<\/strong> - Complete action log for security events (settings changes, blocks, lockdown, reports).<\/li>\n<li><strong>Scheduled Reports<\/strong> - Daily, weekly, or monthly email security summaries.<\/li>\n<li><strong>Setup Wizard<\/strong> - Guided 5-step onboarding to configure core protections quickly.<\/li>\n<li><strong>Dashboard Widgets<\/strong> - At-a-glance security score and recent activity on the WordPress admin dashboard.<\/li>\n<li><strong>CSV Export<\/strong> - Export login attempt logs for external analysis.<\/li>\n<\/ul>\n\n<h4>Integrations<\/h4>\n\n<ul>\n<li><strong>Cloudflare<\/strong> - One-click import of Cloudflare IP ranges to restore real visitor IPs.<\/li>\n<li><strong>ip-api.com<\/strong> - Free GeoIP country lookup (no API key required).<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin stores the following information:<\/p>\n\n<ul>\n<li>Login attempt records<\/li>\n<li>IP addresses<\/li>\n<li>Device fingerprint identifiers (opt-in, disabled by default)<\/li>\n<li>Audit trail events<\/li>\n<li>Two-factor authentication status<\/li>\n<\/ul>\n\n<p>All data is stored locally inside the WordPress database.<\/p>\n\n<p>Country information may be retrieved via ip-api.com if GeoIP is enabled (opt-in, disabled by default). Cloudflare API requests (manual admin action) send no visitor data.<\/p>\n\n<p>Site administrators are responsible for complying with local privacy laws.<\/p>\n\n<p>Full data removal on uninstall (all database tables and options cleaned up).<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin uses the following external services:<\/p>\n\n<h4>Cloudflare API<\/h4>\n\n<ul>\n<li><strong>Purpose:<\/strong> Fetch Cloudflare IP ranges for restoring real visitor IPs behind Cloudflare proxy.<\/li>\n<li><strong>Data Sent:<\/strong> None beyond the standard HTTP request to api.cloudflare.com.<\/li>\n<li><strong>Trigger:<\/strong> Manual admin action (button click on settings page).<\/li>\n<li><strong>Privacy Policy:<\/strong> https:\/\/www.cloudflare.com\/privacypolicy\/<\/li>\n<li><strong>Terms of Service:<\/strong> https:\/\/www.cloudflare.com\/website-terms\/<\/li>\n<\/ul>\n\n<h4>ip-api.com<\/h4>\n\n<ul>\n<li><strong>Purpose:<\/strong> GeoIP country code lookup for login attempts and blocked IPs.<\/li>\n<li><strong>Data Sent:<\/strong> Visitor IP address.<\/li>\n<li><strong>Trigger:<\/strong> Any login attempt when GeoIP is enabled in settings (opt-in, disabled by default).<\/li>\n<li><strong>Terms of Service:<\/strong> https:\/\/ip-api.com\/docs\/legal<\/li>\n<li><strong>Privacy Policy:<\/strong> https:\/\/ip-api.com\/docs\/legal<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>za-creative-login-shield<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install directly through the WordPress plugin installer.<\/li>\n<li>Activate the plugin through the 'Plugins' screen.<\/li>\n<li>Navigate to <strong>ZA Creative Login Shield<\/strong> in your WordPress admin sidebar to access the setup wizard and dashboard.<\/li>\n<li>Follow the 5-step setup wizard to configure your security settings, or configure each feature individually under <strong>ZA Creative Login Shield<\/strong>.<\/li>\n<\/ol>\n\n<h4>Minimum Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.8 or higher.<\/li>\n<li>PHP 7.4 or higher.<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20work%20with%20any%20wordpress%20theme%3F\"><h3>Will this work with any WordPress theme?<\/h3><\/dt>\n<dd><p>Yes. ZA Creative Login Shield works with any WordPress theme. It does not modify theme templates and operates entirely through WordPress hooks and filters.<\/p><\/dd>\n<dt id=\"does%20it%20conflict%20with%20other%20security%20plugins%3F\"><h3>Does it conflict with other security plugins?<\/h3><\/dt>\n<dd><p>It is designed to complement other security measures like hosting-level firewalls. However, running multiple login protection plugins simultaneously may cause unexpected behavior. We recommend using ZA Creative as your primary login security solution.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20plugins%3F\"><h3>Does it work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. The plugin respects WordPress hooks correctly and works with all major caching and CDN solutions.<\/p><\/dd>\n<dt id=\"how%20does%20the%202fa%20work%3F\"><h3>How does the 2FA work?<\/h3><\/dt>\n<dd><p>Users can choose between Email OTP (one-time password sent via email) or Google Authenticator (TOTP via the Google Authenticator app). Each user can enable 2FA from their profile page, and administrators can enforce 2FA for specific user roles.<\/p><\/dd>\n<dt id=\"how%20does%20the%20custom%20login%20url%20work%3F\"><h3>How does the custom login URL work?<\/h3><\/dt>\n<dd><p>The plugin creates a custom login page at a URL you define (default: <code>\/be-login\/<\/code>). When enabled, the standard <code>\/wp-login.php<\/code> and <code>\/wp-admin\/<\/code> (for non-logged-in users) are blocked, effectively hiding your login page from automated bots.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20collect%20user%20data%3F\"><h3>Does the plugin collect user data?<\/h3><\/dt>\n<dd><p>The plugin stores only security-related data (login attempts, IP addresses, session tokens, device fingerprints) in your WordPress database. No visitor data is sent to external services except optional GeoIP lookups via ip-api.com (when an IP is logged). An admin-initiated Cloudflare IP range fetch contacts api.cloudflare.com but sends no visitor data. GeoIP data is cached for 7 days and does not require an API key.<\/p><\/dd>\n<dt id=\"can%20i%20delete%20all%20plugin%20data%3F\"><h3>Can I delete all plugin data?<\/h3><\/dt>\n<dd><p>Yes. When you uninstall the plugin via WordPress, all database tables and options are automatically removed. This includes login logs, blocked IPs, 2FA status, sessions, device fingerprints, lockdown settings, and audit trail entries.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>4.0.3<\/h4>\n\n<ul>\n<li>Removed Author URI and Plugin URI (timeout issues).<\/li>\n<li>Updated stable version to 4.0.3.<\/li>\n<li>Removed WooCommerce requires\/tested headers.<\/li>\n<li>Fixed broken UTF-8 characters in readme.txt.<\/li>\n<li>Added Privacy section to readme.txt.<\/li>\n<li>Added esc_sql() to uninstall DROP TABLE queries.<\/li>\n<li>Database migration now detects missing columns on MySQL 5.7.<\/li>\n<li>Column-existence checks added to login recording methods.<\/li>\n<\/ul>\n\n<h4>4.0.2<\/h4>\n\n<ul>\n<li>Complete plugin rename to ZA Creative Login Shield with new slug and text domain.<\/li>\n<li>Moved admin menu to Settings &gt; ZA Creative Login Shield via add_options_page().<\/li>\n<li>Replaced wp_hash() with hash('sha256') for device fingerprinting per security best practices.<\/li>\n<li>Hashed IP addresses in transient and cache keys to prevent database pollution.<\/li>\n<li>Removed all auth secret\/salt usage from device tracking.<\/li>\n<li>Added External Services section to readme.txt documenting Cloudflare API and ip-api.com.<\/li>\n<li>Updated contributor information.<\/li>\n<li>Removed bundled screenshot and banner assets per WordPress.org guidelines.<\/li>\n<li>Full security review: sanitization, nonces, capabilities, escaping verified.<\/li>\n<li>Compliance with WordPress Plugin Directory Guidelines and Plugin Check requirements.<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>Added audit trail with action filtering and clear functionality.<\/li>\n<li>Added country intelligence via ip-api.com GeoIP lookup.<\/li>\n<li>Added scheduled email security reports (daily\/weekly\/monthly).<\/li>\n<\/ul>\n\n<h4>2.9.0<\/h4>\n\n<ul>\n<li>Added 5-step guided setup wizard replacing the old onboarding.<\/li>\n<li>Added WordPress Dashboard widgets (security score + recent activity).<\/li>\n<li>Added successful login recording to analytics chart.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Added security score recommendations engine.<\/li>\n<li>Added dedicated IP whitelist management subpage.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>Added Cloudflare IP range import via AJAX.<\/li>\n<li>Redesigned dashboard with weighted score, 14-day chart, and quick action grid.<\/li>\n<li>Enhanced setup wizard with step indicators and AJAX step-saving.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with 2FA (Email OTP + TOTP), login rate limiting, IP blocking, custom login URL, security dashboard, password policy, session management, device fingerprinting, emergency lockdown, and CSV export.<\/li>\n<\/ul>","raw_excerpt":"Enterprise-grade login security for WordPress with 2FA, rate limiting, IP blocking, custom login URL, security dashboard, password policy, and audit t &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/329082","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=329082"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sipho213"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=329082"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=329082"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=329082"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=329082"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=329082"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=329082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}