Skip to content

Releases: pods-framework/pods

3.3.5 - February 24th, 2026

25 Feb 00:07
2d1e788

Choose a tag to compare

  • Minimum Requirements Notice: Pods 3.4 coming in 2026 will require new minimum versions of WordPress 6.8+, PHP 8.0+, and MySQL 5.7+
  • Feature: Added support for showing fields as "Read Only" in forms when a user does not have edit access to them while allowing admins to continue editing them. You can find this under the Edit Field modal in Advanced > Visibility > UI Access. (@sc0ttkclark)
  • Enhancement: When detecting malformed shortcodes broken by < or > characters within the where clause, Pods now shows a helpful notice with workaround instructions instead of just breaking. #7451 #7482 (@sc0ttkclark)
  • Enhancement: New replacements within Pods shortcodes clauses for replacing __LESS_THAN__, __LESS_THAN_OR_EQUAL__, __GREATER_THAN__, and __GREATER_THAN_OR_EQUAL__ with their corresponding <, <=, >, and >= characters to work around broken WP shortcodes. This is also available in the [if] Pods template shortcode compare attribute. #7451 #7482 (@sc0ttkclark)
  • Enhancement: New option for conditional logic that will allow saving conditional field values even when the field is hidden. #7475 #7484 (@faisalahammad, @sc0ttkclark)
  • Enhancement: New setting at Pods Settings > Performance that allows you to "Limit autocomplete search results in Relationship fields" to specify larger numbers if needed. #7454 (@sc0ttkclark)
  • Enhancement: PodsUI > Implement pods_ui_after_heading hook for additional UI customizations. (@sc0ttkclark)
  • Enhancement: PodsUI > Move restricted() checks before callbacks to prevent additional unnecessary calls when user doesn't have access. (@sc0ttkclark)
  • Enhancement: Add pods_v_bool that uses pods_is_truthy to enforce boolean values on variables from various sources. (@sc0ttkclark)
  • Enhancement: Add Manage link to the Navigate section of the Pods content admin forms. (@sc0ttkclark)
  • Enhancement: Underlying code support for multiple condition checks for Conditional Logic. (@sc0ttkclark)
  • Tweak: Remove trim from pods_is_truthy and pods_is_falsey functions. (@sc0ttkclark)
  • Tweak: In the Edit Field modal, under the Advanced > Visibility section -- the Restrict Access and UI Access are now separate checkbox groups. (@sc0ttkclark)
  • Tweak: Pods now follows WP Admin Theme color schemes more closely using dynamic CSS color references to the scheme colors. (@sc0ttkclark)
  • Fixed: Shortcode unit test issue resolved. #7472 #7473 (@devlamconstructie, @sc0ttkclark)
  • Fixed: Loading a form with WYSIWYG React Quill used as Repeatable fields now loads without breaking the editor. #7465 #7487 (@faisalahammad, @sc0ttkclark)
  • Fixed: Resolved reordering of values for Repeatable Date/Time, Currency, and Number fields. #7471 #7486 (@faisalahammad, @sc0ttkclark)
  • Fixed: Resolve sync associated taxonomy with relationship issues when not using bidirectional relationship field. #7477 #7485 (@faisalahammad, @sc0ttkclark)
  • Fixed: Resolved reordering of values in List View relationship fields. (@sc0ttkclark)
  • Fixed: Allow empty values in email fields when field is not required. #7476 #7483 (@faisalahammad, @sc0ttkclark)
  • Fixed: esc_html_e usage when not used for translating in PodsUI. #7462 (@DAnn2012)
  • Fixed: The default storage type for Settings is set to option when creating as it should have been. (@sc0ttkclark)
  • Fixed: When using repeatable fields on a Pod that uses Table-based storage, a notice now shows explaining that it's not an available feature. (@sc0ttkclark)
  • Fixed: Better support when values are sent as WP_Error and now show appropriate errors in save_pod_item validation handling. (@sc0ttkclark)
  • Fixed: Resolve heredoc issue with Migrate PHP component. (@sc0ttkclark)
  • Fixed: WordPress 7.0 compatibility issues fixed. (@sc0ttkclark)
  • Fixed: Conditional logic now works properly for Boolean Group sub fields (used in Edit Field modal and other Pods Admin areas). (@sc0ttkclark)
  • Extensive cleanup to resolve important WP Plugin Checker results, PHPCS, and PHPStan issues across the codebase. (@sc0ttkclark)
  • Extensive testing upgrades to PHPUnit 10+ and wp-browser 4. (@sc0ttkclark, @lucetume)
  • New hourly verification of the Pods PLC DID and FAIR metadata. (@johnbillion)

3.3.4 - September 24th, 2025

24 Sep 20:26
f5cd00f

Choose a tag to compare

  • Feature: Official support for DID did:plc:e3rm6t7cspgpzaf47kn3nnsl for optional installation via DID using the FAIR plugin. (@sc0ttkclark)
  • Fix: Prevent duplicates in Pods::field() and Pods::display() for simple relationships. (@sc0ttkclark)

3.3.3 - September 4th, 2025

04 Sep 18:05
305235c

