{"id":327356,"date":"2026-09-22T08:16:18","date_gmt":"2026-09-22T08:16:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/onefor-payment-gateway\/"},"modified":"2026-09-23T19:20:52","modified_gmt":"2026-09-23T19:20:52","slug":"onefor-payment-gateway","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/onefor-payment-gateway\/","author":23515752,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.5.55","stable_tag":"trunk","tested":"7.0.6","requires":"6.1","requires_php":"7.4","requires_plugins":null,"header_name":"OneFor - Payment Gateway","header_author":"OneFor","header_description":"OneFor - Payment Gateway for WooCommerce (Basic Auth, staging + production).","assets_banners_color":"8f1fb4","last_updated":"2026-09-23 19:20:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.onefor.com\/web\/ks\/business","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":0,"downloads":91,"num_ratings":1,"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":"onefor","date":"2026-09-22 08:16:08","revision":3706846},"1.0.1":{"tag":"1.0.1","author":"onefor","date":"2026-09-22 08:27:39","revision":3706867},"1.0.2":{"tag":"1.0.2","author":"onefor","date":"2026-09-23 19:18:01","revision":3710033},"1.0.3":{"tag":"1.0.3","author":"onefor","date":"2026-09-23 19:21:09","revision":3710040}},"upgrade_notice":{"2.5.24":"<p>Checkout layout polish for the OneFor payment option.<\/p>","2.5.23":"<p>Security and WordPress.org readiness update. Recommended for all users.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3706861,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3706861,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3710031,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3710031,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"OneFor payment gateway settings page","2":"Branded payment method selection page with QR code and sign-in options","3":"OneFor payment method shown at WooCommerce checkout"}},"plugin_section":[],"plugin_tags":[282,281984,6593,1887,286],"plugin_category":[45],"plugin_contributors":[281985],"plugin_business_model":[],"class_list":["post-327356","plugin","type-plugin","status-publish","hentry","plugin_tags-ecommerce","plugin_tags-onefor","plugin_tags-payment-gateway","plugin_tags-payments","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-onefor","plugin_committers-onefor"],"banners":{"banner":"https:\/\/ps.w.org\/onefor-payment-gateway\/assets\/banner-772x250.png?rev=3710031","banner_2x":"https:\/\/ps.w.org\/onefor-payment-gateway\/assets\/banner-1544x500.png?rev=3710031","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/onefor-payment-gateway\/assets\/icon-128x128.png?rev=3706861","icon_2x":"https:\/\/ps.w.org\/onefor-payment-gateway\/assets\/icon-256x256.png?rev=3706861","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>OneFor - Payment Gateway connects your WooCommerce store to <a href=\"https:\/\/www.onefor.com\/\">OneFor<\/a> so customers can pay online after checkout.<\/p>\n\n<p>After placing an order, customers are taken to a branded OneFor payment page where they can pay with a credit or debit card, scan a QR code with the OneFor app, or sign in with their OneFor account. Orders are updated automatically when OneFor sends a webhook notification after payment.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Single WooCommerce payment method at checkout<\/li>\n<li>Card, QR code, and OneFor sign-in on the OneFor payment page<\/li>\n<li>Staging and production API environments<\/li>\n<li>Dedicated admin settings page with connection test<\/li>\n<li>Webhook endpoint with HTTP Basic Auth for order status updates<\/li>\n<li>WooCommerce Checkout Blocks support<\/li>\n<li>Compatible with WooCommerce custom order tables (HPOS)<\/li>\n<li>EUR orders supported<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.1 or higher<\/li>\n<li>WooCommerce 7.0 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>HTTPS on your store<\/li>\n<li>OneFor merchant API credentials<\/li>\n<li>Store currency set to EUR<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to <strong>OneFor<\/strong> payment services so customers can complete checkout payments and so your store can receive payment status updates.<\/p>\n\n<p><strong>What it is used for<\/strong><\/p>\n\n<ul>\n<li>Creating payment sessions when a customer chooses OneFor at WooCommerce checkout<\/li>\n<li>Redirecting the customer to OneFor-hosted payment pages (card, QR code, or OneFor sign-in)<\/li>\n<li>Verifying API credentials from the plugin settings page (<strong>Test connection<\/strong>)<\/li>\n<li>Receiving server-to-server webhook notifications when OneFor reports a payment result<\/li>\n<li>Processing refunds through the OneFor API when initiated from WooCommerce<\/li>\n<\/ul>\n\n<p><strong>What data is sent, and when<\/strong><\/p>\n\n<ul>\n<li><strong>When a customer pays:<\/strong> After checkout, your store sends the WooCommerce order ID, order total, currency (EUR), return URL, and merchant order reference to the OneFor API (<code>api.staging.app.onefor.com<\/code> or <code>api.app.onefor.com<\/code>). If configured, your merchant account number is also sent. API requests are authenticated with the API username and password you enter in the plugin settings.<\/li>\n<li><strong>When you click Test connection:<\/strong> Your API username and password are sent to the OneFor API to verify the connection.<\/li>\n<li><strong>When a refund is processed:<\/strong> The payment session ID is sent to the OneFor API.<\/li>\n<li><strong>On the OneFor payment pages:<\/strong> The customer completes payment on OneFor's website or app. Any card, account, or identity data entered there is handled by OneFor, not stored by this plugin.<\/li>\n<li><strong>Webhook (incoming):<\/strong> OneFor sends payment status updates to your WordPress site. The plugin does not send customer location or tracking data to OneFor.<\/li>\n<\/ul>\n\n<p>This plugin does <strong>not<\/strong> collect GPS location or track site visitors. It only communicates with OneFor when payment-related actions occur.<\/p>\n\n<p><strong>OneFor Terms of Service and Privacy Policy<\/strong><\/p>\n\n<ul>\n<li><strong>Terms of Service:<\/strong> https:\/\/www.onefor.com\/web\/en\/legalDocuments<\/li>\n<li><strong>Privacy Policy:<\/strong> https:\/\/www.onefor.com\/web\/en\/privacyPolicy<\/li>\n<li>Cookie policy: https:\/\/www.onefor.com\/web\/en\/cookiePolicy<\/li>\n<li>Imprint: https:\/\/www.onefor.com\/web\/en\/imprint<\/li>\n<li>Security &amp; protection: https:\/\/www.onefor.com\/web\/en\/security-posts<\/li>\n<li>Complaint policy: https:\/\/www.onefor.com\/web\/en\/compliantPolicy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/onefor-payment-gateway<\/code>, or install the plugin through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>OneFor - Payment Gateway<\/strong> in the WordPress admin menu.<\/li>\n<li>Enter your OneFor API username and password.<\/li>\n<li>Copy the webhook URL shown in settings and provide it to OneFor so they can notify your store when payments complete.<\/li>\n<li>Set webhook key and webhook secret to match what OneFor configured for your merchant account.<\/li>\n<li>Enable the gateway and save your settings.<\/li>\n<li>Use <strong>Test connection<\/strong> to verify your API credentials before going live.<\/li>\n<li>Switch from staging to production when you are ready.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20onefor%20merchant%20account%3F\"><h3>Do I need a OneFor merchant account?<\/h3><\/dt>\n<dd><p>Yes. You need API credentials from OneFor before the gateway can create payment sessions.<\/p><\/dd>\n<dt id=\"which%20currencies%20are%20supported%3F\"><h3>Which currencies are supported?<\/h3><\/dt>\n<dd><p>OneFor currently supports EUR. The gateway is only available at checkout when your store currency is EUR.<\/p><\/dd>\n<dt id=\"how%20does%20the%20webhook%20work%3F\"><h3>How does the webhook work?<\/h3><\/dt>\n<dd><p>OneFor sends a server-to-server POST request to your store after a payment is processed. The plugin verifies the request using HTTP Basic Auth with your webhook key and secret, then updates the related WooCommerce order.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20woocommerce%20blocks%20checkout%3F\"><h3>Does this work with WooCommerce blocks checkout?<\/h3><\/dt>\n<dd><p>Yes. The plugin registers support for WooCommerce Checkout Blocks.<\/p><\/dd>\n<dt id=\"can%20i%20test%20before%20going%20live%3F\"><h3>Can I test before going live?<\/h3><\/dt>\n<dd><p>Yes. Enable staging mode in the plugin settings and use your OneFor sandbox credentials.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.5.55<\/h4>\n\n<ul>\n<li>Renamed WooCommerce gateway classes to OneFor_ prefix for Plugin Check compliance; webhook URL unchanged.<\/li>\n<\/ul>\n\n<h4>2.5.54<\/h4>\n\n<ul>\n<li>Improved admin onboarding guidance (signup\/support links + webhook setup steps) and fixed settings clearing behavior.<\/li>\n<\/ul>\n\n<h4>2.5.53<\/h4>\n\n<ul>\n<li>Fixed card payment redirect URLs to use the same staging\/production hosts as QR and sign-in (app.onefor.com \/ staging.app.onefor.com)<\/li>\n<\/ul>\n\n<h4>2.5.52<\/h4>\n\n<ul>\n<li>Equalized sidebar card spacing and moved credit card activation above OneFor support<\/li>\n<\/ul>\n\n<h4>2.5.51<\/h4>\n\n<ul>\n<li>Removed phpcs.xml.dist from the plugin package (not permitted on WordPress.org)<\/li>\n<li>Always show OneFor support contact details after a successful API connection; credit card activation note only when card is unavailable<\/li>\n<\/ul>\n\n<h4>2.5.50<\/h4>\n\n<ul>\n<li>Fixed setup status badge and alert not updating after saving settings without a page refresh<\/li>\n<\/ul>\n\n<h4>2.5.49<\/h4>\n\n<ul>\n<li>Added OneFor legal and privacy links to the admin settings sidebar; expanded readme legal links<\/li>\n<\/ul>\n\n<h4>2.5.48<\/h4>\n\n<ul>\n<li>Documented OneFor external API usage, data transmission, and legal links in readme.txt<\/li>\n<\/ul>\n\n<h4>2.5.47<\/h4>\n\n<ul>\n<li>Added PHPCS text domain configuration; removed hidden files from the distributable package<\/li>\n<\/ul>\n\n<h4>2.5.46<\/h4>\n\n<ul>\n<li>Fixed PHP 8.2 dynamic property warnings and strengthened API URL migration on load<\/li>\n<\/ul>\n\n<h4>2.5.45<\/h4>\n\n<ul>\n<li>Fixed API URL migration from corebaas hosts and improved test connection errors to show the full request URL<\/li>\n<\/ul>\n\n<h4>2.5.44<\/h4>\n\n<ul>\n<li>Updated API base URLs to api.staging.app.onefor.com\/core and api.app.onefor.com\/core<\/li>\n<\/ul>\n\n<h4>2.5.43<\/h4>\n\n<ul>\n<li>Restored checkout logo via standard WooCommerce gateway icon without custom HTML in the payment title<\/li>\n<\/ul>\n\n<h4>2.5.42<\/h4>\n\n<ul>\n<li>Removed all checkout UI customization; payment method now uses plain WooCommerce title and description only<\/li>\n<\/ul>\n\n<h4>2.5.41<\/h4>\n\n<ul>\n<li>Stopped checkout HTML from being stored on orders; admin order payment line now always shows plain text<\/li>\n<\/ul>\n\n<h4>2.5.40<\/h4>\n\n<ul>\n<li>Fixed raw HTML showing in WooCommerce admin order payment details<\/li>\n<\/ul>\n\n<h4>2.5.39<\/h4>\n\n<ul>\n<li>Fixed Plugin Check warning on legacy admin settings URL redirect<\/li>\n<\/ul>\n\n<h4>2.5.38<\/h4>\n\n<ul>\n<li>Fixed WooCommerce settings link and legacy admin URL redirect for old onefor-epay-gateway page slug<\/li>\n<li>Removed unused legacy payment-waiting assets<\/li>\n<\/ul>\n\n<h4>2.5.37<\/h4>\n\n<ul>\n<li>Renamed main plugin file to onefor-payment-gateway.php to match the WordPress.org slug<\/li>\n<\/ul>\n\n<h4>2.5.36<\/h4>\n\n<ul>\n<li>Plugin Check: fixed i18n translators comments, enqueued payment page assets, and WordPress 7.0 compatibility metadata<\/li>\n<li>Raised minimum WordPress version to 6.1 for object cache group support<\/li>\n<\/ul>\n\n<h4>2.5.35<\/h4>\n\n<ul>\n<li>WordPress.org: added License header and aligned text domain with plugin slug<\/li>\n<\/ul>\n\n<h4>2.5.28<\/h4>\n\n<ul>\n<li>Fixed infinite recursion in checkout title filter that could cause a critical site error<\/li>\n<\/ul>\n\n<h4>2.5.27<\/h4>\n\n<ul>\n<li>Fixed page scroll when the mouse is over the sticky admin sidebar<\/li>\n<\/ul>\n\n<h4>2.5.26<\/h4>\n\n<ul>\n<li>Increased spacing between admin settings columns<\/li>\n<\/ul>\n\n<h4>2.5.25<\/h4>\n\n<ul>\n<li>Sticky admin sidebar, improved payment method card layout, and spacing polish<\/li>\n<\/ul>\n\n<h4>2.5.24<\/h4>\n\n<ul>\n<li>Improved checkout logo size and text alignment for classic and blocks checkout<\/li>\n<\/ul>\n\n<h4>2.5.23<\/h4>\n\n<ul>\n<li>Security: added nonce verification for order status polling<\/li>\n<li>Security: sanitized query string input and improved output escaping<\/li>\n<li>Added readme.txt for WordPress.org submission<\/li>\n<\/ul>\n\n<h4>2.5.22<\/h4>\n\n<ul>\n<li>Faster redirect after successful payment on the payment selection page<\/li>\n<\/ul>\n\n<h4>2.5.21<\/h4>\n\n<ul>\n<li>Updated plugin display name to OneFor - Payment Gateway<\/li>\n<\/ul>\n\n<h4>2.5.20<\/h4>\n\n<ul>\n<li>Fixed payment redirect URL format for QR and sign-in flows<\/li>\n<\/ul>\n\n<h4>2.5.19<\/h4>\n\n<ul>\n<li>Updated session creation payload for OneFor API compatibility<\/li>\n<\/ul>\n\n<h4>2.5.18<\/h4>\n\n<ul>\n<li>Test connection now uses the methods endpoint instead of creating a test session<\/li>\n<\/ul>\n\n<h4>2.5.17<\/h4>\n\n<ul>\n<li>Removed webhook URL from session creation payload per OneFor API guidance<\/li>\n<\/ul>\n\n<h4>2.5.0<\/h4>\n\n<ul>\n<li>Redesigned payment selection page<\/li>\n<li>Webhook handling with Basic Auth<\/li>\n<li>Staging and production environment support<\/li>\n<\/ul>","raw_excerpt":"Accept card, QR code, and OneFor sign-in payments in WooCommerce with staging and production support.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/327356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=327356"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/onefor"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=327356"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=327356"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=327356"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=327356"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=327356"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=327356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}