You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Bump Two-Factor plugin version to 0.16.0
Update plugin header and TWO_FACTOR_VERSION constant from 0.15.0 to 0.16.0 in two-factor.php to reflect a new release.
* Bump stable tag to 0.16.0
Update readme.txt plugin header: change Stable tag from 0.15.0 to 0.16.0 to reflect the new release version.
* Add 0.16.0 release notes to docs
Add a 0.16.0 entry to CHANGELOG.md and readme.txt documenting breaking changes, new features, bug fixes, development updates, and dependency bumps. Highlights include removal of legacy FIDO U2F support, a new wp‑admin settings page, a support links filter, backup codes UI refresh, TOTP secret cleanup when disabled, provider handling hardening, accessibility and PHPCS fixes, moving inline assets to enqueued scripts/styles, and bumps for `qs` and `basic-ftp`.
* Update documentation links and names
Fix various doc references and typos:
- RELEASING.md: correct milestone link to the two-factor repository.
- TESTS.md: update REST API callback name to `rest_api_can_edit_user_and_update_two_factor_options`, rename backup codes filter to `two_factor_backup_code_length`, and correct the test fixture filename to `class-two-factor-dummy-secure.php`.
- readme.md: clarify deployment wording to note versioned releases are deployed from Git tags and reference the workflow.
- readme.txt: fix spacing/typo in the `two_factor_after_authentication_input` action description.
These changes align the documentation with current code and repo structure.
* Add Brian Haas and qrcode-generator to credits
Add Brian Haas (@masteradhoc) to CREDITS.md (curators and contributors) and include the qrcode-generator library in the Libraries section. Also update readme.txt contributors to list masteradhoc.
* Docs: fix formatting and whitespace in markdown
Normalize formatting and whitespace across documentation files. CHANGELOG.md: adjust spacing between entries, add blank lines for readability, and escape PHP globals in a historical note. CREDITS.md: fix trailing/extra blank line around contributors entry. RELEASING.md: remove extra spaces in the introductory paragraph. readme.md: add spacing after the title and tidy the npm env command line. These are non-functional documentation cleanups to improve consistency and readability.
* Add additional files to .distignore
Exclude additional documentation, credits and CI/test files from distribution. This commit appends AGENTS.md, CHANGELOG.md, CLAUDE.md, CREDITS.md, codecov.yml and TESTS.md to .distignore so these files are omitted from packaged/dist artifacts.
* Add missing contrib
* Update CHANGELOG.md
* Update CHANGELOG.md
Copy file name to clipboardExpand all lines: CHANGELOG.md
+70-1Lines changed: 70 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,39 @@
2
2
3
3
All notable changes to this project will be documented in this file, per [the Keep a Changelog standard](http://keepachangelog.com/), and will adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
4
4
5
+
## [0.16.0] - 2026-03-27
6
+
7
+
### Breaking Changes
8
+
9
+
- Remove legacy FIDO U2F provider support by [#439](https://github.com/WordPress/two-factor/pull/439).
10
+
11
+
### New Features
12
+
13
+
- Add a dedicated settings page for plugin configuration in wp-admin by [#764](https://github.com/WordPress/two-factor/pull/764).
14
+
- Add a new support links filter so consumers can customize contextual recovery/help links by [#615](https://github.com/WordPress/two-factor/pull/615).
15
+
- Refresh backup codes UI styling and behavior by [#804](https://github.com/WordPress/two-factor/pull/804).
16
+
17
+
### Bug Fixes
18
+
19
+
- Delete stored TOTP secrets when the TOTP provider is disabled by [#802](https://github.com/WordPress/two-factor/pull/802).
20
+
- Harden provider handling so login/settings checks do not fail open when expected providers disappear by [#586](https://github.com/WordPress/two-factor/pull/586).
21
+
- Ensure only configured providers are saved and enabled in user settings by [#798](https://github.com/WordPress/two-factor/pull/798).
22
+
- Improve settings-page accessibility and fix profile settings link behavior by [#828](https://github.com/WordPress/two-factor/pull/828) and [#830](https://github.com/WordPress/two-factor/pull/830).
23
+
- Resolve PHPCS violations in provider files by [#851](https://github.com/WordPress/two-factor/pull/851).
24
+
25
+
### Development Updates
26
+
27
+
- Move login styles and provider scripts from inline output to enqueued/external assets by [#807](https://github.com/WordPress/two-factor/pull/807) and [#814](https://github.com/WordPress/two-factor/pull/814).
28
+
- Improve inline docs and static-analysis compatibility (WPCS/phpstan) by [#810](https://github.com/WordPress/two-factor/pull/810), [#815](https://github.com/WordPress/two-factor/pull/815), and [#817](https://github.com/WordPress/two-factor/pull/817).
29
+
- Improve unit test reliability and integrate CI code coverage reporting by [#825](https://github.com/WordPress/two-factor/pull/825), [#841](https://github.com/WordPress/two-factor/pull/841), and [#842](https://github.com/WordPress/two-factor/pull/842).
30
+
- Update readme docs and modernize CI workflow infrastructure by [#835](https://github.com/WordPress/two-factor/pull/835), [#837](https://github.com/WordPress/two-factor/pull/837), [#843](https://github.com/WordPress/two-factor/pull/843), and [#849](https://github.com/WordPress/two-factor/pull/849).
31
+
32
+
### Dependency Updates
33
+
34
+
- Bump `qs` from 6.14.1 to 6.14.2 by [#794](https://github.com/WordPress/two-factor/pull/794).
35
+
- Bump `basic-ftp` from 5.0.5 to 5.2.0 by [#816](https://github.com/WordPress/two-factor/pull/816).
36
+
- Apply automatic lint/format updates and associated Composer package refreshes by [#799](https://github.com/WordPress/two-factor/pull/799).
37
+
5
38
## [0.15.0] - 2026-02-13
6
39
7
40
### Breaking Changes
@@ -60,10 +93,13 @@ All notable changes to this project will be documented in this file, per [the Ke
60
93
- Bump webpack from 5.101.3 to 5.105.0 by @dependabot[bot] in [#780](https://github.com/WordPress/two-factor/pull/780)
61
94
62
95
## [0.14.2] - 2025-12-11
96
+
63
97
### New Features
98
+
64
99
- Add filter for rest_api_can_edit_user_and_update_two_factor_options by @gutobenn in #689
65
100
66
101
### Development Updates
102
+
67
103
- Remove Coveralls tooling and add inline coverage report by @kasparsd in #717
68
104
- Update blueprint path to pull from main branch instead of a deleted f… by @georgestephanis in #719
69
105
- Fix blueprint and wporg asset deploys by @kasparsd in #734
@@ -75,34 +111,42 @@ All notable changes to this project will be documented in this file, per [the Ke
75
111
- Mark as tested with the latest WP core version by @kasparsd in #730
76
112
77
113
## [0.14.1] - 2025-09-05
114
+
78
115
- Don't URI encode the TOTP url for display. by @dd32 in #711
79
116
- Removed the duplicate Security.md by @slvignesh05 in #712
80
117
- Fixed linting issues by @sudar in #707
81
118
- Update development dependencies and fix failing QR unit test by @kasparsd in #714
82
119
- Trigger checkbox js change event by @gedeminas in #688
83
120
84
121
## [0.14.0] - 2025-07-03
122
+
85
123
### Features
124
+
86
125
- Enable Application Passwords for REST API and XML-RPC authentication (by default) by @joostdekeijzer in #697 and #698. Previously this required two_factor_user_api_login_enable filter to be set to true which is now the default during application password auth. XML-RPC login is still disabled for regular user passwords.
87
126
- Label recommended methods to simplify the configuration by @kasparsd in #676 and #675
88
127
89
128
### Documentation
129
+
90
130
- Add WP.org plugin demo by @kasparsd in #667
91
131
- Document supported versions of WP core and PHP by @jeffpaul in #695
92
132
- Document the release process by @jeffpaul in #684
93
133
94
134
### Tooling
135
+
95
136
- Remove duplicate WP.org screenshots and graphics from SVN trunk by @jeffpaul in #683
96
137
97
138
## [0.13.0] - 2025-04-02
139
+
98
140
- Add two_factor_providers_for_user filter to limit two-factor providers available to each user by @kasparsd in #669
99
141
- Update automated testing to cover PHP 8.4 and default to PHP 8.3 by @BrookeDot in #665
100
142
101
143
## [0.12.0] - 2025-02-14
144
+
102
145
- Simplify the Two Factor settings in user profile by @kasparsd in #654
103
146
- Fix PHP 8.4 Implicitly marking parameter $previous as nullable is deprecated by @BrookeDot in #664
104
147
105
148
## [0.11.0] - 2025-01-09
149
+
106
150
- Remove duplicate two_factor_providers filter calls to allow disabling core providers by @kasparsd in #651
107
151
- Encourage setting up a second recovery method by @kasparsd in #642
108
152
- Focus in code input when totp is checked by @thrijith in #645
@@ -111,6 +155,7 @@ All notable changes to this project will be documented in this file, per [the Ke
111
155
- Enable TOTP method when method is configured by @kasparsd in #643
112
156
113
157
## [0.10.0] - 2024-12-02
158
+
114
159
- Bump minimum WP to 6.3, minimum PHP to 7.2. by @dd32 in #625
115
160
- Rely on just-in-time translation loading by @swissspidy in #608
116
161
- Update/headers by @jeffpaul in #610
@@ -135,10 +180,12 @@ All notable changes to this project will be documented in this file, per [the Ke
135
180
- Bump symfony/process from 5.4.40 to 5.4.46 by @dependabot in #649
136
181
137
182
## [0.9.1] - 2024-04-25
183
+
138
184
- Remove trailing commas in parameters to avoid syntax error with some PHP versions (ex. 7.2.x) by @KZeni in #604
139
185
- Ensure PHP 5.6+ support during CI to avoid breaking changes by @kasparsd in #605
140
186
141
187
## [0.9.0] - 2024-04-25
188
+
142
189
- Users are now asked to re-authenticate with their two-factor before making changes to their two-factor settings #529. This builds on #528 which associates each login session with the two-factor login meta data for improved handling of that session.
143
190
- Fix typo by @pkevan in #551
144
191
- Add a filter to filter the classname used for a provider by @dd32 in #546
@@ -162,15 +209,18 @@ All notable changes to this project will be documented in this file, per [the Ke
162
209
- Bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in #582
163
210
164
211
## [0.8.2] - 2023-09-04
212
+
165
213
- Improved error handling in WP_Two_Factor_Email::generate_code() by ensuring $user_id is a valid WP_User object. Props @apokalyptique. See #560.
166
214
- Fixed a bug that could cause a fatal error when using non-object values in wp_get_current_user() by adding type checks. Props @apokalyptique. See #561.
167
215
- Fixed "Call to a member function is_locked()" fatal by checking if $provider is an object before method access. Props @apokalyptique. See #578.
168
216
- Prevented Call to a member function exists() fatal error by verifying $provider is an object before invoking method calls. Props @apokalyptique. See #552.
169
217
170
218
## [0.8.1] - 2023-03-27
219
+
171
220
- Remove unnecessary comma to fix fatal error on PHP 7.2 #547
172
221
173
222
## [0.8.0] - 2023-03-27
223
+
174
224
- Reduce the login nonce expiration from 60 minutes to 10 minutes by default, and include user ID in the login nonce to make them unique #473.
175
225
- Replace QR generation for TOTP secrets with local Javascript tooling instead of Google Charts API #487 and #495.
176
226
- Fix Backup code download with quotes in translations #494.
@@ -185,6 +235,7 @@ All notable changes to this project will be documented in this file, per [the Ke
185
235
- Standardise on int|WP_User input to the "for user" functions #535.
186
236
187
237
## [0.7.3] - 2022-10-17
238
+
188
239
- Make wp_login_failed action call compatible with the WP core argument count and types. Reported in #471 by @dziudek and fixed in #478 by @dd32.
189
240
- Use hash_equals() for nonce comparison to improve security. Reported in #458 and fixed in #458 by @calvinalkan.
190
241
- Improve compatibility with PHP 8.1 by replacing all instances of FILTER_SANITIZE_STRING usage. Reported and fixed in #428 by @sjinks.
@@ -193,16 +244,19 @@ All notable changes to this project will be documented in this file, per [the Ke
193
244
- Improve TOTP autocomplete behaviour by setting the autocomplete attribute to one-time-code. Reported and fixed in #420 by @squaredpx.
194
245
195
246
## [0.7.2] - 2022-09-12
247
+
196
248
- Security improvement: Store the second factor authentication step nonce hashed to prevent leaking it via database read access #453. Props to @calvinalkan for reporting the issue.
197
249
- Fix: Add wp_specialchars_decode() to escape the HTML entity on the Email Subject line (#412), props @nbwpuk.
198
250
- Fix: Use hash_equals() when comparing the email token (#425), props @Mati02K.
199
251
- Tooling: Introduce @wordpress/env for development tooling and move to GitHub actions for CI (#436).
200
252
201
253
## [0.7.1] - 2021-09-07
254
+
202
255
- Update the login_header() and login_footer() methods to match the WP core (see #407), props @cfaria.
203
256
- Mark as compatible with WordPress 5.8.
204
257
205
258
## [0.7.0] - 2020-08-26
259
+
206
260
- Fix: improve time-based one-time (TOTP) autofill when using password managers like 1Password, see #373. Props @omelhus.
207
261
- Fix: allow spaces in email code input and strip them away before processing, see #379. Props @shay1383.
208
262
- Fix: remove references to Google Authenticator app since there are a lot more TOTP authenticators these days, see #367. Props @r-a-y.
@@ -212,11 +266,13 @@ All notable changes to this project will be documented in this file, per [the Ke
212
266
- Add tooling to run PHPUnit tests locally during development, see #355. Props @kasparsd.
213
267
214
268
## [0.6.0] - 2020-05-06
269
+
215
270
- Security fix: escape the U2F key value when doing the key lookup in database during login. Props @mjangda from WordPress VIP. See #351.
216
271
- New feature: invalidate email tokens 15 minutes after they were generated. Use the two_factor_token_ttl filter to override this time-to-live interval. See #352.
217
272
- Document some of the available filters.
218
273
219
274
## [0.5.2] - 2020-04-30
275
+
220
276
- Bugfix: saving standard user profile fields no longer resets the time-based-password key, see #341.
221
277
- Bugfix: remove spaces around authentication codes before verifying them, see #339 (props @paulschreiber).
222
278
- Bugfix: allow admins to configure FIDO U2F keys for other users, see #349.
@@ -226,53 +282,66 @@ All notable changes to this project will be documented in this file, per [the Ke
226
282
- Update the reference article URL in the readme files to account for domain change, see #332 (props @todeveni).
227
283
228
284
## [0.5.1] - 2020-02-05
285
+
229
286
- Security fix: invalidate the session token used for the first password-based authentication, props @aapost0l.
230
287
- Typo fixes in code comments, props @akkspros.
231
288
232
289
## [0.5.0] - 2020-01-11
290
+
233
291
- Add a compatibility layer for Jetpack Secure Sign On to support longer session cookies, see #276. Props @pyronaur.
234
292
- Fix spelling errors in code comments, see #318. Props @akkspros.
235
293
- Add license file, #313. Props @axelsimon.
236
294
- Bump the supported version of PHP to 5.6 to match the WordPress core.
237
295
238
296
## [0.4.8] - 2019-12-26
297
+
239
298
- Mark as tested with WordPress 5.3.
240
299
- Add a screenshot with email code authentication prompt.
241
300
- Update development tooling versions.
242
301
243
302
## [0.4.7] - 2019-05-08
303
+
244
304
- Introduce a two_factor_totp_title filter to allow TOTP title to be changed, see #294 (props @BrookeDot).
245
305
- Mark as tested with WordPress 5.2.
246
306
247
307
## [0.4.6] - 2019-04-26
308
+
248
309
- Add a unique ID for the two-factor options section, see #286 (props @joshbetz).
249
310
- Add usage instructions and plugin screenshots, fixes #272.
250
311
251
312
## [0.4.5] - 2019-04-22
313
+
252
314
- Add the missing two-factor textdomains, see #281 (props @Sonic853).
253
315
- Fix U2F feature detection in Firefox, see #285.
254
316
255
317
## [0.4.4] - 2019-04-15
318
+
256
319
- Add the closing </div> to match the WP core login form structure, see #274 (props @claytoncollie).
257
320
258
321
## [0.4.3] - 2019-04-12
322
+
259
323
- Bump the actual version in the plugin header. That's what you get for deploying on Fridays.
260
324
261
325
## [0.4.2] - 2019-04-12
326
+
262
327
- Developer tooling update, see #277.
263
328
264
329
## [0.4.1] - 2019-04-12
265
-
- Redirect to admin_url() instead of $_SERVER['REQUEST_URI'] if $_REQUEST['redirect_to'] is not set, see #276 (props @joshbetz).
330
+
331
+
- Redirect to `admin_url()` instead of `$_SERVER['REQUEST_URI']` if `$_REQUEST['redirect_to']` is not set, see #276 (props @joshbetz).
266
332
267
333
## [0.4.0] - 2019-03-19
334
+
268
335
- Disable authentication via REST and XML-RPC endpoints for users with any of the two-factor methods enabled, see #271.
269
336
- Mark as tested with WordPress 5.1.
270
337
271
338
## [0.3.0] - 2018-11-06
339
+
272
340
- Mark as tested with WordPress 5.0.
273
341
- Always post the two-factor login form to wp-login.php which runs all the required hooks for processing. Fixes login issues on WP Engine #257 and when a custom login URL is used #256.
274
342
275
343
## [0.2.0] - 2018-10-16
344
+
276
345
- Add developer tools for deploying to WP.org manually.
0 commit comments