comment envoyer un formulaire et recevoir un mail lors de l envois (Créer un compte)

  • WordPress :5.8
  • Statut : hors support
4 sujets de 1 à 4 (sur un total de 4)
  • Auteur
    Messages
  • #2387308
    flexi2202
    Participant
    Chevalier WordPress
    132 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL : 8
    • Thème utilisé : Twenty NineteenVersion : 2.1
    • Extensions en place : wp-members ACF CPT ACF gallery
    • Nom de l’hébergeur : hostinger
    • Adresse du site : en test

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

    bonjour a tous

    j’ ai un formulaire qui fonctionne et lorsque j applique ce code cela enregistre bien les données dans la base de donnée

    'submit_value' => 'Postez votre journnee de peche'

    si je veux recevoir un mail apres l envois du formulaire j utilise ceci

    'submit_value'	=> 'Send'

    mais je dois choisir entre soit enregistrer les informations en base de donnée ou soit recevoir un mail , y a t il une possibilité pour  que je puisse envoyer et enregistrer en même temps avec un seul bouton

    • Ce sujet a été modifié le il y a 1 mois et 1 semaine par flexi2202.
    #2387342
    stephan_b
    Participant
    Padawan WordPress
    52 contributions

    Bonjour,

    Comme est créé le formulaire? Avec quel plugin?

     

    #2387345
    flexi2202
    Participant
    Chevalier WordPress
    132 contributions

    bonjour

    merci pour la reponse

    dans un premier temps j ai crée un CPT “pêche”

    ensuite j ai crée des champs avec ACF

    puis j ai donc crée un formulaire en m inspirant de page.php

    le contenu de formulaire est le suivant

    <?php /*Template Name: formulaire2*/;
    /**
     * Theme Page Section for our theme.
     *
     * @package    ThemeGrill
     * @subpackage ColorMag
     * @since      ColorMag 1.0
     */
    
    // Exit if accessed directly.
    if ( ! defined( 'ABSPATH' ) ) {
    	exit;
    }
    acf_form_head(); 
    get_header();
    
    /**
     * Hook: colormag_before_body_content.
     */
    do_action( 'colormag_before_body_content' );
    ?>
    
    	<div id="primary">
    		<div id="content" class="clearfix">
    			<?php
    			/**
    			 * Hook: colormag_before_single_page_loop.
    			 */
    			do_action( 'colormag_before_single_page_loop' );
    
    			while ( have_posts() ) :
    				the_post();?>
    				
    					
    				<h1><?php the_title(); ?></h1>
    				<!-- a supprimer si on enlève l'éditeur par défaut -->
    				<?php the_content(); ?>
    				<!------------>
    				<p> <?php the_field('titre'); ?></p>
    				<p> <?php the_field('date'); ?></p>
    				<p> <?php the_field('ville_peche'); ?></p>
    				<p> <?php the_field('cours_deau'); ?></p>
    				<p> <?php the_field('duree_de_ta_seance_de_peche'); ?></p>
    				<p> <?php the_field('nombre_de_gardons'); ?></p>
    				<p> <?php the_field('nombre_de_bremes'); ?></p>
    				<p> <?php the_field('nombre_perches'); ?></p>
    				<p> <?php the_field('nombre_dablettes'); ?></p>
    				<p> <?php the_field('nombre_de_rotengles'); ?></p>
    				<p> <?php the_field('nombre_de_carpes'); ?></p>
    				<p> <?php the_field('nombre_de_goujons'); ?></p>
    				<p> <?php the_field('nombre_de_tanches'); ?></p>
    				<p> <?php the_field('nombre_de_carassins'); ?></p>
    				<p> <?php the_field('nombre_dides'); ?></p>
    				<p> <?php the_field('nombre_ddhybrides'); ?></p>
    				<p> <?php the_field('nombre_de_sandres'); ?></p>
    				<p> <?php the_field('nombre_de_brochets'); ?></p>
    				<p> <?php the_field('nombre_danguilles'); ?></p>
    				<p> <?php the_field('nombre_de_gobies'); ?></p>
    				<p> <?php the_field('nombre_de_truite'); ?></p>
    				<p> <?php the_field('esches_utilisees'); ?></p>
    				<p> <?php the_field('meteo'); ?></p>
    				
    				<p> <?php the_field('total_des_prises'); ?></p>
    				<p> <?php the_field('gallery'); ?></p>
    		
    				<?php  $options = array('post_id'		=> 'new',
    		'field_groups' => array(482),
    		'post_title'	=> false,
    		
    	
    			'post_type'		=> 'peche',
    			'post_status'	=> 'draft',
    		
    		//'updated_message'    => 'Merci pour votre participation!Votre recette sera publiée prochainement',
    		'return'		=> home_url('merci'),
    		'submit_value'	=> 'Postez votre journee de peche'
    		//'submit_value'	=> 'Send'
    		);
    				 acf_form($options);?>
    				 <?php
    
    			//	get_template_part( 'content', 'page' );
    
    				/**
    				 * Hook: colormag_before_comments_template.
    				 */
    				do_action( 'colormag_before_comments_template' );
    
    				/**
    				 * Functions hooked into colormag_action_after_inner_content action.
    				 *
    				 * @hooked colormag_render_comments - 10
    				 */
    				do_action( 'colormag_action_comments' );
    
    				/**
    				 * Hook: colormag_after_comments_template.
    				 */
    				do_action( 'colormag_after_comments_template' );
    
    			endwhile;
    
    			/**
    			 * Hook: colormag_after_single_page_loop.
    			 */
    			do_action( 'colormag_after_single_page_loop' );
    			?>
    		</div><!-- #content -->
    	</div><!-- #primary -->
    
    <?php
    colormag_sidebar_select();
    
    /**
     * Hook: colormag_after_body_content.
     */
    do_action( 'colormag_after_body_content' );
    
    get_footer();

    puis dans mon fichier function.php j ai deux actions une pour enregistrer le formulaire et qui fonctionne lorsque j active

    ‘submit_value’ => ‘Postez votre journee de peche’

    et que je désactive

    //’submit_value’ => ‘Send’

    //debut partie pour enregistrer formulaire peche 
    
    function my_pre_save_post( $post_id ) {
     
        // check if this is to be a new post
        if( $post_id != 'new' )
        {
            return $post_id;
        }
     
        // Create a new post
        $post = array(
            'post_status'  => 'pending',
            
            'post_title'    => $_POST['acf']['field_615df430317ae'],
            'post_type'  => 'peche',
        );
     
        // insert the post
        $post_id = wp_insert_post( $post );
     
        // update $_POST['return']
        $_POST['return'] = add_query_arg( array('post_id' => $post_id), $_POST['return'] );
     
        // return the new ID
        return $post_id;
    }
     add_filter('acf/pre_save_post' , 'my_pre_save_post' );
    //fin partie pour enregistrer formulaire peche 

    ensuite j ai une action pour l envois qui fonctionne si j active

    ‘submit_value’ => ‘Send’

    et que je désactive

    //’submit_value’ => ‘Postez votre journee de peche’

    que voici

    //envois message
    // Sending email after Front-end post submission
    add_action('acf/save_post', 'my_save_post');
    
    function my_save_post( $post_id ) {
        
        // bail early if not a contact_form post
        if( get_post_type($post_id) !== 'peche' ) {
            
            return;
            
        }
        
        
        // bail early if editing in admin
        if( is_admin() ) {
            
            return;
            
        }
        
        
        // vars
        $post = get_post( $post_id );
        
        
        // get custom fields (field group exists for content_form)
        $name = get_field('name', $post_id);
        $email = get_field('email', $post_id);
        
        
        // email data
        $to = 'perroquet666@hotmail.com';
    //    $headers = 'From: ' . $name . ' <' . $email . '>' . "\r\n";
        $subject = $post->post_title;
    //    $body = $post->post_content;
        $message='une nouvlle journee de peche a ete postee';
        
        // send email
        wp_mail($to , $subject , $message);
        
    }

    mon soucis c est que je souhaiterais qu un email me soit envoyé et que le formulaire puisse s enregistrer avec un seul bouton

    donc pouvoir assembler les deux actions en une seule dans le fichier function.php

    • Cette réponse a été modifiée le il y a 1 mois et 1 semaine par flexi2202.
    • Cette réponse a été modifiée le il y a 1 mois et 1 semaine par flexi2202.
    #2387351
    flexi2202
    Participant
    Chevalier WordPress
    132 contributions

    voici donc la solution tout simplement

    <?php
    //debut partie pour enregistrer formulaire peche 
    function my_pre_save_post( $post_id ) {
     
        // check if this is to be a new post
        if( $post_id != 'new' )
        {
            return $post_id;
        }
     
        // Create a new post
        $post = array(
            'post_status'  => 'pending',
            'post_title'    => $_POST['acf']['field_615df430317ae'],
            'post_type'  => 'peche',
        );
     
        // insert the post
        $post_id = wp_insert_post( $post );
     
        // update $_POST['return']
        $_POST['return'] = add_query_arg( array('post_id' => $post_id), $_POST['return'] );
     
        /*****************************
         * Code pour envoyer l'email *
         *****************************/
        // email data
        $to = 'perroquet666@hotmail.com';
        // $headers = 'From: ' . $name . ' <' . $email . '>' . "\r\n";
        $subject = $post->post_title;
        // $body = $post->post_content;
        $message='une nouvlle journee de peche a ete postee';
        
        wp_mail( $to, $subject, $message);
        /************************************
         * Fin du code pour envoyer l'email *
         ************************************/
    
        // return the new ID
        return $post_id;
    }
    
    add_filter('acf/pre_save_post' , 'my_pre_save_post' );
    //fin partie pour enregistrer formulaire peche

    a présent ma question est de savoir comment faire si j ai deux post-type diffèrent

    le premier pour poster les journées de pêches comme celui ci

    et un deuxième pour poster  des recettes de pêche

    j ai essaye de copier coller le code ci dessous en changeant le post-type  et en le plaçant sous le premier dans function.php mais le site se plante

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