J'ai un site Web avec un formulaire 3, mais seulement deux de ces formulaires doivent entrer des informations dans la base de données Salesforce. Comment est-ce que je définis quelles formes devraient utiliser le crochet et qui doit le passer sans le traverser?Limiter le formulaire de contact 7 (Avant l'envoi) au formulaire spécifique
Suivez le code J'utilise:
add_action('wpcf7_before_send_mail', 'my_conversion');
function my_conversion($contact_form) {
$title = $contact_form->title;
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$posted_data = $submission->get_posted_data();
}
$email = $posted_data["your-email"];
$name = $posted_data["your-name"];
$last = $posted_data["your-lastname"];
$phone = $posted_data["tel-71"];
$description = $posted_data["your-message"];
$post_items[] = 'oid=00D4000000xxxxx';
$post_items[] = 'first_name=' . $name;
$post_items[] = 'last_name=' . $last;
$post_items[] = 'company=';
$post_items[] = 'email=' . $email;
$post_items[] = 'phone=' . $phone;
$post_items[] = 'description=' . $description;
$post_items[] = '00N4000000XXXX=' . "Shopping";
$post_items[] = '00N4000000xxxxxx=' . "1";
$post_items[] = 'external=1';
$post_items[] = 'lead_source=Shopping';
$post_string = implode ('&', $post_items);
$ch = curl_init('https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8');
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch); // Post to Salesforce
curl_close($ch); // close cURL resource
}
Merci pour votre aide.
j'avais trouvé cette fonction: 'if ($ contact_form-> id == myform_id de $!) retour,' Mais je sais très peu de choses sur PHP. Où dois-je entrer cette ligne? Voulez-vous me aider? Merci encore. –
J'ai fait comme ceci: 'add_action ('wpcf7_before_send_mail', 'my_conversion'); function ma_conversion ($ contact_form) { $ title = $ forme_de_contact-> titre; $ submission = WPCF7_Submission :: get_instance(); $ id = $ contact_form-> id(); \t \t if ($ id == 68) { $ submission-> skip_mail = true; } \t if ($ id == 65) { $ posted_data = $ submission-> get_posted_data(); } (...) ' Maintenant la forme de l'ID = 65 normalement enregistrée dans Salesforce. Mais l'ID = 68 n'envoie pas l'email, est verrouillé avec les champs remplis. Qu'est-ce que je fais mal? Quelqu'un a-t-il une idée? –
Bonjour. J'ai une solution, je ne pense pas que ce soit la meilleure mais voici ce que j'ai fait: J'ai utilisé la solution proposée par @takayukister. Dans le cas "$ contact_form-> title()". –