{"id":327116,"date":"2026-06-17T06:16:47","date_gmt":"2026-06-17T06:16:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/6rsh-messaging-notifications\/"},"modified":"2026-06-17T06:16:12","modified_gmt":"2026-06-17T06:16:12","slug":"6rsh-messaging-notifications","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/6rsh-messaging-notifications\/","author":23516082,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.1","stable_tag":"1.5.1","tested":"7.0","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"6rsh Messaging & Notifications","header_author":"TRSH","header_description":"Send order notifications, abandoned-cart reminders, and a floating chat widget from your WooCommerce store via the WhatsApp Business Platform. Requires a free 6rsh.com account and API key.","assets_banners_color":"48b88a","last_updated":"2026-06-17 06:16:12","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.6rsh.com\/help","header_author_uri":"https:\/\/6rsh.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":23,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5.1":{"tag":"1.5.1","author":"6rsh","date":"2026-06-17 06:16:12"}},"upgrade_notice":{"1.5.1":"<p>Faster, more reliable order sync for the 6rsh AI assistant, plus refreshed branding and listing. Recommended for all users.<\/p>","1.0.3":"<p>Improves error messages for sites with Wordfence, Cloudflare WAF, or other security plugins.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3575295,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3575295,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3575295,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3575295,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3575295,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Setup wizard \u2014 paste your 6rsh API key and auto-match templates to order events.","2":"Notifications settings \u2014 map WhatsApp templates to WooCommerce order statuses.","3":"Abandoned cart settings \u2014 checkout opt-in and recovery timing.","4":"Floating WhatsApp chat widget on the storefront.","5":"Activity log with delivery status and CSV export."}},"plugin_section":[],"plugin_tags":[15962,14160,4906,7709,286],"plugin_category":[45],"plugin_contributors":[267452],"plugin_business_model":[],"class_list":["post-327116","plugin","type-plugin","status-publish","hentry","plugin_tags-abandoned-cart","plugin_tags-chat-widget","plugin_tags-notifications","plugin_tags-order-notification","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-6rsh","plugin_committers-6rsh"],"banners":{"banner":"https:\/\/ps.w.org\/6rsh-messaging-notifications\/assets\/banner-772x250.png?rev=3575295","banner_2x":"https:\/\/ps.w.org\/6rsh-messaging-notifications\/assets\/banner-1544x500.png?rev=3575295","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/6rsh-messaging-notifications\/assets\/icon.svg?rev=3575295","icon":"https:\/\/ps.w.org\/6rsh-messaging-notifications\/assets\/icon.svg?rev=3575295","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Turn every WooCommerce order into a WhatsApp message your customers actually read.<\/strong> 6rsh Messaging &amp; Notifications connects your store to the WhatsApp Business Platform through the 6rsh platform, so order updates, cart reminders, and customer chat all happen where your buyers already are.<\/p>\n\n<p>Open rates on WhatsApp are far higher than email. With this plugin you can confirm orders, recover abandoned carts, and answer \"where is my order?\" automatically \u2014 no developer required. A guided setup wizard maps your approved WhatsApp templates to WooCommerce order events in minutes.<\/p>\n\n<h4>What you get<\/h4>\n\n<ul>\n<li><strong>Order Notifications<\/strong> \u2014 Automatically send a WhatsApp message when an order is placed, processing, on-hold, completed, cancelled, refunded, or failed. Map a template to each status.<\/li>\n<li><strong>Abandoned Cart Recovery<\/strong> \u2014 Capture the shopper's phone at checkout (guests included, with an opt-in checkbox) and send a recovery reminder with a one-click link that restores their cart. Recovery is cancelled automatically once the order is completed.<\/li>\n<li><strong>Floating WhatsApp Chat Widget<\/strong> \u2014 Add a storefront chat button with a greeting tooltip so customers can reach you in one tap. Configurable position; right-to-left (RTL) ready.<\/li>\n<li><strong>Marketing Follow-ups<\/strong> \u2014 Schedule up to two post-order follow-ups (e.g. a review request a week after delivery) using your approved Marketing templates. Cancelled automatically if the order is refunded or cancelled.<\/li>\n<li><strong>Per-order Template Variables<\/strong> \u2014 Order number, status, total, currency, and customer name are substituted into your template parameters for every message.<\/li>\n<li><strong>Smart Phone Normalization<\/strong> \u2014 Numbers are validated and normalized to E.164 (supports Gulf, UK, US, EU and North African formats) so messages don't bounce.<\/li>\n<li><strong>Activity Log + CSV Export<\/strong> \u2014 Every send is logged with delivery status; export the full log to CSV.<\/li>\n<li><strong>Translation-ready<\/strong> \u2014 Ships a .pot file and full RTL styling for localized storefronts.<\/li>\n<\/ul>\n\n<h4>Built for compliance<\/h4>\n\n<ul>\n<li>Talks to your site over the <strong>WordPress REST API<\/strong> (<code>\/wp-json\/6rsh\/v1\/<\/code>) \u2014 never <code>admin-ajax.php<\/code> \u2014 so it plays nicely with WAFs and security plugins.<\/li>\n<li>Phone numbers are only used to deliver the messages you configure, and abandoned-cart capture is gated behind an opt-in you control.<\/li>\n<\/ul>\n\n<p>You need a free <a href=\"https:\/\/6rsh.com\">6rsh.com<\/a> account and an API key. This plugin is not affiliated with, endorsed by, or an official product of WhatsApp or Meta.<\/p>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Sign up at <a href=\"https:\/\/6rsh.com\">6rsh.com<\/a> and create your WhatsApp message templates.<\/li>\n<li>Install this plugin and paste your API key.<\/li>\n<li>The setup wizard auto-matches your templates to WooCommerce events.<\/li>\n<li>Done \u2014 notifications fire automatically on every order.<\/li>\n<\/ol>\n\n<h3>External Service<\/h3>\n\n<p>This plugin connects your WooCommerce store to <strong>6rsh.com<\/strong>, a third-party SaaS operated by <strong>TRSH FZC<\/strong>, to deliver messages over the WhatsApp Business Platform. The plugin will not function without a free 6rsh.com account and an API key. It is not affiliated with, endorsed by, or an official product of WhatsApp or Meta.<\/p>\n\n<p>What the plugin sends to 6rsh.com, and when:<\/p>\n\n<ul>\n<li><strong>On connect:<\/strong> the API key you enter and your site URL are sent to 6rsh.com to validate the key and link your account.<\/li>\n<li><strong>On a WooCommerce order status change<\/strong> (placed, processing, completed, etc.): the order data needed to build the message \u2014 order number, status, total, currency, and the customer's name and phone number \u2014 is sent to 6rsh.com so it can deliver the corresponding WhatsApp message.<\/li>\n<li><strong>At checkout, if Abandoned Cart Recovery is enabled and the shopper opts in:<\/strong> the cart contents, cart total, and the customer's phone number (and optionally email) are sent to 6rsh.com so a recovery reminder can be sent later.<\/li>\n<li><strong>Periodically:<\/strong> order snapshots (including any courier\/tracking details) may be sent so the 6rsh assistant can answer customer order-status questions.<\/li>\n<\/ul>\n\n<p>No message is sent without your configuration, and a customer's phone number is used only to deliver the messages you set up. The floating chat widget loads locally and only opens a WhatsApp link when a visitor clicks it.<\/p>\n\n<p>Your use of the 6rsh.com service is governed by:<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/www.6rsh.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/www.6rsh.com\/privacy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/6rsh-messaging-notifications\/<\/code>, or install it from the WordPress Plugins screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>You will be redirected to the setup wizard automatically.<\/li>\n<li>Paste your 6rsh API key and follow the steps to map templates to order events.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%206rsh%20account%3F\"><h3>Do I need a 6rsh account?<\/h3><\/dt>\n<dd><p>Yes. Create a free account at <a href=\"https:\/\/6rsh.com\">6rsh.com<\/a> to get your API key and manage your WhatsApp message templates.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20guest%20checkout%3F\"><h3>Does it work with guest checkout?<\/h3><\/dt>\n<dd><p>Yes. Abandoned Cart Recovery captures the phone number (with the shopper's opt-in) for both guests and logged-in customers, and the recovery link restores their cart.<\/p><\/dd>\n<dt id=\"which%20countries%20are%20supported%3F\"><h3>Which countries are supported?<\/h3><\/dt>\n<dd><p>Any country where the WhatsApp Business Platform is available. The plugin normalizes phone numbers for AE, SA, EG, KW, QA, BH, OM, JO, GB, US, DE, FR, MA, DZ, TN and more.<\/p><\/dd>\n<dt id=\"will%20it%20work%20without%20woocommerce%3F\"><h3>Will it work without WooCommerce?<\/h3><\/dt>\n<dd><p>The chat widget will still load, but order notifications and abandoned cart features require WooCommerce 7.0 or later.<\/p><\/dd>\n<dt id=\"i%20see%20%22403%20forbidden%22%20or%20%22wordpress%20security%20is%20blocking%20the%20connection%22%20during%20setup.\"><h3>I see \"403 Forbidden\" or \"WordPress security is blocking the connection\" during setup.<\/h3><\/dt>\n<dd><p>The plugin talks to 6rsh.com through the WordPress REST API (routes under <code>\/wp-json\/6rsh\/v1\/<\/code>, authenticated with a WordPress nonce) \u2014 it does not use <code>admin-ajax.php<\/code>. If you see a 403 during setup, a security plugin or server WAF is blocking REST API requests. Fix it by allowing the REST route:<\/p>\n\n<p><strong>Wordfence<\/strong>\nTools \u2192 Firewall \u2192 allow requests to <code>\/wp-json\/6rsh\/v1\/<\/code>.<\/p>\n\n<p><strong>Cloudflare WAF<\/strong>\nSecurity \u2192 WAF \u2192 create an Allow rule for the path <code>\/wp-json\/6rsh\/v1\/<\/code>.<\/p>\n\n<p><strong>SiteGround \/ other managed hosts<\/strong>\nAsk support to allow authenticated POST requests to <code>\/wp-json\/<\/code> (the WordPress REST API) for your own domain.<\/p>\n\n<p>To verify your API key works independently of WordPress, visit <a href=\"https:\/\/www.6rsh.com\">https:\/\/www.6rsh.com<\/a> and use the API Docs tab to test your key directly.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Updated plugin branding: new icon and banner assets for the WordPress.org listing.<\/li>\n<li>Refreshed the readme\/listing with an SEO-friendly description, a clearer benefit-led feature list, and updated metadata and tags.<\/li>\n<li>AI order lookup now learns about NEW orders within seconds. Order sync to 6rsh uses the same robust hook set as order notifications (order created, every status transition, and each per-status entry) and is delivered on shutdown after the response is returned \u2014 no WP-Cron dependency on the live path. Previously a new order placed directly into a status (POS \/ async gateway) could be missed.<\/li>\n<li>Late tracking is captured: when a courier\/tracking number is added or edited a day or more after the order (WooCommerce Shipment Tracking \/ AST, AfterShip, or legacy tracking meta), the order is re-synced immediately so the AI can answer \"where is my order?\" with the carrier, tracking number, link and ship date.<\/li>\n<li>Added an hourly reconciliation sweep (safety net) that re-syncs orders modified in the last 7 days, catching anything a missed push or a later tracking edit left behind. Idempotent \u2014 never duplicates an order.<\/li>\n<li>A delayed WP-Cron push is kept only as a fallback for the rare case the shutdown push cannot run.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>WordPress.org compliance fixes: uninstall.php now resolves the plugin directory dynamically with plugin_dir_path( <strong>FILE<\/strong> ) instead of a hardcoded path under WP_PLUGIN_DIR, so uninstall still works if the plugin folder is renamed.<\/li>\n<li>Tightened the \/save-followups REST permission_callback from manage_woocommerce to manage_options, matching the manage_options capability required by the settings page.<\/li>\n<li>Removed the redundant load_plugin_textdomain() call; WordPress.org auto-loads translations for hosted plugins (Requires at least: 6.0).<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Added the GPL License headers (License and License URI) to the main plugin file to match the readme.<\/li>\n<li>Security hardening: database queries in the cart tracker, logger, and admin now reference table names as fixed literals rather than via an interpolated variable, resolving the unescaped-table-parameter warning. Query values were already bound with prepared statements; no data was ever interpolated unescaped.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Renamed the plugin slug, folder, main file and text domain from <code>6rsh-whatsapp<\/code> to <code>6rsh-messaging-notifications<\/code> (no trademarked term in the slug). Display name is unchanged: \"6rsh Messaging &amp; Notifications\".<\/li>\n<li>Added automatic, idempotent settings migration: an install switching from the legacy <code>6rsh-whatsapp<\/code> plugin keeps its API key and configuration (the <code>sixrsh_*<\/code> option namespace is preserved). Safe order: deactivate the old plugin, install and activate this one, verify, then delete the old plugin.<\/li>\n<li>WordPress.org compliance: rewritten readme with an External Service disclosure, distinct Plugin URI and Author URI, descriptive (non-trademark) tags, and current \"Tested up to\" version.<\/li>\n<li>Updated setup troubleshooting to reflect the REST API connection approach (no admin-ajax.php).<\/li>\n<\/ul>\n\n<h4>1.3.15<\/h4>\n\n<ul>\n<li>Abandoned cart capture now hydrates the WooCommerce cart\/session inside the REST capture request, so live carts are reliably tracked for guests and logged-in customers.<\/li>\n<li>Recovery template send is spec-driven from the approved template (correct header\/body\/URL-button parameters), and the recovery link reliably restores the cart.<\/li>\n<\/ul>\n\n<h4>1.3.13<\/h4>\n\n<ul>\n<li>Abandoned Cart Recovery now works for ANY customer \u2014 guests and logged-in alike \u2014 not just logged-in users with a saved mobile.<\/li>\n<li>Live phone capture: billing_phone (and billing_email) are captured on the checkout page as the customer types (on blur\/change), before the order is placed, via a WordPress REST endpoint (6rsh\/v1\/capture-cart) \u2014 not admin-ajax.php (WAF-safe).<\/li>\n<li>New checkout opt-in checkbox: \"Send me order updates and offers on WhatsApp\" (label + default-checked configurable). Opt-in can be required before any phone is stored for recovery (on by default) to protect WhatsApp quality and Meta compliance.<\/li>\n<li>Phone is validated and normalized to E.164 before storing; invalid numbers are discarded. Email is stored for context only \u2014 WhatsApp recovery always targets the phone.<\/li>\n<li>Recovery sends now go through 6rsh's queued send path (never inline), with dedupe (one recovery per cart) and STOP\/opt-out respected. Completing the order cancels the pending recovery.<\/li>\n<li>Free on all plans.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Fixed critical settings page bug: tabs now use WordPress native nav-tab-wrapper with URL-based (?tab=) switching instead of broken JS class selectors.<\/li>\n<li>Fixed selector mismatch: JS now targets correct IDs matching the HTML (e.g. #sixrsh-test-connection-btn).<\/li>\n<li>Registered missing AJAX action sixrsh_save_setting so auto-save on the settings page now works.<\/li>\n<li>Added new AJAX handlers: sixrsh_dismiss_banner, sixrsh_dismiss_checklist.<\/li>\n<li>Added onboarding checklist on Connection tab (dismissible).<\/li>\n<li>Added persistent status bar showing connected account name, phone, and plan.<\/li>\n<li>Added connection error notice when 6rsh.com is unreachable.<\/li>\n<li>Added setup banner shown after wizard completes, linking to Notifications tab.<\/li>\n<li>Added failed-log badge in admin menu (cached 5 min).<\/li>\n<li>Template transient caching (1 hour) for faster settings page load.<\/li>\n<li>Added North African phone codes: MA (+212), DZ (+213), TN (+216).<\/li>\n<li>After wizard completes, redirects to Notifications tab instead of Connection tab.<\/li>\n<li>Bumped version to 1.1.0.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Switched wizard connect and setup to WordPress REST API (\/wp-json\/6rsh\/v1) \u2014 bypasses WAF rules targeting admin-ajax.php.<\/li>\n<li>Fixed critical bug: JS was reading window.sixrshAdmin but PHP was creating window.SixRshAdmin \u2014 nonce was always empty, causing all AJAX to 403.<\/li>\n<li>Added version footer to wizard so installed version is always visible.<\/li>\n<li>Version text on Integrations page download button now kept in sync.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Improved error messages: 403\/WAF blocks now show actionable fix instructions instead of a generic error.<\/li>\n<li>Added \"Test API key directly\" fallback button when WordPress AJAX is blocked.<\/li>\n<li>Fixed wizard success message showing \"Your account\" instead of the connected account name.<\/li>\n<li>Debug: all AJAX responses are logged to browser console for easier diagnosis.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Send WooCommerce order notifications and abandoned-cart reminders over WhatsApp, plus a floating chat widget. Powered by the 6rsh platform.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/327116","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=327116"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/6rsh"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=327116"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=327116"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=327116"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=327116"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=327116"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=327116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}