J’utilise pour un projet le plugin pour WordPress Easy Digital Downloads. C’est une solution complète d’e-commerce pour la vente de produits numériques (voir le site ici et la démo ici).
La passerelle de paiement PayPal est incluse par défaut et d’autres sont disponibles dans les extensions sur le site d’Easy Digital Downloads.
Pour ma part il me fallait une passerelle pour les Cartes Bancaires françaises, le virement bancaire avec les infos du compte, un paiement par chèque avec l’adresse postale où l’envoyer.
J’ai trouvé sur un site en anglais (voir ici) ce qu’il me faut, mais bien entendu, il faut adapter un peu pour faire ce que l’on veut.
Je vous donne le code en entier pour réaliser cela, le code est détaillé sur le site :
[pastacode manual= »%3C%3Fphp%0D%0A%2F*%0D%0APlugin%20Name%3A%20Easy%20Digital%20Downloads%20-%20Sample%20Gateway%0D%0APlugin%20URL%3A%20http%3A%2F%2Feasydigitaldownloads.com%2Fextension%2Fsample-gateway%0D%0ADescription%3A%20A%20sample%20gateway%20for%20Easy%20Digital%20Downloads%0D%0AVersion%3A%201.0%0D%0AAuthor%3A%20Pippin%20Williamson%0D%0AAuthor%20URI%3A%20https%3A%2F%2Fpippinsplugins.com%0D%0AContributors%3A%20mordauk%0D%0A*%2F%0D%0A%20%0D%0A%20%0D%0A%2F%2F%20registers%20the%20gateway%0D%0Afunction%20pw_edd_register_gateway(%24gateways)%20%7B%0D%0A%09%24gateways%5B’sample_gateway’%5D%20%3D%20array(‘admin_label’%20%3D%3E%20’Sample%20Gateway’%2C%20’checkout_label’%20%3D%3E%20__(‘Sample%20Gateway’%2C%20’pw_edd’))%3B%0D%0A%09return%20%24gateways%3B%0D%0A%7D%0D%0Aadd_filter(‘edd_payment_gateways’%2C%20’pw_edd_register_gateway’)%3B%0D%0A%20%0D%0Afunction%20pw_edd_sample_gateway_cc_form()%20%7B%0D%0A%09%2F%2F%20register%20the%20action%20to%20remove%20default%20CC%20form%0D%0A%09return%3B%0D%0A%7D%0D%0Aadd_action(‘edd_sample_gateway_cc_form’%2C%20’pw_edd_sample_gateway_cc_form’)%3B%0D%0A%20%0D%0A%2F%2F%20processes%20the%20payment%0D%0Afunction%20pw_edd_process_payment(%24purchase_data)%20%7B%0D%0A%20%0D%0A%09global%20%24edd_options%3B%0D%0A%20%0D%0A%09%2F**********************************%0D%0A%09*%20set%20transaction%20mode%0D%0A%09**********************************%2F%0D%0A%20%0D%0A%09if(edd_is_test_mode())%20%7B%0D%0A%09%09%2F%2F%20set%20test%20credentials%20here%0D%0A%09%7D%20else%20%7B%0D%0A%09%09%2F%2F%20set%20live%20credentials%20here%0D%0A%09%7D%0D%0A%20%0D%0A%09%2F**********************************%0D%0A%09*%20check%20for%20errors%20here%0D%0A%09**********************************%2F%0D%0A%20%0D%0A%09%2F*%0D%0A%09%2F%2F%20errors%20can%20be%20set%20like%20this%0D%0A%09if(!isset(%24_POST%5B’card_number’%5D))%20%7B%0D%0A%09%09%2F%2F%20error%20code%20followed%20by%20error%20message%0D%0A%09%09edd_set_error(’empty_card’%2C%20__(‘You%20must%20enter%20a%20card%20number’%2C%20’edd’))%3B%0D%0A%09%7D%0D%0A%09*%2F%0D%0A%20%0D%0A%09%2F%2F%20check%20for%20any%20stored%20errors%0D%0A%09%24errors%20%3D%20edd_get_errors()%3B%0D%0A%09if(!%24errors)%20%7B%0D%0A%20%0D%0A%09%09%24purchase_summary%20%3D%20edd_get_purchase_summary(%24purchase_data)%3B%0D%0A%20%0D%0A%09%09%2F**********************************%0D%0A%09%09*%20setup%20the%20payment%20details%0D%0A%09%09**********************************%2F%0D%0A%20%0D%0A%09%09%24payment%20%3D%20array(%20%0D%0A%09%09%09’price’%20%3D%3E%20%24purchase_data%5B’price’%5D%2C%20%0D%0A%09%09%09’date’%20%3D%3E%20%24purchase_data%5B’date’%5D%2C%20%0D%0A%09%09%09’user_email’%20%3D%3E%20%24purchase_data%5B’user_email’%5D%2C%0D%0A%09%09%09’purchase_key’%20%3D%3E%20%24purchase_data%5B’purchase_key’%5D%2C%0D%0A%09%09%09’currency’%20%3D%3E%20%24edd_options%5B’currency’%5D%2C%0D%0A%09%09%09’downloads’%20%3D%3E%20%24purchase_data%5B’downloads’%5D%2C%0D%0A%09%09%09’cart_details’%20%3D%3E%20%24purchase_data%5B’cart_details’%5D%2C%0D%0A%09%09%09’user_info’%20%3D%3E%20%24purchase_data%5B’user_info’%5D%2C%0D%0A%09%09%09’status’%20%3D%3E%20’pending’%0D%0A%09%09)%3B%0D%0A%20%0D%0A%09%09%2F%2F%20record%20the%20pending%20payment%0D%0A%09%09%24payment%20%3D%20edd_insert_payment(%24payment)%3B%0D%0A%20%0D%0A%09%09%24merchant_payment_confirmed%20%3D%20false%3B%0D%0A%20%0D%0A%09%09%2F**********************************%0D%0A%09%09*%20Process%20the%20credit%20card%20here.%0D%0A%09%09*%20If%20not%20using%20a%20credit%20card%0D%0A%09%09*%20then%20redirect%20to%20merchant%0D%0A%09%09*%20and%20verify%20payment%20with%20an%20IPN%0D%0A%09%09**********************************%2F%0D%0A%20%0D%0A%09%09%2F%2F%20if%20the%20merchant%20payment%20is%20complete%2C%20set%20a%20flag%0D%0A%09%09%24merchant_payment_confirmed%20%3D%20true%3B%09%09%0D%0A%20%0D%0A%09%09if(%24merchant_payment_confirmed)%20%7B%20%2F%2F%20this%20is%20used%20when%20processing%20credit%20cards%20on%20site%0D%0A%20%0D%0A%09%09%09%2F%2F%20once%20a%20transaction%20is%20successful%2C%20set%20the%20purchase%20to%20complete%0D%0A%09%09%09edd_update_payment_status(%24payment%2C%20’complete’)%3B%0D%0A%20%0D%0A%09%09%09%2F%2F%20go%20to%20the%20success%20page%09%09%09%0D%0A%09%09%09edd_send_to_success_page()%3B%0D%0A%20%0D%0A%09%09%7D%20else%20%7B%0D%0A%09%09%09%24fail%20%3D%20true%3B%20%2F%2F%20payment%20wasn’t%20recorded%0D%0A%09%09%7D%0D%0A%20%0D%0A%09%7D%20else%20%7B%0D%0A%09%09%24fail%20%3D%20true%3B%20%2F%2F%20errors%20were%20detected%0D%0A%09%7D%0D%0A%20%0D%0A%09if(%20%24fail%20!%3D%3D%20false%20)%20%7B%0D%0A%09%09%2F%2F%20if%20errors%20are%20present%2C%20send%20the%20user%20back%20to%20the%20purchase%20page%20so%20they%20can%20be%20corrected%0D%0A%09%09edd_send_back_to_checkout(‘%3Fpayment-mode%3D’%20.%20%24purchase_data%5B’post_data’%5D%5B’edd-gateway’%5D)%3B%0D%0A%09%7D%0D%0A%7D%0D%0Aadd_action(‘edd_gateway_sample_gateway’%2C%20’pw_edd_process_payment’)%3B%0D%0A%20%0D%0A%2F%2F%20adds%20the%20settings%20to%20the%20Payment%20Gateways%20section%0D%0Afunction%20pw_edd_add_settings(%24settings)%20%7B%0D%0A%20%0D%0A%09%24sample_gateway_settings%20%3D%20array(%0D%0A%09%09array(%0D%0A%09%09%09’id’%20%3D%3E%20’sample_gateway_settings’%2C%0D%0A%09%09%09’name’%20%3D%3E%20’%3Cstrong%3E’%20.%20__(‘Sample%20Gateway%20Settings’%2C%20’pw_edd’)%20.%20’%3C%2Fstrong%3E’%2C%0D%0A%09%09%09’desc’%20%3D%3E%20__(‘Configure%20the%20gateway%20settings’%2C%20’pw_edd’)%2C%0D%0A%09%09%09’type’%20%3D%3E%20’header’%0D%0A%09%09)%2C%0D%0A%09%09array(%0D%0A%09%09%09’id’%20%3D%3E%20’live_api_key’%2C%0D%0A%09%09%09’name’%20%3D%3E%20__(‘Live%20API%20Key’%2C%20’pw_edd’)%2C%0D%0A%09%09%09’desc’%20%3D%3E%20__(‘Enter%20your%20live%20API%20key%2C%20found%20in%20your%20gateway%20Account%20Settins’%2C%20’pw_edd’)%2C%0D%0A%09%09%09’type’%20%3D%3E%20’text’%2C%0D%0A%09%09%09’size’%20%3D%3E%20’regular’%0D%0A%09%09)%2C%0D%0A%09%09array(%0D%0A%09%09%09’id’%20%3D%3E%20’test_api_key’%2C%0D%0A%09%09%09’name’%20%3D%3E%20__(‘Test%20API%20Key’%2C%20’pw_edd’)%2C%0D%0A%09%09%09’desc’%20%3D%3E%20__(‘Enter%20your%20test%20API%20key%2C%20found%20in%20your%20Stripe%20Account%20Settins’%2C%20’pw_edd’)%2C%0D%0A%09%09%09’type’%20%3D%3E%20’text’%2C%0D%0A%09%09%09’size’%20%3D%3E%20’regular’%0D%0A%09%09)%0D%0A%09)%3B%0D%0A%20%0D%0A%09return%20array_merge(%24settings%2C%20%24sample_gateway_settings)%3B%09%0D%0A%7D%0D%0Aadd_filter(‘edd_settings_gateways’%2C%20’pw_edd_add_settings’)%3B » provider= »manual » lang= »php »/]
Pour ma part, j’ai aussi rajouté ses lignes pour l’internationalisation et ajouté le dossier /languages/ :
[pastacode manual= »add_action(%20’init’%2C%20’pw_edd_make_multilang’%20)%3B%0D%0Afunction%20pwc_edd_make_multilang()%20%7B%0D%0A%20%20%20%20load_plugin_textdomain(‘pw-edd’%2C%20false%2C%20dirname(%20plugin_basename(%20__FILE__%20)%20).’%2Flanguages’)%3B%0D%0A%7D » provider= »manual » lang= »php »/]
Vous trouverez le plugin en téléchargement ici !
Avez-vous trouvé cela utile ?
Commentaires