{"id":265238,"date":"2026-01-13T17:58:58","date_gmt":"2026-01-13T17:58:58","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/loginberry\/"},"modified":"2026-04-17T20:32:07","modified_gmt":"2026-04-17T20:32:07","slug":"loginberry","status":"publish","type":"plugin","link":"https:\/\/ibo.wordpress.org\/plugins\/loginberry\/","author":23196452,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.1","stable_tag":"1.0.1","tested":"6.9.4","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"LoginBerry","header_author":"BerryPress","header_description":"Require users to verify their email address before accessing the site","assets_banners_color":"99c9ff","last_updated":"2026-04-17 20:32:07","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/berrypress.com\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":171,"num_ratings":0,"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":"berrypress","date":"2026-01-13 17:58:29"},"1.0.1":{"tag":"1.0.1","author":"berrypress","date":"2026-04-17 20:32:07"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3509272,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3509272,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3509272,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3509272,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3509272,"resolution":"1","location":"assets","locale":""},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3509272,"resolution":"10","location":"assets","locale":""},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3509272,"resolution":"11","location":"assets","locale":""},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3509272,"resolution":"12","location":"assets","locale":""},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3509272,"resolution":"13","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3509272,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3509272,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3509272,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3509272,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3509272,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3509272,"resolution":"7","location":"assets","locale":""},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3509272,"resolution":"8","location":"assets","locale":""},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3509272,"resolution":"9","location":"assets","locale":""}},"screenshots":{"1":"BerryPress \u2192 LoginBerry dashboard and feature overview.","2":"Two-factor authentication settings with per-role modes.","3":"Account verification settings including WooCommerce order options.","4":"Login logs admin list."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[9211,18971,1229,35316,1909],"plugin_category":[],"plugin_contributors":[237655],"plugin_business_model":[],"class_list":["post-265238","plugin","type-plugin","status-publish","hentry","plugin_tags-2fa","plugin_tags-email-verification","plugin_tags-login-security","plugin_tags-passwordless-login","plugin_tags-two-factor-authentication","plugin_contributors-berrypress","plugin_committers-berrypress"],"banners":{"banner":"https:\/\/ps.w.org\/loginberry\/assets\/banner-772x250.png?rev=3509272","banner_2x":"https:\/\/ps.w.org\/loginberry\/assets\/banner-1544x500.png?rev=3509272","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/loginberry\/assets\/icon-128x128.png?rev=3509272","icon_2x":"https:\/\/ps.w.org\/loginberry\/assets\/icon-256x256.png?rev=3509272","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/loginberry\/assets\/screenshot-1.png?rev=3509272","caption":"BerryPress \u2192 LoginBerry dashboard and feature overview."},{"src":"https:\/\/ps.w.org\/loginberry\/assets\/screenshot-2.png?rev=3509272","caption":"Two-factor authentication settings with per-role modes."},{"src":"https:\/\/ps.w.org\/loginberry\/assets\/screenshot-3.png?rev=3509272","caption":"Account verification settings including WooCommerce order options."},{"src":"https:\/\/ps.w.org\/loginberry\/assets\/screenshot-4.png?rev=3509272","caption":"Login logs admin list."},{"src":"https:\/\/ps.w.org\/loginberry\/assets\/screenshot-5.png?rev=3509272","caption":""},{"src":"https:\/\/ps.w.org\/loginberry\/assets\/screenshot-6.png?rev=3509272","caption":""},{"src":"https:\/\/ps.w.org\/loginberry\/assets\/screenshot-7.png?rev=3509272","caption":""},{"src":"https:\/\/ps.w.org\/loginberry\/assets\/screenshot-8.png?rev=3509272","caption":""},{"src":"https:\/\/ps.w.org\/loginberry\/assets\/screenshot-9.png?rev=3509272","caption":""},{"src":"https:\/\/ps.w.org\/loginberry\/assets\/screenshot-10.png?rev=3509272","caption":""},{"src":"https:\/\/ps.w.org\/loginberry\/assets\/screenshot-11.png?rev=3509272","caption":""},{"src":"https:\/\/ps.w.org\/loginberry\/assets\/screenshot-12.png?rev=3509272","caption":""},{"src":"https:\/\/ps.w.org\/loginberry\/assets\/screenshot-13.png?rev=3509272","caption":""}],"raw_content":"<!--section=description-->\n<p>LoginBerry bundles <strong>account verification<\/strong>, <strong>two-factor authentication (2FA)<\/strong>, <strong>passwordless login<\/strong>, and <strong>login logs<\/strong>. Each feature can be enabled or disabled independently. Outgoing codes are delivered by <strong>email<\/strong>.<\/p>\n\n<p>The plugin works for standard WordPress sites. When WooCommerce is active, additional customer- and order-related options are available (for example 2FA on the My Account login form and optional account activation tied to orders).<\/p>\n\n<h4>User-facing behavior (when features are enabled)<\/h4>\n\n<ul>\n<li><strong>Account verification:<\/strong> After registration, the user signs in and completes activation on the configured activation page using a six-digit code sent by email.<\/li>\n<li><strong>Two-factor authentication:<\/strong> After a successful username and password, the user enters a second code sent by email. Per-role modes are Required, Optional, or Disabled.<\/li>\n<li><strong>Passwordless login:<\/strong> On <code>wp-login.php<\/code>, eligible roles may request a one-time email code instead of entering a password.<\/li>\n<li><strong>Login logs:<\/strong> Success and failure records are listed in the WordPress admin.<\/li>\n<\/ul>\n\n<p>Authentication codes are email-based; end users do not install a separate authenticator app for the flows described here.<\/p>\n\n<h4>Account verification<\/h4>\n\n<ul>\n<li>New accounts receive a six-digit activation code by email.<\/li>\n<li>After fifteen failed activation attempts, the account is locked until an administrator intervenes.<\/li>\n<li>Administrators can resend codes, activate accounts manually, and unlock accounts from <strong>Users \u2192 All Users<\/strong>.<\/li>\n<\/ul>\n\n<h4>Two-factor authentication (2FA)<\/h4>\n\n<ul>\n<li>Per-role setting: Required, Optional, or Disabled.<\/li>\n<li>Optional mode allows users to enable 2FA from the profile when permitted by role.<\/li>\n<li>Supported on <code>wp-login.php<\/code> and on the WooCommerce <strong>My Account<\/strong> login form.<\/li>\n<\/ul>\n\n<h4>Passwordless login<\/h4>\n\n<p>Let users log in without a password - just enter a username or email and receive a one-time login code. Improves user experience while maintaining strong security through email verification.<\/p>\n\n<ul>\n<li>Toggle between password and passwordless login on wp-login.php<\/li>\n<li>One-time email codes on <code>wp-login.php<\/code>, controlled per role.<\/li>\n<li>When both passwordless login and 2FA are enabled for the same role, the passwordless flow does not require a separate 2FA step (email possession is already verified).<\/li>\n<\/ul>\n\n<h4>WooCommerce<\/h4>\n\n<ul>\n<li>Optional automatic account activation when an WooCommerce order is created.<\/li>\n<li>Optional restriction so that only <strong>paid<\/strong> orders trigger activation.<\/li>\n<li>Integration points include classic checkout, block checkout (Store API), and paid-order completion hooks, as implemented in the plugin.<\/li>\n<\/ul>\n\n<h4>Login logs<\/h4>\n\n<p>Monitor all login activity on your site. Essential for detecting suspicious behavior and meeting security compliance requirements for e-commerce stores.<\/p>\n\n<ul>\n<li>Records successful and failed login attempts<\/li>\n<li>Logs username, email, IP address, and timestamp<\/li>\n<li>View all logs in a dedicated admin page with sortable columns<\/li>\n<li>Identify patterns of brute force attacks and suspicious login activity<\/li>\n<li>Audit trail for security compliance and fraud investigation<\/li>\n<\/ul>\n\n<h4>Admin interface<\/h4>\n\n<ul>\n<li>Centralized settings under <strong>BerryPress \u2192 LoginBerry<\/strong>, with separate screens per feature.<\/li>\n<\/ul>\n\n<h4>Email templates<\/h4>\n\n<p>HTML email templates for activation, 2FA, and passwordless login ship in the plugin <code>templates\/<\/code> directory. To override, copy the desired template into the active theme or child theme under <code>templates\/loginberry\/<\/code> (see each template file header for the exact path).<\/p>\n\n<h4>Email delivery<\/h4>\n\n<p>Reliable outbound email is required for codes to arrive. Typical setups use the hosting provider\u2019s mail relay, a transactional email API (for example Brevo, Mailchimp Transactional \/ Mandrill, Postmark, SendGrid, Amazon SES), or a WordPress plugin that sends mail via SMTP or a provider API. Test delivery with a real signup or code request before relying on the feature in production.<\/p>\n\n<h4>Typical use cases<\/h4>\n\n<ul>\n<li>Reducing unwanted or automated registrations and limiting abuse of disposable email addresses.<\/li>\n<li>Verifying that a customer or member controls the email address on file.<\/li>\n<li>Adding a second factor after password entry for selected roles.<\/li>\n<li>Reviewing login success and failure history in the admin.<\/li>\n<li>WooCommerce: applying optional post-order account activation, including a paid-order-only mode where configured.<\/li>\n<\/ul>\n\n<h4>Roadmap<\/h4>\n\n<p>LoginBerry is a brand new plugin and we are improving it quickly based on real user feedback. If you have ideas, feature requests, or run into a theme-specific styling issue, we would love to hear from you.<\/p>\n\n<p>Planned work includes:<\/p>\n\n<ul>\n<li>Configurable failed-attempt limits (instead of the fixed fifteen for activation lockout)<\/li>\n<li>Track last login time for each user<\/li>\n<li>Custom activation page URL<\/li>\n<li>Custom redirect URL after successful verification<\/li>\n<li>Rate limiting on code verification attempts<\/li>\n<li>Social login options<\/li>\n<li>Improved styling flexibility and theme compatibility<\/li>\n<\/ul>\n\n<p>Feedback and compatibility reports are welcome via the plugin support channels. New features are prioritized based on user feedback.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install LoginBerry from <strong>Plugins \u2192 Add New<\/strong> in WordPress, or upload the ZIP under <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Open <strong>BerryPress \u2192 LoginBerry<\/strong> and enable the desired features (Account Verification, Two-Factor Auth, Passwordless Login, Login Logs).<\/li>\n<li>For account verification, create a page with the slug <code>account-activate<\/code> and add the shortcode <code>[loginberry_account_activate]<\/code>. The Account Verification settings screen includes setup guidance.<\/li>\n<li>Send a test code to an administrator account and confirm that email delivery works with your hosting or mail provider configuration.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20have%20to%20enable%20every%20feature%3F\"><h3>Do I have to enable every feature?<\/h3><\/dt>\n<dd><p>No. Each feature is independent. You may enable only the components you need.<\/p><\/dd>\n<dt id=\"what%20are%20the%20server%20requirements%3F\"><h3>What are the server requirements?<\/h3><\/dt>\n<dd><p>WordPress 6.0 or newer, PHP 8.0 or newer, and reliable outbound email.<\/p><\/dd>\n<dt id=\"why%20are%20users%20not%20receiving%20emails%3F\"><h3>Why are users not receiving emails?<\/h3><\/dt>\n<dd><p>The site must be able to send email. Common approaches include the host\u2019s SMTP relay, a transactional email provider, or a WordPress plugin that sends via SMTP or an HTTP API. Verify end-to-end delivery with a test message after any mail configuration change.<\/p><\/dd>\n<dt id=\"how%20do%20i%20enable%20two-factor%20authentication%3F\"><h3>How do I enable two-factor authentication?<\/h3><\/dt>\n<dd><p>Go to <strong>BerryPress \u2192 LoginBerry \u2192 Two Factor Auth<\/strong>, enable the feature, and set each role to Required, Optional, or Disabled.<\/p><\/dd>\n<dt id=\"how%20does%20passwordless%20login%20work%3F\"><h3>How does passwordless login work?<\/h3><\/dt>\n<dd><p>When enabled for a role, users on <code>wp-login.php<\/code> can request a six-digit code by email instead of entering a password.<\/p><\/dd>\n<dt id=\"can%20i%20use%202fa%20and%20passwordless%20login%20together%3F\"><h3>Can I use 2FA and passwordless login together?<\/h3><\/dt>\n<dd><p>Yes. When both are enabled for the same role, the passwordless login flow skips the separate 2FA step because possession of the email inbox has already been verified.<\/p><\/dd>\n<dt id=\"where%20are%20the%20email%20templates%3F\"><h3>Where are the email templates?<\/h3><\/dt>\n<dd><p>In the plugin <code>templates\/<\/code> directory: <code>activation-email.php<\/code>, <code>2fa-email.php<\/code>, <code>passwordless-login-email.php<\/code>. Override by copying to the theme where supported.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20all%20themes%3F\"><h3>Does it work with all themes?<\/h3><\/dt>\n<dd><p>The plugin uses clean WordPress markup. Layout may vary slightly depending on theme styles, so if you see any styling quirks, feel free to reach out.<\/p><\/dd>\n<dt id=\"does%20loginberry%20work%20with%20woocommerce%3F\"><h3>Does LoginBerry work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. WooCommerce is optional. Without WooCommerce, verification (if enabled), 2FA on <code>wp-login.php<\/code>, passwordless login (if enabled), and login logs remain available. With WooCommerce active, 2FA is also available on the <strong>My Account<\/strong> login form, and account verification may optionally be tied to order creation, including a <strong>paid orders only<\/strong> option.<\/p><\/dd>\n<dt id=\"does%20passwordless%20login%20work%20on%20woocommerce%20checkout%20or%20arbitrary%20custom%20login%20forms%3F\"><h3>Does passwordless login work on WooCommerce checkout or arbitrary custom login forms?<\/h3><\/dt>\n<dd><p>Passwordless login is implemented for the standard WordPress login screen (<code>wp-login.php<\/code>). WooCommerce My Account login supports two-factor authentication as described above; passwordless login on other forms is outside the current scope.<\/p><\/dd>\n<dt id=\"can%20admins%20activate%20a%20user%20manually%3F\"><h3>Can admins activate a user manually?<\/h3><\/dt>\n<dd><p>Yes. In Users \u2192 All Users you will see links to activate accounts, resend codes, or unlock accounts.<\/p><\/dd>\n<dt id=\"can%20administrators%20help%20users%20who%20cannot%20activate%20or%20who%20are%20locked%3F\"><h3>Can administrators help users who cannot activate or who are locked?<\/h3><\/dt>\n<dd><p>Yes. Under <strong>Users \u2192 All Users<\/strong>, administrators can view status, resend codes, activate accounts manually, and unlock locked accounts when applicable.<\/p><\/dd>\n<dt id=\"what%20if%20an%20administrator%20is%20locked%20out%20or%20no%20other%20administrator%20can%20help%3F\"><h3>What if an administrator is locked out or no other administrator can help?<\/h3><\/dt>\n<dd><p>Another administrator can usually resolve the issue under <strong>Users \u2192 All Users<\/strong>. If the site cannot be accessed from wp-admin, deactivate the plugin using standard WordPress recovery methods (for example renaming the plugin directory via FTP or SFTP, using WP-CLI where available, editing the <code>active_plugins<\/code> option after a database backup, or WordPress Recovery Mode when applicable).<\/p>\n\n<p>Deactivating plugins when wp-admin is unavailable: https:\/\/wordpress.org\/documentation\/article\/how-to-deactivate-all-plugins-when-not-able-to-access-wp-admin\/<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1 - April 17, 2026<\/h4>\n\n<p><strong>Added and changed<\/strong><\/p>\n\n<ul>\n<li>Two-factor authentication (2FA) via email codes; per-role Required, Optional, or Disabled; supported on <code>wp-login.php<\/code> and WooCommerce My Account login.<\/li>\n<li>Passwordless login with one-time email codes on <code>wp-login.php<\/code>; when both passwordless and 2FA apply to the same role, the extra 2FA step after passwordless is omitted.<\/li>\n<li>Login logging with user, email, IP, and timestamp.<\/li>\n<li>BerryPress \u2192 LoginBerry admin area with separate settings pages per feature.<\/li>\n<li>Optional 2FA enrollment from the user profile when the role uses Optional mode.<\/li>\n<li>HTML email templates for activation, 2FA, and passwordless login (theme overrides supported).<\/li>\n<li>WooCommerce: optional automatic customer activation on order creation; optional <strong>paid orders only<\/strong> mode; hooks for classic checkout, block (Store API) checkout, and paid-order flows.<\/li>\n<li>Locked activation screen messaging and a log out link after repeated failed activation attempts.<\/li>\n<li>Default verification behavior for new installs; existing sites retain prior behavior via configuration versioning where applicable.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial email-based account verification before site access (activation page and shortcode).<\/li>\n<\/ul>","raw_excerpt":"Complete login security for WordPress &amp; WooCommerce: LoginBerry adds email-based account verification, optional two-factor authentication (2FA), o &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/265238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=265238"}],"author":[{"embeddable":true,"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/berrypress"}],"wp:attachment":[{"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=265238"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=265238"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=265238"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=265238"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=265238"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ibo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=265238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}