Em resposta a uma questão colocada por vários visitantes, vou explicar de forma clara como tornar os perfis de membros do buddypress privados para todos, excepto para o próprio membro. Porque muitos utilizadores do WordPress usam o BuddyPress para criar comunidades de utilizadores, mas pretendem proteger os dados pessoais dos utilizadores, esta questão é cada vez mais pertinente.

O BuddyPress é também muitas vezes usado como suplemento, ou Add-Ons, de outros Plugins do WordPress, apenas para simplificar a criação de campos adicionais no perfil do utilizador, tanto na altura do registo, como na manutenção do próprio website, diga-se, comunidade de utilizadores registados.

Como tornar os perfis de membros do buddypress privados

Como tornar os perfis de membros do buddypress privados

Vou utilizar um MU-PLUGIN porque continuará a funcionar mesmo após as atualizaçóes do WordPress e do tema que esteja a ser usado.

Poderia ser criada uma função com código semelhante e adicionar essa função ao ficheiro functions.php do tema instalado, mas após uma atualização do tema, essas alterações seriam perdidas.

O que vou explicar de seguida terá o seguinte resultado:

  1. Não permite o acesso à listagem de membros a ninguém, nem a visitantes nem a membros buddypress;
  2. Não permite o acesso a perfis de membros, a não ser que seja o próprio membro;
  3. Administradores continuam a ter todo o acesso à listagem de membros e ao perfil privado de todos os membros.

Criar o MU PLUGIN para tornar os perfis de membros do buddypress privados

Para usar um MU PLUGIN ou plugin imprescindível, a instalação, remoção e atualização do plugin deve ser feita diretamente no sistema de arquivos, não sendo possível fazer via gestão interna do wordpress. O WordPress carrega estes pugins antes dos convencionais, isso significa que os hooks criados dentro deles podem ser usados nos demais plugins. Deverá, por isso, aceder via FTP ou aceder atráves do painel de controlo onde se encontra a instalação do WordPress.

1- Aceda à pasta wp-content da instalação do seu WordPress e crie a pasta mu-plugins

Como tornar os perfis de membros do buddypress privados - wp_content

2- Dentro dessa pasta crie um ficheiro com nome de perfis_privados_bp.php e insira o seguinte código:

<?php
add_action('template_redirect', 'bp_private_profile');
function bp_private_profile() {
                 if ( bp_is_members_directory(members) && ! is_super_admin() ) {
		wp_redirect( home_url() ); 
                               exit;
                 }
	if ( ! current_user_can( 'manage_options' ) ) {
		if ( bp_is_user_profile() && ! bp_is_my_profile() ) {
			wp_redirect( home_url() ); 
			exit;
		}
	}
}
  1. A primeira condição do código protege a listagem de membros de ser visível, a não ser que se trate de um Administrador
  2. A segunda condição restringe a visualização dos perfis dos utilizadores, a não ser que se trate do próprio.
  3. Em caso de bloqueio de acesso, o redirecionamento está a ser feito para a Página Inicial (home_url), o que pode facilmente ser alterado nas linhas: wp_redirect( home_url() );

3- Grave o ficheiro e tudo estará privado.

Se visitar agora, na administração do wordpress, os plugins instalados, já irá aparecer o MU_PLUGIN que acabou de configurar;

Como tornar os perfis de membros do buddypress privados

NOTA IMPORTANTE: Antes de fazerem qualquer alteração, devem precaver-se com uma cópia de segurança de todos os ficheiros do WordPress.

Como tornar os perfis de membros do buddypress privados é apenas uma de muitas dicas informáticas que pode encontrar no New Social.

Pode pesquisar por muito mais atividades e dicas diversas no topo superior direito do site. Se procura por algo que não encontra, não hesite em deixar uma proposta na nossa página de contatos.

1 comentário

  1. Thank you very much for this code, very useful.
    But would it be possible to add a restriction for some roles as author, contributor, in addition to the administrator?
    Thank you again.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *