Toutes mes réponses sur les forums
-
AuteurMessages
-
20 février 2019 à 16 h 42 min en réponse à : [Résolu] add_action formulaire gravity form dans un shortcode #2247707
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>20 février 2019 à 16 h 34 min en réponse à : rendre une variable définie dans un shortcode accessible partout #2247702alors 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
18 février 2019 à 10 h 06 min en réponse à : gravity form « gform_after_submission » avec nom de fonction variable #2247169du 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
16 février 2019 à 18 h 29 min en réponse à : gravity form « gform_after_submission » avec nom de fonction variable #2246972du 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
16 février 2019 à 12 h 55 min en réponse à : gravity form « gform_after_submission » avec nom de fonction variable #2246925oh 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 metadd_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 fonctionfunction 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.
16 février 2019 à 11 h 47 min en réponse à : gravity form « gform_after_submission » avec nom de fonction variable #2246919merci 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
15 février 2019 à 17 h 50 min en réponse à : gravity form « gform_after_submission » avec nom de fonction variable #2246846bonjour..
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 avance4 juillet 2018 à 17 h 06 min en réponse à : affichage custom post type dans liste déroulante #2171379Je 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.
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 } }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
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 !
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
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
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 ?
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> -
AuteurMessages