Timama (Créer un compte)

Toutes mes réponses sur les forums

15 sujets de 1 à 15 (sur un total de 233)
  • Auteur
    Messages
  • en réponse à : [Résolu] add_action formulaire gravity form dans un shortcode #2247707
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    alors en fait, cela n’est pas possible car cela fait utiliser un deuxième shortcode pour un formulaire gravity form.

    La solution, qui n’a rien à voir avec la questions, est de mettre une variable cachée appelée par exemple CACHEE dnas le formulaire gravity form et que si le formulaire à ce paramètre caché , alors on fait le add_action

     

    function msk_gform_process_user_registration_MB( $entry, $form ) {
    $fields = $form['fields'];
    // Check every field in the form.
    foreach ( $fields as $field ) {
    // If our hidden field has been added to this form, process the user registration.
    if ( $field->label = 'cachee' ) {
    // recupérer les data pour la base de données ici
    }
    }
    }
    }
    add_action( 'gform_after_submission', 'msk_gform_process_user_registration_MB', 10, 2 );

     

    il faut noter que le problème de base est celui ci :

    <span class= »comment-copy »>J’ai un formulaire A avec le titre AAA. j’ai une page wordpress avec ce formulaire dedans.
    </span>

    Je copie ce formulaire plusieurs fois et le place dans des pages différentes.
    Une page (et un formulaire) peuvent être créer n’importe quand par des personnes qui ne peuvent pas écrire de code à chaque formulaire.
    C’est pour ça que j’ai cherché à automatisé le process….. mais mon idée de départ n’était pas bonne.

    <span class= »comment-copy »>il fallait juste ajouter un paramètre caché dans le formulaire (paramètre étant dupliqué avec le formulaire) et testé ce paramètre.
    J’essayai de passer les numéro de formulaire… masi j’ais pas du tout trouvé de solution par ce chemin…

    Résolu !
    </span>

    en réponse à : rendre une variable définie dans un shortcode accessible partout #2247702
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    alors en fait, il n’y a pas de solution à cause des add_action et shortcode.. de la forme globale en fait…

    j’ai repris le problème mais complètement différement…..

    dans d’autre post…

     

     

    PAS DE SOLUTION

    Timama
    Participant
    Chevalier WordPress
    284 contributions

    du coup cela n’a plus rien à voir avec la question de base…

    A part que c’est impossible d’avoir

     

    add_action('gform_after_submission_i', 'msk_gform_process_user_registration_i', 10, 2);   
    function msk_gform_process_user_registration_i ($entry, $form) {

     

    avec i qui varie….

     

    merci pour votre aide

    Timama
    Participant
    Chevalier WordPress
    284 contributions

    du coup j’essaie de passer la variable $num_formular en global mais je n’y arrive pas ..

    et pourtant je fait comme dans des docs que je lis.. mais rien

     


    /* Shortcode pour Ansprechpartner Benutzer Marque Blanche */
    add_shortcode( 'app-benutzer' , 'ss_get_appbenutzer' );
    function ss_get_appbenutzer($atts, $content = null){
    global $num_formular;
    /* Récupération du numéro du formulaire*/
    $atts = shortcode_atts(
    array(
    'num_formular' => 'NUM_formular'
    ), $atts);

    //$num_formular = $atts['num_formular'];
    $GLOBALS['num_formular'] = $atts['num_formular'];

    echo 'NUM Formulaire DANS SHORTCODE ='.$num_formular;
    echo 'global SHORTCODE=' .$GLOBALS['num_formular'];

    $gform = "'gform_after_submission_".$num_formular."'";
    do_action($gform,$entry, $form,$num_formular );
    return $GLOBALS['num_formular'];
    }
    add_action('gform_after_submission_192', 'msk_gform_process_user_registration_MB', 10, 2);


    echo 'Num Formulaire Hors Fontions GLOBAL='.$GLOBALS['num_formular'];
    echo 'Num Formulaire Hors Fontions='.$num_formular;


    function msk_gform_process_user_registration_MB ($entry, $form) {

    echo 'PASSAGE DANS FNCTION msk_gform_process_user_registration_MB --> ok ';
    echo 'EMAIL TEST =' .$emailhaupt;

    }
    };

     

    ce code me donne l’affichage

    NUM Formulaire DANS SHORTCODE =192

    global SHORTCODE=192

     

    Num Formulaire Hors Fontions GLOBAL=    (toujours vide)

    Num Formulaire Hors Fontions=   (toujours vide, je n’arrive pas à passer $num_formular en global)

    PASSAGE DANS FNCTION msk_gform_process_user_registration_MB –> ok   (ici ça passe car j’ai laissé 192 dans le nom de la fonction )

    EMAIL TEST =emailhaupt@gmail.com

     

     

    merci pour vos conseils sur les globals

     

    Timama
    Participant
    Chevalier WordPress
    284 contributions

    oh merci ! je vais regarder shortcode_atts. Je ne savais pas .

    J’ai pensé effectivement à inclure le add_action dans la fonction, mais cela ne fonctionne pas…
    même quand je met

    add_action( 'init', 'mafonction');
    function mafonction( $atts ){
    extract(shortcode_atts(array(
    'num_formular' => 'NUM_formular'
    ), $atts));
    add_action('gform_after_submission_192', 'msk_gform_process_user_registration_MB', 10, 2);
    }

    le texte

    ‘EMAIL TEST =’
    n’apparait même plus.. cela ne passe plus dans la fonction

    function msk_gform_process_user_registration_MB
    et là je ne sais pas pourquoi….

    c’est pour ça que j’ai mis le Add_action à l’exterieur…. et du coup j’ai un problème avec $num_formular

    • Cette réponse a été modifiée le il y a 5 années et 7 mois par Timama.
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    merci pour ce conseil.

     

    Je l’ai testé, c’est dans mon post au dessus (oui il etait long, c’était à la fin 😉 ) mais le problème c’est que $num_formular est vide est vide en dehors de la fonction

    ss_get_appbenutzer

    et je n’arrive pas à la passer en global car justement elle est définit dans la fonction ss_get_appbenutzer.

    Et c’est pour ça que add_action ne fonctionne pas car $num_formular est vide

    Timama
    Participant
    Chevalier WordPress
    284 contributions

    bonjour..
    Ah oui .. je me suis embrouillée…. merci pour cette remarque…

    C’est que je cherche plein de choses en même temps..

    EN PHP, je n’arrive pas à passer une variable….

    j’ai le code suivant maintenant

     

    add_shortcode( 'app-benutzer' , 'ss_get_appbenutzer' );
    function ss_get_appbenutzer($atts, $content = null){
    /* Récupération du numéro du formulaire*/
    extract(shortcode_atts(array(
    'num_formular' => 'NUM_formular'
    ), $atts));

    echo 'NUM 1 ='.$num_formular;

    global $num_formular;
    $gform = "'gform_after_submission_".$num_formular."'";
    do_action($gform,$entry, $form,$num_formular );
    }

    add_action('gform_after_submission_192', 'msk_gform_process_user_registration_MB', 10, 2);
    function msk_gform_process_user_registration_MB ($entry, $form) {

    echo 'EMAIL TEST =' .$emailhaupt;
    echo 'NUM 2='.$num_formular;
    echo 'ID = ' .$id;

    };

    et ça marche dans ce cas, l’affichage est le suivant.

    EMAIL TEST =emailhaupt@gmail.com

    NUM 2=

    ID = 192

    NUM 1 =192

    MAis moi ce que je veux, c’est également remplacer
    add_action(‘gform_after_submission_192’, ‘msk_gform_process_user_registration_MB’, 10, 2);

    en passant la variable  $num_formular à la place du 192, comme ça

    $gform = « ‘gform_after_submission_ ».$num_formular. »‘ »;
    add_action($gform, ‘msk_gform_process_user_registration_MB’, 10, 2);

    mais quand je fais ça , j’ai l’affichage suivant:
    NUM 1 =192
    EMAIL TEST =
    NUM 2=
    ID =

    c’est vide car la variable $num_formular  est vide…..

    j’ai essayé de la mettre en global mais cela ne fonctionne pas….

    auriez vous un conseil pour cette variable ?
    >merci par avance

    • Cette réponse a été modifiée le il y a 5 années et 7 mois par Timama.
    • Cette réponse a été modifiée le il y a 5 années et 7 mois par Timama.
    en réponse à : affichage custom post type dans liste déroulante #2171379
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    Je me dit qu’il y a peut etre interférence entre

                        $query = $wpdb->prepare("SELECT * FROM wpPGRmaplus_angebote WHERE `id_angebot`=$ID_angebot ");
    $results = $wpdb->get_results($query);

    et 
    
    
                $dropdownlist = new WP_Query($args_dropdownlist);

    
    c'est possible ?
    • Cette réponse a été modifiée le il y a 6 années et 3 mois par Timama.
    en réponse à : [Résolu] Plugin perso d’Export CSV #2163192
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    Bonjour,

     

    Voici la version qui fonctionne pour ceux que ça interesse

     

    function Code_CSV_export_page() {
    if(is_admin()){
    global $wpdb;
    if(isset($_POST['exportbtn'])){
    $ID_angebot = $_POST['ID_angebot_enter'];
    if (empty($_POST['ID_angebot_enter']))
    { ?>
    <table class="form-table">
    <tbody>
    <tr><th> </br> </br> </th> </tr>
    <tr><th> </br> </th> </tr>
    <tr>
    <th style="color:red";>VORSICHT</th>
    <td style="color:red";> - Bitte, nicht vergessen die Angebots-ID - </td>
    </tr>
    <tr><th> </br> </th> </tr>

    <tr>
    <th> <a href="https://programm-maplus.de/wp-admin/edit.php?post_type=angebote&page=Code_CSV_export"> Zur Export Plugin</a></th>
    <td> </td>
    </tr>

    <?php exit();
    }

    ob_clean();
    $fh = @fopen( 'php://output', 'w' );
    $header_row = array(
    0 =>'ID ANGEBOT',
    1 =>'ANGEBOT',
    2 =>'ENDDATUM',
    3 =>'FIRMENNAMEN',
    4 =>'CODE',
    5 =>'VERWENDET',
    6 =>'TITEL',
    7 =>'NACHNAME',
    8 =>'VORNAME',
    9 =>'HERUNTERLADEN DATUM'
    );
    $data_rows = array();
    $query = $wpdb->prepare("SELECT * FROM wpPGRmaplus_angebote WHERE `id_angebot`=$ID_angebot ");
    $results = $wpdb->get_results($query);

    foreach ( $results as $result ) {
    $row = array();
    $row [0] = $result -> id_angebot;
    $row [1] = $result -> angebot_name;
    $row [2] = $result -> enddatum;
    $row [3] = $result -> firmenname;
    $row [4] = $result -> code;
    $row [5] = $result -> verwendet;
    $row [6] = $result -> Titel;
    $row [7] = $result -> Nachname;
    $row [8] = $result -> Vorname;
    $row [9] = $result -> herunterladen_datum;
    $data_rows[] = $row;
    }

    fputcsv( $fh, $header_row,"\t", '"' );
    foreach ( $data_rows as $data_row ) {
    fputcsv( $fh, $data_row ,"\t", '"');
    }
    fprintf( $fh, chr(0xEF) . chr(0xBB) . chr(0xBF) );

    header("Content-Type: application/vnd.ms-excel; charset=utf-8");
    header("Content-Disposition: attachment; filename=".date('Ymd')."-"."Export-Angebot-".$ID_angebot.".xls"); //File name extension was wrong
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: private",false);
    }
    ?>
    <form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post" id="export-form">
    <table class="form-table">
    <tbody>
    <tr><th> </br> </br> </th> </tr>
    <tr><th> </br> </br> </th> <td style="padding-bottom:60px; font-size: 25px; font-weight:bold;">Exportcodes und ihre Benutzer </td> </tr>
    <tr><th> </br> </th> </tr>
    <tr><th>ID des Angebots bezogen auf die Codeliste</th>
    <?php $ID_angebot_enter = $custom_angebotenter["ID_angebot_enter"][0]; ?>
    <td style="padding-top:20px;" ><input class="regular-text" id="ID_angebot_enter" type="text" name="ID_angebot_enter" value="<?php echo $ID_angebot_enter;?>" /></br>
    <i> <?php echo 'Die ID wird im Angebot angezeigt -> Teil "Wie benutzt man das Angebot in Wordpress?"'; ?></i> <br/>
    <i> <?php echo 'ACHTUNG, Export der Datenbank, abhängig vom gewählten Angebot;' ?></i> <br/> <br/> <br/> </td>
    </tr>
    <tr><th> Export in Excel File</th>
    <td> <input class="button button-primary exportbtn" name="exportbtn" type="submit" name="table_display" value="Export"/></td>
    </tr>
    </tbody>
    </table>
    </form>
    <?php } }

    en réponse à : [Résolu] Plugin perso d’Export CSV #2161776
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    oups je n’avais pas vu la fin de mon message…

     

    Je disais donc, apparemment, ça plante au niveau du

    foreach ( $data_rows as $data_row ) {
    fputcsv( $fh, $data_row );
    }

     

    Si vous avez des indices pour m’éclairer, merci beaucoup par avance !

    Timama

    en réponse à : [Résolu] Bouton envoi Email via shortcode #2152098
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    Bonjour,

    Et bien le dernier code que j’ai posté fonctionne.

    En fait, l’envoi des mails ne fonctionnait pas à cause d’un problème sur l’hébergement.

    donc tout est bon !

    merci beaucoup !

    en réponse à : [Résolu] Bouton envoi Email via shortcode #2151585
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    bonjour, et meri.

    oui c’est sur je comprends.. j’ai aussi essayé avec WP_mail comme ça fonctionne pas , j’ai testé pas mal de chose.

    J’ai regardé les spams aussi….

    maintenant, il y a apparement un problème avec les adresses Email de l’hebergement et l’envoi d’Email à partir de ces adresses.
    Bon, je ne les utilise pas dnas mon shortcode mais si le smtp est bloqué peut être que cela vient de là ..

     

    je reviens avec la solution j’espère

    en réponse à : [Résolu] Bouton envoi Email via shortcode #2151013
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    Quand j’essaie de voir ce que retourne mail

    function boutoncode($atts, $content = null) {
    global $wpdb;
    extract(shortcode_atts(array(
    'lien' => '#',
    'couleur' =>'bleu'
    ), $atts));

    $codecode = '
    <form method="post" >
    <input class="bouton '.$couleur.'" type="submit" name="envoyer" value="Cliquez ICI pour recevoir par Email le CODE PROMO" />
    </form>';

    $postcode = $_POST['envoyer'];

    if ( isset($postcode) ) {

    // Code PHP pour traiter l'envoi de l'email - header général
    if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", 'monemail@gmail.com'))
    {
    $passage_ligne = "\r\n";
    }
    else
    {
    $passage_ligne = "\n";
    }
    $headers = 'From: MAplus'.$passage_ligne;
    $headers .= "MIME-Version: 1.0".$passage_ligne;
    $headers .= 'Content-type: text/html; charset=UTF-8' .$passage_ligne;
    mail('monemail@gmail.com', 'test shortcode', 'test', $headers);

    if (mail('maity_max@yahoo.fr', 'test shortcode', 'test', $headers)==true)
    {
    echo 'ENVOI';
    }
    else
    {
    echo ' PB ENVOI';
    }
    // include("send-email-contact.php");
    }

    return $codecode;

    }
    add_shortcode('boutoncode', 'boutoncode');

     

    Avec le code ci dessus,  le texte ‘ENVOI s’affiche, cela veut dire que la fonction mail renvoi true.

    Mais je ne reçois pas de mail.

     

    auriez vous un indice ou une remarque pour moi ?

    merci beaucoup

     

     

     

    en réponse à : [Résolu] Bouton envoi Email via shortcode #2151005
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    j’ai essayé autre chose :

    function boutoncode($atts, $content = null) {
    extract(shortcode_atts(array(
    'lien' => '#',
    'couleur' =>'bleu'
    ), $atts));

    $codecode = '
    <form method="post" >
    <input class="bouton '.$couleur.'" type="submit" name="envoyer" value="Cliquez ICI pour recevoir par Email le CODE PROMO" />
    </form>';

    $postcode = $_POST['envoyer'];

    if ( isset($postcode) ) {

    // Code PHP pour traiter l'envoi de l'email - header général
    if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $email))
    {
    $passage_ligne = "\r\n";
    }
    else
    {
    $passage_ligne = "\n";
    }
    $headers = 'From: MAplus'.$passage_ligne;
    $headers .= "MIME-Version: 1.0".$passage_ligne;
    $headers .= 'Content-type: text/html; charset=UTF-8' .$passage_ligne;
    mail('monmail@gmail.com', 'test shortcode', 'test', $headers);
    echo 'ENVOI ?';
    // include("send-email-contact.php");
    }

    return $codecode;

    }
    add_shortcode('boutoncode', 'boutoncode');

     

    J’ai le bouton, je clique, j’ai le texte « ENVOI ? » qui s’affiche mais je ne reçois toujours pas d’Email.

    Donc cette fois ci, je n’ai pas inclue l’action « envoi de mail » dans un return…..

    du coup, je me demande si j’envoi bien le mail… (j’ai mis une vrai adresse Email bien sûr).

    a votre avis, est ce que l’action envoi de mail peut fonctionner ainsi ?

    en réponse à : [Résolu] Bouton envoi Email via shortcode #2150998
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    alors, j’ai toujours un problème. Je ne sais pas comment executer l’action « envoyer un Email’ à partir du shortcode.

    j’ai le code :

    function boutoncode($atts, $content = null) {
    extract(shortcode_atts(array(
    'lien' => '#',
    'couleur' =>'bleu'
    ), $atts));

    $codecode = '
    <form method="post" >
    <input class="bouton '.$couleur.'" type="submit" name="envoyer" value="Cliquez ICI pour recevoir par Email le CODE PROMO" />
    </form>';

    $postcode = $_POST['envoyer'];

    if ( isset($postcode) ) {
    //$emailcode = " wp_mail( 'myemail@gmail.com', 'test shortcode', do_shortcode($message), $headers, $attachments )";
    $headers = 'From: Maplus';
    $emailcode = mail('myemail@gmail.com', 'test shortcode', 'test', $headers);
    // include("send-email-contact.php");
    }

    return $codecode . $emailcode;

    }
    add_shortcode('boutoncode', 'boutoncode');

     

    Ceci me renvoi 1 (pas true ou false mais 1) et je ne reçois aucun Email.

    Et si je met $emailcode  avec = ‘  ‘  comme
    <div>
    <div>$emailcode = ‘ mail(‘myemail@gmail.com’, ‘test shortcode’, ‘test’, $headers)’ ;</div>
    </div>
    <div>cela écrit le texte du code sur l’écran.</div>
    <div></div>
    <div>du coup, je ne sais pas comment écrire le code pour que le shortcode execute l’envoi de l’email……</div>
    <div></div>
    <div>Avez vous déjà fait ça une fois ?</div>
    <div>merci pour votre aide</div>

15 sujets de 1 à 15 (sur un total de 233)