{"id":337542,"date":"2026-07-13T14:25:47","date_gmt":"2026-07-13T14:25:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/jditc-wordfence-2fa-for-ultimate-member\/"},"modified":"2026-08-13T03:43:46","modified_gmt":"2026-08-13T03:43:46","slug":"jditc-add-wordfence-2fa-to-ultimate-member","status":"publish","type":"plugin","link":"https:\/\/it.wordpress.org\/plugins\/jditc-add-wordfence-2fa-to-ultimate-member\/","author":129637,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.2","stable_tag":"1.1.2","tested":"7.0.4","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"JDITC Add Wordfence 2FA to Ultimate Member","header_author":"Justdave IT Consulting LLC","header_description":"Adds Wordfence 2FA compatibility to Ultimate Member login forms.","assets_banners_color":"","last_updated":"2026-08-13 03:43:46","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/justdaveitconsulting.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":170,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"justdave","date":"2026-07-13 14:25:38"},"1.1":{"tag":"1.1","author":"justdave","date":"2026-08-13 03:18:48"},"1.1.1":{"tag":"1.1.1","author":"justdave","date":"2026-08-13 03:30:42"},"1.1.2":{"tag":"1.1.2","author":"justdave","date":"2026-08-13 03:43:46"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3606205,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3606205,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2","1.1","1.1.1","1.1.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3644165,"resolution":"1","location":"assets","locale":"","width":1568,"height":806},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3606205,"resolution":"2","location":"assets","locale":"","width":1582,"height":400}},"screenshots":{"1":"Ultimate Member login form before 2FA prompt is needed","2":"Wordfence 2FA prompt inside an Ultimate Member login form"}},"plugin_section":[],"plugin_tags":[9211,1229,14513,14385],"plugin_category":[],"plugin_contributors":[219927],"plugin_business_model":[],"class_list":["post-337542","plugin","type-plugin","status-publish","hentry","plugin_tags-2fa","plugin_tags-login-security","plugin_tags-ultimate-member","plugin_tags-wordfence","plugin_contributors-justdave","plugin_committers-justdave"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/jditc-add-wordfence-2fa-to-ultimate-member\/assets\/icon-128x128.png?rev=3606205","icon_2x":"https:\/\/ps.w.org\/jditc-add-wordfence-2fa-to-ultimate-member\/assets\/icon-256x256.png?rev=3606205","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/jditc-add-wordfence-2fa-to-ultimate-member\/assets\/screenshot-1.png?rev=3644165","caption":"Ultimate Member login form before 2FA prompt is needed"},{"src":"https:\/\/ps.w.org\/jditc-add-wordfence-2fa-to-ultimate-member\/assets\/screenshot-2.png?rev=3606205","caption":"Wordfence 2FA prompt inside an Ultimate Member login form"}],"raw_content":"<!--section=description-->\nJDITC Add Wordfence 2FA to Ultimate Member\n\n<p>This WordPress plugin adds support for Wordfence Security login methods such as 2FA (second factor authentication) and Passkeys to Ultimate Member login forms. It keeps Ultimate Member in control of the form UX while deferring credential validation to Wordfence\u2019s own login security flow when a second factor is required or a Passkey is used.<\/p>\n\n<p>You must have both Ultimate Member and Wordfence (or Wordfence Security) installed to use this.<\/p>\n\n<p>A Security panel is added to the Accounts page in Ultimate Member to allow end users to set up their 2FA or Passkeys, if you have enabled them to.<\/p>\n\n<p>Bug reports and feature requests can be filed at the <a href=\"https:\/\/github.com\/justdave\/jditc-add-wordfence-2fa-to-ultimate-member\/issues\">GitHub repository<\/a>.<\/p>\n\n<!--section=changelog-->\n<h4>1.1.2 \/ 2026-08-12<\/h4>\n\n<ul>\n<li>Updated screenshots and text description for plugin directory to include Passkey support.<\/li>\n<\/ul>\n\n<h4>1.1.1 \/ 2026-08-12<\/h4>\n\n<ul>\n<li>Clean up PHPCS warnings (code stability)<\/li>\n<\/ul>\n\n<h4>1.1 \/ 2026-08-12<\/h4>\n\n<ul>\n<li>Added support for passkeys that was just added in WordFence 9.0.<\/li>\n<li>Added a Security tab to the UM Accounts page which contains the 2FA and Passkey setup if it's enabled, so end users can actually set them up.<\/li>\n<\/ul>\n\n<h4>1.0.2 \/ 2026-07-13<\/h4>\n\n<ul>\n<li>Update release process to push to WordPress Plugin Directory.<\/li>\n<\/ul>\n\n<h4>1.0.1 \/ 2026-07-09<\/h4>\n\n<ul>\n<li>Move inline Javascript to standalone js files to reduce complexity.<\/li>\n<li>Rename plugin to \"JDITC Add Wordfence 2FA to Ultimate Member\" and slug to \"jditc-add-wordfence-2fa-to-ultimate-member\" for WordPress.org compliance.<\/li>\n<\/ul>\n\n<h4>1.0 \/ 2026-07-07<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Adds Wordfence 2FA compatibility to Ultimate Member login forms.<\/li>\n<li>Preserves Wordfence login-security errors inside the Ultimate Member UI.<\/li>\n<li>Uses a two-step login flow so 2FA prompts appear only when Wordfence requires them.<\/li>\n<\/ul>","raw_excerpt":"JDITC Add Wordfence 2FA to Ultimate Member integrates Wordfence two-factor authentication and Passkeys into Ultimate Member login forms.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/337542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=337542"}],"author":[{"embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/justdave"}],"wp:attachment":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=337542"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=337542"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=337542"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=337542"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=337542"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=337542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}