Je développe actuellement un type de site de réseau social utilisant Wordpress + Buddypress et le client a demandé que les pages de profil ne soient pas visibles publiquement pour le moment. En gros, le client accepte les utilisateurs connectés qui consultent leurs propres profils, mais s’ils essaient de visualiser la page de profil d’un autre utilisateur, celle-ci doit être redirigée vers la page d’accueil.
J'ai trouvé la fonction: bp_is_my_profile () et j'ai essayé d'utiliser le code suivant en haut du fichier members/single/profile.php pour rediriger les utilisateurs, mais cela ne semble pas fonctionner. Des pointeurs?
<?php
if ( !bp_is_my_profile() )
{
wp_redirect(site_url(), 302);
}
?>
J'ai résolu ce problème moi-même, c'était assez facile et je suis surpris que personne d'autre n'ait fourni de réponse. Cela dit, la solution consiste à ajouter quelques lignes de code qui vérifient l'identifiant de l'auteur du profil affiché et le comparent à l'identifiant de l'utilisateur actuellement connecté.
Ce code va au dessus de members/single/profile.php
<?php
// Global $bp variable holds all of our info
global $bp;
// The user ID of the currently logged in user
$current_user_id = (int) trim($bp->loggedin_user->id);
// The author that we are currently viewing
$author_id = (int) trim($bp->displayed_user->id);
if ($current_user_id !== $author_id)
{
// redirect to home page url
wp_redirect(home_url());
exit();
}
?>