Choose a tag to compare

  • Tweak: Support referencing ID for PodsMeta::groups_get(). (@sc0ttkclark)
  • Tweak: Update edit capability used for settings Pods so it can be displayed on the edit pod screen correctly. (@sc0ttkclark)
  • Fixed: Resolve issues with TinyMCE and Quill editors not loading when used as repeatable fields or conditional logic. #7448 #7438 #7430 (@multisme, @altermulti, @sc0ttkclark, @ztackett11)
  • Fixed: Resolve PHP fatal errors for undefined constant \Pods\Whatsit\Store::PLACEHOLDER in some edge case circumstances. #7445 (@sc0ttkclark, @Hue-SPetrovic)
  • Fixed: Resolve PHP 8.4 deprecation warnings with DI52 usage. #7448 (@sc0ttkclark, @doehry)
  • Fixed: Resolve warnings when using --args with WP-CLI commands. #7452 (@sc0ttkclark, @KhaledSakr)
  • Fixed: Resolve handling of decimals when auto-formatting to prevent removing zero number values and expand decimal handling for more cases. Improve logic matching (except dashes) for PHP vs JS. (@sc0ttkclark)
  • Fixed: Resolve field assigment issue in pods_config_merge_data() to reference the correct field. (@sc0ttkclark)

3.3.2 - July 8th, 2025

08 Jul 20:35
fa259e3

Choose a tag to compare

  • Tweak: Updated Swagger docs for Pods REST API endpoints. (@sc0ttkclark)
  • Tweak: pods_error() handles any Exception object including those extending the base Exception class. This allows for more refined error handling in Pods code. (@sc0ttkclark)
  • Tweak: PodsAPI now allows for passing in Pods related objects to be passed into various save/load methods without breaking those objects. (@sc0ttkclark)
  • Tweak: Allow setting new group when duplicating a field. (@sc0ttkclark)
  • Tweak: Added Jest testing coverage for more areas of the DFV code and updated to support the React Testing Library. #7427 (@sc0ttkclark)
  • Fixed: Block Editor saves no longer trigger full saves when an autosave is sent and Pods form validation passes. (@sc0ttkclark)
  • Fixed: Ensure Pods cache flushes when changing settings to prevent issues with Pods Blocks configs not showing fields conditionally linked to those settings. #7429 (@sc0ttkclark)
  • Fixed: When duplicating a pod, group, or field it will now add a space between the label and the copy number. (@sc0ttkclark)
  • Fixed: Typos corrected across the codebase. #7434 (@szepeviktor, @sc0ttkclark)
  • Fixed: PHP deprecated warnings resolved in Pods REST API and DI52 usage. #7401 #7437 (@BrookeDot, @sc0ttkclark)
  • Fixed: Saving Pods settings will now properly flush the Pods cache to ensure that the new settings are applied immediately to all areas that may be cached based on those settings. (@sc0ttkclark)
  • Fixed: Added a "doing it wrong" notice and debug log line for when a non-string gets sent to Pods::do_magic_tags() to prevent PHP warnings. (@sc0ttkclark)
  • Fixed: Better caching around the pods_can_use_dynamic_feature_sql_clauses() setting usage to prevent additional DB calls. (@sc0ttkclark)
  • Fixed: Resolve issues when saving featured image based on the first value of a file field so it only saves files with the image type. #7433 (@sc0ttkclark)
  • Fixed: Add support for Value_Field in pods_config_for_field() to ensure bidirectional relationships work as expected for saving on both sides. #7435 (@sc0ttkclark)
  • Fixed: Prevent erroneous ? and # characters in website formatting. (@sc0ttkclark)

3.3.1 - May 2nd, 2025

02 May 16:03

Choose a tag to compare

  • Fixed: Resolve issue with get_block_wrapper_attributes() usage. (@sc0ttkclark)

3.3 - May 1st, 2025

01 May 16:50
08a7bc7

