我正在创建一个网站,用户付费发布帖子。如果此用户成员资格过期,则角色将从“订阅者”更改为“挂起”。
我需要一个代码,允许更新所有职位草案,如果某些用户的角色是“待定”,然后返回发布,如果是“订阅者”。
对这个问题有什么建议吗?我只找到了this plugin 但它不起作用。
我正在创建一个网站,用户付费发布帖子。如果此用户成员资格过期,则角色将从“订阅者”更改为“挂起”。
我需要一个代码,允许更新所有职位草案,如果某些用户的角色是“待定”,然后返回发布,如果是“订阅者”。
对这个问题有什么建议吗?我只找到了this plugin 但它不起作用。
您应该能够使用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
}
}
如果订阅者在切换到挂起状态时手动将一篇或多篇帖子设置为草稿,则可能需要考虑自定义帖子状态,以防止在用户续订并切换回订阅者时自动发布这些帖子。