您应该能够使用set_user_role
用户角色更改时触发的操作。操作函数将传递用户ID、新角色和旧角色。类似这样:
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
}
}
如果订阅者在切换到挂起状态时手动将一篇或多篇帖子设置为草稿,则可能需要考虑自定义帖子状态,以防止在用户续订并切换回订阅者时自动发布这些帖子。