{"id":347303,"date":"2026-08-01T09:22:18","date_gmt":"2026-08-01T09:22:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/checkout-pulse\/"},"modified":"2026-08-01T09:21:50","modified_gmt":"2026-08-01T09:21:50","slug":"checkvane","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/checkvane\/","author":23540172,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.0.2","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Checkvane for WooCommerce","header_author":"Ordolyn","header_description":"Detects silent WooCommerce checkout and payment failures \u2014 webhook mismatches, expired gateway keys, broken checkout JS, SSL issues, and stuck orders \u2014 and emails the store owner before they cost sales. Passive monitoring only; never touches live payments or gateway settings.","assets_banners_color":"0e6b58","last_updated":"2026-08-01 09:21:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/ordolyn.com\/checkvane","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":35,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"xkmet","date":"2026-08-01 09:21:50"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3630779,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3630779,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[1110,3148,5603,1887,286],"plugin_category":[45,54],"plugin_contributors":[274128],"plugin_business_model":[],"class_list":["post-347303","plugin","type-plugin","status-publish","hentry","plugin_tags-alerts","plugin_tags-checkout","plugin_tags-monitoring","plugin_tags-payments","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-security-and-spam-protection","plugin_contributors-xkmet","plugin_committers-xkmet"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/checkvane\/assets\/icon-256x256.png?rev=3630779","icon_2x":"https:\/\/ps.w.org\/checkvane\/assets\/icon-256x256.png?rev=3630779","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Payment gateways fail silently more often than store owners realize \u2014 a webhook signing-secret mismatch after a plugin update, an expired API key, a plugin conflict that quietly breaks the \"Place Order\" button. The checkout page looks fine. WooCommerce shows nothing wrong. Customers just leave, and the store owner finds out days later, if at all.<\/p>\n\n<p>Checkvane watches for the real, specific causes of this and emails you when one happens:<\/p>\n\n<ul>\n<li><strong>Webhook signing-secret mismatches<\/strong> \u2014 orders stuck as \"Pending\" while your gateway silently retries and gives up.<\/li>\n<li><strong>Expired or revoked gateway API keys<\/strong> \u2014 generic \"Payment failed\" with no visible cause, only found in WooCommerce's own logs.<\/li>\n<li><strong>Broken checkout JavaScript<\/strong> \u2014 a plugin\/theme update silently breaking the Place Order button, detected from real customer sessions (not simulated).<\/li>\n<li><strong>SSL\/certificate issues<\/strong> \u2014 an expiring certificate, or checkout accidentally served without HTTPS, both of which can hide the card-entry field.<\/li>\n<li><strong>Orders stuck in Pending\/On-hold<\/strong> past a sensible threshold, excluding manual payment methods (bank transfer, cheque, COD) that are expected to sit there.<\/li>\n<li><strong>Unusual drops in completed-order volume<\/strong>, using multi-baseline comparison (same hour last week, four weeks ago, and a rolling average) rather than a single flat threshold \u2014 this only activates after a 3-week learning period so a new store's normal noise doesn't cause false alarms.<\/li>\n<\/ul>\n\n<p><strong>What this plugin deliberately does not do<\/strong>: it never submits test payments through your checkout, never toggles your gateway into test mode, and never modifies orders or payment settings. Everything is passive, in-process monitoring of your store's own order data and logs \u2014 nothing synthetic, nothing that could itself put a live store at risk.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate like any WordPress plugin.<\/li>\n<li>Go to WooCommerce &gt; Checkvane to set an alert email (defaults to your site admin email) and review thresholds.<\/li>\n<li>That's it \u2014 no API keys, no external service to configure.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20slow%20down%20my%20checkout%3F\"><h3>Does this slow down my checkout?<\/h3><\/dt>\n<dd><p>No. All monitoring runs on scheduled background checks (WP-Cron) or passively observes existing WooCommerce hooks\/logs \u2014 nothing runs synchronously in the checkout request path except a small error listener script, which only reports errors and never blocks page load.<\/p><\/dd>\n<dt id=\"will%20this%20ever%20submit%20a%20test%20payment%20or%20change%20my%20gateway%20settings%3F\"><h3>Will this ever submit a test payment or change my gateway settings?<\/h3><\/dt>\n<dd><p>No. This is intentional \u2014 automatically toggling a live store's gateway into test mode is the kind of automated production-config change that can fail open and itself block real customer payments, which is exactly the problem this plugin exists to prevent.<\/p><\/dd>\n<dt id=\"why%20did%20i%20get%20an%20alert%20about%20%22stuck%22%20orders%20when%20i%20use%20bank%20transfer%3F\"><h3>Why did I get an alert about \"stuck\" orders when I use bank transfer?<\/h3><\/dt>\n<dd><p>Bank transfer, cheque, and Cash on Delivery orders are excluded by default since they're expected to sit in Pending\/On-hold until manually confirmed. If you see a false positive for another manual method, it can be excluded via the <code>chkv_manual_payment_methods<\/code> filter.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial scaffold: order-status\/stuck-order monitoring, WC_Logger scanning for webhook\/API-key failures, checkout JS error detection, SSL\/certificate monitoring, baseline-gated volume alerting.<\/li>\n<\/ul>","raw_excerpt":"Detects silent WooCommerce checkout and payment failures and emails you before they cost sales.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/347303","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=347303"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/xkmet"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=347303"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=347303"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=347303"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=347303"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=347303"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=347303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}