{"id":296761,"date":"2026-07-13T12:48:18","date_gmt":"2026-07-13T12:48:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/vaendora-woo-payments-for-nigeria\/"},"modified":"2026-08-04T13:37:52","modified_gmt":"2026-08-04T13:37:52","slug":"vaendora-payment-gateway","status":"publish","type":"plugin","link":"https:\/\/sa.wordpress.org\/plugins\/vaendora-payment-gateway\/","author":23470816,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.6.7","stable_tag":"1.6.7","tested":"6.9.5","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"Vaendora Payment Gateway","header_author":"Junn Digital","header_description":"Accept bank transfers on your WooCommerce store with instant payment confirmation, low fees, no fake alerts. Powered by Vaendora Payment Gateway for Nigeria, built for Nigerian merchants.","assets_banners_color":"","last_updated":"2026-08-04 13:37:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/vaendora.com","header_author_uri":"https:\/\/junndigital.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":119,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.8":{"tag":"1.2.8","author":"jennee","date":"2026-07-13 13:39:00"},"1.6.7":{"tag":"1.6.7","author":"jennee","date":"2026-08-04 13:37:52"}},"upgrade_notice":{"1.2.6":"<p>Corrects the External Services disclosure: removes fields that were never sent (currency, customer phone) and adds the return_url field that has always been included. No functional changes.<\/p>","1.2.5":"<p>WordPress.org compliance fixes: inline CSS moved to enqueued stylesheet, external service documentation added to readme, webhook authentication strengthened. Recommended for all users.<\/p>","1.2.2":"<p>Plugin renamed to &quot;Vaendora Payment Gateway for Nigeria&quot; to comply with WordPress.org trademark guidelines. New slug: vaendora-payment-gateway. If installing manually, update your plugin folder name accordingly.<\/p>","1.2.0":"<p>Plugin renamed to comply with WordPress.org trademark guidelines. New slug: vaendora-payments-for-woocommerce-nigeria. If installing manually, update your plugin folder name accordingly.<\/p>","1.0.17":"<p>WordPress.org compliance fixes: correct text domain, proper output escaping, removed deprecated function. Recommended for all users.<\/p>","1.0.16":"<p>Adds a &quot;Settings&quot; quick-link on the Plugins page for easier access to the gateway configuration. No functional changes.<\/p>","1.0.15":"<p>Plugin renamed to &quot;Vaendora Woo Payments for Nigeria&quot;. No functional changes - safe to upgrade.<\/p>","1.0.14":"<p>Adds real branded screenshots and banners for the WordPress.org plugin directory. No functional changes.<\/p>","1.0.13":"<p>Adds Vaendora branding (gateway icon + Secured by badge) at checkout and fixes bullet point alignment.<\/p>","1.0.12":"<p>Code quality improvements for WordPress.org compliance. Recommended for all users.<\/p>","1.0.7":"<p>Bank transfer details now included in WooCommerce order emails. Order status changed to on-hold for better email delivery. Upgrade recommended for all merchants.<\/p>","1.0.6":"<p>Rebranded to Vaendora. Adds HPOS compatibility. Recommended for all WooCommerce 8+ stores.<\/p>","1.0.5":"<p>Improves webhook reliability. Upgrade recommended for all merchants.<\/p>","1.0.4":"<p>Settings page improvements. No breaking changes.<\/p>","1.0.3":"<p>Error handling improvements. No breaking changes.<\/p>","1.0.2":"<p>Thank-you page and order note improvements. No breaking changes.<\/p>","1.0.1":"<p>Bug fixes for payment callbacks. Upgrade recommended.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3606121,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3606121,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.8","1.6.7"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Vaendora payment option at checkout","2":"Vaendora secure bank-transfer payment page","3":"Plugin settings page with API key configuration","4":"Cost Price field on a WooCommerce product","5":"Bulk cost-price management from the Products list","6":"Profit columns (Cost, Gross Profit, Margin, Profit Status) inside Analytics \u2192 Products","7":"Profit columns inside Analytics \u2192 Orders","8":"Profit columns inside Analytics \u2192 Revenue breakdown table","9":"Vaendora Analytics dashboard with Gateway Coverage and Cost Coverage"}},"plugin_section":[],"plugin_tags":[127760,5492,6593,253764,286],"plugin_category":[45],"plugin_contributors":[271356],"plugin_business_model":[],"class_list":["post-296761","plugin","type-plugin","status-publish","hentry","plugin_tags-bank-transfer","plugin_tags-nigeria","plugin_tags-payment-gateway","plugin_tags-profit-analytics","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-jennee","plugin_committers-jennee"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/vaendora-payment-gateway\/assets\/icon-128x128.png?rev=3606121","icon_2x":"https:\/\/ps.w.org\/vaendora-payment-gateway\/assets\/icon-256x256.png?rev=3606121","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Vaendora Payment Gateway helps Nigerian WooCommerce merchants accept securely verified bank-transfer payments and understand the Gross Profit behind every sale.<\/strong><\/p>\n\n<p>Payments are verified automatically, orders update without manual bank-alert checks, and merchants can enter product cost prices to see Cost of Goods Sold, Gross Profit and margins directly inside WooCommerce Analytics.<\/p>\n\n<p>Profit reporting covers orders processed through Vaendora, giving merchants a clear view of the sales, costs and margins that Vaendora has verified.<\/p>\n\n<blockquote>\n  <p>Profit Analytics includes orders paid through Vaendora only. Orders processed through other gateways remain in WooCommerce's normal reports but are excluded from Vaendora's cost and profit calculations. This makes Gateway Coverage \u2014 the share of your sales processed through Vaendora \u2014 visible at a glance, giving you a clear incentive to consolidate.<\/p>\n<\/blockquote>\n\n<p><strong>Payments<\/strong><\/p>\n\n<ul>\n<li><strong>Instant Verification<\/strong> \u2014 Payments are verified within seconds of transfer<\/li>\n<li><strong>No Card Required<\/strong> \u2014 Customers pay via direct bank transfer<\/li>\n<li><strong>Lower Fees<\/strong> \u2014 More cost-effective than traditional card payments<\/li>\n<li><strong>Nigerian Banks<\/strong> \u2014 Supports all major Nigerian banks<\/li>\n<li><strong>Automatic Order Updates<\/strong> \u2014 Orders are marked as paid automatically<\/li>\n<li><strong>Secure Hosted Flow<\/strong> \u2014 Customers complete payment on Vaendora's secure page<\/li>\n<li><strong>Test Mode<\/strong> \u2014 Simulate payments without real money during setup<\/li>\n<li><strong>HPOS Compatible<\/strong> \u2014 Fully compatible with WooCommerce High-Performance Order Storage<\/li>\n<\/ul>\n\n<p><strong>Profit Analytics<\/strong><\/p>\n\n<ul>\n<li><strong>Cost Price fields<\/strong> \u2014 Enter cost prices on products and individual variations<\/li>\n<li><strong>Bulk and CSV cost management<\/strong> \u2014 Update many costs at once or import via CSV<\/li>\n<li><strong>Cost snapshots<\/strong> \u2014 The cost at the time of sale is saved permanently; changing a product's price never rewrites historical profit<\/li>\n<li><strong>Cost of Goods Sold (COGS)<\/strong> \u2014 Calculated per product, per order, and per period<\/li>\n<li><strong>Gross Profit and Gross Margin<\/strong> \u2014 Available at product, order, and revenue level<\/li>\n<li><strong>Analytics \u2192 Products<\/strong> \u2014 Cost, Gross Profit, Margin and Profit Status columns inside the native WC Analytics Products table<\/li>\n<li><strong>Analytics \u2192 Orders<\/strong> \u2014 Cost, Gross Profit, Margin and Profit Status columns inside the native WC Analytics Orders table<\/li>\n<li><strong>Analytics \u2192 Revenue<\/strong> \u2014 Cost, Gross Profit, and Margin columns inside the native WC Analytics Revenue breakdown table (daily, weekly and monthly groupings)<\/li>\n<li><strong>Vaendora Analytics page<\/strong> \u2014 Dedicated Products and Revenue reports under WooCommerce \u2192 Vaendora Analytics<\/li>\n<li><strong>Gateway Coverage<\/strong> \u2014 See what percentage of your total WooCommerce sales are processed through Vaendora<\/li>\n<li><strong>Cost Coverage<\/strong> \u2014 See what percentage of Vaendora sales have complete cost information<\/li>\n<li><strong>Missing-cost warnings<\/strong> \u2014 Products without a cost price are flagged with a direct link to fix them<\/li>\n<li><strong>Refund adjustments<\/strong> \u2014 Full and partial refunds automatically reverse the corresponding COGS and revenue<\/li>\n<li><strong>CSV exports<\/strong> \u2014 Download profit data for Products and Revenue from the Vaendora Analytics page<\/li>\n<\/ul>\n\n<p><strong>How Payments Work<\/strong><\/p>\n\n<ol>\n<li>Customer selects \"Bank Transfer (Instant Verification)\" at checkout<\/li>\n<li>Customer is redirected to Vaendora's secure payment page<\/li>\n<li>Customer transfers the exact amount with the provided reference<\/li>\n<li>Vaendora verifies the payment instantly<\/li>\n<li>Your WooCommerce order is automatically marked as paid<\/li>\n<\/ol>\n\n<p><strong>Requirements<\/strong><\/p>\n\n<ul>\n<li>WooCommerce 7.0 or higher<\/li>\n<li>A Vaendora merchant account (<a href=\"https:\/\/app.vaendora.com\/onboarding\">Sign up here<\/a>)<\/li>\n<li>PHP 7.4 or higher<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the Vaendora API to process payments on behalf of the store owner. The service is required for the plugin to function.<\/p>\n\n<p><strong>Service:<\/strong> Vaendora Payment API (api.vaendora.com)<\/p>\n\n<p><strong>What it is:<\/strong>\nVaendora is an AI-powered business system built for Nigerian entrepreneurs who need more structure, clearer control, and smarter support as they sell, manage, and grow.<\/p>\n\n<p>It gives small and growing businesses a professional place to sell, payment and order records, customer management, shipping support, content and visibility tools, AI-powered customer support, business insights, and money clarity, all in one connected system.<\/p>\n\n<p>Vaendora is built for Nigerian SMEs that are ambitious but stretched, where the owner is often managing customers, payments, stock, orders, content, and business decisions manually. At the centre of the platform is Vaera, the AI intelligence inside Vaendora, helping the business respond, create, analyse, monitor, and keep moving with less daily pressure on the owner.<\/p>\n\n<p>Vaendora exists to help Nigerian businesses move from manual hustle to structured growth.<\/p>\n\n<p><strong>What data is sent and when:<\/strong><\/p>\n\n<ul>\n<li>At checkout, when a customer places an order using this payment method, the following order details are sent to api.vaendora.com: order ID, order total (in kobo), customer name, customer email, a callback URL for payment notifications, and a return URL to redirect the customer after payment.<\/li>\n<li>When the customer returns to the store after completing a transfer, the payment reference is sent to api.vaendora.com to confirm the payment status.<\/li>\n<\/ul>\n\n<p><strong>Service provider:<\/strong> Vaendora (by Junn Digital)<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/vaendora.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/vaendora.com\/privacy<\/li>\n<\/ul>\n\n<p>No data is sent to api.vaendora.com unless a customer actively chooses the Vaendora bank transfer payment method and places an order.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Go to WooCommerce -&gt; Settings -&gt; Payments -&gt; Vaendora.<\/li>\n<li>Click \"Login to Vaendora\" or \"Create Account\" to get your API keys.<\/li>\n<li>Enter your API Key and Webhook Secret.<\/li>\n<li>Enable the payment method and save.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20vaendora%20account%3F\"><h3>Do I need a Vaendora account?<\/h3><\/dt>\n<dd><p>Yes, you need to create a free Vaendora merchant account at <a href=\"https:\/\/app.vaendora.com\/onboarding\">app.vaendora.com<\/a> to get your API keys.<\/p><\/dd>\n<dt id=\"what%20are%20the%20fees%3F\"><h3>What are the fees?<\/h3><\/dt>\n<dd><p>Vaendora charges a 1.5% (+VAT) transaction fee, capped at \u20a61,800.<\/p><\/dd>\n<dt id=\"how%20long%20does%20payment%20verification%20take%3F\"><h3>How long does payment verification take?<\/h3><\/dt>\n<dd><p>Payments are typically verified within seconds of the bank transfer being completed.<\/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. Use Test Mode with your test API keys to simulate payments without real money.<\/p><\/dd>\n<dt id=\"what%20banks%20are%20supported%3F\"><h3>What banks are supported?<\/h3><\/dt>\n<dd><p>Vaendora supports all major Nigerian banks including GTBank, Access Bank, First Bank, UBA, Zenith Bank, Moniepoint and many more.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20compatible%20with%20woocommerce%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Is this plugin compatible with WooCommerce High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares full compatibility with HPOS (also known as Custom Order Tables).<\/p><\/dd>\n<dt id=\"what%20is%20vaendora%20profit%20analytics%3F\"><h3>What is Vaendora Profit Analytics?<\/h3><\/dt>\n<dd><p>It lets you enter the cost price of your products and see Cost of Goods Sold (COGS), Gross Profit and Gross Margin directly inside WooCommerce Analytics \u2014 on the Products, Orders and Revenue pages \u2014 without leaving the reports you already use.<\/p><\/dd>\n<dt id=\"where%20do%20i%20enter%20product%20costs%3F\"><h3>Where do I enter product costs?<\/h3><\/dt>\n<dd><p>Cost prices are entered from WooCommerce Products, including individual variations. You can also update many costs at once via the bulk-edit interface or import them all at once using a CSV file.<\/p><\/dd>\n<dt id=\"does%20profit%20analytics%20include%20orders%20from%20paystack%20or%20other%20payment%20gateways%3F\"><h3>Does Profit Analytics include orders from Paystack or other payment gateways?<\/h3><\/dt>\n<dd><p>No. Profit figures are calculated only for successfully verified orders processed through Vaendora. Orders paid via other gateways remain visible in WooCommerce's standard reports but are excluded from Vaendora's cost and profit calculations.<\/p><\/dd>\n<dt id=\"does%20changing%20a%20product%27s%20cost%20price%20change%20old%20profit%20reports%3F\"><h3>Does changing a product's cost price change old profit reports?<\/h3><\/dt>\n<dd><p>No. Vaendora saves the cost price at the moment of each sale (a \"cost snapshot\"), so historical profit figures remain accurate even when product costs change later.<\/p><\/dd>\n<dt id=\"does%20it%20calculate%20net%20profit%3F\"><h3>Does it calculate Net Profit?<\/h3><\/dt>\n<dd><p>No. It calculates Gross Profit based on product revenue and Cost of Goods Sold. Operating expenses such as rent, salaries and advertising are not included \u2014 this is Gross Profit only.<\/p><\/dd>\n<dt id=\"what%20is%20gateway%20coverage%3F\"><h3>What is Gateway Coverage?<\/h3><\/dt>\n<dd><p>Gateway Coverage shows the percentage of your total WooCommerce sales that were processed through Vaendora. A lower number means some sales are going through other gateways and are therefore not included in your profit report.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.6.7<\/h4>\n\n<ul>\n<li>Updated: Plugin description, short description, and FAQ rewritten to reflect Profit Analytics as a core feature alongside payments. Tags updated (<code>naira<\/code> \u2192 <code>profit analytics<\/code>). Tested up to WordPress 7.0.2 and WooCommerce 10.9.4. Fixed typos in External Services section.<\/li>\n<\/ul>\n\n<h4>1.6.6<\/h4>\n\n<ul>\n<li>Fixed: Analytics \u2192 Revenue table profit columns (Cost COGS, Gross Profit, Margin) now populate correctly instead of showing dashes. Two bugs resolved: (1) the PHP REST extender route regex was missing <code>\/reports\/<\/code> so it never fired for the Revenue stats endpoint; (2) Vaendora fields were injected at the interval root instead of inside <code>interval.subtotals<\/code>, where WC Admin builds Revenue table rows from. The JS Revenue filter now reads via <code>item.subtotals || item<\/code> for forward-compat.<\/li>\n<\/ul>\n\n<h4>1.6.5<\/h4>\n\n<ul>\n<li>Fixed: Analytics \u2192 Products, Orders, and Revenue columns no longer stay stuck on <code>\u2026<\/code>. Root cause was an async fetch-and-rerender architecture that stored profit data in plain JS objects (non-reactive) and relied on a fake <code>core\/notices<\/code> notice to trigger a React re-render \u2014 unreliable in practice. Profit data is now injected server-side by PHP directly into the native WC Analytics REST responses (<code>rest_post_dispatch<\/code>), so the JS filter reads values synchronously from <code>reportTableData.items.data<\/code> without any secondary fetch.<\/li>\n<li>Fixed: Date range parser now checks <code>window.location.search<\/code> before <code>window.location.hash<\/code>, supporting WooCommerce Analytics 10.x which stores route params in the query string. Revenue panel navigation listener also covers <code>popstate<\/code> in addition to <code>hashchange<\/code>.<\/li>\n<li>Added: <code>Vaendora_Analytics_REST_Extender<\/code> class \u2014 hooks into <code>\/wc-analytics\/reports\/products<\/code>, <code>\/wc-analytics\/reports\/orders<\/code>, and <code>\/wc-analytics\/revenue\/stats<\/code> to inject <code>vaendora_*<\/code> profit fields into each response item.<\/li>\n<\/ul>\n\n<h4>1.6.4<\/h4>\n\n<ul>\n<li>Fixed: Reverted order date filter from <code>date_paid<\/code> back to <code>date_created<\/code>. On real HPOS-enabled stores <code>wc_get_orders()<\/code> with a <code>date_paid<\/code> range returned no results despite the field being set, causing all Analytics columns to go blank. Because the Vaendora checkout creates and pays the order within the same flow, <code>date_created<\/code> is effectively the same moment and is consistently queryable across all supported WC configurations.<\/li>\n<\/ul>\n\n<h4>1.6.3<\/h4>\n\n<ul>\n<li>Fixed: Profit data queries now filter by payment date (<code>date_paid<\/code>) instead of order creation date (<code>date_created<\/code>), aligning results with WooCommerce Analytics which also groups by payment date. Orders created in one period but paid in another now appear in the correct period on both the Vaendora Analytics page and the native Analytics columns.<\/li>\n<\/ul>\n\n<h4>1.6.2<\/h4>\n\n<ul>\n<li>Changed: WooCommerce sidebar menu item and page title renamed from \"Vaendora Profit\" \/ \"Vaendora Profit Analytics\" to \"Vaendora Analytics\".<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Fixed: Internal order-item meta keys (<code>_vaendora_cost_snapshot<\/code>, <code>_vaendora_cost_missing<\/code>) were visible to customers on the order details and thank-you pages; they are now correctly hidden via <code>woocommerce_hidden_order_itemmeta<\/code>.<\/li>\n<li>Fixed: Profit Status showed \"Partial\" even when every item in the order had a cost snapshot, caused by a strict PHP type comparison (<code>0.0 === 0<\/code> is false); changed to loose comparison.<\/li>\n<li>Fixed: Native Analytics profit columns (Products, Orders, Revenue table) were permanently stuck on <code>\u2026<\/code> \u2014 the Revenue table had a scoping bug that silently swallowed the REST response and never triggered a re-render; Products\/Orders now distinguish \"still loading\" (<code>\u2026<\/code>) from \"fetch done, no data\" (<code>\u2014<\/code>).<\/li>\n<li>Fixed: Date filter on the Vaendora Profit Analytics page displayed dates in mm\/dd\/yyyy (US) format; now correctly uses dd\/mm\/yyyy via <code>lang=\"en-GB\"<\/code> on the date inputs.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Added: Cost (COGS), Gross Profit, and Margin columns now appear directly inside the native WooCommerce Analytics \u2192 Revenue breakdown table (the date-grouped table), in addition to the existing Vaendora Profit summary panel.<\/li>\n<li>Added: Weekly and monthly Revenue table groupings are supported \u2014 daily profit rows are aggregated across each period window automatically.<\/li>\n<li>Added: <code>revenueTableCache<\/code> module-level cache in the JS extension prevents redundant REST fetches when navigating within the Analytics SPA.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Added: Profit columns (Cost, Gross Profit, Margin, Profit Status) now appear natively inside WooCommerce Analytics \u2192 Orders, showing margin per individual order.<\/li>\n<li>Added: REST API endpoint <code>\/vaendora\/v1\/analytics\/orders<\/code> returning per-order cost, profit, and margin data.<\/li>\n<li>Added: JS bundle updated to register a <code>woocommerce_admin_report_table<\/code> extension for the Orders report.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added: Profit columns (Cost, Profit, Margin) now appear natively inside WooCommerce Analytics \u2192 Products and Analytics \u2192 Revenue pages, powered by a compiled JS extension.<\/li>\n<li>Added: REST API endpoints <code>\/vaendora\/v1\/analytics\/products<\/code> and <code>\/vaendora\/v1\/analytics\/revenue<\/code> to serve profit data to the WooCommerce Admin JS app.<\/li>\n<li>Added: JS bundle (<code>assets\/js\/vaendora-analytics.js<\/code>) built with <code>@wordpress\/scripts<\/code> and enqueued on all wc-admin pages.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added: Vaendora Profit Analytics \u2014 dedicated analytics page under WooCommerce \u2192 Vaendora Profit.<\/li>\n<li>Added: Track per-product cost prices and compute gross profit\/margin on orders.<\/li>\n<li>Added: Revenue summary tab with Vaendora gateway coverage and cost-price coverage stats.<\/li>\n<li>Added: CSV export for both Products and Revenue analytics views.<\/li>\n<li>Added: Bulk cost-price CSV import\/export (Import\/Export tab).<\/li>\n<li>Added: Cost snapshots \u2014 historical record of cost prices at time of order.<\/li>\n<li>Added: Partial refund handling that adjusts profit figures proportionally.<\/li>\n<\/ul>\n\n<h4>1.2.8<\/h4>\n\n<ul>\n<li>Fixed: Corrected the External Services disclosure in readme.txt - removed \"currency\" and \"customer phone\" which were never sent to api.vaendora.com, and added \"return_url\" which has always been included in the checkout payload<\/li>\n<\/ul>\n\n<h4>1.2.7<\/h4>\n\n<ul>\n<li>Fixed: Moved inline <code>&lt;style&gt;<\/code> block from payment-instructions template to enqueued stylesheet (vaendora-frontend.css) per WordPress.org guidelines<\/li>\n<\/ul>\n\n<h4>1.2.6<\/h4>\n\n<ul>\n<li>Fixed: Added <code>== External Services ==<\/code> section to readme.txt documenting the Vaendora API, data sent, and links to Terms of Service and Privacy Policy<\/li>\n<\/ul>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Fixed: Webhook callback token check is now unconditional - every incoming request must supply the token issued at payment initialisation; requests with a missing or mismatched token are rejected with HTTP 403<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Updated checkout description and \"how it works\" copy to bank-transfer-only \u2014 card payment references removed from the default gateway description<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Fixed: Added nonce verification to the order status AJAX endpoint (<code>vaendora_check_order_status<\/code>) to address WordPress.Security.NonceVerification warning<\/li>\n<li>Fixed: Added <code>languages\/vaendora-payment-gateway.pot<\/code> so the <code>Domain Path: \/languages<\/code> plugin header resolves correctly<\/li>\n<li>Fixed: Trimmed short description to comply with the 150-character readme limit<\/li>\n<li>Fixed: Added phpcs:ignore for SlowDBQuery warnings on <code>wc_get_orders()<\/code> meta lookup \u2014 WC's order meta table is indexed; not a raw $wpdb query<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Renamed plugin to \"Vaendora Payment Gateway for Nigeria\" to comply with WordPress.org trademark guidelines (removed \"WooCommerce\" from the plugin display name and slug)<\/li>\n<li>Updated Text Domain to vaendora-payment-gateway<\/li>\n<li>Bumped version to 1.2.2<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Updated transaction fee description: 1.5% (+VAT), capped at \u20a61,500<\/li>\n<li>Fixed \"Create Account\" button URL \u2014 now correctly links to the onboarding page<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Renamed plugin to \"Vaendora Payments for WooCommerce (Nigeria)\" to comply with WordPress.org trademark guidelines (moved \"WooCommerce\" to the end with \"for\" structure)<\/li>\n<li>New slug: vaendora-payments-for-woocommerce-nigeria \u2014 text domain updated throughout all plugin files<\/li>\n<li>Renamed gateway class from WC_Vaendora_Gateway to Vaendora_Payment_Gateway to use a unique prefix (WC is a reserved\/common prefix)<\/li>\n<li>Added \"Requires Plugins: woocommerce\" header so WordPress enforces WooCommerce is installed before activation<\/li>\n<li>Updated Monnify payment integration: Monnify now handles payment processing; added bank transfer + card payment flows with 30-minute countdown<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Switched payment backend to Monnify for verified bank transfer processing<\/li>\n<li>Added card payment option via Monnify checkout embedded URL<\/li>\n<li>Added 30-minute virtual account countdown with real-time polling<\/li>\n<\/ul>\n\n<h4>1.0.17<\/h4>\n\n<ul>\n<li>Fixed text domain to match plugin slug for WordPress.org compliance<\/li>\n<li>Removed deprecated load_plugin_textdomain() call (auto-loaded since WordPress 4.6)<\/li>\n<li>Wrapped all gateway output through proper escaping functions (wp_kses_post, esc_html, esc_url)<\/li>\n<li>Replaced debug print_r() calls with wp_json_encode() in logger functions<\/li>\n<li>Excluded hidden .gitkeep file from distributable zip<\/li>\n<li>Added inline style fallback on checkout logo to ensure correct size in all themes<\/li>\n<li>Updated \"Tested up to\" to WordPress 6.9<\/li>\n<li>Bumped version to 1.0.17<\/li>\n<\/ul>\n\n<h4>1.0.16<\/h4>\n\n<ul>\n<li>Added \"Settings\" link to the plugin row on the WordPress Plugins page, linking directly to the Vaendora gateway settings in WooCommerce<\/li>\n<\/ul>\n\n<h4>1.0.15<\/h4>\n\n<ul>\n<li>Renamed plugin to \"Vaendora Woo Payments for Nigeria\" for a shorter, clearer identity<\/li>\n<li>Updated How It Works description to match the default checkout title \"Bank Transfer (Instant Verification)\"<\/li>\n<li>Updated method title shown in WooCommerce payment settings to match plugin name<\/li>\n<\/ul>\n\n<h4>1.0.14<\/h4>\n\n<ul>\n<li>Replaced placeholder plugin screenshots with real branded artwork for WordPress.org listing<\/li>\n<li>Added branded banner images (772x250 and 1544x500) for the WordPress.org plugin directory<\/li>\n<\/ul>\n\n<h4>1.0.13<\/h4>\n\n<ul>\n<li>Added Vaendora V-mark icon displayed next to the payment method at WooCommerce checkout<\/li>\n<li>Added \"Secured by Vaendora\" badge with dark-text logo inside the payment description box<\/li>\n<li>Fixed bullet point alignment in the \"How it works\" list (bullets and text now render on the same line across all WooCommerce themes)<\/li>\n<li>Bundled gateway icon and logo images inside plugin assets (no external URL dependency)<\/li>\n<li>Defined VAENDORA_PLUGIN_URL and VAENDORA_PLUGIN_VERSION constants for cleaner asset enqueuing<\/li>\n<\/ul>\n\n<h4>1.0.12<\/h4>\n\n<ul>\n<li>Enqueued JavaScript (thank-you page polling, admin password toggle) via wp_enqueue_script instead of inline output<\/li>\n<li>Moved all inline CSS to enqueued stylesheets (vaendora-frontend.css, vaendora-admin.css)<\/li>\n<li>Replaced error_log() with WC_Logger for proper WordPress debug logging<\/li>\n<li>Replaced date() with gmdate() in webhook handler for timezone correctness<\/li>\n<li>Updated Contributors field to correct WordPress.org username<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Updated plugin author to Junn Digital with link to junndigital.com<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Added live order status polling on the WooCommerce thank-you page so orders update to Processing without requiring a page refresh<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Removed \"Advanced Settings\" section and configurable API URL field from plugin settings (was developer-only, not intended for merchants)<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Fixed: Orders no longer remain stuck in \"Pending payment\" or get auto-cancelled after a verified payment<\/li>\n<li>Fixed: Replaced broken HMAC signature verification with a secure per-payment callback token system<\/li>\n<li>Callback token issued by Vaendora at checkout is now stored in order meta and verified when the payment success callback arrives<\/li>\n<li>Merchants no longer need to configure a webhook secret in plugin settings<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Order status now set to \"on-hold\" (instead of \"pending\") at checkout, triggering WooCommerce's \"Customer On-Hold Order\" email<\/li>\n<li>Bank transfer details (bank name, account number, account name, amount) are now included in the \"Customer On-Hold Order\" email<\/li>\n<li>Thank-you page now displays bank transfer details for unpaid orders<\/li>\n<li>Payment page URL stored in order meta for easy access<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Rebranded plugin to Vaendora WooCommerce Payment Gateway for Nigeria<\/li>\n<li>Declared HPOS (High-Performance Order Storage) compatibility for WooCommerce 8+<\/li>\n<li>Added uninstall cleanup hook to remove plugin options on deletion<\/li>\n<li>Added translation support via load_plugin_textdomain<\/li>\n<li>Updated tested-up-to versions for WordPress 6.7 and WooCommerce 9.4<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Improved webhook signature verification to handle both header and body signatures<\/li>\n<li>Added test mode \/ live mode mismatch detection on webhook callbacks<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added password field Show\/Hide toggle on the settings page for easier API key entry<\/li>\n<li>Improved admin order meta display with verification method and amount<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added advanced settings section with configurable API URL for testing environments<\/li>\n<li>Improved error handling and logging throughout gateway and API client<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Added payment reference and verification details to the thank-you page<\/li>\n<li>Added WooCommerce order notes on successful payment verification<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed order status update flow for expired and failed payment callbacks<\/li>\n<li>Minor improvements to checkout payment fields display<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>WooCommerce payment gateway integration<\/li>\n<li>Live and Test mode support<\/li>\n<li>Webhook handling for automatic order updates<\/li>\n<li>Payment reference tracking<\/li>\n<\/ul>","raw_excerpt":"Accept verified bank transfers in Nigeria and track product costs, Gross Profit, and margins inside WooCommerce Analytics.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=296761"}],"author":[{"embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jennee"}],"wp:attachment":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296761"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296761"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296761"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296761"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296761"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}