Comment générer un code en fonction des informations

James3.4 Messages postés 37 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 5 septembre 2023 - 5 sept. 2023 à 04:14

Bonjour,

J'espère que vous allez bien.

Je travaille sur Wordpress et je cherche comment enregistré un code unique en fonction des informations enregistrés dans la base de données mais mon code ne fonctionne pas.

Exemple de code unique:

Code: 001/Alvin Brice/(date et heure d'enregistrement).

1- J'ai ajouté le code HTML dans une page Wordpress

<form action="<?php echo esc_url(admin_url('admin-post.php')); ?>" method="post">
    <input type="hidden" name="action" value="traitement_formulaire">
    <label for="nom">Nom :</label>
    <input type="text" name="nom" required><br><br>

    <label for="prenom">Prénom :</label>
    <input type="text" name="prenom" required><br><br>

    <label for="email">Email :</label>
    <input type="email" name="email" required><br><br>

    <input type="submit" value="S'inscrire">
</form>

2- Code PHP que j'ai ajouter dans le fichier functions.php

// Dans votre plugin ou functions.php
function genererCodeClient($nom, $prenom, $email) {
    // Concaténez les données pour créer un code unique
    $concatenation = $nom . $prenom . $email;

    // Utilisez une fonction de hachage (par exemple, MD5) pour obtenir un code
    $code = md5($concatenation);

    // Prenez un nombre fixe de caractères du code généré
    $code_client = substr($code, 0, 10); // Vous pouvez ajuster la longueur

    return $code_client;
}

function traitementFormulaire() {
    if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST['action']) && $_POST['action'] === "traitement_formulaire") {
        global $wpdb;

        $nom = sanitize_text_field($_POST["nom"]);
        $prenom = sanitize_text_field($_POST["prenom"]);
        $email = sanitize_email($_POST["email"]);

        // Générer un code client unique
        $code_client = genererCodeClient($nom, $prenom, $email);

        // Insérer les données dans la base de données
        $table_name = $wpdb->prefix . 'formulaire'; // Assurez-vous que votre table existe

        $wpdb->insert(
            $table_name,
            array(
                'nom' => $nom,
                'prenom' => $prenom,
                'email' => $email,
                'date_inscription' => current_time('mysql'),
                'code_client' => $code_client,
            )
        );

        echo "Inscription réussie. Votre code client est : $code_client";
    }
}

add_action('admin_post_traitement_formulaire', 'traitementFormulaire');
add_action('admin_post_nopriv_traitement_formulaire', 'traitementFormulaire');

3- Création de la table Formulaire

CREATE TABLE formulaire (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    nom TEXT,
    prenom TEXT,
    email TEXT,
    date_inscription DATE,
    code_client TEXT
);

Merci de bien vouloir me venir en aide.

Cordialement!

A voir également: