Uma alternativa para mudar o comportamento padrão do Moodle sem alterar o código padrão é usar um proxy de código. Trata-se de uma estratégia em que você altera a rota de navegação do usuário para um outro endereço com base em determinadas condições.
Por exemplo, se você precisa forçar o usuário a preencher algum campo do perfil, como o fuso horário, assim que ele logar no site, você verifica se o campo do perfil está preenchido com o valor desejado.
Caso não esteja, você o redireciona para uma tela específica para esse preenchimento. Isso pode ser feito inserindo o código dentro do tema que acompanha todas as etapas do usuário e força-o a alterar as configurações conforme as regras do negócio. Toda a alteração é feita no código do tema sem alterar nenhum código padrão do Moodle.
Para mais detalhes, veja os links a seguir.