{"id":203509,"date":"2024-10-18T22:46:28","date_gmt":"2024-10-18T22:46:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ecart-pay\/"},"modified":"2026-06-25T15:38:25","modified_gmt":"2026-06-25T15:38:25","slug":"ecart-pay","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/ecart-pay\/","author":23112573,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.1.1","stable_tag":"2.1.1","tested":"6.8.5","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"Ecart Pay","header_author":"Tendencys Innovations","header_description":"The safest and easiest online payment processor.","assets_banners_color":"666666","last_updated":"2026-06-25 15:38:25","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/ecartpay.com","header_author_uri":"https:\/\/tendencys.com","rating":0,"author_block_rating":0,"active_installs":70,"downloads":2139,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.0":{"tag":"2.0.0","author":"ecartpay","date":"2024-12-26 19:47:16"},"2.0.1":{"tag":"2.0.1","author":"ecartpay","date":"2024-12-27 00:00:59"},"2.0.2":{"tag":"2.0.2","author":"ecartpay","date":"2025-03-14 15:34:54"},"2.0.3":{"tag":"2.0.3","author":"ecartpay","date":"2025-03-31 23:37:04"},"2.0.4":{"tag":"2.0.4","author":"ecartpay","date":"2025-04-30 21:53:53"},"2.0.5":{"tag":"2.0.5","author":"ecartpay","date":"2025-06-11 16:06:30"},"2.0.6":{"tag":"2.0.6","author":"ecartpay","date":"2025-07-17 15:30:55"},"2.0.7":{"tag":"2.0.7","author":"ecartpay","date":"2026-02-12 05:50:02"},"2.0.8":{"tag":"2.0.8","author":"ecartpay","date":"2026-02-17 03:30:24"},"2.0.9":{"tag":"2.0.9","author":"ecartpay","date":"2026-04-21 21:47:46"},"2.1.0":{"tag":"2.1.0","author":"ecartpay","date":"2026-05-22 17:36:30"},"2.1.1":{"tag":"2.1.1","author":"ecartpay","date":"2026-06-25 15:38:25"}},"upgrade_notice":{"2.1.1":"<ul>\n<li>Strongly recommended: fixes a card token validation error that was rejecting payments for cards expiring January\u2013September, plus several webhook reliability and UX improvements.<\/li>\n<\/ul>","2.1.0":"<ul>\n<li>Required update for stores running WooCommerce 9.x\/10.x with Cart and Checkout Blocks.<\/li>\n<\/ul>","2.0.0":"<ul>\n<li>Initial version. Update to get the Ecart Pay payment gateway integration.<\/li>\n<\/ul>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3171711,"resolution":"128x128","location":"assets","locale":"","width":129,"height":129},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3171702,"resolution":"256x256","location":"assets","locale":"","width":257,"height":257},"icon.svg":{"filename":"icon.svg","revision":3171710,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3171709,"resolution":"1544x500","location":"assets","locale":"","width":1545,"height":501},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3171708,"resolution":"772x250","location":"assets","locale":"","width":773,"height":251}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8","2.0.9","2.1.0","2.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3171703,"resolution":"1","location":"assets","locale":"","width":1916,"height":852},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3171704,"resolution":"2","location":"assets","locale":"","width":1918,"height":813},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3171705,"resolution":"3","location":"assets","locale":"","width":1898,"height":843},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3171706,"resolution":"4","location":"assets","locale":"","width":1917,"height":861},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3171707,"resolution":"5","location":"assets","locale":"","width":1917,"height":818}},"screenshots":{"1":"<p><strong>Get your API keys:<\/strong><br \/>\n\u2013 Go to the Ecartpay page and access <strong>Integrations &gt; API<\/strong> to get your public and private keys.<br \/>\n\u2013 To test, sign up at our sandbox environment [https:\/\/sandbox.ecartpay.com].<br \/>\n\u2013 If you already have a production account, log in at [https:\/\/ecartpay.com].<\/p>","2":"<p><strong>Configure Ecartpay in WooCommerce:<\/strong><br \/>\n\u2013 Go to <strong>WooCommerce &gt; Settings &gt; Payments<\/strong> and select <strong>Ecartpay<\/strong> as your payment method.<\/p>","3":"<p><strong>Configure the plugin:<\/strong><br \/>\n\u2013 Enter the public and private keys on the plugin configuration page (these keys are obtained from the Ecartpay page).<br \/>\n\u2013 Choose how you want to process payments:<br \/>\n \u2013 Redirect the customer to the Ecartpay page.<br \/>\n \u2013 Open a popup without leaving WordPress.<br \/>\n\u2013 If you are in testing mode, disable <strong>Live Mode<\/strong> to use the sandbox environment.<\/p>","4":"<p><strong>Payment method in the cart:<\/strong><br \/>\n\u2013 On the cart page, you will see the option to pay with Ecartpay.<\/p>","5":"<p><strong>Payment modal:<\/strong><br \/>\n\u2013 If you select the popup option, a modal will open to complete the payment without leaving the page.<\/p>"}},"plugin_section":[],"plugin_tags":[282,6593,1887,286],"plugin_category":[45],"plugin_contributors":[233362],"plugin_business_model":[],"class_list":["post-203509","plugin","type-plugin","status-publish","hentry","plugin_tags-ecommerce","plugin_tags-payment-gateway","plugin_tags-payments","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-ecartpay","plugin_committers-ecartpay"],"banners":{"banner":"https:\/\/ps.w.org\/ecart-pay\/assets\/banner-772x250.png?rev=3171708","banner_2x":"https:\/\/ps.w.org\/ecart-pay\/assets\/banner-1544x500.png?rev=3171709","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/ecart-pay\/assets\/icon.svg?rev=3171710","icon":"https:\/\/ps.w.org\/ecart-pay\/assets\/icon.svg?rev=3171710","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ecart-pay\/assets\/screenshot-1.png?rev=3171703","caption":"<p><strong>Get your API keys:<\/strong><br \/>\n\u2013 Go to the Ecartpay page and access <strong>Integrations &gt; API<\/strong> to get your public and private keys.<br \/>\n\u2013 To test, sign up at our sandbox environment [https:\/\/sandbox.ecartpay.com].<br \/>\n\u2013 If you already have a production account, log in at [https:\/\/ecartpay.com].<\/p>"},{"src":"https:\/\/ps.w.org\/ecart-pay\/assets\/screenshot-2.png?rev=3171704","caption":"<p><strong>Configure Ecartpay in WooCommerce:<\/strong><br \/>\n\u2013 Go to <strong>WooCommerce &gt; Settings &gt; Payments<\/strong> and select <strong>Ecartpay<\/strong> as your payment method.<\/p>"},{"src":"https:\/\/ps.w.org\/ecart-pay\/assets\/screenshot-3.png?rev=3171705","caption":"<p><strong>Configure the plugin:<\/strong><br \/>\n\u2013 Enter the public and private keys on the plugin configuration page (these keys are obtained from the Ecartpay page).<br \/>\n\u2013 Choose how you want to process payments:<br \/>\n \u2013 Redirect the customer to the Ecartpay page.<br \/>\n \u2013 Open a popup without leaving WordPress.<br \/>\n\u2013 If you are in testing mode, disable <strong>Live Mode<\/strong> to use the sandbox environment.<\/p>"},{"src":"https:\/\/ps.w.org\/ecart-pay\/assets\/screenshot-4.png?rev=3171706","caption":"<p><strong>Payment method in the cart:<\/strong><br \/>\n\u2013 On the cart page, you will see the option to pay with Ecartpay.<\/p>"},{"src":"https:\/\/ps.w.org\/ecart-pay\/assets\/screenshot-5.png?rev=3171707","caption":"<p><strong>Payment modal:<\/strong><br \/>\n\u2013 If you select the popup option, a modal will open to complete the payment without leaving the page.<\/p>"}],"raw_content":"<!--section=description-->\n<p>Ecart Pay allows online merchants to quickly and securely accept payments through WooCommerce. With multiple payment options, this plugin is easy to set up and use, providing an optimized experience for customers.<\/p>\n\n<h3>Short Description<\/h3>\n\n<p>Ecart Pay is a WooCommerce plugin that integrates a custom payment gateway to facilitate secure and efficient online transactions.<\/p>\n\n<h3>Third-Party Services<\/h3>\n\n<p>This plugin communicates with the Ecartpay payment gateway to process transactions. When using this plugin, certain data (such as payment details) will be sent to Ecartpay's servers for processing.<\/p>\n\n<ul>\n<li>Service URL: <a href=\"https:\/\/ecartpay.com\">https:\/\/ecartpay.com<\/a><\/li>\n<li>Sandbox URL: <a href=\"https:\/\/sandbox.ecartpay.com\">https:\/\/sandbox.ecartpay.com<\/a><\/li>\n<li>Privacy Policy: <a href=\"https:\/\/ecartpay.com\/en\/legal\/privacy-policy\">https:\/\/ecartpay.com\/en\/legal\/privacy-policy<\/a><\/li>\n<li>Terms of Use: <a href=\"https:\/\/ecartpay.com\/en\/legal\/terms-and-conditions-generals\">https:\/\/ecartpay.com\/en\/legal\/terms-and-conditions-generals<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li><p><strong>Create an account:<\/strong><br \/>\nTo use our plugin, you first need to create an account on our payment provider website.<br \/>\n\u2013 If you want to test, sign up at our sandbox environment [https:\/\/sandbox.ecartpay.com].<br \/>\n\u2013 If you already have a production account, sign up [https:\/\/ecartpay.com].<\/p><\/li>\n<li><p><strong>Get API keys:<\/strong><br \/>\n\u2013 Go to <strong>Integrations &gt; API<\/strong> in your Ecartpay account.<br \/>\n\u2013 Copy the <strong>public key<\/strong> and <strong>private key<\/strong>, as we will need them later.<\/p><\/li>\n<li><p><strong>Install the plugin:<\/strong><br \/>\n\u2013 Upload the plugin to the <code>\/wp-content\/plugins\/<\/code> directory, or install it directly from the plugins screen in WordPress.<\/p><\/li>\n<li><p><strong>Activate the plugin:<\/strong><br \/>\n\u2013 Activate the plugin from the 'Plugins' screen in WordPress.<\/p><\/li>\n<li><p><strong>Configure the plugin:<\/strong><br \/>\n\u2013 Go to the plugin settings page in <strong>WooCommerce &gt; Settings &gt; Payments<\/strong> and select the <strong>Ecartpay<\/strong> payment method.<\/p><\/li>\n<li><p><strong>Configure API credentials:<\/strong><br \/>\n\u2013 On the plugin configuration page, paste the copied keys (<strong>public key<\/strong> and <strong>private key<\/strong>) in the <strong>API Credentials<\/strong> section.<br \/>\n\u2013 Choose how you want to process payments:<br \/>\n \u2013 Redirect the customer to the Ecartpay page.<br \/>\n \u2013 Open a popup without leaving WordPress.<br \/>\n\u2013 If you are testing, make sure to disable <strong>Live Mode<\/strong> to enable the test environment.<\/p><\/li>\n<li><p><strong>Additional cash payment configuration:<\/strong><br \/>\n\u2013 The <strong>Cash On Hold<\/strong> option is enabled by default. This holds inventory for pending cash payments.<br \/>\n\u2013 If this option is checked, the order status will remain \"On hold.\" If unchecked, the order will be processed immediately.<\/p><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20it%20compatible%20with%20woocommerce%3F\"><h3>Is it compatible with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes, this plugin is specifically designed for WooCommerce.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20configure%20anything%20before%20using%20this%20plugin%3F\"><h3>Do I need to configure anything before using this plugin?<\/h3><\/dt>\n<dd><p>Yes, you need to enter your payment provider API credentials on the plugin settings page.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Fix: Card expiration month is now sent as a 2-character string (e.g. \"05\") instead of an integer, resolving the backend \"card.expiration_month length must be 2 characters long\" rejection that affected cards expiring January\u2013September.<\/li>\n<li>Fix: Race condition where the EcartPay webhook arrived before <code>process_payment()<\/code> had stored the transaction id (now retries briefly and returns 200 to avoid a permanent failure on the backend side).<\/li>\n<li>Fix: Webhook JSON response is no longer corrupted by PHP notices\/warnings or stray output (output buffer is flushed before <code>wp_send_json<\/code>).<\/li>\n<li>Fix: Eliminated PHP 8.2+ \"Creation of dynamic property\" deprecation notices in <code>EcartPayGateway<\/code>, <code>EcartPayApi<\/code>, <code>EcartPaySettings<\/code>, <code>EcartPayOrders<\/code> and <code>EcartPayRefunds<\/code>.<\/li>\n<li>Fix: Robust idempotency in <code>confirm_ecartpay_order<\/code> prevents double processing when several webhooks for the same order arrive concurrently.<\/li>\n<li>Fix: <code>process_payment<\/code> in <code>direct<\/code> mode now tolerates intermediate backend statuses (<code>created<\/code>, <code>pending<\/code>, <code>processing<\/code>, <code>authorized<\/code>) and lets the webhook complete the transaction instead of failing the checkout.<\/li>\n<li>Fix: Popup polling reduced from 15s to 5s so customers paying with card see the confirmation faster, and asynchronous methods (OXXO, bank transfer) no longer freeze the checkout while waiting for a payment that will happen later.<\/li>\n<li>Fix: Safety net added on the \"thank you\" page that re-syncs the order status with the backend if the webhook never arrived.<\/li>\n<li>Feat: New unified card form design for <code>direct<\/code> mode in both classic checkout and Cart\/Checkout Blocks (same look &amp; feel, shared CSS).<\/li>\n<li>Feat: Automatic card brand detection (Visa, Mastercard, AMEX) with visual feedback inside the input.<\/li>\n<li>Feat: Client-side validation with Luhn algorithm, expiration date and brand-aware CVC length.<\/li>\n<li>Feat: CVC field is now masked by default with a show\/hide eye toggle.<\/li>\n<li>Feat: Installments are loaded with debounce and the dropdown is hidden when no options apply.<\/li>\n<li>Chore: Centralised card data extraction in a single helper to remove duplicated code across subscription, payment method change and standard checkout flows.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Fixed registration race condition that caused the payment method to be missing in Cart\/Checkout Blocks.<\/li>\n<li>Fixed <code>woocommerce_rest_checkout_missing_payment_method<\/code> 400 error by adopting the canonical Blocks payment setup API and bridging Store API <code>payment_data<\/code> into <code>$_POST<\/code> for the legacy <code>process_payment()<\/code>.<\/li>\n<li>Default-on <code>enabled<\/code> flag applied when settings have never been saved (fixes the gateway being hidden in Blocks for fresh installs).<\/li>\n<li>Declared HPOS and Cart\/Checkout Blocks compatibility.<\/li>\n<li>New React-based card form for <code>direct<\/code> mode inside Blocks checkout.<\/li>\n<li>Tested up to WordPress 6.8 and WooCommerce 10.7.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Initial release of the Ecart Pay plugin.<\/li>\n<\/ul>","raw_excerpt":"Ecart Pay allows online merchants to quickly and securely accept payments through WooCommerce. With multiple payment options, this plugin is easy to s &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/203509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=203509"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ecartpay"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=203509"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=203509"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=203509"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=203509"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=203509"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=203509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}