Oi @ryendel,
Você pode colocar cada um desses testes em uma função e associá-las à uma action. Para os acessos de modo geral, como você vai precisar saber se está na página inicial ou não, você terá que usar uma action que seja chamada depois da parse_query
. Associando a wp deve funcionar.
Seu código vai ficar mais ou menos assim:
Para verificar se pode acessar:
function verifica_acessos() {
if ( ! is_user_logged_in() AND ! is_front_page() AND ! is_page( array( 'login', 'registro' ) ) ) { // Executa se o usuário não está logado, se não nem a página inicial nem na de login nem na de registro
wp_redirect( home_url( '/' ) );
}
}
add_action( 'wp', 'verifica_acessos' );
Para redirecionar depois do login use login_redirect:
function redirecionamento_do_login( redirect_to, $request, $user ) {
return home_url( 'app' );
}
add_filter( 'login_redirect', 'redirecionamento_do_login', 10, 3 );
Para redirecionar depois do registro, use registration_redirect:
function redirecionamento_do_cadastro( $registration_redirect ) {
return home_url( 'bem-vindo' );
}
add_filter( 'registration_redirect', 'redirecionamento_do_cadastro' );
São códigos de exemplo, tá? Você terá que adaptá-los conforme a sua necessidade. Não esqueça de voltar para tirar qualquer dúvida ou, se for o caso, para marcar seu tópico como resolvido.
Olá meu amigo. Desculpa pela a demora.
Seu código funcionou perfeitamente.
Só tive que user o para bloquear, acabei descobrindo que o plugin que eu usava para receber as mensalidades tinha um add-on que fazia essa função e outras que eu precisava.
Muito obrigado pela atenção e pela ajuda!
@felipeelia
Esse código é possível de adaptar para liberar a compra de produtos somente para usuários com uma regra específica.
Ex. No site o visitante não ver os preços mas ver a loja como catálogo, se ele se registrar, ele vai vai poder ver os preços mas ainda nao poderá comprar. Só poderá comprar depois que o administrador liberar (mudando a regra dele como usuário).
OBS.: Estou adaptando o woocommerce para que ele funcione como catálogo de pedidos para representantes.
Desde já agradeço.