{"id":243972,"date":"2025-08-01T12:06:05","date_gmt":"2025-08-01T12:06:05","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/admin-safety-guard\/"},"modified":"2026-04-23T08:59:32","modified_gmt":"2026-04-23T08:59:32","slug":"admin-safety-guard","status":"publish","type":"plugin","link":"https:\/\/bal.wordpress.org\/plugins\/admin-safety-guard\/","author":18813691,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.2.8","stable_tag":"1.2.8","tested":"6.9.4","requires":"5.8","requires_php":"7.0","requires_plugins":null,"header_name":"Admin Safety Guard","header_author":"Themepaste Team","header_description":"Secure your admin panel by hiding the admin bar for users.","assets_banners_color":"4839af","last_updated":"2026-04-23 08:59:32","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"http:\/\/themepaste.com\/product\/themepaste-secure-admin-pro\/","header_author_uri":"http:\/\/themepaste.com\/","rating":5,"author_block_rating":0,"active_installs":10,"downloads":1850,"num_ratings":4,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"themepaste","date":"2025-08-01 12:05:28"},"1.0.1":{"tag":"1.0.1","author":"themepaste","date":"2025-08-01 12:25:25"},"1.0.2":{"tag":"1.0.2","author":"themepaste","date":"2025-08-02 10:01:38"},"1.0.3":{"tag":"1.0.3","author":"themepaste","date":"2025-08-06 06:43:19"},"1.0.4":{"tag":"1.0.4","author":"themepaste","date":"2025-08-07 11:02:10"},"1.0.5":{"tag":"1.0.5","author":"themepaste","date":"2025-10-01 09:20:08"},"1.0.6":{"tag":"1.0.6","author":"themepaste","date":"2025-11-04 09:20:22"},"1.0.7":{"tag":"1.0.7","author":"themepaste","date":"2025-11-04 09:29:35"},"1.0.8":{"tag":"1.0.8","author":"themepaste","date":"2025-11-04 09:39:58"},"1.0.9":{"tag":"1.0.9","author":"themepaste","date":"2025-11-13 11:08:00"},"1.1.0":{"tag":"1.1.0","author":"themepaste","date":"2025-11-19 13:56:00"},"1.1.1":{"tag":"1.1.1","author":"themepaste","date":"2025-11-23 11:39:05"},"1.1.2":{"tag":"1.1.2","author":"themepaste","date":"2025-11-23 11:49:19"},"1.1.3":{"tag":"1.1.3","author":"themepaste","date":"2025-11-25 06:38:28"},"1.1.4":{"tag":"1.1.4","author":"themepaste","date":"2025-12-14 07:29:45"},"1.1.5":{"tag":"1.1.5","author":"themepaste","date":"2025-12-25 11:07:19"},"1.1.6":{"tag":"1.1.6","author":"themepaste","date":"2026-01-02 12:32:47"},"1.1.7":{"tag":"1.1.7","author":"themepaste","date":"2026-01-10 16:19:09"},"1.1.8":{"tag":"1.1.8","author":"themepaste","date":"2026-01-20 13:52:51"},"1.1.9":{"tag":"1.1.9","author":"themepaste","date":"2026-01-26 06:20:04"},"1.2.0":{"tag":"1.2.0","author":"themepaste","date":"2026-02-03 08:22:25"},"1.2.1":{"tag":"1.2.1","author":"themepaste","date":"2026-02-03 12:10:50"},"1.2.2":{"tag":"1.2.2","author":"themepaste","date":"2026-02-09 11:43:47"},"1.2.3":{"tag":"1.2.3","author":"themepaste","date":"2026-02-23 08:37:23"},"1.2.4":{"tag":"1.2.4","author":"themepaste","date":"2026-02-25 08:44:25"},"1.2.5":{"tag":"1.2.5","author":"themepaste","date":"2026-03-03 10:10:18"},"1.2.6":{"tag":"1.2.6","author":"themepaste","date":"2026-03-10 09:03:51"},"1.2.7":{"tag":"1.2.7","author":"themepaste","date":"2026-04-07 07:12:03"},"1.2.8":{"tag":"1.2.8","author":"themepaste","date":"2026-04-23 08:59:32"}},"upgrade_notice":{"1.0.5":"<p>Hooks, assets, and Pro-ready support added. Update for smoother performance and future compatibility.<\/p>\n\n<hr \/>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":4},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3337798,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3337798,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3500411,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3500411,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8","1.1.9","1.2.0","1.2.1","1.2.2","1.2.3","1.2.4","1.2.5","1.2.6","1.2.7","1.2.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3500411,"resolution":"1","location":"assets","locale":""},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3500411,"resolution":"10","location":"assets","locale":""},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3500411,"resolution":"11","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3500411,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3500411,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3500411,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3500411,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3500411,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3500411,"resolution":"7","location":"assets","locale":""},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3500411,"resolution":"8","location":"assets","locale":""},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3500411,"resolution":"9","location":"assets","locale":""}},"screenshots":{"1":"Security Analytics Dashboard \u2014 overview of your security score and recent login activity","2":"Security Analytics Dashboard \u2014 feature status and login attempt trends","3":"Security Core \u2014 full list of free and pro security features with Active\/Inactive status","4":"Security Core \u2014 feature detail view with Configure Settings option","5":"Limit Login Attempts settings \u2014 configure max attempts, lockout duration, and blocked message","6":"Custom Login URL settings \u2014 set a hidden login slug, redirect URL, and logout redirect","7":"Google reCAPTCHA settings \u2014 choose v2 or v3, enter site key and secret key","8":"Firewall &amp; Malware overview \u2014 central view of firewall and malware protection status","9":"Login Logs &amp; Activity Tracking \u2014 searchable table of successful and failed logins with IP and timestamp","10":"Privacy Hardening \u2014 one-click toggle to disable XML-RPC","11":"Login Page Customisation \u2014 upload your logo, set dimensions, and choose a login template"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[46125,3760,9374,1229,1909],"plugin_category":[38],"plugin_contributors":[239335,242184],"plugin_business_model":[],"class_list":["post-243972","plugin","type-plugin","status-publish","hentry","plugin_tags-brute-force-protection","plugin_tags-custom-login-url","plugin_tags-limit-login-attempts","plugin_tags-login-security","plugin_tags-two-factor-authentication","plugin_category-authentication","plugin_contributors-habibnote","plugin_contributors-themepaste","plugin_committers-themepaste"],"banners":{"banner":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/banner-772x250.png?rev=3500411","banner_2x":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/banner-1544x500.png?rev=3500411","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/icon-128x128.png?rev=3337798","icon_2x":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/icon-256x256.png?rev=3337798","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/screenshot-1.png?rev=3500411","caption":"Security Analytics Dashboard \u2014 overview of your security score and recent login activity"},{"src":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/screenshot-2.png?rev=3500411","caption":"Security Analytics Dashboard \u2014 feature status and login attempt trends"},{"src":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/screenshot-3.png?rev=3500411","caption":"Security Core \u2014 full list of free and pro security features with Active\/Inactive status"},{"src":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/screenshot-4.png?rev=3500411","caption":"Security Core \u2014 feature detail view with Configure Settings option"},{"src":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/screenshot-5.png?rev=3500411","caption":"Limit Login Attempts settings \u2014 configure max attempts, lockout duration, and blocked message"},{"src":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/screenshot-6.png?rev=3500411","caption":"Custom Login URL settings \u2014 set a hidden login slug, redirect URL, and logout redirect"},{"src":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/screenshot-7.png?rev=3500411","caption":"Google reCAPTCHA settings \u2014 choose v2 or v3, enter site key and secret key"},{"src":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/screenshot-8.png?rev=3500411","caption":"Firewall &amp; Malware overview \u2014 central view of firewall and malware protection status"},{"src":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/screenshot-9.png?rev=3500411","caption":"Login Logs &amp; Activity Tracking \u2014 searchable table of successful and failed logins with IP and timestamp"},{"src":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/screenshot-10.png?rev=3500411","caption":"Privacy Hardening \u2014 one-click toggle to disable XML-RPC"},{"src":"https:\/\/ps.w.org\/admin-safety-guard\/assets\/screenshot-11.png?rev=3500411","caption":"Login Page Customisation \u2014 upload your logo, set dimensions, and choose a login template"}],"raw_content":"<!--section=description-->\n<p><strong>Admin Safety Guard<\/strong> is a powerful yet lightweight WordPress security plugin that protects your login page and admin dashboard from hackers, bots, and brute-force attacks. It is built for anyone \u2014 from first-time bloggers to experienced developers \u2014 with a clean interface, clear settings, and features that work from the moment you activate it.<\/p>\n\n<p>WordPress is the most popular website platform in the world, which also makes it the most targeted. Every day, thousands of automated bots scan WordPress sites looking for weak passwords, exposed login pages, and unpatched vulnerabilities. Admin Safety Guard closes those doors quickly and reliably, without slowing down your site or requiring any technical expertise.<\/p>\n\n<p>[youtube https:\/\/www.youtube.com\/watch?v=KFNUmTHtODE]<\/p>\n\n\n\n<h3>Why WordPress Sites Get Hacked \u2014 And How Admin Safety Guard Stops It<\/h3>\n\n<p>Most successful WordPress attacks follow the same pattern:<\/p>\n\n<ol>\n<li>A bot finds your login page at the default <code>wp-login.php<\/code> address.<\/li>\n<li>It tries thousands of username and password combinations (brute-force attack).<\/li>\n<li>Once inside, it installs malware, steals data, or takes over your site.<\/li>\n<\/ol>\n\n<p>Admin Safety Guard blocks every step of this attack chain \u2014 for free.<\/p>\n\n\n\n<h3>Free Features<\/h3>\n\n<p><strong>Limit Login Attempts (Active by Default)<\/strong>\nAutomatically block any IP address that fails too many login attempts. You control the number of allowed attempts, the lockout duration, and the message shown to blocked users. Brute-force attacks become impossible when attackers are locked out after 3 failed tries. Login Limit Attempts is the only feature enabled by default on fresh install, so your site is protected the moment you activate the plugin.<\/p>\n\n<p><strong>Custom Login URL<\/strong>\nMove your login page away from the default <code>wp-login.php<\/code> address. Bots and automated scanners will never find your login page because it simply does not exist at the expected location. You can set any slug you like, and the plugin handles redirect rules automatically. You can also set a custom redirect URL for after login and after logout.<\/p>\n\n<p><strong>Two-Factor Authentication (2FA) via Email OTP<\/strong>\nAfter a user enters their correct password, a one-time passcode (OTP) is sent to their email address. They must enter that code to complete the login. Even if a hacker steals a password, they cannot get in without also accessing the user\u2019s email inbox. You can customise the OTP email subject and body to match your brand.<\/p>\n\n<p><strong>Google reCAPTCHA (v2 &amp; v3)<\/strong>\nAdd Google reCAPTCHA to your login form to block automated bots in real time. Both reCAPTCHA v2 (the familiar checkbox) and v3 (invisible, score-based) are supported. Simply enter your site key and secret key from Google, choose your version, and reCAPTCHA will handle the rest silently in the background.<\/p>\n\n<p><strong>IP Blocking<\/strong>\nManually block specific IP addresses from accessing your login page entirely. If you notice a suspicious IP in your activity log or receive repeated failed login alerts, add that IP to the block list and it will be turned away immediately. Perfect for stopping known bad actors before they become a problem.<\/p>\n\n<p><strong>Login Logs &amp; Activity Tracking<\/strong>\nSee exactly who is logging in to your site and when. The activity dashboard shows successful logins, failed login attempts, IP addresses, user agents, and timestamps in a clear, searchable table. You will always know if something unusual is happening on your site, and you have the evidence to act on it.<\/p>\n\n<p><strong>Security Analytics Dashboard<\/strong>\nThe built-in analytics dashboard gives you a real-time overview of your site\u2019s security health. It shows your overall Security Score (based on how many features you have enabled), recent login activity, failed login trends, and a breakdown of which security features are active versus inactive. It is the first page you see when you open the plugin, giving you immediate situational awareness.<\/p>\n\n<p><strong>Hide Admin Bar (by Role)<\/strong>\nChoose which user roles see the WordPress admin bar on the front end of your site. For example, you can hide the admin bar from subscribers and customers while keeping it visible for editors and administrators. This reduces information leakage and gives non-admin users a cleaner experience.<\/p>\n\n<p><strong>Password Protection (Site-Wide)<\/strong>\nLock your entire website behind a password. Visitors must enter the correct password before they can view any content. This is ideal for staging sites, coming-soon pages, client previews, or any situation where you want to restrict public access temporarily. You can set the access duration and exclude specific user roles from the password requirement.<\/p>\n\n<p><strong>Privacy Hardening \u2014 Disable XML-RPC<\/strong>\nThe WordPress XML-RPC interface is a common target for brute-force and DDoS amplification attacks. With one toggle, you can disable it completely. Unless you rely on XML-RPC for mobile app publishing or specific third-party integrations, disabling it is a safe and recommended step for almost every WordPress site.<\/p>\n\n<p><strong>Login Page Customisation &amp; Branding<\/strong>\nReplace the default WordPress logo on the login page with your own logo. Set the logo width, height, and URL. Choose from pre-built login page templates to give your login form a professional, branded appearance. This is especially useful for agencies delivering client sites and for anyone who wants a polished, consistent look.<\/p>\n\n<p><strong>Firewall &amp; Malware Overview<\/strong>\nThe Firewall &amp; Malware section gives you a central view of your site\u2019s firewall and malware protection status. It shows all related features in one place so you can see what is active and what still needs attention, making it easy to build up your security layer by layer.<\/p>\n\n\n\n<h3>Pro Features<\/h3>\n\n<p><a href=\"https:\/\/themepaste.com\/product\/admin-safety-guard-pro\">Admin Safety Guard Pro<\/a> extends the plugin with advanced security tools designed for agencies, developers, and high-traffic sites.<\/p>\n\n<p><strong>Passwordless Login (Magic Links)<\/strong>\nLet users log in with a secure, one-time link sent to their email \u2014 no password needed. Magic links expire after a single use, making them more secure than passwords for many workflows.<\/p>\n\n<p><strong>2FA via Mobile Authenticator App<\/strong>\nAdd Google Authenticator or Authy-compatible two-factor authentication to your login flow. Users scan a QR code once, then generate time-based OTP codes from their phone app. This is the same method used by banks and enterprise software.<\/p>\n\n<p><strong>Social Login<\/strong>\nAllow users to log in with their existing Google, Facebook, or other social media accounts. Reduce friction at sign-up and login, while keeping full control over which providers are allowed.<\/p>\n\n<p><strong>Database Table Prefix Check<\/strong>\nThe default WordPress database prefix <code>wp_<\/code> is well-known to attackers and makes SQL injection easier. This Pro tool detects your current prefix and guides you through changing it to a unique, random value to close that vulnerability.<\/p>\n\n<p><strong>Strong Password Enforcement<\/strong>\nSet a minimum password strength policy for your users. When they update their password, it must meet your requirements \u2014 rejecting weak, guessable passwords before they become a security risk.<\/p>\n\n<p><strong>Advanced Firewall &amp; Malware Scanner<\/strong>\nScan your WordPress files and database for known malware signatures, suspicious code injections, and modified core files. Get alerts when threats are detected and take action directly from the plugin dashboard.<\/p>\n\n<blockquote>\n  <p><strong><a href=\"https:\/\/themepaste.com\/product\/admin-safety-guard-pro\">Upgrade to Pro<\/a><\/strong> to unlock all Pro features.<\/p>\n<\/blockquote>\n\n\n\n<h3>Who Is Admin Safety Guard For?<\/h3>\n\n<p><strong>Bloggers &amp; Content Creators<\/strong>\nYou focus on writing \u2014 not on managing server security. Admin Safety Guard protects your login page and admin area quietly in the background with zero ongoing maintenance required.<\/p>\n\n<p><strong>Small Business Owners<\/strong>\nYour website is your business. A hack can bring it down, damage your reputation, and cost you money. Admin Safety Guard gives you enterprise-level login protection without the enterprise price tag.<\/p>\n\n<p><strong>WooCommerce Store Owners<\/strong>\nAn online store holds customer data, payment details, and order history. Limit login attempts, add 2FA, and lock down your admin area so only you and your trusted team can get in.<\/p>\n\n<p><strong>Freelancers &amp; Web Designers<\/strong>\nDeliver more secure sites to clients out of the box. Customise the login page with the client\u2019s branding, lock down the admin bar by role, and hand over a professional, secure WordPress installation every time.<\/p>\n\n<p><strong>Agencies &amp; Development Teams<\/strong>\nManage security across multiple client sites with a consistent, repeatable setup. All features are toggle-based and clearly documented, making it easy to onboard new team members and maintain a security standard across your portfolio.<\/p>\n\n<p><strong>Developers &amp; Site Administrators<\/strong>\nFine-tune every setting \u2014 login attempt limits, lockout durations, OTP email templates, reCAPTCHA version, redirect URLs, IP block lists, and more. Admin Safety Guard is built on WordPress hooks and filters, so it plays well with the rest of your stack.<\/p>\n\n\n\n<h3>What Makes Admin Safety Guard Different?<\/h3>\n\n<ul>\n<li><strong>Lightweight by design.<\/strong> Assets are loaded only on the pages that need them. The plugin has no impact on your site\u2019s front-end load time.<\/li>\n<li><strong>No configuration required to get started.<\/strong> Limit Login Attempts is enabled automatically on install. Your site is more secure the moment you activate the plugin.<\/li>\n<li><strong>All features are clearly labelled Free or Pro.<\/strong> You can see exactly what is available and what requires the Pro version before making any decisions.<\/li>\n<li><strong>Clean, modern dashboard.<\/strong> The settings UI is built with React for a fast, app-like experience. Finding and configuring features takes seconds, not minutes.<\/li>\n<li><strong>Built to WordPress standards.<\/strong> Every input is sanitised, every output is escaped, all AJAX requests use nonce verification, and every database query uses prepared statements.<\/li>\n<\/ul>\n\n\n\n<h3>Support<\/h3>\n\n<p>For any issues, questions, or feature requests, please reach out via <a href=\"https:\/\/themepaste.com\/contact\">Support<\/a>.<\/p>\n\n\n\n<h3>External Services<\/h3>\n\n<p>This plugin uses the following third-party and external services:<\/p>\n\n<p>1) Google reCAPTCHA (Google LLC)<\/p>\n\n<p>Purpose:\nUsed to protect forms from spam and automated abuse.<\/p>\n\n<p>When it is used:\n- When reCAPTCHA is enabled in plugin settings\n- On login forms and support forms protected by reCAPTCHA<\/p>\n\n<p>What data is sent:\n- User IP address\n- reCAPTCHA response token generated by Google\n- Browser information as required by Google reCAPTCHA<\/p>\n\n<p>Service provider:\nGoogle LLC<\/p>\n\n<p>Terms of Service:\nhttps:\/\/policies.google.com\/terms<\/p>\n\n<p>Privacy Policy:\nhttps:\/\/policies.google.com\/privacy<\/p>\n\n<p>2) ThemePaste API (Plugin Author Service)<\/p>\n\n<p>Purpose:\nUsed for:\n- Collecting optional admin email addresses for plugin updates and notifications\n- Sending support requests from the plugin support form\n- Collecting optional feedback when a user attempts to deactivate the plugin\n- Managing plugin-related notifications (only if the user provides contact details)<\/p>\n\n<p>When it is used:\n- When a user submits the built-in support form\n- When a user opts to send diagnostic information\n- Submitting the optional deactivation feedback form<\/p>\n\n<p>What data is sent:\n- Name\n- Email address\n- Phone number (if provided)\n- Message content\n- Site URL\n- Plugin name\n- Feedback text (if provided)\n- Support message content\n- Deactivation reason (if provided)<\/p>\n\n<p>No data is sent without user action.<\/p>\n\n<p>Service provider:\nThemePaste.com<\/p>\n\n<p>Terms of Service:\nhttps:\/\/themepaste.com\/terms-condition<\/p>\n\n<p>Privacy Policy:\nhttps:\/\/themepaste.com\/privacy-policy<\/p>\n\n<h3>Development \/ Source Code<\/h3>\n\n<p>This plugin includes compiled JavaScript bundles in:\n- assets\/admin\/build\/*.bundle.js<\/p>\n\n<p>The original (human-readable) source files are included in this plugin under:\n- spa\/admin\/<\/p>\n\n<p>Build Tools\n- Node.js (LTS recommended)\n- npm\n- Webpack + Babel<\/p>\n\n<p>Source Entry Points\nThe admin SPA bundles are built from the following entry points:<\/p>\n\n<ul>\n<li>spa\/admin\/login-template\/Main.jsx            -&gt; assets\/admin\/build\/loginTemplate.bundle.js<\/li>\n<li>spa\/admin\/login-logs-activity\/Main.jsx       -&gt; assets\/admin\/build\/loginLogActivity.bundle.js<\/li>\n<li>spa\/admin\/analytics\/Main.jsx                 -&gt; assets\/admin\/build\/analytics.bundle.js<\/li>\n<li>spa\/admin\/security-core\/Main.jsx             -&gt; assets\/admin\/build\/securityCore.bundle.js<\/li>\n<li>spa\/admin\/firewall-malware\/Main.jsx          -&gt; assets\/admin\/build\/firewallMalware.bundle.js<\/li>\n<li>spa\/admin\/privacy-hardening\/Main.jsx         -&gt; assets\/admin\/build\/privacyHardening.bundle.js<\/li>\n<li>spa\/admin\/monitoring-analytics\/Main.jsx      -&gt; assets\/admin\/build\/monitoringAnalytics.bundle.js<\/li>\n<\/ul>\n\n<p>Install Dependencies\nFrom the plugin root directory (or the directory where package.json exists):<\/p>\n\n<p>1) Install dependencies:\n   npm install<\/p>\n\n<p>Build (Production)\nTo generate the production bundles:<\/p>\n\n<p>npm run build<\/p>\n\n<p>Output Location\nWebpack outputs the compiled bundles to:<\/p>\n\n<ul>\n<li>assets\/admin\/build\/[name].bundle.js<\/li>\n<\/ul>\n\n<p>Important Notes\n- Do not edit files in assets\/admin\/build\/ directly. They are generated files.\n- Edit the source files under spa\/admin\/ and re-run the build command.\n- For WordPress.org distribution, production builds should be used (mode=production).<\/p>\n\n<h3>Links<\/h3>\n\n<p><a href=\"https:\/\/themepaste.com\">Website<\/a><br \/>\n<a href=\"https:\/\/themepaste.com\/product-doc\/hide-admin-bar-pro\/?doc_id=389\">Documentation<\/a><br \/>\n<a href=\"https:\/\/themepaste.com\/product\/admin-safety-guard-pro\">Pro Version<\/a><br \/>\n<a href=\"https:\/\/www.facebook.com\/themepaste\">Facebook<\/a><br \/>\n<a href=\"https:\/\/uk.pinterest.com\/themepaste\/\">Pinterest<\/a><br \/>\n<a href=\"https:\/\/www.linkedin.com\/company\/themepaste\">LinkedIn<\/a><br \/>\n<a href=\"https:\/\/www.instagram.com\/themepasteuk\">Instagram<\/a><\/p>\n\n<!--section=installation-->\n<p><strong>Option 1 \u2014 Install from the WordPress Plugin Directory (Recommended)<\/strong><\/p>\n\n<ol>\n<li>Log in to your WordPress admin area.<\/li>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Search for <strong>Admin Safety Guard<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then click <strong>Activate<\/strong>.<\/li>\n<\/ol>\n\n<p><strong>Option 2 \u2014 Upload Manually<\/strong><\/p>\n\n<ol>\n<li>Download the plugin <code>.zip<\/code> file from WordPress.org.<\/li>\n<li>Go to <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Choose the <code>.zip<\/code> file and click <strong>Install Now<\/strong>.<\/li>\n<li>Click <strong>Activate Plugin<\/strong>.<\/li>\n<\/ol>\n\n<p><strong>After Activation<\/strong><\/p>\n\n<p>The plugin will automatically enable Limit Login Attempts with sensible defaults (3 attempts, 15-minute lockout) so your site is protected immediately. Head to <strong>Admin Safety Guard<\/strong> in your WordPress menu to explore and configure the rest of the features.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"q%3A%20is%20admin%20safety%20guard%20free%3F\"><h3>Q: Is Admin Safety Guard free?<\/h3><\/dt>\n<dd><p>A: Yes. All features listed under \"Free Features\" above are completely free with no usage limits or hidden costs. A Pro version is available for advanced features such as magic link login, mobile app 2FA, social login, and malware scanning.<\/p><\/dd>\n<dt id=\"q%3A%20will%20this%20plugin%20slow%20down%20my%20wordpress%20site%3F\"><h3>Q: Will this plugin slow down my WordPress site?<\/h3><\/dt>\n<dd><p>A: No. Admin Safety Guard only loads its JavaScript and CSS assets on the plugin\u2019s own settings pages inside the admin area. It adds zero weight to your site\u2019s front-end pages. Security checks (like login attempt limits and custom URL routing) are handled in PHP with minimal overhead.<\/p><\/dd>\n<dt id=\"q%3A%20what%20happens%20when%20i%20change%20my%20login%20url%3F\"><h3>Q: What happens when I change my login URL?<\/h3><\/dt>\n<dd><p>A: The plugin sets a custom rewrite rule that points your new login slug (e.g. <code>\/my-login<\/code>) to the WordPress login system. The old <code>wp-login.php<\/code> URL will redirect visitors away. Your existing bookmarks will need to be updated to the new URL. The plugin flushes WordPress permalink rules automatically when you save the setting.<\/p><\/dd>\n<dt id=\"q%3A%20does%20the%20custom%20login%20url%20work%20in%20a%20wordpress%20subdirectory%20install%3F\"><h3>Q: Does the custom login URL work in a WordPress subdirectory install?<\/h3><\/dt>\n<dd><p>A: Yes. The plugin detects subdirectory installs and builds the correct URL for your setup automatically.<\/p><\/dd>\n<dt id=\"q%3A%20how%20does%20limit%20login%20attempts%20work%3F\"><h3>Q: How does Limit Login Attempts work?<\/h3><\/dt>\n<dd><p>A: Every time a user enters the wrong password, the plugin records the attempt against that IP address. Once the number of failed attempts reaches your configured limit (default: 3), that IP address is locked out for the duration you set (default: 15 minutes). After the lockout period, they can try again. You can also manually block IP addresses permanently from the IP Blocking settings.<\/p><\/dd>\n<dt id=\"q%3A%20does%20limit%20login%20attempts%20work%20against%20bots%20that%20change%20their%20ip%20address%3F\"><h3>Q: Does Limit Login Attempts work against bots that change their IP address?<\/h3><\/dt>\n<dd><p>A: Limit Login Attempts blocks on a per-IP basis, which stops the vast majority of automated attacks. For more sophisticated threats, enabling a custom login URL so bots cannot even find your login page adds a second layer of defence.<\/p><\/dd>\n<dt id=\"q%3A%20is%20two-factor%20authentication%20%282fa%29%20required%20for%20all%20users%3F\"><h3>Q: Is Two-Factor Authentication (2FA) required for all users?<\/h3><\/dt>\n<dd><p>A: No. You enable the OTP via Email toggle in the Two-Factor Authentication settings. Once enabled, it applies to all login attempts on your site. If you want role-specific or user-specific control, that is available in the Pro version.<\/p><\/dd>\n<dt id=\"q%3A%20can%20i%20customise%20the%202fa%20email%20that%20gets%20sent%20to%20users%3F\"><h3>Q: Can I customise the 2FA email that gets sent to users?<\/h3><\/dt>\n<dd><p>A: Yes. In the Two-Factor Authentication settings you can edit both the email subject line and the email body. Use the <code>{otp}<\/code> placeholder where you want the code to appear, and <code>{site_name}<\/code> for your site\u2019s name.<\/p><\/dd>\n<dt id=\"q%3A%20what%20does%20disabling%20xml-rpc%20do%2C%20and%20is%20it%20safe%3F\"><h3>Q: What does disabling XML-RPC do, and is it safe?<\/h3><\/dt>\n<dd><p>A: XML-RPC is an older interface that lets external apps communicate with WordPress. It is frequently used in brute-force and DDoS amplification attacks because it allows multiple login attempts in a single request. Disabling it is safe for most sites. The only time you need XML-RPC is if you use the official WordPress mobile app for publishing, or a specific third-party service that requires it. Check with your tools before disabling.<\/p><\/dd>\n<dt id=\"q%3A%20does%20recaptcha%20v2%20or%20v3%20work%20better%20for%20login%20pages%3F\"><h3>Q: Does reCAPTCHA v2 or v3 work better for login pages?<\/h3><\/dt>\n<dd><p>A: It depends on your preference. reCAPTCHA v2 shows a visible checkbox (\"I\u2019m not a robot\") which users must tick \u2014 straightforward and clear. reCAPTCHA v3 is invisible and runs silently in the background, scoring visitors based on behaviour. v3 offers a better user experience but requires you to set a score threshold. Both are fully supported.<\/p><\/dd>\n<dt id=\"q%3A%20will%20password%20protection%20affect%20my%20logged-in%20users%3F\"><h3>Q: Will Password Protection affect my logged-in users?<\/h3><\/dt>\n<dd><p>A: No. You can exclude specific user roles (e.g. Administrator, Editor) from the password requirement. Users in excluded roles will access the site normally without being shown the password gate. You can also choose to exclude all logged-in users at once.<\/p><\/dd>\n<dt id=\"q%3A%20can%20i%20see%20who%20has%20been%20trying%20to%20log%20in%20to%20my%20site%3F\"><h3>Q: Can I see who has been trying to log in to my site?<\/h3><\/dt>\n<dd><p>A: Yes. The Login Logs &amp; Activity Tracking section shows a detailed table of all login events \u2014 both successful and failed \u2014 including the username, IP address, browser\/device (user agent), and timestamp. You can use this information to identify suspicious activity and block problem IPs.<\/p><\/dd>\n<dt id=\"q%3A%20what%20is%20the%20security%20score%20shown%20on%20the%20dashboard%3F\"><h3>Q: What is the Security Score shown on the dashboard?<\/h3><\/dt>\n<dd><p>A: The Security Score is a percentage (0\u2013100) calculated based on how many available security features you have enabled. The more features you activate, the higher your score. It gives you a quick, at-a-glance understanding of your site\u2019s current protection level and shows which areas still need attention.<\/p><\/dd>\n<dt id=\"q%3A%20can%20i%20hide%20the%20admin%20bar%20from%20certain%20user%20roles%3F\"><h3>Q: Can I hide the admin bar from certain user roles?<\/h3><\/dt>\n<dd><p>A: Yes. In the Hide Admin Bar settings, you choose which roles should have the admin bar hidden on the front end of your site. For example, you might hide it from Subscribers and Customers while keeping it visible for Editors and Administrators.<\/p><\/dd>\n<dt id=\"q%3A%20is%20admin%20safety%20guard%20compatible%20with%20woocommerce%3F\"><h3>Q: Is Admin Safety Guard compatible with WooCommerce?<\/h3><\/dt>\n<dd><p>A: Yes. The plugin is fully compatible with WooCommerce. All features \u2014 login limits, 2FA, custom login URL, IP blocking, and activity logs \u2014 work alongside WooCommerce without any conflicts.<\/p><\/dd>\n<dt id=\"q%3A%20is%20admin%20safety%20guard%20compatible%20with%20other%20security%20plugins%20like%20wordfence%20or%20ithemes%20security%3F\"><h3>Q: Is Admin Safety Guard compatible with other security plugins like Wordfence or iThemes Security?<\/h3><\/dt>\n<dd><p>A: Yes, in most cases. Admin Safety Guard focuses specifically on login security and admin area protection. It does not interfere with firewall rules or malware scanning from other plugins. If you use another plugin that also offers limit login attempts or custom login URLs, disable that specific feature in one of the two plugins to avoid conflicts.<\/p><\/dd>\n<dt id=\"q%3A%20how%20do%20i%20get%20support%20if%20something%20is%20not%20working%3F\"><h3>Q: How do I get support if something is not working?<\/h3><\/dt>\n<dd><p>A: Post in the <a href=\"https:\/\/wordpress.org\/support\/plugin\/admin-safety-guard\/\">WordPress.org support forum<\/a> for free support. For priority email support and Pro features, visit <a href=\"https:\/\/themepaste.com\/contact\">themepaste.com\/contact<\/a>.<\/p>\n\n<\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.8 \u2013 Bug Fixes &amp; Default Feature Activation<\/h4>\n\n<ul>\n<li>[fix] Fixed PHP warnings on fresh install: \"Undefined array key sub\" and \"Trying to access array offset on value of type null\" in layout.php.<\/li>\n<li>[fix] All features (free and pro) now correctly default to Inactive on fresh install, giving users full control over what is enabled.<\/li>\n<li>[feature] Limit Login Attempts is now automatically enabled with sensible defaults on first install to provide immediate brute-force protection out of the box.<\/li>\n<li>[improve] Feature status detection now correctly handles features without a master enable switch (Two-Factor Auth, Privacy Hardening) by checking their individual toggle fields.<\/li>\n<\/ul>\n\n<h4>1.2.7 \u2013 UI &amp; Content Update<\/h4>\n\n<ul>\n<li>[improve] Updated plugin layout to be more user-friendly and easier to use.<\/li>\n<li>[improve] Optimized code for better performance and smoother experience.<\/li>\n<li>[update] Updated readme content for better clarity and documentation.<\/li>\n<li>[update] Changed plugin banner and refreshed screenshots with a new layout.<\/li>\n<li>[feature] Added visibility of all Pro features in free version (requires Pro plugin to use).<\/li>\n<li>[fix] Minor UI improvements and general stability fixes.<\/li>\n<\/ul>\n\n<h4>1.2.6 \u2013 Performance &amp; Security Update<\/h4>\n\n<ul>\n<li>[improve] Optimized React rendering by loading React assets in the head for faster UI initialization.<\/li>\n<li>[feature] Added Login Attempt Limiter to help prevent brute-force login attacks.<\/li>\n<li>[fix] Fixed React render delay issue on slow client sites.<\/li>\n<li>[fix] Resolved minor UI and stability issues.<\/li>\n<li>[improve] General performance improvements.<\/li>\n<\/ul>\n\n<h4>1.2.5 \u2013 Security &amp; Stability Update<\/h4>\n\n<ul>\n<li>Improved deactivation process<\/li>\n<li>Added nonce verification for AJAX security<\/li>\n<li>Fixed cross-origin (CORS) issue during API request<\/li>\n<li>Enhanced server-side API handling<\/li>\n<\/ul>\n\n<h4>1.2.4 \u2013 Maintenance Update<\/h4>\n\n<ul>\n<li>Deactivation issue fixed<\/li>\n<\/ul>\n\n<h4>1.2.3 \u2013 Maintenance Update<\/h4>\n\n<ul>\n<li>Enhanced stability and performance<\/li>\n<li>General bug fixes and cleanup<\/li>\n<li>Added a deactivation modal<\/li>\n<\/ul>\n\n<h4>1.2.2 \u2013 Maintenance Update<\/h4>\n\n<ul>\n<li>Fixed critical errors and PHP warnings<\/li>\n<li>Improved WordPress coding standards compliance<\/li>\n<li>Optimized long descriptions and code structure<\/li>\n<li>Enhanced stability and performance<\/li>\n<li>General bug fixes and cleanup<\/li>\n<\/ul>\n\n<h4>1.2.1 \u2013 Security &amp; Compliance Update<\/h4>\n\n<ul>\n<li>Fixed security issues reported by WordPress Plugin Review Team<\/li>\n<li>Improved data sanitization and escaping across plugin files<\/li>\n<li>Updated code to follow WordPress coding standards and best practices<\/li>\n<li>Replaced unsafe database queries with prepared statements<\/li>\n<li>Improved nonce verification and permission checks<\/li>\n<li>Removed unused and deprecated functions<\/li>\n<li>Updated plugin documentation and inline comments<\/li>\n<li>Updated \"Tested up to\" version to latest WordPress release<\/li>\n<li>General code cleanup and optimization<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>[Fix] fixed the taxdomain and esc issues.<\/li>\n<\/ul>\n\n<h4>1.1.9<\/h4>\n\n<ul>\n<li>[New] Added breadcrumb navigation for better page clarity and navigation.<\/li>\n<li>[New] All major pages are now fully dynamic.<\/li>\n<li>[Improved] Updated UI\/UX with refined layouts, spacing, and design elements.<\/li>\n<li>[Improved] Enhanced responsiveness and overall page behavior.<\/li>\n<li>[Fix] Fixed multiple minor issues from previous versions.<\/li>\n<li>[Fix] Resolved layout and alignment inconsistencies.<\/li>\n<li>[Maintenance] Refactored code for better performance and maintainability.<\/li>\n<li>[Maintenance] General stability improvements and internal optimizations.<\/li>\n<\/ul>\n\n<h4>1.1.8<\/h4>\n\n<ul>\n<li>[New] Introduced a fully redesigned, modern admin UI for a cleaner and more intuitive experience.<\/li>\n<li>[New] Added colorful visual elements and icons across the plugin for better clarity and usability.<\/li>\n<li>[Improved] Improved overall navigation to make all features easier and faster to access.<\/li>\n<li>[Improved] Enhanced layout consistency and spacing for a more polished look.<\/li>\n<li>[Improved] Optimized UI responsiveness across different screen sizes.<\/li>\n<li>[Update] Updated iconography and color scheme to improve visual hierarchy and readability.<\/li>\n<li>[Maintenance] Refactored UI-related code for better performance and maintainability.<\/li>\n<li>[Maintenance] Minor internal improvements and stability enhancements.<\/li>\n<\/ul>\n\n<h4>1.1.7<\/h4>\n\n<ul>\n<li>[Fix] Active license URL now shows correctly based on the Pro plugin status.<\/li>\n<li>[Fix] Fixed the documentation link on the plugin page.<\/li>\n<\/ul>\n\n<h4>1.1.6<\/h4>\n\n<ul>\n<li>[New] - Introduced a dynamic Security Score system based on overall site protection status.<\/li>\n<li>[New] - Added Login Activity Rate Limiting (maximum 6 login attempts within 24 hours).<\/li>\n<li>[New] - Implemented Login &amp; Activity Status React-based graphs for better visual insights.<\/li>\n<li>[Update] - Improved dashboard UI\/UX for clearer security data presentation.<\/li>\n<li>[Update] - Enhanced activity monitoring layout and responsiveness.<\/li>\n<li>[Fix] - Resolved minor issues in login activity tracking.<\/li>\n<li>[Fix] - Fixed UI alignment and styling inconsistencies in the admin dashboard.<\/li>\n<li>[Maintenance] - Internal code optimization and performance improvements.<\/li>\n<li>[Maintenance] - Security hardening and internal consistency checks.<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>[Maintenance] - Release preparation and version alignment.<\/li>\n<li>[Maintenance] - Internal consistency checks.<\/li>\n<li>[Maintenance] - No code or feature changes in this version.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>[new] - [New] All Pro features are now available in the free version.<\/li>\n<li>[New] - Added a Purchase \/ Upgrade button to allow users to unlock premium support and future enhancements.<\/li>\n<li>[Improved] - Updated plugin UI and feature visibility for better clarity between free and premium offerings.<\/li>\n<li>[Improved] - Minor UX and performance optimisations.<\/li>\n<li>[Fixed] - Small stability issues and internal clean-ups.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Fixed an issue where OTP-verified logins could result in session cookies instead of persistent cookies.<\/li>\n<li>Refactored OTP verification to run earlier in the login flow via <code>login_init<\/code>.<\/li>\n<li>Updated the authentication process to use <code>wp_signon()<\/code> so WordPress handles Remember Me cookies correctly.<\/li>\n<li>Tested across multiple environments and browsers to confirm expected cookie expiration behavior.<\/li>\n<li>Minor improvements and stability adjustments.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>[fix] - 2FA login cookie session issue when OTP verification completed.<\/li>\n<li>[Improved] - <code>wp_set_auth_cookie()<\/code> now uses correct $remember flag for persistent login.<\/li>\n<li>[Improved] - OTP authentication flow now respects the user's \"Remember me\" choice.<\/li>\n<li>[new] - Added a phone number field to the in-plugin support form, including country code.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>[fix] \u2013 Resolved several important WordPress admin warnings.<\/li>\n<li>[new] \u2013 Added an in-plugin support system.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<p>[new] Added deactivation email feature on plugin activation<\/p>\n\n<h4>1.0.6, 1.0.8<\/h4>\n\n<p>[new] Release the pro version\n[new] Compotable with pro version<\/p>\n\n<h4>1.0.5<\/h4>\n\n<p>[new] Added extendable action and filter hooks<br \/>\n[new] Ready to integrate Pro version<br \/>\n[new] Conditionally loaded all assets<br \/>\n[new] Added default logo URL, width, and height<br \/>\n[fix] Fixed logo issue from customizer<br \/>\n[fix] General improvements and bug fixes<\/p>\n\n<h4>1.0.4<\/h4>\n\n<p>[new] Auto permalink flush for custom login\/logout URLs<br \/>\n[new] Admin Notice added<br \/>\n[new] Setup Wizard<br \/>\n[new] Documentation link added<\/p>\n\n<h4>1.0.3<\/h4>\n\n<p>[new] Subdirectory support<br \/>\n[new] Tooltip in failed login table<br \/>\n[new] Auto-redirect after max login attempts<br \/>\n[fix] Custom login\/logout URLs<br \/>\n[fix] Lockout message<br \/>\n[fix] Failed login table issues<\/p>\n\n<h4>1.0.2<\/h4>\n\n<p>[fix] Minor bug fixes<\/p>\n\n<h4>1.0.1<\/h4>\n\n<p>[fix] Build issue resolved<\/p>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release featuring 2FA, CAPTCHA, Limit Login Attempts, IP Blocking, Custom Login URL, Password Protection, and Login Logs.  <\/li>\n<\/ul>","raw_excerpt":"Protect your WordPress site from hackers. Limit login attempts, add 2FA, reCAPTCHA, block IPs, hide wp-login.php, track activity logs and more \u2014 all f &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/243972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=243972"}],"author":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/themepaste"}],"wp:attachment":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=243972"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=243972"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=243972"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=243972"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=243972"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=243972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}