It’s been a long time since I wrote my last article. I have been quite busy with the development of rationalK and with reading a lot of articles on the internet. Here a selection of them.
Bonsoir à tous,
Au vu du grand nombre de personnes me demandant des informations sur mes plugins pour woocommerce, les voici en téléchargement gratuit :
function your_wpcf7_mail_sent_function($contact_form){
$boardid=’5040f5a3********d1c9ddc70′;
$listid=’507f1*********a7a4885′;
$apiKey=’6b93***********9146d740c2555798d8′;
$token=’6a50b26d45736cfc***********91a29b9bfc7a8c’;
$posted_data = $contact_form->posted_data;
$formid=$contact_form->id;
if ($formid==2){
// devis détaillé :
$name="Demande de devis détaillé – ".$posted_data[‘url’]."\n\n";
$desc="De : ".$posted_data[‘your-name’]." ".$posted_data[‘your-email’].""."\n\n";
$desc.="Sujet : Demande de devis détaillé"."\n\n";
$desc.="Société : ".$posted_data[‘societe’]."\n\n";
$desc.="Téléphone : ".$posted_data[‘tel’]."\n\n";
$desc.="URL : ".$posted_data[‘url’]."\n\n";
$desc.="Langue : ".$posted_data[‘lang’]."\n\n";
$desc.="Cible : ".$posted_data[‘cible’]."\n\n";
$desc.="Etat : ".$posted_data[‘etat’]."\n\n";
$desc.="Année de création : ".$posted_data[‘annee’]."\n\n";
$desc.="Facebook : ".$posted_data[‘facebook’]."\n\n";
$desc.="Twitter : ".$posted_data[‘twitter’]."\n\n";
$desc.="Mots clés :".$posted_data[‘keywords’]."\n\n";
$desc.="Budget : ".$posted_data[‘budget’]."\n\n";
$desc.="Informations supplémentaires : ".$posted_data[‘your-message’]."\n\n";
$desc.="Affilié :".$_COOKIE[‘from’]."\n\n";
$desc.="– Ce email a été envoyé via formulaire de contact #".$formid." de xxx "."\n\n";
add_to_trello($name,$desc,$listid,$boardid,$apiKey,$token);
}
if ($formid==3){
// devis rapide :
$name="Demande de devis rapide – ".$posted_data[‘url’]."\n\n";
$desc="De : ".$posted_data[‘your-name’]." ".$posted_data[‘your-email’].""."\n\n";
$desc.="Sujet : Demande de devis rapide"."\n\n";
$desc.="Téléphone : ".$posted_data[‘tel’]."\n\n";
$desc.="URL : ".$posted_data[‘url’]."\n\n";
$desc.="Budget : ".$posted_data[‘budget’]."\n\n";
$desc.="Affilié :".$_COOKIE[‘from’]."\n\n";
$desc.="– Ce email a été envoyé via formulaire de contact #".$formid." de xxx "."\n\n";
add_to_trello($name,$desc,$listid,$boardid,$apiKey,$token);
}
elseif ($formid==4) {
// Demande de rappel :
$name="Demande de rappel – ".$posted_data[‘tel’]."\n\n";
$desc=$posted_data[‘tel’]." souhaite être rappelé !"."\n\n";
$desc.="Affilié :".$_COOKIE[‘from’]."\n\n";
$desc.="– Ce email a été envoyé via formulaire de contact #".$formid." de xxx "."\n\n";
add_to_trello($name,$desc,$listid,$boardid,$apiKey,$token);
}
}
Bonjour,
Ci dessous un petit guide pour transformer votre site wordpress en e-boutique sans utiliser le plugin wp-e-commerce.
En plus de créer un boutton paypal, cela vous crée un formulaire pour demander plus d’informations à l’acheteur comme la taille, la couleur du produits, son signe astrologique, etc.
Fonctionnement général :
Vous placer un shortcode sur les pages de votre site ou vous voulez faire apparaitre un bouton paypal. Exemple, je vends une guitare en plastique à 8.35€, cela donne : [PaypalBuyNowButton item_name= »Guitare en plastique » amount= »8.35″]
Le code suivant est à placer dans le fichier functions.php :
Ensuite il faut créer le fichier javascript joinFields.js qui va concaténer les elements du formulaire :
function joinFields(){
var nom = document.getElementById('nom').value;
var prenom = document.getElementById('prenom').value;
var datedenaissance = document.getElementById('datedenaissance').value;
var heuredenaissance = document.getElementById('heuredenaissance').value;
var lieudenaissance = document.getElementById('lieudenaissance').value;
var email = document.getElementById('email').value;
var telephone = document.getElementById('telephone').value;
var adresse = document.getElementById('adresse').value;
var req=nom+'&'+prenom+'&'+datedenaissance+'&'+heuredenaissance+'&'+lieudenaissance+'&'+email+'&'+telephone+'&'+adresse;
var custom = document.getElementById('custom');
custom.value=req;
}
Le troisième fichier paypal_ipn.php est à placer à la racine de votre site :
<?php
error_reporting(E_ALL ^ E_NOTICE);
$emailtext = "";
// Read the post from PayPal and add 'cmd'
$req = 'cmd=_notify-validate';
if(function_exists('get_magic_quotes_gpc')){$get_magic_quotes_exits = true;}
foreach ($_POST as $key => $value)
// Handle escape characters, which depends on setting of magic quotes
{
if($get_magic_quotes_exists == true && get_magic_quotes_gpc() == 1)
{$value = urlencode(stripslashes($value));}
else {$value = urlencode($value);}
$req .= "&$key=$value";
}
// Post back to PayPal to validate
$header .= "POST /cgi-bin/webscr HTTP/1.0rn";
$header .= "Content-Type: application/x-www-form-urlencodedrn";
$header .= "Content-Length: " . strlen($req) . "rnrn";
$fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);
// Process validation from PayPal
if (!$fp)
{ // HTTP ERROR
}
else
{
// NO HTTP ERROR
fputs ($fp, $header . $req);
while (!feof($fp))
{
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0)
{
// Check the payment_status is Completed
if ($_POST['payment_status']=='Completed')
{
$emailtext.='Bonjour,'."n".'Nous avons reçu votre commande '."n".'Détails de votre demande :'."n";
$emailtext.='Type de demande : '.$_POST['item_name']."n";
$custom = explode("&",$_POST['custom']);
$emailtext.='Nom : '.$custom[0]."n".'Prénom : '.$custom[1]."n";
$emailtext.='Date de naissance :'.$custom[2]."n".'Heure de naissance :'.$custom[3]."n".'Lieu de naissance :'.$custom[4]."n";
$email=$custom[5];
$emailtext.='Email : '.$email."n".'Téléphone : '.$custom[6]."n";
$emailtext.='Adresse : '.$custom[7]."nn";
foreach ($_POST as $key => $value)
{
//$emailtext .= $key . " = " .$value ."nn";
}
$headers = 'MIME-Version: 1.0' . "rn";
$headers .= 'Content-type: text/plain; charset=utf-8' . "rn";
$headers .= 'From: Vous <nepasrepondre@votre-site.fr>' . "rn";
$headers .= 'Bcc: votre-email@hotmail.com' . "rn";
mail($email, "Accusé de reception de votre commande", $emailtext,$headers);
}//End if completed
}
else if (strcmp ($res, "INVALID") == 0)
{
foreach ($_POST as $key => $value){$emailtext .= $key . " = " .$value ."nn"; }
mail('votre-email@hotmail.com', "Live-INVALID IPN at astro", $emailtext . "nn" . $req);
}
}
fclose ($fp);
}
?>
Enfin il est important de bien régler vos options de paypal, notamment pour l’ipn :
Paypal -> Préférences -> Plus d’options -> Mes outils de vente -> Notifications instantanées de paiement
(ou directement : https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-ipn-notify)
Note : La somme des champs réponses (nom, prénoms, …) ne peut dépasser 256 caractères (limitation de cette technique). Si besoin de plus de caractères, utiliser une base de données ou wpec.
Todo :
intégrer dans un plugin.
le lier à un plugin type contact form 7 pour ne pas avoir a créer le formulaire en dur