Bug notifié par Patrick : http://wordpress.org/support/topic/plugin-wpcb-warning-array_key_exists-ligne-25-atosmerchantphp
Corrigé.
Auteur/autrice : thomas.doki-thonon@rationalk.ch
Mise à Jour correction bug
Bonjour à tous,
J’ai corrigé un bug notifié par Patrick Sanchez sur : http://wordpress.org/support/topic/plugin-wpcb-incomplete-transaction-when-paying-with-credit-card
Merci à lui.
Vous pouvez mettre à jour vers la 2.3.6
Trello est une application en ligne pour gérer des projets, des todo listes et de nombreux processus. Le concept dans cette nouvelle version de WPCB (2.3.4) est que chaque vente est ajouté à une liste trello. Vous pouvez ensuite imaginer deplacer les ventes de listes en listes en fonction de ce qu’il faut faire.
Exemple : Une vente est faîtes sur votre site de vente de pizza en ligne. Vous la déplacer dans la case fini quand cette pizza est prête et la personne reçoit un email ou un sms automatiquement !
Mise à Jour de WPCB
Bonjour, la version 2.3.3 n’est pas une mise à jour importante pour ceux chez qui cela fonctionne. Elle intègre un mode débug avancé pour ceux qui demande l’installation personnalisée.
Très prochainement, j’ajoute la possibilité que toutes vos ventes deviennent des trello card ! http://trello.com
Bonjour, la version 2.3.2 contient un nouveau mode de livraison : le Mini-Max de la Poste . Cela permet d’envoyer des petits colis de manière economique au départ de la france vers la france et l’outre mer (zone 1).
Bonne mise à jour.
Thomas
Nouveaux mode de livraison
Bonjour à tous,
Une mise à jour (2.3) pour les détenteurs de clé api : deux nouveaux modes de livraison : Lettre Prioritaire et Lettre Verte. Tous les deux sont bien moins chers que le colis standart.
Bon week-end à tous.
Fin des plugins
Bonjour,
Les plugins de livraison et de paiement par paypal ont été transférés vers le plugin WPCB. C’est plus simple pour moi de maintenir à jour un unique plugin. Si ça marche chez vous, ne mettez pas à jour, car toutes les fonctions n’ont pas été transférées encore. Bon dimanche à tous.
Déplacement des forums
Le site wordpress.org s’améliore et propose un onglet support sur chaque page des plugins. Les forums sont donc déplacés la-bas. Merci à vous.
Envoi de newsletter HTML avec amazon ses
Petit snippet de script php utilisant le code de Anthone et Dan :
http://www.orderingdisorder.com/aws/ses/
<?php require_once('ses.php'); $AccessKeyID='AKIAJT*******3XYQIWA'; $SecretKey='b8tTSghJqV*************y/HQ9'; $ses = new SimpleEmailService($AccessKeyID,$SecretKey); $m = new SimpleEmailServiceMessage(); $m->setFrom('thomas@lyonsalsacongress.com'); $m->addTo('thomas@lyonsalsacongress.com'); $m->addBCC(array('salut@gmail.com', 'thomas@6www.net')); $m->addReplyTo('thomas@lyonsalsacongress.com'); $m->setSubject('News du Lyon Salsa Congress'); $m->addRawMessageFromFile('html','news.html','text/html'); print_r($ses->sendEmail($m)); print_r($ses->getSendQuota()); print_r($ses->getSendStatistics()); ?>
Il faut sauver la page en HTML depuis le navigateur et l’uploader sur le site.
Les functions : ses
Bon dimanche.
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 :
function my_scripts_method() { wp_deregister_script( 'joinFields' ); wp_register_script( 'joinFields', 'http://www.votre-site.fr/wp-content/themes/votre-theme/joinFields.js'); wp_enqueue_script( 'joinFields' ); } add_action('wp_enqueue_scripts', 'my_scripts_method'); function PaypalBuyNowButton($atts){ global $wpdb, $post; extract( shortcode_atts( array('item_name' => 'Prevision astrale','amount' => '0.10'), $atts)); //$Output.='<a href="#" onclick="joinFields()">joinFields</a>'; //print_r($atts); $Output.='<form action="https://www.paypal.com/cgi-bin/webscr" method="post" name="fmBuy" id="fmBuy" onSubmit="joinFields()"> <input type="hidden" name="cmd" value="_xclick"> <input type="hidden" name="business" value="votreemailebay@hotmail.com"> <input type="hidden" name="lc" value="FR"> <input type="hidden" name="item_name" value="'.$item_name.'"> <input type="hidden" name="amount" value="'.$amount.'"> <input type="hidden" name="currency_code" value="EUR"> <INPUT TYPE="hidden" name="charset" value="utf-8"> <input type="hidden" name="button_subtype" value="services"> <input type="hidden" name="no_note" value="1"> <input type="hidden" name="no_shipping" value="1"> <input type="hidden" name="rm" value="1"> <p>Votre nom<br /> <input type="text" id="nom" name="nom" value="'.$keyarray['last_name'].'" size="40" /></span> </p> <p>Votre prénom<br /> <input type="text" id="prenom" name="prenom" value="'.$keyarray['first_name'].'" size="40" /></span> </p> <p>Votre date de naissance<br /> <input type="text" id="datedenaissance" name="datedenaissance" value="" size="40" /></span> </p> <p>Votre heure de naissance<br /> <input type="text" id="heuredenaissance" name="heuredenaissance" value="" size="40" /></span> </p> <p>Votre lieu de naissance<br /> <input type="text" id="lieudenaissance" name="lieudenaissance" value="" size="40" /></span> </p> <p>Votre email<br /> <input type="text" id="email" name="email" value="'.$keyarray['payer_email'].'" size="40" /></span></p> <p>Votre numéro de téléphone<br /> <input type="text" id="telephone" name="telephone" value="" size="40" /></span></p> <p>Votre adresse postale complète<br /> <input type="text" id="adresse" name="adresse" value="" size="100" /></span></p> <input type="hidden" name="custom" id="custom" value=""> <input type="hidden" name="return" value="http://www.votre-site.fr"> <input type="hidden" name="cancel_return" value="http://www.votre-site.fr"> <input type="hidden" name="notify_url" value="http://www.louisette-astro.fr/paypal_ipn.php"> <input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHosted"> <input type="image" src="https://www.paypalobjects.com/fr_FR/FR/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - la solution de paiement en ligne la plus simple et la plus sécurisée !"> <img alt="" border="0" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="1" height="1"> </form>'; return $Output; } add_shortcode( 'PaypalBuyNowButton', 'PaypalBuyNowButton' );
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