2017-10-19 20 views
0

J'ai un lien dans le frontend pour supprimer le compte d'utilisateur dans mon site wordpress.Une fois que l'utilisateur clique sur que son compte devrait être supprimé.Supprimer le compte d'utilisateur de l'extrémité avant dans wordpress

Dans ma page functions.php j'ai ajouté un code court pour cela.

function shortcode_del_user_ac(){ 
add_action('init','prefix_delete_user'); 
function prefix_delete_user() { 
if(isset($_REQUEST['action']) && $_REQUEST['action']=='prefix_delete_user') { 
    include("./wp-admin/includes/user.php"); 


     $user_id = intval($_REQUEST['user_id']); 
     wp_delete_user($user_id); 
     exit(); 

} 
}} 
add_shortcode('abc_del_user_ac',shortcode_del_user_ac); 

et de mon extrémité avant (j'utilise le compositeur visuel) i ajouté un lien sous supprimer le compte utilisateur comme suit,

<a href="[abc_del_user_ac]">Delete account</a> 

Mais une fois que je presse ce lien nouveau redirigé vers la le profil de l'utilisateur, où se trouve le lien Supprimer le compte. Et le compte d'utilisateur est toujours là. Ce n'est pas supprimé.

Qu'est-ce que j'ai fait de mal ici?

+0

Tous les utilisateurs ont des droits d'administrateur? – Tomm

+0

@Tomm: non, seulement un administrateur autres ne sont que les abonnés –

+0

Vous dites // vérification des autorisations d'administrateur. et puis vous dites si l'utilisateur actuel peut modifier les utilisateurs (ce qu'ils ne devraient pas être en mesure de) puis exécuter le code – Tomm

Répondre

0

Vous souhaitez que vos utilisateurs puissent supprimer leur propre compte.

En pensant que tous les utilisateurs ne devraient pas être des administrateurs, votre code ne sera pas maintenu puisque vous voulez qu'un utilisateur soit un administrateur afin de supprimer son propre compte.

if (current_user_can ('edit_users')) {$ user_id = intval ($ _ REQUEST [ 'user_id']); wp_delete_user ($ user_id); exit(); }

Ceci devrait être changé en quelque chose comme l'utilisateur au lieu de l'admin.

+0

J'ai mis à jour ma question @Tomm. Mais le problème est toujours là. Il ne supprime pas mon compte d'utilisateur. –