Skip to:
Content

bbPress.org

Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#3433 closed defect (bug) (fixed)

Restoring a trashed topic will set the post status to 'draft' as of WordPress 5.6.0

Reported by: r-a-y's profile r-a-y Owned by: johnjamesjacoby's profile johnjamesjacoby
Milestone: 2.6.10 Priority: high
Severity: major Version: 2.6.6
Component: API - Moderation Keywords: has-patch
Cc:

Description

If a topic is marked as 'trash' and later an admin views the topic and clicks on the "Restore" link, the topic is saved with the post status of 'draft'.

Consequently, it's not possible to view the topic on the frontend any more to modify the topic's status to something else.

The issue is WordPress 5.6.0 changed the behavior of what happens when a post is untrashed. Before, it would revert to the last-saved status, now all post types except attachment will default to 'draft'.

We have to utilize the new 'wp_untrash_post_status' filter to fix this. See: https://github.com/WordPress/WordPress/blob/14f024a34ab50ab5a3cbd7db150d789e94adccf2/wp-includes/post.php#L3465-L3480

Attached patch fixes this and includes unit tests. Feel free to rename the bbp_use_previous_status_for_untrash() function to something else.

Attachments (2)

3433.01.patch (3.4 KB) - added by r-a-y 3 years ago.
3433.02.patch (3.4 KB) - added by johnjamesjacoby 3 years ago.

Download all attachments as: .zip

Change History (7)

@r-a-y
3 years ago

#1 @r-a-y
3 years ago

  • Milestone changed from Awaiting Review to 2.6.10

I'm adding this to the 2.6.10 milestone because this is a big bug in my eyes, but feel free to bump to another milestone.

#2 @johnjamesjacoby
3 years ago

  • Component changed from General to API - Moderation
  • Keywords has-patch added
  • Owner set to johnjamesjacoby
  • Priority changed from normal to high
  • Status changed from new to assigned

#3 @johnjamesjacoby
3 years ago

Thanks @r-a-y for the patch (and persistence 😬)

3433.02.patch iterates on 01 in the following ways:

  • Rename new function
  • Inline docs in new function
  • Minor code formatting tweaks
  • Default values for function, specifically to fallback to pending if something goes wrong

I've tested manually it by trashing & untrashing numerous topics and replies, and everything appears to be working as intended.

#4 @johnjamesjacoby
3 years ago

  • Resolution set to fixed
  • Status changed from assigned to closed

In 7234:

Moderation: use the correct post_status when untrashing a topic/reply.

This change fixes a bug/regression (since WordPress 5.6.0) that was causing untrashed topics & replies to use an unintended post_status value.

It fixes it by adding a new function ('bbp_fix_untrash_post_status()') and hooking it to the wp_untrash_post_status filter in WordPress, and overriding the results as needed.

Props r-a-y.

In branches/2.6 for 2.6.10. Fixes #3433.

#5 @johnjamesjacoby
3 years ago

In 7235:

Moderation: use the correct post_status when untrashing a topic/reply.

This change fixes a bug/regression (since WordPress 5.6.0) that was causing untrashed topics & replies to use an unintended post_status value.

It fixes it by adding a new function ('bbp_fix_untrash_post_status()') and hooking it to the wp_untrash_post_status filter in WordPress, and overriding the results as needed.

Props r-a-y.

In trunk for 2.7.0. Fixes #3433.

Note: See TracTickets for help on using tickets.