Supprimer l’activation par mail pour simplifier l’inscritpion (Créer un compte)

  • Statut : non résolu
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #451498
    allm
    Participant
    Initié WordPress
    38 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 1.0
    – Thème utilisé : freshy modifié
    – Plugins en place :
    – Nom de l’hebergeur : celeonet
    – Adresse du site : http://blogs.all-musculation.com

    Problème(s) rencontré(s) :

    Bonjour,

    Quelqu’un à déja fait ça ?

    Je voudrais éviter l’étape du mail d’activation pour créer un compte, car certains de mes mails arrivent en indesirable ou arrivent pas du tout, du coup je rate des inscrtiption.

    J’aimerai que les gens puissent créer leur blog direct, sans ce mail d’activation (je mettrais en place une captcha bien entenud).

    Style les gens créer leur blog donnent login + mdp + captcha et c’est parti 🙂

    Je dois pouvoir le faire en bidouillant le php, mais si y’a une solution simple je suis preneur 🙂

    Merci

    #597508
    pablo
    Membre
    Initié WordPress
    39 contributions

    Salut

    A priori je ne pense pas. J’ai dernièrement crée une fonctionnalité qui permet de passer cette étape, mais uniquement si l’on souhaite s’inscrire à un blog comme rédacteur (biensûr l’admin du blog doit valider). J’ai du redevelloper un formulaire d’enregistrement car à l’époque (il y a 1 mois) aucun plug-in proposait une fonctionnalité sans approchant et je ne pense pas que cela ai évolué.

    #597509
    allm
    Participant
    Initié WordPress
    38 contributions

    ok, merci quand meme 🙂

    Je vais remettre les doigts dans le code (vais devenir bon à force ! )

    #597510
    AmO
    Participant
    Maître WordPress
    4451 contributions

    Possible en hackant ^^

    #597511
    allm
    Participant
    Initié WordPress
    38 contributions

    Ayé

    Super facile en fait, à peine 1h00 de travail. J’ai redirigé la sortie de la derniére page de login vers le lien généré pour l’activation (au lieu du message d’information qui dit de cliquer sur le lien dans le mail).

    #597512
    allm
    Participant
    Initié WordPress
    38 contributions

    UP, j’ai eu de nombreux messages pour me demander comment j’avais fais, donc voilà le code que j’ai utilisé :

    Dans wmpu-functions.php, remplacer les fonctions existantes par celles là (les modifs sont entre les //AllM )

    // Record signup information for future activation. wpmu_validate_signup() 
    should be run
    // on the inputs before calling wpmu_signup().
    function wpmu_signup_blog($domain, $path, $title, $user, $user_email, $meta 
    = ”) {
     global $wpdb, $current_site;
    
     $key = substr( md5( time() . rand() . $domain ), 0, 16 );
     $registered = current_time(‘mysql’, true);
     $meta = serialize($meta);
     $domain = $wpdb->escape($domain);
     $path = $wpdb->escape($path);
     $title = $wpdb->escape($title);
     $wpdb->query( “INSERT INTO $wpdb->signups ( domain, path, title, 
    user_login, user_email, registered, activation_key, meta )
         VALUES ( ‘$domain’, ‘$path’, ‘$title’, ‘$user’, ‘$user_email’, 
    ‘$registered’, ‘$key’, ‘$meta’ )” );
    
     wpmu_signup_blog_notification($domain, $path, $title, $user, $user_email, 
    $key, $meta);
    
     // AllM
     if( constant( “VHOST” ) == ‘no’ ) {
      $activate_url = “http://” . $current_site->domain . $current_site->path . 
    “wp-activate.php?key=$key”;
     } else {
      $activate_url = “http://{$domain}{$path}wp-activate.php?key=$key”;
     }
    
     return $activate_url;
     // AllM
    
    
    }
    
    function wpmu_signup_user($user, $user_email, $meta = ”) {
     global $wpdb, $current_site;
    
     $key = substr( md5( time() . rand() . $user_email ), 0, 16 );
     $registered = current_time(‘mysql’, true);
     $meta = serialize($meta);
     $wpdb->query( “INSERT INTO $wpdb->signups ( domain, path, title, 
    user_login, user_email, registered, activation_key, meta )
         VALUES ( ”, ”, ”, ‘$user’, ‘$user_email’, ‘$registered’, ‘$key’, 
    ‘$meta’ )” );
    
     wpmu_signup_user_notification($user, $user_email, $key, $meta);
    
     // AllM
     $activate_url = “http://{$_SERVER[ 
    ‘SERVER_NAME’ ]}/wp-activate.php?key=$key”;
     return $activate_url;
     // AllM
    
    }

    Ces deux fonctions sont appellées dans wp-signup.php. Les modifs mises en place permettent à ces fonctions de retourner en sortie le lien d’activation (qui est normalement envoyé par mail) au fichier wp-signup.php, qui est modifié comme suit, pour prendre en compte cette url :

    function validate_user_signup() {
     $result = validate_user_form();
     extract($result);
     if (($_SESSION[‘string’] == $_POST[‘userstring’]) && 
    (strlen($_SESSION[‘string’]) > 4)) {
    
     if ( $errors->get_error_code() ) {
      signup_user($user_name, $user_email, $errors);
      return;
     }
    
     if ( ‘blog’ == $_POST[‘signup_for’] ) {
      signup_blog($user_name, $user_email);
      return;
     }
    
    // wpmu_signup_user($user_name, $user_email);
    // confirm_user_signup($user_name, $user_email);
    
     // AllM : appel de l’activation
     $activate_url = wpmu_signup_user($user_name, $user_email);
     make_activation($activate_url,$user_email) ;
     } else {
      die(‘Veuillez saisir un code correct svp.’);
     }
    
    }
    
    
    [..]
    
    function validate_blog_signup() {
     // Re-validate user info.
     $result = wpmu_validate_user_signup($_POST[‘user_name’], 
    $_POST[‘user_email’]);
     extract($result);
    
     if ( $errors->get_error_code() ) {
      signup_user($user_name, $user_email, $errors);
      return;
     }
    
     $result = wpmu_validate_blog_signup($_POST[‘blog_id’], 
    $_POST[‘blog_title’]);
     extract($result);
    
     if ( $errors->get_error_code() ) {
      signup_blog($user_name, $user_email, $blog_id, $blog_title, $errors);
      return;
     }
    
     $public = (int) $_POST[‘blog_public’];
     $meta = array (‘lang_id’ => ‘en’, ‘public’ => $public);
     $meta = apply_filters( “add_signup_meta”, $meta );
    
    // wpmu_signup_blog($domain, $path, $blog_title, $user_name, $user_email, 
    $meta);
    // confirm_blog_signup($domain, $path, $blog_title, $user_name, $user_email, 
    $meta);
    
     // AllM : appel de l’activation
     $activate_url = wpmu_signup_blog($domain, $path, $blog_title, $user_name, 
    $user_email, $meta);
     make_activation($activate_url, $_POST[‘user_email’]) ;
    
    }
    
    function make_activation($activate_url, $email) { // Créée par AllM pour 
    faire direct l’activation 
    
     // redirection vers la page d’activation
     header( “Location:”.$activate_url );
    }

    J’éspére que ca vous aidera 🙂

    #597513
    AmO
    Participant
    Maître WordPress
    4451 contributions

    Je déconseille tout de même cette manipulation.

    #597514
    Mastok
    Membre
    Initié WordPress
    10 contributions

    Petit up, dans les nouvelles versions de WordPress, il semble que ça ne soit pas contournable, dois-je hacker en recopiant les lignes de codes ci-dessous ou existe-t-il un plug pouvant contourner le probleme ?

    En fait, j’aimerais que chaque personne qui s’inscrit soit contributeur, sans l’activation par mail.

    Merci !

8 sujets de 1 à 8 (sur un total de 8)
  • Vous devez être connecté pour répondre à ce sujet.