我使用主题登录,这是一个很棒的插件。我在很多网站上都使用过它。
现在,在我的一个网站中,我启用了登录主题的用户审核模块。根据它,当任何新用户在网站上注册时,都会受到审核,并且当管理员批准后,只有他才能成为网站上的用户。
所以,我不希望订阅者使用此功能。或者换句话说,我只想为作者提供此信息。
最佳答案
现在我找到了这个问题的答案。
在 register-form.php 的表单标签之间放置一个下拉菜单,例如:
<p>
<label for="role<?php $template->the_instance(); ?>"><?php _e( 'Role', 'theme-my-login' ) ?></label>
<select id="role<?php $template->the_instance(); ?>" name="role">
<option value="author">Author</option>
<option value="subscriber">Subscriber</option>
</select>
</p>
然后在 function.php 中添加一个函数,如下所示:
function set_role_on_registration( $user_id ) {
//$role = sanitize_text_field( $_POST['role'] );
$role = $_POST['role'];
if ( in_array( $role, array( $role, 'bprofessional' ) ) )
add_user_meta( $user_id, 'pending_role', $role );
}
add_action( 'tml_new_user_registered', 'set_role_on_registration' );
然后转到plugins/theme-my-login/modules/user-moderation/admin/user-moderation-admin.php并找到user_row_actions函数。找到 case 'admin' :并将以下代码放在 case 的开头和中断之间;喜欢:
$c_u_r = get_user_meta($user_object->ID, 'pending_role', true);
// Add "Approve" link
if($c_u_r != 'subscriber'){
$actions['approve-user'] = sprintf( '<a href="%1$s">%2$s</a>',
add_query_arg( 'wp_http_referer',
urlencode( esc_url( stripslashes( $_SERVER['REQUEST_URI'] ) ) ),
wp_nonce_url( "users.php?action=approve&user=$user_object->ID", 'approve-user' )
),
__('Approve', 'theme-my-login' )
);
}else{
if ( ! self::approve_user( $user_object->ID ) )
wp_die( __( 'You can’t edit that user.' ) );
}
现在,用户审核对注册为订阅者的用户不起作用。修改代码并按照自己的方式使用。
这可能会对某些人有所帮助。
谢谢 苏尼尔
关于wordpress - 仅对作者应用用户审核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25602708/