web-dev-qa-db-fra.com

Création d'utilisateur sans nom d'utilisateur ni mot de passe

J'ai un formulaire d'inscription qui sera rempli par les utilisateurs et selon ce formulaire, je n'ai que le nom, le prénom, le prénom, l'adresse e-mail comme important et de nombreuses autres choses mineures.

Après l’enregistrement, l’administrateur créera un nom d’utilisateur et un mot de passe pour cette personne qui lui seront envoyés par courrier. Après cela, il peut pouvoir se connecter.

Quelqu'un peut-il me donner un indice, comment puis-je procéder.

1
Satrughna

Idée très simple. Suis les étapes:

Étape 1)

1) Créez un type d’enregistrement registration.add le champ nécessaire tel que prénom, nom, email etc. qui sont associés dans votre formulaire.

2) L'enregistrement personnalisé à partir des valeurs enregistre dans les types d'enregistrement. Alors maintenant, les valeurs soumises par votre formulaire sont entre vos mains.

3) Enregistrez le nom et le prénom dans le champ du titre.

4) vérifier le champ email dans la table users de wp, existe ou non. S'il existe, post ne créera pas et affichera la notification existe déjà ou réinitialisera tout ce que vous souhaitez afficher.

Étape 2)
1) dans la liste des types de publication, ajoutez un lien à ajouter à l'utilisateur en plus du lien modifier, prévisualiser, etc. ou créez une colonne User Creat où add est le lien permettant de créer l'utilisateur.

2) lorsque vous cliquez sur add dans votre code backend, travaillez pour créer l’utilisateur. Toute la valeur que vous avez de la poste.

3) Une fois créé, le nouvel utilisateur définit un rôle.

3) Vous pouvez maintenant supprimer le post d'enregistrement pour cet utilisateur en cours de création.

Je vous donne des conseils sur les étiquettes de code. C'est pour une idée. Cela ne fonctionnera pas si vous copiez et collez directement. Alors prenez une idée pour voir le code.

Du formulaire d'inscription à la sauvegarde de données de type de message personnalisé

$post = array( 
            'post_title'=>$_POST['firstname'] . $_POST['lastname'], 
            'post_type'=>'registration', 
            'post_content'=>'',
            'post_status'   => 'publish',
            );
$registration_id = wp_insert_post($post);
update_post_meta($registration_id, 'email', $_POST['email']);
//wp_publish_post($registration_id);

ajouté à un champ supplémentaire dans la table utilisateur

add_action( 'show_user_profile', 'my_show_extra_profile_fields' );
add_action( 'edit_user_profile', 'my_show_extra_profile_fields' );

function my_show_extra_profile_fields( $user ) { ?>

  <h3>Extra profile information</h3>

  <table class="form-table">

    <tr>
      <th><label for="abn">ABN</label></th>

      <td>
        <input type="text" name="abn" id="abn" value="<?php echo esc_attr( get_the_author_meta( 'abn', $user->ID ) ); ?>" class="regular-text" /><br />
        <span class="description">Please enter your abn num.</span>
      </td>
    </tr>
    <tr>
      <th><label for="abn">Business Name</label></th>

      <td>
        <input type="text" name="BusinessName" id="BusinessName" value="<?php echo esc_attr( get_the_author_meta( 'BusinessName', $user->ID ) ); ?>" class="regular-text" /><br />
        <span class="description">Please enter your Business Name.</span>
      </td>
    </tr>
    <tr>
      <th><label for="abn">Business type</label></th>

      <td>
        <input type="text" name="Businesstype" id="Businesstype" value="<?php echo esc_attr( get_the_author_meta( 'Businesstype', $user->ID ) ); ?>" class="regular-text" /><br />
        <span class="description">Please enter your Business type.</span>
      </td>
    </tr>
  </table>
<?php }

add_action( 'personal_options_update', 'my_save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' );

function my_save_extra_profile_fields( $user_id ) {

  if ( !current_user_can( 'edit_user', $user_id ) )
    return false;

  /* Copy and paste this line for additional fields. Make sure to change 'Twitter' to the field ID. */
  update_usermeta( $user_id, 'abn', $_POST['abn'] );
  update_usermeta( $user_id, 'BusinessName', $_POST['BusinessName'] );
  update_usermeta( $user_id, 'Businesstype', $_POST['Businesstype'] );
}

Les types de poste ajoutent une colonne

//add bulk action in registration post types
add_filter('manage_edit-product_columns', 'my_extra_cake_columns');
function my_extra_cake_columns($columns) {
    $columns['slices'] =__('Create User');
    return $columns;
}


    add_action( 'personal_options_update', 'my_save_extra_profile_fields' );
    add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' );

    function my_save_extra_profile_fields( $user_id ) {

      if ( !current_user_can( 'edit_user', $user_id ) )
        return false;

      /* Copy and paste this line for additional fields. */
      update_usermeta( $user_id, 'abn', $_POST['abn'] );
      update_usermeta( $user_id, 'BusinessName', $_POST['BusinessName'] );
      update_usermeta( $user_id, 'Businesstype', $_POST['Businesstype'] );
    }

add_action( 'manage_product_posts_custom_column', 'my_cake_column_content', 10, 2 );
function my_cake_column_content( $column_name, $post_id ) {
    if ( 'slices' != $column_name )
        return;
    echo '<a href="#">Add as user</a>';
}

add_filter( 'manage_edit-product_sortable_columns', 'my_sortable_cake_column' );
function my_sortable_cake_column( $columns ) {
    $columns['slices'] = 'slice';
    return $columns;
}

crée un utilisateur et envoie un mail

//How to Create User
$fname = get_post_meta($post_id,'firstname',true);
$lname = get_post_meta($post_id,'lastname',true);
$email_address = get_post_meta($post_id,'email',true);
$password = Rand(); //create random password 
$user_id = wp_create_user( $email_address, $password, $email_address );
          // Set the nickname
          wp_update_user(
            array(
              'ID'          =>    $user_id,
              'nickname'    =>    $email_address,
              'first_name'  =>    $fname,
              'last_name'   =>    $lname
            )
          );

          // Set the role
          $user = new WP_User( $user_id );

//delete that post
wp_delete_post( $post_id ); 
// Email the user
wp_mail( $email_address, 'Welcome!', 'Your Password: ' . $password );

Une autre chose que vous pouvez également utiliser gravityforms . Il a également des fonctionnalités pour créer l’utilisateur après l’enregistrement. C'est un plugins payants.

J'espère que l'idée fonctionnera pour vous. S'il vous plaît laissez-moi savoir si vous avez une autre requête.

0
Faysal Mahamud