Choose a tag to compare

  • New minimum WP version required: WordPress 6.3+ (previously: WP 6.0+)
  • Removed: PHP support for Pod Templates and Pod Pages has been officially removed from Pods. This feature was deprecated in Pods 2.3. We recommend you follow the newer more secure way: https://docs.pods.io/displaying-pods/pod-page-template-hierarchy-for-themes/ and https://docs.pods.io/displaying-pods/pod-template-hierarchy-for-themes/ and a snippet if you absolutely still need PHP support for now https://gist.github.com/sc0ttkclark/35a15e6f93622c45f12d671184fb1315 (@sc0ttkclark)
  • Feature: Form validation for the Block Editor now prevents saving a post if there are required fields and shows the appropriate error message. #7343 #7369 (@JoryHogeveen, @sc0ttkclark)
  • Feature: Upgraded Pods Blocks to the WP Blocks API version 3 to support more feautres like block wrapper attributes and the iframe editor. (@sc0ttkclark)
  • Feature: Added support for WYSIWYG field type when using the TinyMCE editor to allow Delayed initialization and not showing the editor until clicking. This is optional and can be enabled per field. (@sc0ttkclark)
  • Feature: Added support for WYSIWYG field type when using the TinyMCE editor to refresh the editor if you encounter compatibility issues with other plugins on load. (@sc0ttkclark)
  • Tweak: Allow forcing pods_serial_comma() to use exactly what is sent instead of relying on the field config itself. (@sc0ttkclark)
  • Tweak: Remove Pods Pro WPGraphQL deactivation message to support future features there. The core functionality of that was merged into Pods 2.9 but new work is still being done in the add-on. (@sc0ttkclark)
  • Tweak: Pods Forms now wrap div / p form output types within a new div.pods-form-fieldset wrapper element. The table form output type has the new class pods-form-fieldset added to it too. (@sc0ttkclark)
  • Fixed: Prevent doing it wrong notices in WP from unintentionally loading translatable strings too early. (@sc0ttkclark)
  • Fixed: Improved PHP compatibiltiy with strlen() usage. #7394 (@lbonomo, @sc0ttkclark)
  • Fixed: More PHP 8.x compatibility fixes for PodsUI. (@sc0ttkclark)
  • Fixed: Docs link for Date / Time field type now points to the correct URL. #7405 (@BrookeDot)
  • Fixed: Remove unnecessary duplicate IDs in the fetching within Pods::field(). (@sc0ttkclark)
  • Fixed: Name check handling when duplicating pod now works as expected and prevents weirdly named duplicate pod names. (@sc0ttkclark)
  • Tooling: Generate build provenance attestation during deployment for .org zip. #7419 (@johnbillion)

3.2.8.2 - February 7th, 2025

07 Feb 23:07
69d7011

Choose a tag to compare

  • Security: Do not allow using custom SQL clauses for Relationship fields when SQL clauses are disabled in the Pods security settings. Props to the CleanTalk / Dmitrii Ignatyev for responsibly reporting this. (@sc0ttkclark)

3.2.8.1 - November 22nd, 2024

22 Nov 23:58

Choose a tag to compare

  • Security: Resolve stored XSS issue with the File Upload field Add Button Text option. Props to the CleanTalk / Dmitrii Ignatyev for responsibly reporting this (their second report, they are doing good work!). (@sc0ttkclark)
  • Security: Harden the use of values within id and class HTML attributes in Pods form elements. (@sc0ttkclark)

3.2.8 - November 17th, 2024

17 Nov 19:21

Choose a tag to compare

REMINDER: PHP support for Pod Templates and Pod Pages been turned off by default in Pods 3.2.7+ (PODS_DISABLE_EVAL constant set to false can be used to re-enable it). It will be completely removed in Pods 3.3 after being deprecated back in Pods 2.3. (@sc0ttkclark)

  • Feature: Migrate the PHP in your Pod Templates and Pod Pages directly into your current theme with a new Pods Admin > Tools > Migrate PHP tool. We recommend you use a child theme that you control. PHP warnings now appear on the Pod Template and Pod Page editor screens to prompt you to run the migration. (@sc0ttkclark)
  • Feature: Updated the design and user experience of the various guided screens inside of the Pods Admin to make it easier to read and click through on small screens. (@sc0ttkclark, @heybran)
  • Enhanced: Pod Page template part handling for PHP template files now passes the $pods variable. (@sc0ttkclark)
  • Enhanced: Added support for parsing magic tags in Pod Template files in the theme when you set the PHP header comment Magic Tags: Enabled. (@sc0ttkclark)
  • Enhanced: Run wpautop on Pods Item List and Pods Related Item List blocks for the "not found" content if they are not already formatted. (@sc0ttkclark)
  • Fixed: Only running wpautop for block the Pods Field block content if it does not contain div, ul, ol, heading, or p HTML tags. (@sc0ttkclark)
  • Fixed: Resolve issue with empty strings showing when using magic tags before/after functionality. (@JoryHogeveen)
  • Fixed: Ignore more internal WP post types and taxonomies plus others from other plugins.
  • Fixed: Move load_plugin_textdomain usage into init and make it optional with the constant PODS_LOAD_TEXTDOMAIN set to true. It is no longer needed for WordPress.org plugins but may be needed in the future for testing. (@sc0ttkclark)
  • Fixed: When getting plugin data, don't make it translatable. (@sc0ttkclark)
  • Fixed: When saving bidirectional relationship, attempt to save hook up existing related items data in the wp_podsrel table with the bidirectional connection. (@sc0ttkclark)
  • Fixed: Resolve PHP notices with site debug information. (@sc0ttkclark)
  • Fixed: Resolve PHP warnings with empty template code. (@sc0ttkclark)
  • Fixed: More improvements to Pod Page and Pod Template file loading from themes. (@sc0ttkclark)
  • Fixed: Resolve issue with slug fields not formatting as expected. (@sc0ttkclark)
  • Fixed: SCSS migrated from @import to @use for compatibility with the latest versions of our SCSS scripting. (@sc0ttkclark)

3.2.7.1 - October 9th, 2024

09 Oct 18:44
26fc546

Choose a tag to compare

  • Security: Lock down heading field to only specific allowed HTML tags and preventing it from being used to insert malicious scripts. Props to the CleanTalk / Dmitrii Ignatyev for responsibly reporting this. (@sc0ttkclark)