Création d’un plugin avec un formulaire personnalisé et son traitement (Créer un compte)

  • WordPress :5.4
  • Statut : non résolu
Affichage de 1 message (sur 1 au total)
  • Auteur
    Messages
  • #2356124
    Renaud2263
    Participant
    Initié WordPress
    7 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : 7.3
    • Thème utilisé : Astra
    • Extensions en place :
    • Nom de l’hébergeur :
    • Adresse du site : https://www.eauvie.fr

    Bonjour à tous,

    Je suis débutant dans le monde WP et je tente de créer mon 1er plugin: un formulaire qui permet de poster des infos de sites pour un petit annuaire. Mon plugin s’appelle “annuaire”.

    1. J’ai crée un dossier “annuaire” dans le dossier plugin.
    2. J’y ai mis la page annuaire.php avec les entêtes qui vont bien.
    3. J’ai activé le plugin
    4. J’ai crée une page WP qui est “mon-annuaire” et j’y ai collé mon shortcode.

    Voici la structure résumée de mon code :

    function annuaire_form(){
    /*les champs du form*/
    }
    function verifier_form($champ1, $champ2....){
    global $reg_errors;
    $reg_errors = new WP_Error;
    if(empty($champ1) || empty($champ2)){
    $reg_errors->add('field', 'Des champs obligatoires sont manquants');
    }
    //si erreurs
    if ( is_wp_error( $reg_errors ) ) {
     
    foreach ( $reg_errors->get_error_messages() as $error ) {
    echo "...erreurs";
    }
    }
    
    function enregistre(){
    global $wpdb, $reg_errors,$champ1...;
    if ( 1 > count( $reg_errors->get_error_messages() ) ) {
    $wpdb->insert(array($data))
    //insertion BDD
    }
    echo "formulaire envoyé";
    }
    
    /*super fonction qui englobe tout*/
    function gere_tout(){
    if(isset($_POST['submit'])){
    
    //vérif des données
    verifier_form($_POST['champ1'],......);
    
    //je sécurise les données
    $champ1 = sanitize_text_field($_POST['champ1']);
    */etc....*/
    
    /*j'appelle fonction enregistre*/
    enregistre($champ1,.......);
    
    }//fin du if submit
    
    //affichage du formulaire
    annuaire_form();
    }
    
    /*création du shortcode pour appeler la super fonction
    add_shortcode( 'link_submission', 'resgistration_shortcode' );
    
    function registration_shortcode() {
        ob_start();
        gere_tout();
        return ob_get_clean();
    }
    Mon code

    Quand j’appelle ma page mon-annuaire où j’ai collé mon shortcode, le formulaire s’affiche bien. Mais quand je le poste j’obtiens “page non trouvée” comme si ma fonction gere_tout avec le if(isset($_POST[‘submit’])) était ignorée.

    Et je sèche…alors merci de me dire où ça cloche.

    Bonne soirée.

     

Affichage de 1 message (sur 1 au total)
  • Vous devez être connecté pour répondre à ce sujet.