{"id":314210,"date":"2026-07-14T20:14:46","date_gmt":"2026-07-14T20:14:46","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ship-secure-pro\/"},"modified":"2026-07-14T20:40:02","modified_gmt":"2026-07-14T20:40:02","slug":"covermyorder","status":"publish","type":"plugin","link":"https:\/\/ne.wordpress.org\/plugins\/covermyorder\/","author":21068254,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.8.2","stable_tag":"1.8.2","tested":"7.0.1","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"CoverMyOrder","header_author":"imrouf","header_description":"Customer opt-in shipping protection for WooCommerce. Collect a small protection fee at checkout, run an automated claims pipeline, and resolve via refund or reship \u2014 keep 100% of the premium.","assets_banners_color":"","last_updated":"2026-07-14 20:40:02","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/covermyorder\/","header_author_uri":"https:\/\/profiles.wordpress.org\/imrouf\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":41,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5.3":{"tag":"1.5.3","author":"imrouf","date":"2026-07-14 20:14:20"},"1.8.2":{"tag":"1.8.2","author":"imrouf","date":"2026-07-14 20:40:02"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3607981,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3607981,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":{"covermyorder\/protection-toggle":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"covermyorder\/protection-toggle","title":"Shipping Protection","description":"Lets shoppers add shipping protection to their order at checkout.","category":"woocommerce","keywords":["woocommerce","checkout","shipping","protection","insurance"],"textdomain":"covermyorder","attributes":{"className":{"type":"string"}},"supports":{"html":false,"multiple":false,"reusable":false,"inserter":false},"parent":["woocommerce\/checkout-fields-block","woocommerce\/cart-order-summary-block"],"editorScript":"file:.\/index.js","script":"file:.\/index.js","viewScript":"file:.\/index.js"}},"tagged_versions":["1.5.3","1.8.2"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"<strong>Dashboard<\/strong> \u2014 KPIs (fees collected, active claims, reserve balance, loss ratio), sparkline charts, and traffic-light health indicator.","2":"<strong>Claims queue<\/strong> \u2014 status chips, search, overdue badge, and one-click approve &amp; refund.","3":"<strong>Claim detail<\/strong> \u2014 evidence gallery, customer risk profile sidebar, carrier tracking timeline, and resolution panel.","4":"<strong>Checkout widget<\/strong> \u2014 customer opt-in toggle with plan name, fee, and coverage description.","5":"<strong>Setup wizard<\/strong> \u2014 three-step onboarding: plan picker, badge preview, webhook configuration.","6":"<strong>Branding settings<\/strong> \u2014 live badge preview with theme picker and text overrides.","7":"<strong>Reserve ledger<\/strong> \u2014 running balance with collection and payout line items."}},"plugin_section":[262246],"plugin_tags":[156608,248073,3546,211258,286],"plugin_category":[45],"plugin_contributors":[271554],"plugin_business_model":[],"class_list":["post-314210","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-claims","plugin_tags-order-protection","plugin_tags-shipping","plugin_tags-shipping-protection","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-imrouf","plugin_committers-imrouf"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/covermyorder\/assets\/icon-128x128.png?rev=3607981","icon_2x":"https:\/\/ps.w.org\/covermyorder\/assets\/icon-256x256.png?rev=3607981","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>CoverMyOrder<\/strong> is a customer-facing shipping protection platform built directly into WooCommerce. Customers opt in to a small protection fee at checkout \u2014 when a delivery goes wrong (lost, damaged, or stolen) they file a claim through a self-serve portal. Operators review claims, approve or deny, and issue WooCommerce refunds.<\/p>\n\n<p>Unlike SaaS alternatives, you keep the full protection fee in your own account. A built-in reserve ledger tracks every dollar collected and paid out so you always know your loss ratio at a glance.<\/p>\n\n<h4>Free Features<\/h4>\n\n<p><strong>Checkout<\/strong><\/p>\n\n<ul>\n<li>Customer opt-in protection widget \u2014 WooCommerce Cart\/Checkout Block and classic shortcode fallback<\/li>\n<li>Single flat-fee protection plan<\/li>\n<li>Branded opt-in badge with 2 color theme presets<\/li>\n<li>Post-purchase confirmation card and customer order notification email<\/li>\n<\/ul>\n\n<p><strong>Claims Portal<\/strong><\/p>\n\n<ul>\n<li>Self-serve customer claim portal \u2014 WooCommerce My Account integration, Gutenberg block, and shortcode<\/li>\n<li>Evidence upload \u2014 photos, videos, PDFs (up to 10 files at 10 MB each by default; filterable)<\/li>\n<li>Manual carrier tracking entry<\/li>\n<li>AfterShip inbound webhook for automatic tracking event ingestion (AfterShip account required)<\/li>\n<\/ul>\n\n<p><strong>Operator Dashboard<\/strong><\/p>\n\n<ul>\n<li>Dashboard with KPIs: fees collected, active claims, reserve balance, and loss ratio; sparkline charts; traffic-light health indicator<\/li>\n<li>WordPress dashboard widget (\"CoverMyOrder \u2014 At a Glance\") on the wp-admin home page<\/li>\n<li>Claims queue with status chips, search, overdue badge, and one-click approve &amp; issue WooCommerce refund<\/li>\n<li>Customer risk profile sidebar on each claim<\/li>\n<li>Reserve ledger with full running balance<\/li>\n<li>HTML email templates for every claim status: submitted, approved, denied, and resolved<\/li>\n<\/ul>\n\n<p><strong>Branding<\/strong><\/p>\n\n<ul>\n<li>2 colour theme presets<\/li>\n<li>Hardcoded badge title and description (matches plugin name)<\/li>\n<li>Cart badge always enabled<\/li>\n<\/ul>\n\n<p><strong>Setup &amp; Compatibility<\/strong><\/p>\n\n<ul>\n<li>First-run setup wizard \u2014 pick a plan, enable the badge, configure tracking<\/li>\n<li>HPOS (High-Performance Order Storage) compatible<\/li>\n<li>WooCommerce Cart and Checkout Blocks compatible<\/li>\n<li>REST API (read endpoints)<\/li>\n<li>Multilingual ready \u2014 Text Domain: covermyorder<\/li>\n<\/ul>\n\n<p><strong>Why CoverMyOrder?<\/strong><\/p>\n\n<p>*Self-hosted\n*Keep 100% of protection fees\n*WooCommerce native\n*HPOS Ready\n*Blocks compatible\n*No monthly platform fees<\/p>\n\n<h4>Premium Add-On<\/h4>\n\n<p>Optional <a href=\"https:\/\/covermyorder.com\/pricing\">CoverMyOrder Premium<\/a> adds advanced features that are NOT part of the free WordPress.org plugin:<\/p>\n\n<ul>\n<li>Multiple protection plans \u2014 unlimited active tiers (e.g. Basic \/ Standard \/ Premium) instead of the free plugin's single plan<\/li>\n<li>Percentage-of-cart pricing and multiplier\/cart-total coverage caps, in addition to flat fee + fixed cap<\/li>\n<li>Per-category price overrides (e.g. charge more for electronics or fragile items)<\/li>\n<li>Full badge customization \u2014 toggle it off, custom title\/description\/logo, 5 additional color presets plus a custom hex picker, and per-surface placement<\/li>\n<li>Rule-based fraud risk scoring on every claim<\/li>\n<li>Auto-claim from AfterShip carrier webhooks (no operator action needed)<\/li>\n<li>Carrier recovery tracking (auto-opens a FedEx \/ UPS \/ USPS recovery record to file when a claim is approved)<\/li>\n<li>SMS notifications via Twilio<\/li>\n<li>Carrier-level analytics and reporting<\/li>\n<li>White-label for agencies<\/li>\n<li>Multi-store management<\/li>\n<li>Priority email support<\/li>\n<\/ul>\n\n<p>The Premium add-on is a separate plugin distributed through Freemius. It is not included in this free plugin and is not required for the free plugin to work.<\/p>\n\n<h3>Third-Party Services<\/h3>\n\n<p>This plugin connects to the following external services. Please review their policies before using the plugin in a production environment.<\/p>\n\n<h4>AfterShip (optional)<\/h4>\n\n<p>If you enable the AfterShip integration under <strong>CoverMyOrder \u2192 Settings \u2192 Tracking<\/strong>, AfterShip will deliver tracking event payloads to your site via an inbound webhook. Your site acts as a receiver only \u2014 no data is sent <em>from<\/em> your site to AfterShip by this plugin. An AfterShip account and a separately configured webhook are required.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/www.aftership.com\/legal\/privacy\">AfterShip Privacy Policy<\/a> \u00b7 <a href=\"https:\/\/www.aftership.com\/legal\/terms-of-service\">Terms of Service<\/a><\/li>\n<\/ul>\n\n<h4>CoverMyOrder Hub (optional, off by default)<\/h4>\n\n<p>CoverMyOrder can poll <strong>covermyorder.com<\/strong> for important security alerts, end-of-life notices, and product announcements, then surface them as wp-admin notices. This feature is <strong>OFF by default<\/strong> and is only activated when you explicitly tick <strong>Receive important CoverMyOrder updates<\/strong> under <strong>CoverMyOrder \u2192 Settings \u2192 Data &amp; privacy<\/strong>. No outbound network calls happen until you opt in.<\/p>\n\n<p><strong>When a connection is made (only after opt-in):<\/strong><\/p>\n\n<ul>\n<li>Once per day \u2014 your site fetches the latest message list (read-only HTTP GET).<\/li>\n<li>Once per week \u2014 your site sends a small \"heartbeat\" so we know it is still alive.<\/li>\n<li>On notice dismiss \/ CTA click \u2014 your site sends a single non-blocking ping with the message ID.<\/li>\n<\/ul>\n\n<p><strong>Endpoint:<\/strong> <code>https:\/\/covermyorder.com\/wp-json\/sg-hub\/v1\/<\/code><\/p>\n\n<p><strong>What data is sent:<\/strong> plugin version, WordPress version, PHP version, WooCommerce version, locale, best-effort country code, and your site URL. Note that the hub stores a SHA-256 hash of the site URL for analytics in addition to the raw URL for operator-facing diagnostics.<\/p>\n\n<p><strong>What is never sent:<\/strong> customer records, order details, claim data, evidence files, email addresses, IP addresses, or anything related to your store's protected orders.<\/p>\n\n<p><strong>How to revoke consent:<\/strong> untick the same checkbox. The plugin clears its WP-Cron schedule the moment the option is turned off, and the in-admin notices stop appearing on the next page load.<\/p>\n\n<ul>\n<li>CoverMyOrder <a href=\"https:\/\/covermyorder.com\/privacy\">Privacy Policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<p><strong>Via WordPress admin (recommended)<\/strong><\/p>\n\n<ol>\n<li>Go to <strong>Plugins \u2192 Add New<\/strong> and search for \"CoverMyOrder\".<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li>\n<li>The first-run setup wizard opens automatically \u2014 follow the three steps to choose a plan, preview the badge, and configure the tracking webhook secret.<\/li>\n<\/ol>\n\n<p><strong>Manual installation<\/strong><\/p>\n\n<ol>\n<li>Upload the <code>covermyorder<\/code> folder to <code>\/wp-content\/plugins\/covermyorder\/<\/code>.<\/li>\n<li>Activate the plugin from the <strong>Plugins<\/strong> screen.<\/li>\n<li>The setup wizard launches on your first admin page load.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20woocommerce%20required%3F\"><h3>Is WooCommerce required?<\/h3><\/dt>\n<dd><p>Yes. WooCommerce 8.0 or higher must be installed and active. The plugin will display an admin notice and will not load if WooCommerce is absent.<\/p><\/dd>\n<dt id=\"is%20this%20regulated%20insurance%3F\"><h3>Is this regulated insurance?<\/h3><\/dt>\n<dd><p>No. CoverMyOrder is a merchant-funded reserve product \u2014 you collect a small fee from opted-in customers and pay claims out of that reserve. It is not a regulated insurance product. Consult legal counsel if you are unsure about compliance requirements in your jurisdiction.<\/p><\/dd>\n<dt id=\"is%20there%20any%20feature%20in%20the%20code%20that%20does%20not%20work%20for%20free%20users%3F\"><h3>Is there any feature in the code that does not work for free users?<\/h3><\/dt>\n<dd><p>No. Every feature included in the free plugin is fully functional for everyone. The optional Premium add-on is a separate plugin (not included here) that adds completely new features such as fraud risk scoring, SMS notifications, and carrier recovery tracking.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20hpos%3F\"><h3>Is the plugin compatible with HPOS?<\/h3><\/dt>\n<dd><p>Yes. CoverMyOrder declares full HPOS (High-Performance Order Storage) and Cart\/Checkout Block compatibility before WooCommerce initialises.<\/p><\/dd>\n<dt id=\"where%20is%20my%20data%20stored%3F\"><h3>Where is my data stored?<\/h3><\/dt>\n<dd><p>All data \u2014 plans, protections, claims, and reserve ledger entries \u2014 is stored in your own WordPress database. No claim, order, or customer data is ever sent to a third party.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20use%20freemius%3F\"><h3>Does this plugin use Freemius?<\/h3><\/dt>\n<dd><p>No. This free plugin does not bundle Freemius, or any other licensing or analytics SDK, and makes no connection to Freemius at all. The separate Premium add-on (not included in this download, and not distributed through WordPress.org) is sold through Freemius and discloses its own data practices independently.<\/p><\/dd>\n<dt id=\"can%20i%20use%20covermyorder%20on%20a%20wordpress%20multisite%20network%3F\"><h3>Can I use CoverMyOrder on a WordPress Multisite network?<\/h3><\/dt>\n<dd><p>Yes. The plugin has no single-site assumptions and is compatible with multisite. Network-wide activation is supported.<\/p><\/dd>\n<dt id=\"how%20do%20i%20customise%20the%20badge%20appearance%3F\"><h3>How do I customise the badge appearance?<\/h3><\/dt>\n<dd><p>Go to <strong>CoverMyOrder \u2192 Branding<\/strong> to choose between the 2 color theme presets. Badge title and description text are hardcoded in the free plugin. Developers can override any front-end template by copying it to <code>themes\/{your-theme}\/covermyorder\/<\/code> inside your active theme.<\/p><\/dd>\n<dt id=\"do%20customers%20need%20an%20account%20to%20file%20a%20claim%3F\"><h3>Do customers need an account to file a claim?<\/h3><\/dt>\n<dd><p>Yes. The claim portal integrates with WooCommerce My Account. Customers must be logged in to view their protected orders and submit a claim.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20support%3F\"><h3>Where can I get support?<\/h3><\/dt>\n<dd><p>Use the <a href=\"https:\/\/wordpress.org\/support\/plugin\/covermyorder\/\">support forum<\/a> on WordPress.org for community support. Premium licence holders get priority support via <a href=\"https:\/\/covermyorder.com\/support\">covermyorder.com\/support<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.8.2<\/h4>\n\n<ul>\n<li>Added an affiliate-program link to the \"Why upgrade\" screen \u2014 the free plugin never loads Freemius, so this points out to the hosted application on covermyorder.com instead of an in-admin form.<\/li>\n<\/ul>\n\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>Security: portal sign-in (order number + email) now throttles repeated failed attempts per IP \u2014 previously unlimited, making the order-id\/email pair guessable against a known customer.<\/li>\n<li>Security: \"Shipping protection\" in My Account now cross-checks the underlying WooCommerce order's customer id instead of trusting the account's (self-editable, unverified) email alone.<\/li>\n<li>Security: an approved claim can no longer be set above the amount originally requested; a refund can no longer be issued above a claim's approved amount.<\/li>\n<li>Fix: the reserve-ledger debit for a refund now runs before the WooCommerce refund call, not after, so a transient failure rolls back cleanly instead of risking a duplicate refund on retry.<\/li>\n<li>Fix: approve\/deny\/close decisions on a claim are now applied against a freshly locked read, closing a race where two concurrent decisions (e.g. a double-clicked Approve button) could both apply and fire conflicting notifications.<\/li>\n<li>Fix: per-category pricing discount rules (percentage or flat) can now actually apply \u2014 a comparison bug meant only surcharges ever took effect.<\/li>\n<li>Security: REST API idempotency keys are now scoped per caller, preventing one caller's cached response from ever being replayed to a different caller reusing the same key.<\/li>\n<li>Security: anonymous REST API callers no longer share a single site-wide rate-limit bucket per route \u2014 each client is now limited independently.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Version alignment with the Premium add-on's 1.8.0 release (a redesign of its Plans admin screen \u2014 see the Premium add-on's own changelog for details). No functional changes in the free plugin this release.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>New: protection plans replace the old single opt-in-fee flag internally. Free still ships and enforces exactly one editable plan (name, flat fee, fixed coverage cap) at CoverMyOrder \u2192 Plans \u2014 multiple tiers, percentage pricing, and coverage multipliers require the Premium add-on.<\/li>\n<li>New: CoverMyOrder \u2192 Branding screen \u2014 choose a color preset and edit the cart-toggle title, description, opt-in\/opt-out labels, and thank-you copy. The trust badge itself is unchanged (still mandatory-on with a hardcoded title\/description); full badge customization requires Premium.<\/li>\n<li>New: category price-override pricing engine ships in free\/core, but there is no free admin screen to configure it \u2014 Premium supplies the settings UI that turns it on.<\/li>\n<li>New: <code>GET \/covermyorder\/v1\/plans<\/code> and <code>POST \/covermyorder\/v1\/plans\/quote<\/code> public REST endpoints for headless integrations and the Cart\/Checkout Block.<\/li>\n<li>Changed: checkout now persists a <code>plan_id<\/code> instead of a boolean opt-in flag; existing orders and integrations that read the legacy flag continue to work.<\/li>\n<\/ul>\n\n<h4>1.1.0.2<\/h4>\n\n<p>Major release prepared for WordPress.org Plugin Directory submission. Recommended for all users.<\/p>","raw_excerpt":"Self-hosted shipping protection for WooCommerce. Collect an opt-in fee, let customers file claims, resolve via refund, and keep 100% of premiums.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ne.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/314210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ne.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ne.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ne.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=314210"}],"author":[{"embeddable":true,"href":"https:\/\/ne.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/imrouf"}],"wp:attachment":[{"href":"https:\/\/ne.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=314210"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ne.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=314210"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ne.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=314210"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ne.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=314210"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ne.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=314210"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ne.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=314210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}