仅为作者应用用户审核

时间:2014-09-01 09:26:45

标签: wordpress-plugin

我正在使用主题登录,这是一个很棒的插件。我在很多网站上都使用过它。

现在,在我的一个网站中,我启用了主题登录的用户审核模块。根据它,当任何新用户在网站上注册时,它会受到审核,当管理员批准时,只有他才能成为网站上的用户。

因此,我不希望订阅者使用此功能。或者换句话说,我只想为作者提供这个。

1 个答案:

答案 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.' ) );

                        }

现在,用户审核对于注册为订阅者的用户不起作用。修改代码并以自己的方式使用它。

这可能对某人有所帮助。

由于 苏尼