WordPress.org

Make WordPress Core

Opened 2 months ago

Last modified 6 weeks ago

#49698 accepted defect (bug)

Issue with replacement for filter deprecation

Reported by: renathoc Owned by: SergeyBiryukov
Milestone: 5.5 Priority: normal
Severity: normal Version: 5.4
Component: Plugins Keywords: has-patch
Focuses: Cc:

Description

The function apply_filters_deprecated has the default value for the $replacement argument as false.

This function uses the _deprecated_hook, sending the same $replacement argument. But in the _deprecated_hook, it considers the default as null.

So the problem occurs when we use the apply_filters_deprecated without a replacement, the with no alternative available message is not shown, but Use instead.

Attachments (1)

49698.diff (6.8 KB) - added by jignesh.nakrani 7 weeks ago.
changed default values for $replacement and $message parameters to string and fixed ! is_null() strict type check

Download all attachments as: .zip

Change History (5)

#1 @SergeyBiryukov
2 months ago

  • Component changed from General to Plugins

#2 @SergeyBiryukov
2 months ago

  • Keywords needs-patch added
  • Milestone changed from Awaiting Review to 5.5
  • Owner set to SergeyBiryukov
  • Status changed from new to accepted

Hi there, welcome to WordPress Trac! Thanks for the ticket.

The issue is already fixed for WordPress 5.4 in [46792] / #48817.

That said, I think we should switch the default values for $replacement and $message parameters in these functions to an empty string instead of null, to match the documented type of string. The ! is_null() check for these parameters seems unnecessarily strict, we only need to check for a truthy value.

This would affect:

  • _deprecated_function()
  • _deprecated_constructor()
  • _deprecated_file()
  • _deprecated_argument()
  • _deprecated_hook()
  • apply_filters_deprecated()
  • do_action_deprecated()

#3 @renathoc
2 months ago

Great! Thank you @SergeyBiryukov

@jignesh.nakrani
7 weeks ago

changed default values for $replacement and $message parameters to string and fixed ! is_null() strict type check

#4 @jignesh.nakrani
6 weeks ago

  • Keywords has-patch added; needs-patch removed
Note: See TracTickets for help on using tickets.