You should be able to use the set_user_role
action which is triggered when a user’s role is changed. The action function is passed the user’s ID, new role, and old role(s). Something like this:
add_action( 'set_user_role', 'wpse161590_set_user_role', 10, 3 );
function wpse161590_set_user_role( $user_id, $role, $old_roles ) {
if ( 'Pending' == $role ) {
// set all of the user's posts to Draft
}
if ( 'Subscriber' == $role ) {
// set all of the user's posts to Publish
}
}
You may want to consider a custom post status on the off chance that a Subscriber has one or more posts manually set as Drafts when they are switched to Pending – to prevent those posts from being automatically published when the user renews and is switched back to Subscriber.
Related Posts:
- Is it possible to have more “levels” of draft/published statuses?
- What is a “protected” post status?
- how to assign a status/mark to post?
- Why doesn’t wp_update_post() update the post_status field?
- register_post_status and show_in_admin_all_list
- Changing post status in one click
- How can I run custom function when post status is changed?
- WP_Post_List_Table::get_views – Have post counts account for filters?
- Creating/editing custom ‘post-state’
- Using arbitrary post status without registering it
- Get a list of ALL Statuses both registered and built-in
- Adding custom post status to visibility in publish meta box
- Changing post status
- Change scheduled posts to published
- Include Drafts or Future posts with count_user_posts?
- Remove ‘private’ and ‘pending review’ options from post status dropdown
- Can not get future_to_publish to work
- Which is the better way to get the status of a post?
- “Publish immediately” with custom post status
- Modify Post Status Arguments
- Additional page and post status types
- Add a simple JS Alert Box on Post Submission
- Function to change post status IF current user and post author are the same
- Schedule future post to custom post status instead of publish?
- Why does get_post_status display published when attachment is in trash?
- Force Custom Post Type Status to ‘Future’ on first Save or Publish
- Workflow for attachments in WordPress
- how to transition to custom post status on post save
- How to change custom post type status when non-admin updates post?
- Custom post status filter links always show a count of all posts in the site with that status, not the logged in users count
- wordpress post status inquery
- Multiple Post Status
- retrieve post details in loop
- Any way to change post/page status when editing page?
- How to change post status from “draft” to “publish”?
- transition_post_status doesn’t work with bulk updates
- Submitted for Review back to a Draft page
- How to Add Custom Post Status in WordPress Admin
- Auto draft posts when scheduled date is reached
- Changing a post status name
- How to create posts with a specific date in bulk
- How can I make a custom post status private or draft?
- Changing Post Status from Pending to Publish twice daily
- How to Get All Posts with any post status?
- How to check if a user (not current user) is logged in?
- New post status for custom post type
- How to update page status from publish to draft and draft to publish
- How to Display a List of Users Who Have Made at Least 1 Post?
- Turn Off Automatic Trash Deletion?
- wordpress function to change post status [duplicate]
- Using get_post_meta with new_to_publish
- Custom column for changing post status via ajax
- How to change “Draft” string for status of custom post type to “Unavailable”?
- How to display the status of users (online – offline) in archive.php
- Let private posts stay in status “private” after edit through “editors”
- How to check if page has status published
- How to 301 private posts rather than 404?
- WP_Query by post ID doesn’t work if post is in custom post_status
- Restrict a Post Types Post Status
- Custom post status and preview
- get_terms(); show private posts when logged in
- How to change post status in hook?
- Custom Post Status not showing in Custom Post Type ALL view
- featuring old articles without messing up with the archive
- Bulk Update of Custom Post Type Post Status through SQL
- Setting post meta data to random value during post status transition / on publish
- Show scheduled posts in archive page
- Setting a title on a Custom Post Type that doesn’t support titles
- What action is called when drafts are saved?
- How do I limit the status options for bulk/quick edit to only Published and Draft?
- How to Get All Posts but the Private ones?
- Detect type of post status transition
- change a post status when users update posts?
- How to change post status from publish to draft using hook in wordpress?
- How can I style future post?
- 418 header status, I’m a teapot [closed]
- Hiding by default specific post status on backend list?
- Automatically move pending posts after 30 days and, update the post date, when users update the posts
- delete custom post based on custom field date
- Comments Feed & Custom Post Statuses
- Why this plugin doesn’t work with media upload page?
- update_post_meta() not working when used with WordPress action
- Enable commenting on front-end preview page for pending posts
- How do I check if a posts status is set to draft or pending?
- Error after deleting Custom Post Type with a function (no trash used)
- Show recent published posts
- How to set default status to custom post type
- why do drafts return as part of wp_query?
- Custom Post Status Posts viewable to the public
- How does WordPress track that a certain User is Logged-In
- Check whether a custom taxonomy term has published posts?
- Getting the different post statuses + count like in edit.php, in a custom submenu page
- Get images only if parent status is publish
- $error = 404 after caught add_rewrite_rule
- How to display future posts – modified query still yields 404
- Problem duplicated shortlinks bitly
- How can a guest view the “Pending Review” Post?
- Create front end link to save post (or unpublish post) as draft
- 1 day after custom date change post status to draft
- How do I batch create revisions of all posts?