Advertisement
Guest User

functions

a guest
May 25th, 2016
300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.09 KB | None | 0 0
  1. // Ajouter le lien pour récupérer le mot de passe, si l'utilisateur ne s'en souvient plus
  2. add_filter( 'login_form_bottom', 'lien_mot_de_passe_perdu' );
  3. function lien_mot_de_passe_perdu( $formbottom ) {
  4. $formbottom .= '<a href="' . wp_lostpassword_url() . '">Mot de passe perdu ?</a>';
  5. return $formbottom;
  6. }
  7.  
  8.  
  9. function register_user_form() {
  10. echo '<form action="' . admin_url( 'admin-post.php?action=nouvel_utilisateur' ) . '" method="post" id="register-user">';
  11.  
  12.  
  13. echo '<p><label for="nom-user">Nom</label><input type="text" name="username" id="nom-user" required></p>';
  14. echo '<p><label for="email-user">Email</label><input type="email" name="email" id="email-user" required></p>';
  15. echo '<p><label for="pass-user">Mot de passe</label><input type="password" name="pass" id="pass-user" required><br>';
  16. echo '<input type="checkbox" id="show-password"><label for="show-password">Voir le mot de passe</label></p>';
  17.  
  18.  
  19. wp_nonce_field( 'create-' . $_SERVER['REMOTE_ADDR'], 'user-front', false );
  20.  
  21.  
  22. echo '<input type="submit" value="Créer mon compte">';
  23. echo '</form>';
  24.  
  25.  
  26. wp_enqueue_script( 'inscription-front' );
  27. }
  28.  
  29.  
  30. add_action( 'admin_post_nopriv_nouvel_utilisateur', 'ajouter_utilisateur' );
  31. function ajouter_utilisateur() {
  32.  
  33. if( isset( $_POST['user-front'] ) && wp_verify_nonce( $_POST['user-front'], 'create-' . $_SERVER['REMOTE_ADDR'] ) ) {
  34.  
  35.  
  36. if ( ! isset( $_POST['username'] ) || ! isset( $_POST['email'] ) || ! isset( $_POST['pass'] ) ) {
  37. wp_redirect( site_url( '/inscription/?message=not-user' ) );
  38. exit();
  39. }
  40.  
  41. $nom = $_POST['username'];
  42. $email = $_POST['email'];
  43. $pass = $_POST['pass'];
  44.  
  45.  
  46. if ( is_email( $email ) && ! username_exists( $nom ) && ! email_exists( $email ) ) {
  47.  
  48. $user_id = wp_create_user( $nom, $pass, $email );
  49. $user = new WP_User( $user_id );
  50.  
  51. $user->set_role( 'subscriber' );
  52.  
  53. wp_new_user_notification( $user_id, $pass );
  54. } else {
  55. wp_redirect( site_url( '/inscription/?message=already-registered' ) );
  56. exit();
  57. }
  58.  
  59.  
  60. $creds = array();
  61. $creds['user_login'] = $nom;
  62. $creds['user_password'] = $pass;
  63. $creds['remember'] = false;
  64. $user = wp_signon( $creds, false );
  65.  
  66.  
  67. wp_redirect( site_url( '/?message=welcome' ) );
  68. exit();
  69. }
  70. }
  71.  
  72. add_action( 'current_screen', 'redirect_non_authorized_user' );
  73. function redirect_non_authorized_user() {
  74. // Si t'es pas admin, tu vires
  75. if ( is_user_logged_in() && ! current_user_can( 'manage_options' ) ) {
  76. wp_redirect( home_url( '/' ) );
  77. exit();
  78. }
  79. }
  80.  
  81. function edit_user_form() {
  82. if ( is_user_logged_in() ) {
  83. $userdata = get_userdata( get_current_user_id() );
  84. echo '<form action="' . admin_url( 'admin-post.php?action=update_utilisateur' ) . '" method="post" id="update-utilisateur">';
  85.  
  86. // Pseudo (ne peut pas être changé)
  87. echo '<p><label for="pseudo-user">Username</label>';
  88. echo '<input type="text" name="username" id="pseudo-user" value="' . $userdata->user_login . '" disabled></p>';
  89.  
  90. // Nom
  91. echo '<p><label for="nom-user">Nom</label>';
  92. echo '<input type="text" name="nom" id="nom-user" value="' . $userdata->last_name . '"></p>';
  93.  
  94. // Prénom
  95. echo '<p><label for="prenom-user">Prénom</label>';
  96. echo '<input type="text" name="prenom" id="prenom-user" value="' . $userdata->first_name . '"></p>';
  97.  
  98. // Nom d'affichage
  99. echo '<p><label for="display_name-user">Nom d\'affichage</label>';
  100. echo '<input type="text" name="display_name" id="display_name-user" value="' . $userdata->display_name . '" required></p>';
  101.  
  102. // Biographie
  103. echo '<p><label for="nom-user">Description</label>';
  104. echo '<textarea name="bio" id="bio-user">' . $userdata->user_description . '</textarea></p>';
  105.  
  106. // Site
  107. echo '<p><label for="site-user">Site web</label>';
  108. echo '<input type="text" name="site" id="site-user" value="' . $userdata->user_url . '"></p>';
  109.  
  110. // Email
  111. echo '<p><label for="email-user">Email</label>';
  112. echo '<input type="email" name="email" id="email-user" value="' . $userdata->user_email . '" required></p>';
  113.  
  114. // Mot de passe (Mis à jour uniquement si présent)
  115. echo '<p><label for="pass-user">Mot de passe</label>';
  116. echo '<input type="password" name="pass" id="pass-user"><br>';
  117. echo '<input type="checkbox" id="show-password"><label for="show-password">Voir le mot de passe</label></p>';
  118.  
  119. // Nonce
  120. wp_nonce_field( 'update-' . get_current_user_id(), 'user-front' );
  121.  
  122. //Validation
  123. echo '<input type="submit" value="Mettre à jour">';
  124.  
  125. echo '</form>';
  126.  
  127. // Enqueue de scripts qui vont nous permettre de vérifier les champs
  128. wp_enqueue_script( 'inscription-front' );
  129. }
  130. }
  131.  
  132. // Enregistrement de l'utilisateur
  133. add_action( 'admin_post_update_utilisateur', 'update_utilisateur' );
  134. function update_utilisateur() {
  135. // Vérifier le nonce
  136. if( isset( $_POST['user-front'] ) && wp_verify_nonce( $_POST['user-front'], 'update-' . get_current_user_id() ) ) {
  137.  
  138. // Vérifier les champs requis
  139. if ( ! isset( $_POST['email'] ) || ! is_email( $_POST['email'] ) ) {
  140. wp_redirect( site_url( '/profile/?message=need-email' ) );
  141. exit();
  142. }
  143.  
  144. // Si l'email change, alors on vérfie qu'elle n'est pas déjà utilisée
  145. if ( ( $emailuser = email_exists( $_POST['email'] ) ) && get_current_user_id() != $emailuser ) {
  146. wp_redirect( site_url( '/profile/?message=email-exist' ) );
  147. exit();
  148. }
  149.  
  150. // Nouvelles valeurs
  151. $userdata = array(
  152. 'ID' => get_current_user_id(),
  153. 'first_name' => sanitize_text_field( $_POST['prenom'] ),
  154. 'last_name' => sanitize_text_field( $_POST['nom'] ),
  155. 'display_name' => sanitize_text_field( $_POST['display_name'] ),
  156. 'description' => esc_textarea( $_POST['bio'] ),
  157. 'user_email' => sanitize_email( $_POST['email'] ),
  158. 'user_url' => sanitize_url( $_POST['url'] ),
  159. );
  160.  
  161. // On ne met à jour le mot de passe que si un nouveau à été renseigné
  162. if ( isset( $_POST['pass'] ) && ! empty( $_POST['pass'] ) ) {
  163. $userdata[ 'user_pass' ] = trim( $_POST['pass'] );
  164. }
  165.  
  166. // Mise à jour de l'utilisateur
  167. wp_update_user( $userdata );
  168.  
  169. // Redirection
  170. wp_redirect( site_url( '/profile/?message=user-updated' ) );
  171. exit();
  172. }
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement