{"id":346880,"date":"2026-07-30T17:30:48","date_gmt":"2026-07-30T17:30:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ringlist-for-woocommerce\/"},"modified":"2026-07-30T18:23:59","modified_gmt":"2026-07-30T18:23:59","slug":"ringlist-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/ringlist-for-woocommerce\/","author":8515047,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.1","stable_tag":"1.2.1","tested":"7.0.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"RingList for WooCommerce","header_author":"Milotche Media","header_description":"Sends your WooCommerce customers' phone numbers to your RingList SMS list \u2014 validated, deduplicated, consent-aware.","assets_banners_color":"193345","last_updated":"2026-07-30 18:23:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/ringlist.app","header_author_uri":"https:\/\/milotche.com\/en\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":27,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.1":{"tag":"1.2.1","author":"milotche","date":"2026-07-30 18:23:59"}},"upgrade_notice":{"1.2.0":"<p>Installing from the zip: the plugin folder was renamed, so deactivate the old copy first, then install this one and delete the old. Your settings are kept. Contacts are no longer tagged &quot;woocommerce&quot; automatically \u2014 your store&#039;s default tag (your domain, editable) replaces it. Existing contacts keep the tags they already have.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3628964,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3628964,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3628964,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3628964,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3628964,"resolution":"1","location":"assets","locale":"","width":1568,"height":698},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3628964,"resolution":"2","location":"assets","locale":"","width":307,"height":502},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3628964,"resolution":"3","location":"assets","locale":"","width":1568,"height":698},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3628964,"resolution":"4","location":"assets","locale":"","width":294,"height":425}},"screenshots":{"1":"WooCommerce \u2192 RingList SMS: paste your API key, test the connection, set the tags every customer gets, and choose how consent is collected.","2":"The SMS opt-in checkbox on the checkout, right above the order button. Only customers who tick it are added \u2014 unless you switch to \"all paying customers\".","3":"Per-product RingList tags, in Product data \u2192 General. Left empty, buyers get the store default shown as a hint; type tags here and they replace it for this product.","4":"Every sync is written to the order as a note, with the normalized number RingList accepted \u2014 or the exact reason it was rejected. (Digits masked in this screenshot.)"}},"plugin_section":[],"plugin_tags":[711,214154,768,11999,286],"plugin_category":[41,45,55],"plugin_contributors":[270098],"plugin_business_model":[],"class_list":["post-346880","plugin","type-plugin","status-publish","hentry","plugin_tags-sms","plugin_tags-sms-campaigns","plugin_tags-sms-marketing","plugin_tags-text-message","plugin_tags-woocommerce","plugin_category-communication","plugin_category-ecommerce","plugin_category-seo-and-marketing","plugin_contributors-milotche","plugin_committers-milotche"],"banners":{"banner":"https:\/\/ps.w.org\/ringlist-for-woocommerce\/assets\/banner-772x250.png?rev=3628964","banner_2x":"https:\/\/ps.w.org\/ringlist-for-woocommerce\/assets\/banner-1544x500.png?rev=3628964","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ringlist-for-woocommerce\/assets\/icon-128x128.png?rev=3628964","icon_2x":"https:\/\/ps.w.org\/ringlist-for-woocommerce\/assets\/icon-256x256.png?rev=3628964","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ringlist-for-woocommerce\/assets\/screenshot-1.png?rev=3628964","caption":"WooCommerce \u2192 RingList SMS: paste your API key, test the connection, set the tags every customer gets, and choose how consent is collected."},{"src":"https:\/\/ps.w.org\/ringlist-for-woocommerce\/assets\/screenshot-2.png?rev=3628964","caption":"The SMS opt-in checkbox on the checkout, right above the order button. Only customers who tick it are added \u2014 unless you switch to \"all paying customers\"."},{"src":"https:\/\/ps.w.org\/ringlist-for-woocommerce\/assets\/screenshot-3.png?rev=3628964","caption":"Per-product RingList tags, in Product data \u2192 General. Left empty, buyers get the store default shown as a hint; type tags here and they replace it for this product."},{"src":"https:\/\/ps.w.org\/ringlist-for-woocommerce\/assets\/screenshot-4.png?rev=3628964","caption":"Every sync is written to the order as a note, with the normalized number RingList accepted \u2014 or the exact reason it was rejected. (Digits masked in this screenshot.)"}],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/ringlist.app\">RingList<\/a> is SMS marketing with clean lists and prices shown before you send: this plugin builds your list from your store, and you send SMS campaigns to those customers from RingList \u2014 with the exact cost of every campaign, per country, shown before it goes out. What the plugin does:<\/p>\n\n<ul>\n<li>Every paying customer's phone number is pushed to RingList automatically when their order is paid or completed.<\/li>\n<li>Numbers are validated and normalized by RingList \u2014 garbage never enters your list, and rejections are logged as order notes with the reason.<\/li>\n<li>An SMS opt-in checkbox is added to your checkout (recommended, CASL\/TCPA friendly). You choose: only opted-in customers, or all paying customers.<\/li>\n<li>One-click import of your past customers.<\/li>\n<li>Store-wide default tag \u2014 your domain, out of the box and editable \u2014 so you always know which site a contact came from. Give specific products their own tags and those replace the default for that product. Tags accumulate across purchases, and WooCommerce's own product tags are never touched.<\/li>\n<li>International-ready: billing country is used to send properly prefixed numbers to RingList's per-country validation.<\/li>\n<li>Opt-outs are handled by RingList itself: when a customer replies STOP (or ARR\u00caT), they are unsubscribed permanently.<\/li>\n<\/ul>\n\n<p>Your RingList plan's contact limit applies to contacts added by this plugin.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects your store to RingList (https:\/\/ringlist.app), the SMS service it is built for. A RingList account and an API key are required; nothing is sent until you enter that key.<\/p>\n\n<p>What is sent, and when:<\/p>\n\n<ul>\n<li>When an order reaches \"processing\" or \"completed\" \u2014 and, in checkbox consent mode, only if the customer ticked the SMS opt-in box \u2014 the plugin sends that customer's billing phone number, first name, last name, the tags configured for the store or the purchased products, and the word \"woocommerce\" as the source, to https:\/\/ringlist.app\/api\/v1\/contacts.<\/li>\n<li>The same data is sent for each past order you choose to push with the \"Import past customers\" button.<\/li>\n<li>When you click \"Test connection\", only your API key is sent, to https:\/\/ringlist.app\/api\/v1\/ping, to verify it and read back your account name and plan.<\/li>\n<\/ul>\n\n<p>No data is sent on the front end of your site, and nothing is sent about visitors who do not place an order.<\/p>\n\n<p>RingList is a service by Milotche Media. Its terms of service are available at https:\/\/ringlist.app\/terms and its privacy policy at https:\/\/ringlist.app\/privacy. Because you are sending your customers' personal data to a third party, make sure your own privacy policy says so and that you have the consent required in your jurisdiction (CASL, TCPA, GDPR).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload and activate the plugin.<\/li>\n<li>In RingList \u2192 Settings \u2192 API keys, create a key and copy it.<\/li>\n<li>In WooCommerce \u2192 RingList SMS, paste the key and click \"Test connection\".<\/li>\n<li>Choose your consent mode. Done \u2014 new paid orders sync automatically.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20customer%20data%20leaves%20my%20site%3F\"><h3>What customer data leaves my site?<\/h3><\/dt>\n<dd><p>Phone number, first name and last name of paying customers, plus the tags you configured \u2014 sent to your own RingList account only. See \"External services\" above for the full detail.<\/p><\/dd>\n<dt id=\"does%20the%20checkout%20checkbox%20work%20with%20the%20block-based%20checkout%3F\"><h3>Does the checkout checkbox work with the block-based checkout?<\/h3><\/dt>\n<dd><p>Not yet \u2014 it renders on the classic checkout. On block-based checkouts, use the \"All paying customers\" mode with consent wording in your store terms.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20invalid%20phone%20numbers%3F\"><h3>What happens to invalid phone numbers?<\/h3><\/dt>\n<dd><p>RingList rejects them with a precise reason (recorded as an order note). Your list never collects garbage.<\/p><\/dd>\n<dt id=\"how%20do%20i%20send%20sms%20campaigns%20to%20these%20contacts%3F\"><h3>How do I send SMS campaigns to these contacts?<\/h3><\/dt>\n<dd><p>Log in at <a href=\"https:\/\/ringlist.app\">ringlist.app<\/a>: compose your message, see the exact price for your audience before sending, and send from your own dedicated number. Delivery is tracked message by message, and replies like STOP are handled for you.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Admin JS and CSS are now enqueued from files (wp_enqueue_script \/ wp_enqueue_style) instead of printed inline.<\/li>\n<li>The \"add your API key\" reminder now appears only on the Plugins and WooCommerce screens, and can be dismissed permanently.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Renamed the plugin folder and text domain to <code>ringlist-for-woocommerce<\/code> so translations can load. Sites running the 1.1.x zip must deactivate the old copy, install this one, then delete the old \u2014 settings are kept.<\/li>\n<li>\"Test connection\" now tests the key you just typed instead of the saved one \u2014 it no longer fails on a fresh install before you hit Save. On success with an unsaved key it points you at the Save button, and a notice reminds you that nothing syncs until the key is saved.<\/li>\n<li>Default RingList tags for the whole store (WooCommerce \u2192 RingList SMS), pre-filled with your domain and editable. Products without their own tags inherit it; a product's own tags take priority and replace the default for that product.<\/li>\n<li>Contacts are no longer tagged \"woocommerce\" automatically \u2014 the store default tag replaces it. The order's origin still travels to RingList in the API's source field.<\/li>\n<li>Removed the \"RingList URL\" field from the settings screen: a typo there silently broke every sync. Developers can still point another instance with <code>define( 'RINGLIST_API_URL', '\u2026' )<\/code> in wp-config.php or the <code>ringlist_api_url<\/code> filter.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fix activation on WordPress multisite (removed the Requires Plugins header, which misbehaves when WooCommerce is active per-site; standards-compliant zip packaging).<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Per-product RingList tags (Product data &gt; General): buyers get the product's tags on their RingList contact. Tags accumulate across purchases instead of being replaced.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: automatic order sync, checkout consent checkbox, past-customer import, connection test.<\/li>\n<\/ul>","raw_excerpt":"Turns your WooCommerce customers into an SMS campaign list \u2014 validated, deduplicated, consent-aware, ready to text.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/346880","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=346880"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/milotche"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=346880"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=346880"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=346880"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=346880"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=346880"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=346880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}