{"id":360295,"date":"2026-08-29T09:14:18","date_gmt":"2026-08-29T09:14:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/checkout-guard-for-woocommerce\/"},"modified":"2026-08-29T16:12:11","modified_gmt":"2026-08-29T16:12:11","slug":"cobalt-checkout-diagnostics","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/cobalt-checkout-diagnostics\/","author":23549143,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.1","stable_tag":"0.1.1","tested":"7.1","requires":"6.9","requires_php":"8.2","requires_plugins":null,"header_name":"Cobalt Checkout Diagnostics for WooCommerce","header_author":"Cobalt Branch Labs","header_description":"Local, read-only cart and checkout diagnostics. Does not prove that a customer can complete payment.","assets_banners_color":"34637c","last_updated":"2026-08-29 16:12:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/cobalt-checkout-diagnostics\/","header_author_uri":"https:\/\/cobaltbranchlabs.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":54,"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":"bananasaging","date":"2026-08-29 09:13:47","revision":3671286},"0.1.1":{"tag":"0.1.1","author":"bananasaging","date":"2026-08-29 16:12:11","revision":3671700}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3671286,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3671286,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3671286,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3671286,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0","0.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3671286,"resolution":"1","location":"assets","locale":"","width":1100,"height":383},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3671286,"resolution":"2","location":"assets","locale":"","width":1100,"height":1167},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3671286,"resolution":"3","location":"assets","locale":"","width":1100,"height":287},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3671286,"resolution":"4","location":"assets","locale":"","width":1100,"height":898},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3671286,"resolution":"5","location":"assets","locale":"","width":1100,"height":1326}},"screenshots":{"1":"Dashboard summary after a diagnostic run, including the product-truth disclaimer.","2":"Grouped check results with status, explanation, and allowlisted remediation links.","3":"Evidence details for an individual check.","4":"Run history with a previous-run view.","5":"Settings for retention, thresholds, optional schedule, and optional operator email."}},"plugin_section":[],"plugin_tags":[3047,3148,23519,251374,286],"plugin_category":[45],"plugin_contributors":[276392],"plugin_business_model":[],"class_list":["post-360295","plugin","type-plugin","status-publish","hentry","plugin_tags-cart","plugin_tags-checkout","plugin_tags-diagnostics","plugin_tags-hpos","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-bananasaging","plugin_committers-bananasaging"],"banners":{"banner":"https:\/\/ps.w.org\/cobalt-checkout-diagnostics\/assets\/banner-772x250.png?rev=3671286","banner_2x":"https:\/\/ps.w.org\/cobalt-checkout-diagnostics\/assets\/banner-1544x500.png?rev=3671286","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cobalt-checkout-diagnostics\/assets\/icon-128x128.png?rev=3671286","icon_2x":"https:\/\/ps.w.org\/cobalt-checkout-diagnostics\/assets\/icon-256x256.png?rev=3671286","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cobalt-checkout-diagnostics\/assets\/screenshot-1.png?rev=3671286","caption":"Dashboard summary after a diagnostic run, including the product-truth disclaimer."},{"src":"https:\/\/ps.w.org\/cobalt-checkout-diagnostics\/assets\/screenshot-2.png?rev=3671286","caption":"Grouped check results with status, explanation, and allowlisted remediation links."},{"src":"https:\/\/ps.w.org\/cobalt-checkout-diagnostics\/assets\/screenshot-3.png?rev=3671286","caption":"Evidence details for an individual check."},{"src":"https:\/\/ps.w.org\/cobalt-checkout-diagnostics\/assets\/screenshot-4.png?rev=3671286","caption":"Run history with a previous-run view."},{"src":"https:\/\/ps.w.org\/cobalt-checkout-diagnostics\/assets\/screenshot-5.png?rev=3671286","caption":"Settings for retention, thresholds, optional schedule, and optional operator email."}],"raw_content":"<!--section=description-->\n<p>Cobalt Checkout Diagnostics for WooCommerce is an admin diagnostic plugin. A shop manager with <code>manage_woocommerce<\/code> can run <strong>local, read-only<\/strong> checks to see whether cart and checkout look configured and renderable on this site.<\/p>\n\n<p>It does <strong>not<\/strong> process payments, place orders, or watch the store from the public internet.<\/p>\n\n<h4>Video overview<\/h4>\n\n<p>https:\/\/www.youtube.com\/watch?v=-hCtNeDn4YI<\/p>\n\n<h4>Product truth<\/h4>\n\n<p>Local checks do not prove that a real external customer can complete payment. This plugin must never be described as a live checkout or payment monitor.<\/p>\n\n<h4>What this version does<\/h4>\n\n<ul>\n<li>Support-matrix guard for PHP 8.2+, WordPress 6.9+, and WooCommerce 10.8+<\/li>\n<li>Manual diagnostic run from <strong>WooCommerce \u2192 Checkout Diagnostics<\/strong><\/li>\n<li>Read-only checks for versions, HTTPS, permalinks, cart\/checkout pages, block vs classic type, catalog, enabled payment gateway ids, shipping, HPOS vs posts storage, WP-Cron, and Action Scheduler<\/li>\n<li>Safe loopback cart probe and checkout-render probe (GET to this site\u2019s assigned URLs only)<\/li>\n<li>Configuration snapshots and a changes check against the previous run<\/li>\n<li>Run history on this site, grouped results, evidence, and allowlisted remediation links<\/li>\n<li>Optional scheduled runs (Action Scheduler when ready, otherwise WP-Cron)<\/li>\n<li>Optional operator incident email to the site admin address (off by default)<\/li>\n<\/ul>\n\n<h4>What this version does not do<\/h4>\n\n<ul>\n<li>Charge a gateway, create orders, change stock, send customer mail, or trigger fulfilment<\/li>\n<li>Expose a public REST API<\/li>\n<li>Accept arbitrary probe URLs<\/li>\n<li>Claim that a real customer can complete payment<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>PHP 8.2+ (8.3 or 8.4 recommended)<\/li>\n<li>WordPress 6.9+ (tested up to 7.1)<\/li>\n<li>WooCommerce 10.8+ (tested up to 11.0)<\/li>\n<li>Block Cart\/Checkout, classic shortcodes, mixed setups, and HPOS or posts storage are all in scope<\/li>\n<\/ul>\n\n<h3>Limitations<\/h3>\n\n<ul>\n<li>Local checks do not prove that a real external customer can complete payment.<\/li>\n<li>Probes are loopback HTTP GETs to this site\u2019s cart and checkout permalinks. They do not POST checkout, call <code>process_payment<\/code>, or hit Store API write endpoints.<\/li>\n<li>Probe timeouts are capped (default 10 seconds, maximum 15). TLS verification is never disabled.<\/li>\n<li>Scheduled WP-Cron runs are approximate. Action Scheduler jobs are not unscheduled during uninstall if Action Scheduler has not initialized yet; leftover actions then fire a no-op hook.<\/li>\n<li>Incident email is not sent on every run. Fail and warning are both incidents. Recipients cannot be typed in the UI.<\/li>\n<li>This plugin has no REST API.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>cobalt-checkout-diagnostics<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the zip via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate <strong>WooCommerce<\/strong> first, then activate <strong>Cobalt Checkout Diagnostics for WooCommerce<\/strong>.<\/li>\n<li>Open <strong>WooCommerce \u2192 Checkout Diagnostics<\/strong> and run checks.<\/li>\n<li>Optionally enable scheduled runs and operator incident email in the settings on that screen.<\/li>\n<\/ol>\n\n<p>If WooCommerce is missing or too old, the plugin shows an admin error and does not register the diagnostic screen.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20this%20tell%20me%20that%20customers%20can%20pay%3F\"><h3>Can this tell me that customers can pay?<\/h3><\/dt>\n<dd><p>No. Local diagnostics do not prove that a real external customer can complete payment.<\/p><\/dd>\n<dt id=\"does%20a%20run%20create%20a%20test%20order%3F\"><h3>Does a run create a test order?<\/h3><\/dt>\n<dd><p>No. Checks are read-only. They do not create orders, change stock, send customer mail, or charge a gateway.<\/p><\/dd>\n<dt id=\"who%20can%20run%20checks%3F\"><h3>Who can run checks?<\/h3><\/dt>\n<dd><p>Users with the <code>manage_woocommerce<\/code> capability. State-changing forms also require a WordPress nonce.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20off-site%3F\"><h3>Does the plugin send data off-site?<\/h3><\/dt>\n<dd><p>No. History stays in this WordPress database. Optional incident emails use WordPress mail to the site admin address (and any extra addresses a developer adds with a filter). There is no telemetry.<\/p><\/dd>\n<dt id=\"are%20scheduled%20runs%20exact%3F\"><h3>Are scheduled runs exact?<\/h3><\/dt>\n<dd><p>When WooCommerce has initialized Action Scheduler, recurring jobs use that. Otherwise WP-Cron is the fallback. WP-Cron timing is approximate and depends on site traffic.<\/p><\/dd>\n<dt id=\"does%20uninstall%20delete%20my%20diagnostic%20history%3F\"><h3>Does uninstall delete my diagnostic history?<\/h3><\/dt>\n<dd><p>Scheduled jobs are always cleared. Tables and options are deleted only if you enabled <strong>Delete plugin data on uninstall<\/strong> before removing the plugin.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Update Author to Cobalt Branch Labs and Author URI to https:\/\/cobaltbranchlabs.com\/.<\/li>\n<li>Add \"Diagnostics\" shortcut and \"View details\" link on the WordPress Plugins screen.<\/li>\n<li>Add video demonstration walkthrough to readme.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First public-ready package: trademark-safe name\/slug, Author bananaSaging.<\/li>\n<li>Support-matrix bootstrap, 15 read-only checks, safe cart and checkout-render probes, snapshots, history, accessible admin dashboard, optional schedule, and optional operator incident email.<\/li>\n<li>Local checks do not prove that a real external customer can complete payment.<\/li>\n<li>Translations rely on WordPress.org language packs (no load_plugin_textdomain call).<\/li>\n<\/ul>","raw_excerpt":"Local, read-only cart and checkout diagnostics. Does not prove that a real external customer can complete payment.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/360295","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=360295"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bananasaging"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=360295"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=360295"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=360295"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=360295"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=360295"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=360295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}