我正在使用主题登录,这是一个很棒的插件。我在很多网站上都使用过它。
现在,在我的一个网站中,我启用了主题登录的用户审核模块。根据它,当任何新用户在网站上注册时,它会受到审核,当管理员批准时,只有他才能成为网站上的用户。
因此,我不希望订阅者使用此功能。或者换句话说,我只想为作者提供这个。
答案 0 :(得分:2)
现在我找到了这个问题的解决方案。
在表单标签之间输入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函数。查找案例'admin':并将以下代码放在案例开头和案例之间;喜欢:
$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.' ) );
}
现在,用户审核对于注册为订阅者的用户不起作用。修改代码并以自己的方式使用它。
这可能对某人有所帮助。
由于 苏尼