{"id":370020,"date":"2026-09-19T15:19:49","date_gmt":"2026-09-19T15:19:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pro-admin\/"},"modified":"2026-09-22T11:25:06","modified_gmt":"2026-09-22T11:25:06","slug":"adminkeep","status":"publish","type":"plugin","link":"https:\/\/ta.wordpress.org\/plugins\/adminkeep\/","author":4091607,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.8.0","stable_tag":"1.8.0","tested":"7.1.2","requires":"6.9","requires_php":"7.4","requires_plugins":null,"header_name":"Adminkeep","header_author":"Adminkeep","header_description":"Turn off comments, block new plugin installs, and duplicate posts safely. Every lock is instantly reversible. No ads, no nags, no notices.","assets_banners_color":"1a1a2e","last_updated":"2026-09-22 11:25:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/adminkeep.com","header_author_uri":"https:\/\/adminkeep.com","rating":0,"author_block_rating":0,"active_installs":30,"downloads":317,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"sajib1223","date":"2026-09-19 15:19:14","revision":3703401},"1.2.0":{"tag":"1.2.0","author":"sajib1223","date":"2026-09-20 00:51:02","revision":3703754},"1.3.0":{"tag":"1.3.0","author":"sajib1223","date":"2026-09-20 10:55:39","revision":3704149},"1.4.0":{"tag":"1.4.0","author":"sajib1223","date":"2026-09-20 17:31:48","revision":3704509},"1.5.0":{"tag":"1.5.0","author":"sajib1223","date":"2026-09-21 03:13:55","revision":3704788},"1.6.0":{"tag":"1.6.0","author":"sajib1223","date":"2026-09-21 05:08:23","revision":3704870},"1.7.0":{"tag":"1.7.0","author":"sajib1223","date":"2026-09-21 17:29:44","revision":3706030},"1.8.0":{"tag":"1.8.0","author":"sajib1223","date":"2026-09-22 11:25:06","revision":3707168}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3703401,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3703401,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3703401,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3703401,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3703401,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0","1.2.0","1.3.0","1.4.0","1.5.0","1.6.0","1.7.0","1.8.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3706030,"resolution":"1","location":"assets","locale":"","width":1544,"height":1279},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3706030,"resolution":"10","location":"assets","locale":"","width":1544,"height":789},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3706030,"resolution":"11","location":"assets","locale":"","width":1544,"height":1158},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3706030,"resolution":"12","location":"assets","locale":"","width":1544,"height":686},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3706030,"resolution":"13","location":"assets","locale":"","width":1544,"height":931},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3703401,"resolution":"2","location":"assets","locale":"","width":1544,"height":1167},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3703401,"resolution":"3","location":"assets","locale":"","width":1544,"height":754},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3703401,"resolution":"4","location":"assets","locale":"","width":1544,"height":629},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3703401,"resolution":"5","location":"assets","locale":"","width":1544,"height":754},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3703401,"resolution":"6","location":"assets","locale":"","width":1544,"height":778},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3703401,"resolution":"7","location":"assets","locale":"","width":1544,"height":1421},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3703401,"resolution":"8","location":"assets","locale":"","width":1544,"height":1045},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3703401,"resolution":"9","location":"assets","locale":"","width":1544,"height":1457}},"screenshots":{"1":"Five groups, fourteen features, one switch each. Turn on only what you need.","2":"Nothing is deleted until you have seen the exact count. Order notes and reviews are excluded unless you say otherwise.","3":"Duplicate and Live Draft where you already work \u2014 the row actions, not a new menu.","4":"Swapping a file for a different format tells you what references it first, then keeps the old URL redirecting.","5":"Sorting gets a screen of its own: drag a row where you want it \u2014 and the order applies to your front-end queries too.","6":"Rewrite a published page while it stays published. Merge back into the same post, same URL.","7":"The administrator guard is on by default. Blocking plugin-created accounts is opt-in, because it breaks WooCommerce checkout.","8":"Stop plugin and theme installs and uploads, while updates keep working \u2014 and switch it back off from this same screen.","9":"The redirects WordPress core skips: hierarchical pages, and posts moved to a new parent.","10":"Custom CSS lives under Appearance, in WordPress's own code editor, and stays when you switch themes.","11":"SMTP under Settings: pick a provider, save, and send a test email that shows what the server said.","12":"Email Log under Tools: every email your site sends, whether it went out, and filters for status, period and search.","13":"Open any logged email as it was sent, with its source a tab away. Scripts and remote images are blocked in the preview."}},"plugin_section":[],"plugin_tags":[2001,14833,26736,17953,6459],"plugin_category":[],"plugin_contributors":[80023],"plugin_business_model":[],"class_list":["post-370020","plugin","type-plugin","status-publish","hentry","plugin_tags-custom-css","plugin_tags-disable-comments","plugin_tags-email-log","plugin_tags-enhancements","plugin_tags-lockdown","plugin_contributors-sajib1223","plugin_committers-sajib1223"],"banners":{"banner":"https:\/\/ps.w.org\/adminkeep\/assets\/banner-772x250.png?rev=3703401","banner_2x":"https:\/\/ps.w.org\/adminkeep\/assets\/banner-1544x500.png?rev=3703401","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/adminkeep\/assets\/icon.svg?rev=3703401","icon":"https:\/\/ps.w.org\/adminkeep\/assets\/icon.svg?rev=3703401","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/adminkeep\/assets\/screenshot-1.png?rev=3706030","caption":"Five groups, fourteen features, one switch each. Turn on only what you need."},{"src":"https:\/\/ps.w.org\/adminkeep\/assets\/screenshot-2.png?rev=3703401","caption":"Nothing is deleted until you have seen the exact count. Order notes and reviews are excluded unless you say otherwise."},{"src":"https:\/\/ps.w.org\/adminkeep\/assets\/screenshot-3.png?rev=3703401","caption":"Duplicate and Live Draft where you already work \u2014 the row actions, not a new menu."},{"src":"https:\/\/ps.w.org\/adminkeep\/assets\/screenshot-4.png?rev=3703401","caption":"Swapping a file for a different format tells you what references it first, then keeps the old URL redirecting."},{"src":"https:\/\/ps.w.org\/adminkeep\/assets\/screenshot-5.png?rev=3703401","caption":"Sorting gets a screen of its own: drag a row where you want it \u2014 and the order applies to your front-end queries too."},{"src":"https:\/\/ps.w.org\/adminkeep\/assets\/screenshot-6.png?rev=3703401","caption":"Rewrite a published page while it stays published. Merge back into the same post, same URL."},{"src":"https:\/\/ps.w.org\/adminkeep\/assets\/screenshot-7.png?rev=3703401","caption":"The administrator guard is on by default. Blocking plugin-created accounts is opt-in, because it breaks WooCommerce checkout."},{"src":"https:\/\/ps.w.org\/adminkeep\/assets\/screenshot-8.png?rev=3703401","caption":"Stop plugin and theme installs and uploads, while updates keep working \u2014 and switch it back off from this same screen."},{"src":"https:\/\/ps.w.org\/adminkeep\/assets\/screenshot-9.png?rev=3703401","caption":"The redirects WordPress core skips: hierarchical pages, and posts moved to a new parent."},{"src":"https:\/\/ps.w.org\/adminkeep\/assets\/screenshot-10.png?rev=3706030","caption":"Custom CSS lives under Appearance, in WordPress's own code editor, and stays when you switch themes."},{"src":"https:\/\/ps.w.org\/adminkeep\/assets\/screenshot-11.png?rev=3706030","caption":"SMTP under Settings: pick a provider, save, and send a test email that shows what the server said."},{"src":"https:\/\/ps.w.org\/adminkeep\/assets\/screenshot-12.png?rev=3706030","caption":"Email Log under Tools: every email your site sends, whether it went out, and filters for status, period and search."},{"src":"https:\/\/ps.w.org\/adminkeep\/assets\/screenshot-13.png?rev=3706030","caption":"Open any logged email as it was sent, with its source a tab away. Scripts and remote images are blocked in the preview."}],"raw_content":"<!--section=description-->\n<p>You decide what changes on this site.<\/p>\n\n<p>Adminkeep is a set of tools under that one idea. <strong>Site Lock<\/strong> stops things changing behind\nyour back \u2014 no new comment, no new plugin, no new user. <strong>Content<\/strong> makes the changes you do want\nsafe to make.<\/p>\n\n<p>Every feature is a single switch, off until you turn it on. <strong>Switching one off never leaves you\nrepair work<\/strong>: the locks work purely through WordPress filters, so your site is exactly as it was,\nand what you made with the Content features stays where you put it.<\/p>\n\n<h4>Site Lock<\/h4>\n\n<ul>\n<li><strong>Disable Comments<\/strong> \u2014 comments off everywhere, including direct POSTs from spam bots and the REST API. Nothing is written to your database, so switching it off brings every comment back. An optional cleanup button deletes spam and trashed comments, after showing you the exact count. <a href=\"https:\/\/adminkeep.com\/guides\/disable-comments-wordpress\/\">Guide<\/a><\/li>\n<li><strong>Registration Lockdown<\/strong> \u2014 stops new accounts being created, and refuses creation of or promotion to administrator. Blocked attempts are logged. <a href=\"https:\/\/adminkeep.com\/guides\/stop-spam-user-registration-wordpress\/\">Guide<\/a><\/li>\n<li><strong>Disable XML-RPC<\/strong> \u2014 closes <code>xmlrpc.php<\/code> completely, including pingbacks and <code>system.multicall<\/code>. <a href=\"https:\/\/adminkeep.com\/guides\/disable-xmlrpc-wordpress\/\">Guide<\/a><\/li>\n<li><strong>Disable File Editing<\/strong> \u2014 removes the built-in plugin and theme file editors, reversibly.<\/li>\n<li><strong>Installation Lockdown<\/strong> \u2014 no new plugins or themes, from WordPress.org or a ZIP, and no replacing one by uploading a ZIP, for anyone. Updates keep working, so security releases still reach your site. <a href=\"https:\/\/adminkeep.com\/guides\/block-plugin-installs-wordpress\/\">Guide<\/a><\/li>\n<\/ul>\n\n<h4>Content<\/h4>\n\n<ul>\n<li><strong>Duplicate<\/strong> \u2014 copy any post or page as a draft. Custom fields, taxonomies, the featured image and page builder layouts (Elementor, ACF) come along intact, and the original is never modified. <a href=\"https:\/\/adminkeep.com\/guides\/duplicate-page-wordpress\/\">Guide<\/a><\/li>\n<li><strong>Live Draft<\/strong> \u2014 rework a published page in a private working copy, then publish it over the original. Same ID, same URL, and the old version is kept as a revision. <a href=\"https:\/\/adminkeep.com\/guides\/edit-published-page-without-unpublishing\/\">Guide<\/a><\/li>\n<li><strong>Keep URL<\/strong> \u2014 rename or move a page and its old address keeps working, child pages included. Fills the gaps WordPress leaves for pages and leaves posts to core. <a href=\"https:\/\/adminkeep.com\/guides\/change-wordpress-slug-redirect\/\">Guide<\/a><\/li>\n<li><strong>Order<\/strong> \u2014 drag posts into the order you want on a dedicated Sort screen, one post type at a time. Lists that already ask for their own order, such as WooCommerce products and search results, are left alone. <a href=\"https:\/\/adminkeep.com\/guides\/reorder-wordpress-posts\/\">Guide<\/a><\/li>\n<li><strong>Replace Media<\/strong> \u2014 upload a new version of a file over the old one. Same file type keeps the same URL; a different type updates the posts that use it and redirects the old address. <a href=\"https:\/\/adminkeep.com\/guides\/replace-image-wordpress-same-url\/\">Guide<\/a><\/li>\n<\/ul>\n\n<h4>Appearance<\/h4>\n\n<ul>\n<li><strong>Custom CSS<\/strong> \u2014 CSS that belongs to your site instead of your theme. Edit it under Appearance with WordPress's own code editor; it stays when you switch themes, and your theme's Additional CSS is left alone.<\/li>\n<\/ul>\n\n<h4>Admin<\/h4>\n\n<ul>\n<li><strong>User Registration Date<\/strong> \u2014 a sortable Registered column on the Users screen. WordPress records when every account was created but never shows it; this does, for every existing user, and newest-first sorting makes a wave of spam signups easy to spot. <a href=\"https:\/\/adminkeep.com\/guides\/wordpress-user-registration-date\/\">Guide<\/a><\/li>\n<\/ul>\n\n<h4>Email<\/h4>\n\n<ul>\n<li><strong>SMTP<\/strong> \u2014 Send your site's email through an SMTP server so password resets and form messages arrive. Presets for Amazon SES, Brevo, Mailgun, SendGrid, Postmark, Zoho and Gmail; a test email that shows the server's own error; settings can live in wp-config.php. <a href=\"https:\/\/adminkeep.com\/guides\/wordpress-smtp-settings\/\">Guide<\/a><\/li>\n<li><strong>Email Log<\/strong> \u2014 Tools \u2192 Email Log lists the email your site sends, with recipient, subject and whether it was sent or failed, plus filters by status and date and a search. Open any email to see its sender and headers, and the email itself the way it looked when it went out, with remote images blocked. Content storage can be switched off to keep only the envelope. Password-reset and sign-in links are removed before an email is stored. Works with or without the SMTP feature, and with other SMTP plugins too.<\/li>\n<\/ul>\n\n<h4>Performance<\/h4>\n\n<p>A feature you have not enabled registers zero hooks and loads zero assets.<\/p>\n\n<h4>Links<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/adminkeep.com\/\">Website<\/a><\/li>\n<li><a href=\"https:\/\/adminkeep.com\/docs\/\">Documentation<\/a><\/li>\n<li><a href=\"https:\/\/adminkeep.com\/guides\/\">Guides<\/a><\/li>\n<\/ul>\n\n<h3>WP-CLI<\/h3>\n\n<p>Everything on the Adminkeep settings screen, plus the Custom CSS and SMTP screens, can be done from a shell with <code>wp adminkeep<\/code>.<\/p>\n\n<pre><code>wp adminkeep feature list \u2014 every feature and whether it is on\nwp adminkeep feature enable disable_comments \u2014 switch a feature on (or `disable` it)\nwp adminkeep feature set order post_types=post,page \u2014 change a feature's settings\nwp adminkeep comments purge \u2014 delete spam and trashed comments, in batches\nwp adminkeep css set site.css \u2014 replace the Custom CSS from a file\nwp adminkeep smtp set --host=smtp.example.com --port=587 \u2014 configure SMTP\nwp adminkeep smtp test you@example.com \u2014 send a test email and see the server's reply\n<\/code><\/pre>\n\n<p>Run <code>wp help adminkeep<\/code> for the full reference. A change made here is cleaned and checked exactly as it is on the screen, and a mistyped value is refused rather than guessed at.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In your WordPress admin, go to <strong>Plugins \u2192 Add New Plugin<\/strong>, search for \"Adminkeep\" and click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>Open <strong>Settings \u2192 Adminkeep<\/strong>, or the <strong>Settings<\/strong> link under Adminkeep on the Plugins screen. Every feature starts <strong>off<\/strong>; switch on only the ones you want.<\/li>\n<li>To remove the plugin, deactivate and delete it as usual. Uninstalling removes its settings and its own redirect table. Nothing it changed while enabled outlives switching the feature off.<\/li>\n<\/ol>\n\n<p>Or with WP-CLI:<\/p>\n\n<pre><code>wp plugin install adminkeep --activate\n<\/code><\/pre>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20delete%20my%20comments%3F\"><h3>Will this delete my comments?<\/h3><\/dt>\n<dd><p>Not unless you ask it to. Turning Disable Comments on only hides them \u2014 a test asserts the comment\nrows are untouched after a full enable-and-disable cycle.<\/p>\n\n<p>There is a separate cleanup button that does delete, and it deletes <strong>spam and trashed comments\nonly<\/strong> unless you tick the box to include approved ones. It shows the exact count, asks you to\nconfirm, and cannot be undone.<\/p><\/dd>\n<dt id=\"can%20i%20turn%20it%20back%20off%3F\"><h3>Can I turn it back off?<\/h3><\/dt>\n<dd><p>Yes, instantly. There is never a migration to run or a repair step to find.<\/p>\n\n<p>The locks work purely through WordPress filters, so nothing was written to your database to undo \u2014\nswitch one off and your site is exactly as it was. The Content features are deliberately different:\nthey write the things you asked them to write. A copy you made, an order you saved, a file you\nreplaced, a redirect recorded when you renamed a page \u2014 switching the feature off stops it doing\nany more, and leaves what it already did alone. Work you did on purpose should not disappear\nbecause you unticked a checkbox.<\/p><\/dd>\n<dt id=\"does%20this%20actually%20stop%20comment%20spam%20bots%3F\"><h3>Does this actually stop comment spam bots?<\/h3><\/dt>\n<dd><p>Yes. Bots usually POST straight to <code>wp-comments-post.php<\/code> without ever loading your page, so\nhiding the comment form does nothing. Adminkeep refuses those requests with a 403 before\nWordPress processes them, and refuses comment creation through the REST API as well.<\/p><\/dd>\n<dt id=\"is%20installation%20lockdown%20a%20security%20feature%3F\"><h3>Is Installation Lockdown a security feature?<\/h3><\/dt>\n<dd><p>Not exactly, and it would be dishonest to say otherwise. It is enforced in PHP, so anyone with\nfilesystem, database or WP-CLI access can bypass it. It reliably stops accidents and casual\nchanges \u2014 a client uploading a plugin zip from who knows where, or overwriting an installed plugin with one. Treat it\nas a policy guard, not a security boundary.<\/p><\/dd>\n<dt id=\"why%20not%20just%20use%20the%20disallow_file_mods%20constant%3F\"><h3>Why not just use the DISALLOW_FILE_MODS constant?<\/h3><\/dt>\n<dd><p>Because it cannot be switched off from the admin. Once it is in <code>wp-config.php<\/code> you need file\naccess to undo it, which strands people. Installation Lockdown filters capabilities instead, so\nyou can always turn it off from the settings screen. If you want the harder version, the constant\nis still there and this plugin does not interfere with it.<\/p><\/dd>\n<dt id=\"does%20the%20smtp%20feature%20work%20with%20gmail%20or%20microsoft%20365%3F\"><h3>Does the SMTP feature work with Gmail or Microsoft 365?<\/h3><\/dt>\n<dd><p>Gmail and Google Workspace: yes, with an app password. Microsoft 365 and Outlook.com: no \u2014 Microsoft now requires signing in through Microsoft (OAuth) for SMTP, which this feature does not support. A dedicated SMTP plugin is the better choice there.<\/p><\/dd>\n<dt id=\"where%20is%20my%20smtp%20password%20kept%3F\"><h3>Where is my SMTP password kept?<\/h3><\/dt>\n<dd><p>Encrypted in your site's database, which protects it in database backups. For the strongest setup define ADMINKEEP_SMTP_PASS (and the other ADMINKEEP_SMTP_* constants) in wp-config.php: values set there are not saved to the database, and the settings form does not display them.<\/p><\/dd>\n<dt id=\"does%20the%20email%20log%20store%20password-reset%20links%3F\"><h3>Does the email log store password-reset links?<\/h3><\/dt>\n<dd><p>They are removed before an email is stored, along with sign-in and account-activation links. The\ncommon link formats are covered, not every possible one, so treat it as a safeguard rather than a\nguarantee. If you would rather not store email content at all, Email Log has a setting to keep\nonly the envelope \u2014 sender, recipient, subject and status \u2014 and switch content storage off.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20the%20email%20log%20if%20i%20switch%20the%20feature%20off%3F\"><h3>What happens to the email log if I switch the feature off?<\/h3><\/dt>\n<dd><p>Switching it off stops logging. What is already logged stays until you switch it back on, delete\nit, or uninstall. While it is off nothing new is recorded and the entries are not aged out, so if\nyou want the log emptied, empty it first \u2014 from Tools \u2192 Email Log, or with\n    wp adminkeep email-log purge --all \u2014 and then switch the feature off.<\/p><\/dd>\n<dt id=\"can%20i%20manage%20adminkeep%20with%20wp-cli%3F\"><h3>Can I manage Adminkeep with WP-CLI?<\/h3><\/dt>\n<dd><p>Yes, since 1.5.0. <code>wp adminkeep feature list<\/code> shows every feature, and <code>wp help adminkeep<\/code> lists the commands for switching features, changing their settings, cleaning up comments, replacing the Custom CSS, configuring SMTP and choosing whether the settings screen hides unused features for a user. If Installation Lockdown has locked you out of the admin, <code>wp adminkeep feature disable install_lock<\/code> is the way back in.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Fixed: with Installation Lockdown on, \"View details\" for a plugin (from an update notice or a \"Requires:\" line) opened on an error. It now opens; installing from it is still blocked.<\/li>\n<li>New WP-CLI commands: <code>wp adminkeep view get|hide-unused|show-all --user=&lt;user&gt;<\/code> read and set whether the settings screen hides unused features for that user.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>New: Email Log. Tools \u2192 Email Log lists the email your site sends, with recipient, subject and whether it was sent or failed, plus filters by status and date and a search; the sender, headers and content are one click away in the preview.<\/li>\n<li>New: Email Log filters sit in the list's top bar, with a Period filter (1 hour to 30 days, or a custom date range), and Screen Options shows or hides columns, including a From column that starts hidden.<\/li>\n<li>New: Preview a logged email in a window, rendered as it was sent, with its source a tab away. Scripts and remote images are blocked in the preview. Emails that carry both HTML and plain text show each in its own tab.<\/li>\n<li>The log records the sender an SMTP plugin really used, even one that sets it at send time such as FluentSMTP, with the sender's name.<\/li>\n<li>Password-reset, sign-in and activation links are removed before an email is stored, and you can switch content storage off.<\/li>\n<li>Old entries are deleted automatically (30 days by default; choose from 7 days up to 2 years) and the log is trimmed to the newest 10,000.<\/li>\n<li>New WP-CLI commands: <code>wp adminkeep email-log list|get|count|purge<\/code>.<\/li>\n<li>New: bring your history across from the Email Log plugin with <code>wp adminkeep email-log import email-log<\/code>. Emails are stored the way Adminkeep would have stored them (links removed, the retention setting respected), running it again only adds what is new, and the other plugin's log is left as it was.<\/li>\n<li>New: while the Email Log plugin is active, Tools \u2192 Email Log shows a \"Copy from Email Log\" button that does the same import from the screen, and says how many emails it copied and skipped.<\/li>\n<li>Works with or without the SMTP feature, and only administrators can open the log.<\/li>\n<li>Changed: Adminkeep's settings moved from their own top-level menu to <strong>Settings \u2192 Adminkeep<\/strong>. Old links and bookmarks still work, and the Plugins screen now has a Settings link.<\/li>\n<li>Fixed: saving the SMTP screen while ADMINKEEP_SMTP_* constants were set in wp-config.php cleared the saved values for those fields, so removing the constants later left SMTP without a host or password. The saved values are now kept, as <code>wp adminkeep smtp set<\/code> already did.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>New: \"Hide unused features\" on the settings page. Switch it on and the menu lists only the features you use. Search still finds the rest, and each administrator has their own setting.<\/li>\n<li>Improved: the Overview lists the features you have switched on first, and its \"features enabled\" count updates as soon as you save.<\/li>\n<li>Improved: the Registered column on the Users screen is narrower and shows a short month (Jan 10, 2024).<\/li>\n<li>Fixed: the SMTP test email was sent twice.<\/li>\n<li>Fixed: notices from other plugins were squeezed into the Adminkeep header on the settings page. They now sit above it.<\/li>\n<li>Fixed: after switching on Custom CSS or SMTP, the link to its screen appears as soon as you save, without reloading.<\/li>\n<li>Fixed: the settings filter only searched the first group.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>New: WP-CLI. <code>wp adminkeep<\/code> switches features on and off, changes their settings, cleans up comments, replaces the Custom CSS, configures SMTP and sends a test email. Run <code>wp help adminkeep<\/code> to see every command.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>New: SMTP, in a new Email group. Send your site's email through any SMTP server, with provider presets, a test email that shows the server's own reply, and settings that can live in wp-config.php.<\/li>\n<li>Changed: screens Adminkeep adds elsewhere in the admin (SMTP, Custom CSS, Order, Replace file) now carry a small Adminkeep mark at the start of the heading, linking to the Adminkeep settings. The settings page shows the mark too.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>New: User Registration Date \u2014 a sortable Registered column on the Users screen, in a new Admin group. It uses the date WordPress already stores, so every existing user has one.<\/li>\n<li>Changed: the switch on each panel now reads \"Enable this feature\".<\/li>\n<li>Removed: the Overview note about Version Lock leaving in 1.1.0.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: Custom CSS \u2014 site-level front-end CSS under Appearance \u2192 Custom CSS. It belongs to the site, not the theme, so it stays when you switch themes.<\/li>\n<li>Changed: internal names now match the plugin name. Settings and redirects are carried over automatically.<\/li>\n<li>Changed: plugin and author links now point to adminkeep.com.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Email log, custom CSS, disable comments, site lockdown and more admin enhancements. Every feature is off until you switch it on.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/370020","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=370020"}],"author":[{"embeddable":true,"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sajib1223"}],"wp:attachment":[{"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=370020"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=370020"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=370020"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=370020"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=370020"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ta.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=370020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}