{"id":227734,"date":"2025-04-14T11:39:32","date_gmt":"2025-04-14T11:39:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/givepayments-gateway-for-woocommerce\/"},"modified":"2026-05-12T15:41:27","modified_gmt":"2026-05-12T15:41:27","slug":"givepayments-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/yor.wordpress.org\/plugins\/givepayments-for-woocommerce\/","author":23260092,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.14","stable_tag":"1.0.14","tested":"6.9.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"GivePayments for WooCommerce","header_author":"GivePayments","header_description":"A WooCommerce payment gateway plugin for GivePayments.","assets_banners_color":"94bbf1","last_updated":"2026-05-12 15:41:27","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/givepayments.com\/","header_author_uri":"https:\/\/givepayments.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":992,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"givecorporation","date":"2025-07-10 10:54:30"},"1.0.1":{"tag":"1.0.1","author":"givecorporation","date":"2026-04-10 08:52:38"},"1.0.10":{"tag":"1.0.10","author":"youcefgivecorporation","date":"2026-05-04 15:14:31"},"1.0.11":{"tag":"1.0.11","author":"youcefgivecorporation","date":"2026-05-05 14:50:37"},"1.0.12":{"tag":"1.0.12","author":"youcefgivecorporation","date":"2026-05-06 15:30:56"},"1.0.13":{"tag":"1.0.13","author":"youcefgivecorporation","date":"2026-05-08 12:10:45"},"1.0.14":{"tag":"1.0.14","author":"youcefgivecorporation","date":"2026-05-12 15:41:27"},"1.0.2":{"tag":"1.0.2","author":"givecorporation","date":"2026-04-14 14:39:45"},"1.0.3":{"tag":"1.0.3","author":"givecorporation","date":"2026-04-23 14:01:23"},"1.0.4":{"tag":"1.0.4","author":"givecorporation","date":"2026-04-23 14:05:26"},"1.0.5":{"tag":"1.0.5","author":"givecorporation","date":"2026-04-24 14:21:22"},"1.0.6":{"tag":"1.0.6","author":"givecorporation","date":"2026-04-28 11:03:24"},"1.0.7":{"tag":"1.0.7","author":"givecorporation","date":"2026-04-29 11:07:08"},"1.0.8":{"tag":"1.0.8","author":"youcefgivecorporation","date":"2026-04-30 19:10:24"},"1.0.9":{"tag":"1.0.9","author":"youcefgivecorporation","date":"2026-05-01 16:33:52"}},"upgrade_notice":{"1.0.14":"<p>Recommended update: completes Phase 2 recurring payments \u2014 the GivePayments API is now fully authoritative for subscription scheduling. Adds <code>recurring.*<\/code> webhook handling, API cancel integration for all supported subscription plugins (WCS, FSB, WPS SFW, YITH), loop guards to prevent cancel feedback loops, and HPOS compatibility fixes across all subscription adapters.<\/p>","1.0.13":"<p>Recommended update: hardens concurrent refund, void, and webhook reconciliation to prevent duplicate WooCommerce refund records, stale refund-pending state, and rounding drift. Also adds support for pre-chargeback refund events.<\/p>","1.0.12":"<p>Recommended update: chargeback webhook events now create a full WooCommerce refund record correctly, refund accounting locks are ownership-safe, rounding is more reliable, and plugin settings are preserved on deactivation.<\/p>","1.0.11":"<p>Minor update: adds a GP logo icon next to GivePayments-originated order notes in the WooCommerce admin for easier identification.<\/p>","1.0.10":"<p>Recommended update: fixes duplicate charge risk on API timeouts, prevents WooCommerce from auto-cancelling timed-out pending orders, adds a $0 order guard, and hardens the checkout session cleanup on declines. Also includes a <code>givepayments_api_timeout<\/code> filter and a full codebase refactor into domain classes.<\/p>","1.0.9":"<p>Recommended update: orders now show <code>processing<\/code> immediately for successful in-flight payment responses, refund created\/pending webhooks mark WooCommerce orders refunded, and refund\/void admin actions and duplicate webhook notes are handled more reliably.<\/p>","1.0.8":"<p>Recommended update: webhook lifecycle now moves created\/authorized payments to <code>processing<\/code>, fixes non-US shipping address checkout failures, and surfaces real GivePayments error messages on Blocks checkout.<\/p>","1.0.7":"<p>Maintenance release.<\/p>","1.0.6":"<p>Recommended update with subscription adapter foundation and significant refund\/void reliability fixes.<\/p>","1.0.5":"<p>Recommended update with webhook signature, status lifecycle, and security hardening improvements.<\/p>","1.0.4":"<p>Internal release rolled up into 1.0.5.<\/p>","1.0.3":"<p>Recommended update to fix environment API key switching reliability.<\/p>","1.0.2":"<p>Recommended update with direct checkout and refund flow improvements.<\/p>","1.0.1":"<p>Minor patch release.<\/p>","1.0.0":"<p>This is the initial release of GivePayments Gateway for WooCommerce.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3272520,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3272520,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3272520,"resolution":"1544x500","location":"assets","locale":"","width":2320,"height":752},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3272520,"resolution":"772x250","location":"assets","locale":"","width":1160,"height":376}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.10","1.0.11","1.0.12","1.0.13","1.0.14","1.0.2","1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[240793,597,1887,286],"plugin_category":[45],"plugin_contributors":[240794],"plugin_business_model":[],"class_list":["post-227734","plugin","type-plugin","status-publish","hentry","plugin_tags-givepayments","plugin_tags-integration","plugin_tags-payments","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-givecorporation","plugin_committers-givecorporation","plugin_committers-youcefgivecorporation"],"banners":{"banner":"https:\/\/ps.w.org\/givepayments-for-woocommerce\/assets\/banner-772x250.png?rev=3272520","banner_2x":"https:\/\/ps.w.org\/givepayments-for-woocommerce\/assets\/banner-1544x500.png?rev=3272520","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/givepayments-for-woocommerce\/assets\/icon-128x128.png?rev=3272520","icon_2x":"https:\/\/ps.w.org\/givepayments-for-woocommerce\/assets\/icon-256x256.png?rev=3272520","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>GivePayments for WooCommerce is a robust and secure payment gateway plugin that integrates the GivePayments system with your WooCommerce store. This plugin provides a seamless transaction process and lets you manage your payment settings directly from your WordPress dashboard.<\/p>\n\n<h4>Key features include:<\/h4>\n\n<ul>\n<li><strong>Seamless Integration:<\/strong> Easily connect your WooCommerce store with the GivePayments system.<\/li>\n<li><strong>User-Friendly Configuration:<\/strong> Configure payment options via a streamlined admin interface.<\/li>\n<li><strong>Enhanced Security:<\/strong> Robust measures to ensure the protection of customer payment data.<\/li>\n<li><strong>Comprehensive Support:<\/strong> Detailed documentation, FAQs, and dedicated support channels are available.<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the GivePayments payment processing API to facilitate credit and debit card transactions for your WooCommerce store.<\/p>\n\n<h4>GivePayments API<\/h4>\n\n<ul>\n<li><strong>Service purpose<\/strong>: Processes credit and debit card payments for your WooCommerce store.<\/li>\n<li><strong>Data transmission<\/strong>:\n\n<ul>\n<li>During connection testing: API key, merchant ID, and environment settings are sent to verify credentials.<\/li>\n<li>During payment processing: Customer payment details (card information, billing information), order details, and transaction amounts are transmitted securely to GivePayments for processing.<\/li>\n<li>All data is transmitted securely using SSL encryption.<\/li>\n<\/ul><\/li>\n<li><strong>Frequency<\/strong>: Data is transmitted when:\n\n<ul>\n<li>A connection test is performed in the admin dashboard<\/li>\n<li>A customer initiates a payment at checkout<\/li>\n<li>A refund is processed through the WooCommerce order management system<\/li>\n<\/ul><\/li>\n<li><strong>Terms of Service<\/strong>: <a href=\"https:\/\/portal.givepayments.com\/terms_of_service\">GivePayments Terms of Service<\/a><\/li>\n<li><strong>Privacy Policy<\/strong>: <a href=\"https:\/\/portal.givepayments.com\/privacy\">GivePayments Privacy Policy<\/a><\/li>\n<\/ul>\n\n<p>Note: You will need a GivePayments merchant account to use this plugin. Visit <a href=\"https:\/\/givepaid.givepayments.com\/signup\">GivePayments Merchant Portal<\/a> to sign up or access your account.<\/p>\n\n<h3>Support<\/h3>\n\n<p>For support, documentation, or troubleshooting, please visit: <a href=\"https:\/\/merchants.givepayments.com\/support\/home\">GivePayments Support Page<\/a><\/p>\n\n<p>Alternatively, you can email us at support@givepayments.com.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the entire <code>givepayments-for-woocommerce<\/code> folder to your <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin via the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Navigate to <strong>WooCommerce &gt; Settings &gt; Payments<\/strong> and select the GivePayments gateway to configure your settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20does%20givepayments%20gateway%20for%20woocommerce%20work%3F\"><h3>How does GivePayments Gateway for WooCommerce work?<\/h3><\/dt>\n<dd><p>Once activated, the plugin adds a new payment gateway option to your WooCommerce checkout, enabling customers to choose GivePayments during the payment process.<\/p><\/dd>\n<dt id=\"how%20do%20i%20configure%20the%20plugin%3F\"><h3>How do I configure the plugin?<\/h3><\/dt>\n<dd><p>After installation, go to <strong>WooCommerce &gt; Settings &gt; Payments<\/strong>, select the GivePayments option, and follow the on-screen instructions to complete the setup.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.14<\/h4>\n\n<ul>\n<li>Added: the GivePayments API is now fully authoritative for recurring subscription scheduling \u2014 subscription status changes (cancellation, completion, payment failure, re-activation) are driven by GivePayments webhooks and reflected automatically in WooCommerce.<\/li>\n<li>Added: cancelling a subscription in WooCommerce now also cancels the recurring billing instruction in GivePayments for all supported subscription plugins (WooCommerce Subscriptions, Flexible Subscriptions, WP Swings SFW, and YITH).<\/li>\n<li>Fixed: cancelling a subscription in one place (WooCommerce or GivePayments portal) no longer triggers a redundant cancel attempt in the other, preventing confusing duplicate notes and unnecessary API calls.<\/li>\n<li>Fixed: Flexible Subscriptions (FSB) subscriptions can now be cancelled correctly \u2014 the plugin now follows FSB's required cancellation flow instead of attempting a direct status jump that FSB rejects.<\/li>\n<li>Fixed: WP Swings SFW subscriptions now show as cancelled in the WPS SFW interface after a webhook-driven cancellation, not just in the WooCommerce order screen.<\/li>\n<li>Fixed: YITH subscriptions created at checkout now correctly inherit the GivePayments recurring billing reference, ensuring webhook-driven status updates and cancellations work for YITH from the first billing cycle.<\/li>\n<li>Fixed: YITH subscriptions created before this update are automatically healed on the next webhook delivery \u2014 the plugin locates the correct subscription via the parent order and repairs the missing reference so future events are handled without manual intervention.<\/li>\n<li>Fixed: a fatal PHP error that could occur on Flexible Subscriptions admin screens when WooCommerce Payments is also active, caused by a type incompatibility between the two plugins.<\/li>\n<li>Fixed: subscription metadata is now stored correctly on stores using WooCommerce's High-Performance Order Storage (HPOS), preventing silent data loss on HPOS-enabled setups.<\/li>\n<\/ul>\n\n<h4>1.0.13<\/h4>\n\n<ul>\n<li>Fixed: voided payment webhook now acquires the shared refund accounting lock (gp_refund_acct_) instead of a separate gp_void_acct_ key, preventing a concurrent voided + refunded delivery from each winning an independent lock and creating duplicate WooCommerce refund records.<\/li>\n<li>Fixed: transition_order_to_refunded() re-reads the order status after winning the status mutex so a second concurrent delivery that waited for the lock does not fire update_status('refunded') on an already-refunded order, preventing duplicate woocommerce_order_status_refunded hook invocations.<\/li>\n<li>Fixed: voided payment webhook now deletes the gp_refund_pending_note_ option set by a preceding refund.created event, preventing a stale wp_options row when a refund attempt is abandoned and the payment is voided instead.<\/li>\n<li>Fixed: refund.created webhook now guards against terminal order statuses (refunded\/cancelled\/failed) before calling GIVEPAYMENTS_Refund_Guard::mark_pending(), preventing refund-pending meta from being written on already-resolved orders and corrupting the can_refund_order() predicate.<\/li>\n<li>Fixed: amount arithmetic in the refunded webhook handler now uses wc_format_decimal() instead of raw float subtraction, matching the precision used by the chargeback and pre-chargeback refund paths and eliminating rounding drift on stores with non-standard decimal settings.<\/li>\n<li>Added: pre-chargeback refund events handling \u2014 pre_chargeback_refund.created, pre_chargeback_refund.approved, pre_chargeback_refund.settled, and pre_chargeback_refund.voided are now fully handled, triggering the appropriate WooCommerce refund record and order status transitions.<\/li>\n<li>Added: warning log entry when a webhook payload arrives without an event id, clearly flagging that duplicate-delivery protection is disabled for that request.<\/li>\n<\/ul>\n\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Fixed: chargeback.created and chargeback.settled webhook events now create a WooCommerce refund record matching the full order amount, preventing the refunded amount from displaying as $0 on the order screen.<\/li>\n<li>Fixed: refund accounting lock for chargeback events is now ownership-safe \u2014 a unique token is stored with the lock and verified before release, preventing a stalled process from accidentally releasing a lock held by a concurrent delivery.<\/li>\n<li>Fixed: money arithmetic in refund accounting now uses wc_format_decimal() instead of raw float casts, eliminating rounding drift on stores with non-standard decimal configurations or multi-currency setups.<\/li>\n<li>Fixed: wc_create_refund() failure during chargeback webhook processing now returns a negative handler result so the webhook pipeline signals an unresolved delivery (allowing provider retry) instead of silently drifting into an unreconciled state.<\/li>\n<li>Fixed: plugin settings (API keys, webhook secrets, environment config) are no longer deleted on plugin deactivation \u2014 they are now only removed when the merchant explicitly deletes the plugin, preventing config loss during plugin updates.<\/li>\n<li>Added: uninstall.php \u2014 cleans up all plugin options when the merchant deletes the plugin via the WordPress admin.<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Added: GivePayments logo icon is now displayed next to GP-originated order notes in the WooCommerce order admin screen. Notes written directly by the plugin (payment, refund, void, renewals, webhooks) and side-effect notes generated by WooCommerce core during those operations (status transitions, payment-complete confirmation) are automatically tagged. Legacy notes containing \"GivePayments\" in their text are tagged as a fallback.<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Fixed: duplicate charge prevention \u2014 a cross-order dedup sentinel now blocks repeat submissions when a payment API timeout leaves the charge state ambiguous (cURL error 28 \/ <code>WP_Error<\/code>).<\/li>\n<li>Fixed: WooCommerce Blocks draft-order session pointer is now cleared on API timeout and on synchronous declines so the next checkout attempt creates a clean order instead of reusing the stale pending one.<\/li>\n<li>Fixed: orders marked with <code>_givepayments_pending_timeout<\/code> are now excluded from the WooCommerce auto-cancel unpaid orders cron, preventing the \"sale went through then failed\" email sequence.<\/li>\n<li>Fixed: $0 order guard \u2014 order totals are recalculated before the payment request and, if a prior transaction exists, the confirmed amount is recovered from the API before blocking the submission.<\/li>\n<li>Fixed: per-order checkout mutex prevents concurrent payment submissions for the same order from duplicate Blocks events or browser back-navigation.<\/li>\n<li>Fixed: card brand is now detected from the IIN\/BIN and included in the dedup key, preventing false-positive blocks when two cards share the same last-4 digits but differ in network (e.g. Visa vs Mastercard).<\/li>\n<li>Fixed: encryption key generation uses an atomic <code>add_option()<\/code> call instead of a read-then-write pattern, eliminating a race condition that could overwrite the key under concurrent plugin activations.<\/li>\n<li>Fixed: synchronous payment declines (2xx with terminal <code>processingState<\/code>) now clear the Blocks session pointer, matching the behaviour already applied to HTTP 4xx declines.<\/li>\n<li>Fixed: checkout payment errors now follow Stripe-style handling by returning checkout failure with a shopper-visible notice and clearing stale checkout order pointers before retry.<\/li>\n<li>Fixed: HTTP 422 <code>Invalid Input<\/code> payment failures now surface provider field-level validation details when present, instead of only showing a generic invalid input message.<\/li>\n<li>Fixed: failed payment order notes now include the backend\/provider error message or explicitly state when no provider message was returned.<\/li>\n<li>Fixed: invalid billing phone numbers are now blocked during checkout when provided, while optional empty phone values remain allowed.<\/li>\n<li>Added: <code>givepayments_api_timeout<\/code> filter allowing merchants and developers to override the HTTP timeout per endpoint and method without patching plugin code.<\/li>\n<li>Improved: POST <code>\/payments<\/code> timeout raised to 45 s to reduce false-timeout errors on slower acquiring-network responses.<\/li>\n<li>Improved: dedup sentinel TTL reduced to 5 minutes (was 10) to shorten the customer retry window when a genuine server error occurs with no charge.<\/li>\n<li>Improved: payment error messages are now normalised through a dedicated <code>GIVEPAYMENTS_Api_Response::parse_error()<\/code> pipeline \u2014 field-validation errors (<code>invalid_input<\/code>) are surfaced to customers with human-readable field labels; all other provider error codes and messages are written to order notes only to prevent leakage of fraud scores or internal rule names.<\/li>\n<li>Improved: codebase refactored into focused domain classes (<code>Payment<\/code>, <code>Refund<\/code>, <code>Webhook<\/code>, <code>Checkout<\/code>, <code>Http<\/code>, <code>Crypto<\/code>, <code>Subscription<\/code>) for improved maintainability and testability.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Changed: successful in-flight POST <code>\/payments<\/code> responses (<code>created<\/code>, <code>authorized<\/code>, <code>captured<\/code>, <code>processing<\/code>, <code>processing_issue<\/code>) now move orders to WooCommerce <code>processing<\/code> immediately while webhooks remain authoritative for final reconciliation.<\/li>\n<li>Changed: <code>refund.created<\/code> and <code>refund.pending<\/code> webhooks now mark orders <code>refunded<\/code> in WooCommerce per merchant policy and mirror WooCommerce refund accounting for custom captured \/ processing_issue void actions.<\/li>\n<li>Changed: refund webhooks that confirm plugin-originated <code>Void<\/code> actions now use payment reversal wording in order notes.<\/li>\n<li>Fixed: captured webhooks now add a visible captured order note even when the order was already <code>processing<\/code>.<\/li>\n<li>Changed: admin actions now show <code>Void<\/code> for <code>authorized<\/code>, <code>captured<\/code>, and <code>processing_issue<\/code> payments; native WooCommerce <code>Refund<\/code> is reserved for <code>settled<\/code> payments.<\/li>\n<li>Fixed: duplicate pending refund notes and duplicate refunded status-transition notes from closely timed or repeated refund webhooks are suppressed.<\/li>\n<li>Fixed: native WooCommerce Refund button no longer briefly flashes before being hidden on GivePayments order screens where it is not available.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Tested up to WordPress 6.9.<\/li>\n<li>Changed: <code>payment.created<\/code> and <code>payment.authorized<\/code> webhook events now move orders into WooCommerce <code>processing<\/code> immediately instead of <code>pending<\/code>, while still allowing later <code>payment.failed<\/code> \/ <code>payment.declined<\/code> events to transition the order to <code>failed<\/code>.<\/li>\n<li>Fixed: shipping addresses for countries without state\/subdivision fields (e.g., Czech Republic, Netherlands) no longer cause GivePayments API validation errors at checkout.<\/li>\n<li>Fixed: WooCommerce Blocks checkout now surfaces the actual GivePayments error message (e.g., fraud blocks, declines) instead of the generic \"Something went wrong\" message.<\/li>\n<li>Fixed: race condition that could display a stale void amount of 0.<\/li>\n<li>Improved: payment description is now sourced from gateway settings with a safe empty-string fallback.<\/li>\n<li>Improved: production API URL handling and admin UI cleanup.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Maintenance release with internal fixes and version alignment.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Added: subscription adapter registry with MVP adapters for WooCommerce Subscriptions, WP Swings SFW, YITH, and Flexible Subscriptions by WP Desk \u2014 enabling card tokenization and renewal payment routing for supported subscription plugins.<\/li>\n<li>Fixed: duplicate void\/refund handling and several race conditions when refunds or voids were initiated from WooCommerce.<\/li>\n<li>Fixed: refunds created through the GivePayments API are now correctly marked as <code>refunded<\/code> immediately, and voided transactions display a 0 amount.<\/li>\n<li>Fixed: declined transactions now correctly transition the order to <code>failed<\/code>.<\/li>\n<li>Fixed: native WooCommerce refund button is hidden when only a void action is allowed, preventing conflicting actions.<\/li>\n<li>Fixed: re-register webhook button label and checkout failure edge cases.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added: recurring payments phase 1 groundwork.<\/li>\n<li>Added: re-register webhook button in the gateway settings.<\/li>\n<li>Added: void action for authorized transactions.<\/li>\n<li>Improved: webhook signature verification, registration handling, and logging for stale entries.<\/li>\n<li>Improved: status lifecycle now relies on the raw provider processing state, with refund\/chargeback events no longer overwriting the underlying payment state.<\/li>\n<li>Improved: security hardening, additional sanitization, and redaction of CVV \/ card number values from logs.<\/li>\n<li>Fixed: webhook transaction ID resolution for voids and refunds, including fallback matching.<\/li>\n<li>Fixed: declined transaction status mapping and refund UI visibility for failed transactions.<\/li>\n<li>Fixed: production and sandbox API base URLs.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Internal release rolled up into 1.0.5.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fixed API key save\/toggle behavior when switching between Sandbox and Production environments.<\/li>\n<li>Improved admin key handling to prevent invalid re-encryption and intermittent 400 payment errors.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added direct card payment flow improvements for checkout and checkout blocks.<\/li>\n<li>Added native WooCommerce refund integration with GivePayments API.<\/li>\n<li>Improved payment\/refund error handling and logging for easier troubleshooting.<\/li>\n<li>Hardened legacy return handling checks for safer order updates.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Patch release<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release of GivePayments for WooCommerce.<\/li>\n<li>Seamless integration of the GivePayments payment gateway.<\/li>\n<li>Implementation of user-friendly configuration and enhanced security features.<\/li>\n<\/ul>","raw_excerpt":"Integrate GivePayments as a secure payment gateway for your WooCommerce store with easy management from your WordPress dashboard.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/227734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=227734"}],"author":[{"embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/givecorporation"}],"wp:attachment":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=227734"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=227734"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=227734"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=227734"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=227734"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=227734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}