Suporte » Plugins » Bloquear acesso determinadas datas e horários

  • Olá a todos. Gostaria de saber como posso fazer o seguinte: Tenho um site de cursos online e gostaria de bloquear o acesso em determinados horários e dias para determinados perfis de usuário. Estou utilizando hoje o Tutor LMS como plataforma de curso. Alguém saberia se é possivel e como?

    Muto obrigado

    Guilherme

    A página que eu preciso de ajuda: [fazer login para ver o link]

Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • Olá @alemones ! Você pode utilizar um plugin como opção:
    https://wordpress.org/plugins/user-blocker/

    Ou pode utilizar código para criar uma função de bloqueio. Aqui está um exemplo, sendo o papel do usuário “editor”:

    /**
    * Verifica se o papel do usuário é editor e se o horário atual está entre 9h e 14h, de segunda a sexta-feira.
    */
    
    function restringir_login_editor() {
        $usuario_atual = wp_get_current_user();
    
        if (in_array('editor', (array) $usuario_atual->roles)) {
            $horario_atual = current_time('H:i');
            $dia_semana = date('N');  // Obtém o número do dia da semana (1 para segunda, 2 para terça, etc.)
    
            // Se o horário estiver entre 9h e 14h e for um dia útil (segunda a sexta-feira)
            if ($horario_atual >= '09:00' && $horario_atual <= '14:00' && $dia_semana >= 1 && $dia_semana <= 5) {
                // Desloga o editor, redireciona para a página inicial e encerra o processo de login
                wp_logout();
                wp_redirect(home_url());
                exit;
            }
        }
    }
    
    // Adiciona a ação para verificar o horário e dia da semana no momento do login
    add_action('wp_login', 'restringir_login_editor');
    Criador do tópico alemones

    (@alemones)

    Obrigado pela Resposta Pamela. O Plugin de LMS é o TUTOR e ele so cria dois perfis, estudante e professor apenas…Eu queria criar varios outros perfis de acordo com os funcionarios aqui da empresa…e fazer o bloquei dele em determinados dias e horarios..

    Sendo assim, é possível criar outros perfis por meio de plugin:
    https://br.wordpress.org/plugins/user-role-editor/

    Ou você pode criar uma função para adicoinar esses usuários:

    // Adiciona novos papéis de usuário
    function adicionar_papeis_usuario() {
        add_role('funcionario_tipo_1', 'Funcionário Tipo 1', array(
            'read' => true,
        ));
    
        add_role('funcionario_tipo_2', 'Funcionário Tipo 2', array(
            'read' => true,
        ));
    
        add_role('funcionario_tipo_3', 'Funcionário Tipo 3', array(
            'read' => true,
        ));
    }
    
    add_action('init', 'adicionar_papeis_usuario');
    
    // Remove as capacidades desnecessárias dos novos papéis
    function ajustar_capacidades_papeis() {
        $papeis = array('funcionario_tipo_1', 'funcionario_tipo_2', 'funcionario_tipo_3');
    
        foreach ($papeis as $papel) {
            $role = get_role($papel);
    
            // Remove as capacidades indesejadas
            $role->remove_cap('edit_posts');
            $role->remove_cap('delete_posts');
            // Adicione outras capacidades conforme necessário
    
            // Adicione as capacidades padrão de assinante
            $role->add_cap('read');
        }
    }
    
    add_action('admin_init', 'ajustar_capacidades_papeis');
    

    Este código adiciona três novos papéis de usuário (funcionario_tipo_1, funcionario_tipo_2 e funcionario_tipo_3) com a capacidade básica de leitura (read). Também remove capacidades desnecessárias que os assinantes não precisam, como editar e excluir postagens. Agora você só precisa ajustar as capacidades de acordo com o seu caso.

Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • Você deve estar conectado para responder a este tópico.