{"id":361022,"date":"2026-09-18T01:49:48","date_gmt":"2026-09-18T01:49:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/nectazo-connect\/"},"modified":"2026-09-18T01:49:31","modified_gmt":"2026-09-18T01:49:31","slug":"nectazo-connect","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/nectazo-connect\/","author":12578914,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.17.0","stable_tag":"1.17.0","tested":"7.1.1","requires":"5.7","requires_php":"7.4","requires_plugins":null,"header_name":"Nectazo Connect","header_author":"Nectazo","header_description":"Automatically add people who register on this site (and, optionally, new WooCommerce customers) to a Nectazo brand as subscribers. Also provides a [nectazo_form] shortcode to embed Nectazo signup forms, and can optionally send this site's transactional email (password resets, order receipts, etc.) through Nectazo.","assets_banners_color":"3f3514","last_updated":"2026-09-18 01:49:31","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.nectazo.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.17.0":{"tag":"1.17.0","author":"serks","date":"2026-09-18 01:49:31","revision":3701199}},"upgrade_notice":{"1.9.0":"<p>Pick site-wide forms from a list instead of pasting an id, and load more than\none. Existing settings carry over.<\/p>","1.7.0":"<p>Adds a button to create contacts for subscribers who are not on your list yet.\nExisting behaviour is unchanged.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3701225,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3701225,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3701225,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3701225,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.17.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[264,455,6696,1016,286],"plugin_category":[41,42,45],"plugin_contributors":[281381],"plugin_business_model":[],"class_list":["post-361022","plugin","type-plugin","status-publish","hentry","plugin_tags-email-marketing","plugin_tags-newsletter","plugin_tags-smtp","plugin_tags-subscribers","plugin_tags-woocommerce","plugin_category-communication","plugin_category-contact-forms","plugin_category-ecommerce","plugin_contributors-serks","plugin_committers-serks"],"banners":{"banner":"https:\/\/ps.w.org\/nectazo-connect\/assets\/banner-772x250.jpg?rev=3701225","banner_2x":"https:\/\/ps.w.org\/nectazo-connect\/assets\/banner-1544x500.jpg?rev=3701225","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/nectazo-connect\/assets\/icon-128x128.png?rev=3701225","icon_2x":"https:\/\/ps.w.org\/nectazo-connect\/assets\/icon-256x256.png?rev=3701225","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Nectazo Connect links this site to <a href=\"https:\/\/www.nectazo.com\">Nectazo<\/a>, a hosted\nemail marketing service, so the people who sign up or buy here become contacts\nyou can email \u2014 without exporting a CSV every month.<\/p>\n\n<p><strong>You need a Nectazo account.<\/strong> The plugin is the bridge; the sending, contact\nstorage, campaigns and reporting all happen in the service. There is a free\nplan, and the plugin is free.<\/p>\n\n<p>Everything below is off by default. Turn on only what you want.<\/p>\n\n<p><strong>Bring people in<\/strong><\/p>\n\n<ul>\n<li>New WordPress user registrations become contacts.<\/li>\n<li>New WooCommerce customers become contacts.<\/li>\n<li>Each person can be added to a specific list.<\/li>\n<li>Anyone who has unsubscribed stays unsubscribed \u2014 the plugin cannot resurrect\nan opt-out, however many times a contact is synced.<\/li>\n<\/ul>\n\n<p><strong>WooCommerce Subscriptions<\/strong><\/p>\n\n<p>If you run the Subscriptions extension, each customer's current state is\nwritten onto their contact: whether they have an active subscription, which\nproduct, whether it is billed monthly or annually, and whether a coupon is\napplied. That makes segments like \"everyone not on an annual plan\" or \"annual\nsubscribers paying full price\" possible without exporting anything.<\/p>\n\n<p><strong>Products in your emails<\/strong><\/p>\n\n<p>Your catalogue is pushed to Nectazo so products can be dropped into a campaign\nwith live titles, images and prices. Products are pushed from this site rather\nthan pulled into it, so hosting firewalls and bot protection never get in the\nway and there are no REST API keys to generate.<\/p>\n\n<p><strong>Orders and revenue<\/strong><\/p>\n\n<p>Your WooCommerce orders are sent to Nectazo so a campaign can report the money\nit actually earned, and so segments can ask what somebody bought \u2014 everyone who\nhas ordered in the last 90 days, everyone who bought a particular product,\neveryone who has spent over a certain amount.<\/p>\n\n<p>Totals and line items only. No addresses, no payment details, and sending an\norder never creates a contact: buying something is not the same as asking to be\nemailed. An order from somebody who is not already a contact still counts\ntoward your revenue; it simply is not tied to a person.<\/p>\n\n<p><strong>Abandoned carts<\/strong><\/p>\n\n<p>If somebody fills a cart and leaves, Nectazo can remind them \u2014 with the actual\nitems, and a link that puts the cart back so they carry on where they stopped.\nBuying stops the reminder automatically.<\/p>\n\n<p>Two honest limits. It only ever emails people who are already subscribed\ncontacts: a cart is not consent, any more than an order is. And a shopper who\nleaves before typing an email address cannot be reached by anybody, so the\ncarts you can recover are the ones abandoned at or after checkout.<\/p>\n\n<p><strong>Website visitors<\/strong><\/p>\n\n<p>Counts visits to this site and shows them on your Nectazo dashboard: how many\npeople, where they came from, which pages, and who is on the site right now.\nWorks with WordPress on its own &mdash; no store required.<\/p>\n\n<p>No cookies, and nothing at all is stored on a visitor's device, so this needs no\nconsent banner. No IP addresses and no browser details are kept. Visitors cannot\nbe followed from one day to the next, which means daily visitor counts are\nhonest and a longer \"unique visitors\" figure is deliberately not offered rather\nthan estimated.<\/p>\n\n<p><strong>Transactional email<\/strong><\/p>\n\n<p>Optionally, this site's password resets, order receipts, notifications and\nWooCommerce emails \u2014 anything <code>wp_mail()<\/code> sends \u2014 go out through Nectazo's\nverified, DKIM-signed domain instead of your host's mail server. Every send is\nlogged and previewable.<\/p>\n\n<p>If Nectazo cannot be reached, WordPress's own delivery runs exactly as if the\nplugin were not installed. Nothing is silently dropped.<\/p>\n\n<p><strong>Signup forms<\/strong><\/p>\n\n<pre><code>[nectazo_form id=\"...\"] embeds a form built in Nectazo's form editor \u2014\n<\/code><\/pre>\n\n<p>inline, popup, slide-in or bar \u2014 anywhere a shortcode works.<\/p>\n\n<p>Popups that should be available everywhere go in the \"Site-wide forms\" setting\ninstead, which lists your published forms and loads the ones you tick on every\npage. That is what you want for a form set to open when a button is clicked,\nsince the button can be anywhere: add <code>data-nectazo-open<\/code> to any button or link\nand it opens the form. More than one can be ticked.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to Nectazo, a third-party email service operated by Oynayo\nPty Ltd. It will not work without a Nectazo account, and nothing is sent\nanywhere until you enter an API key and enable a feature.<\/p>\n\n<p>What is transmitted, and when:<\/p>\n\n<ol>\n<li><p><strong>Contact sync<\/strong> \u2014 when someone registers, or a WooCommerce customer is\ncreated, or you press one of the sync buttons. Sends the person's email\naddress, first and last name, a source label, and your chosen list id.<\/p><\/li>\n<li><p><strong>Subscription sync<\/strong> (optional, requires WooCommerce Subscriptions) \u2014 when\na subscription is created or changes status, or you press \"Sync all\nsubscriptions now\". Sends the customer's email address and their current\nsubscription status, product name, billing period and any coupon code.<\/p><\/li>\n<li><p><strong>Product sync<\/strong> (optional) \u2014 when a product is added or edited, or you\npress \"Push all products now\". Sends this site's URL along with each\nproduct's name, description, price, image URL, product URL, SKU and status.<\/p><\/li>\n<li><p><strong>Transactional email<\/strong> (optional, off by default) \u2014 when enabled, every\nmessage <code>wp_mail()<\/code> sends is transmitted to Nectazo for delivery. This\nincludes the <strong>recipient address, subject line and the full body of the\nemail<\/strong>, which for password resets includes the reset link. Turn this on\nonly if you are content for your site's outgoing mail to be handled and\nlogged by Nectazo.<\/p><\/li>\n<li><p><strong>Signup forms<\/strong> \u2014 the <code>[nectazo_form]<\/code> shortcode, and any form ticked\nunder \"Site-wide forms\", load a script from <code>https:\/\/www.nectazo.com<\/code> in\nyour <strong>visitor's browser<\/strong>. That request reaches Nectazo from the visitor's\ndevice, so their IP address and user agent are visible to it, along with\nanything they type into the form. The shortcode does this only on the pages\nit appears on; a site-wide form does it on every page.<\/p><\/li>\n<li><p><strong>Listing your forms<\/strong> \u2014 when you open the plugin's settings screen, it asks\nNectazo for the names of your published forms so it can show them as\ncheckboxes. This is an admin-side request using your API key, cached for a\nfew minutes, and involves no visitor data.<\/p><\/li>\n<li><p><strong>Order sync<\/strong> (optional, requires WooCommerce) \u2014 when an order is placed or\nchanges status, or you press \"Send past orders\". Sends the order's id, date,\nstatus, currency, total, each line item's product id, name, quantity and\nprice, and any coupon codes used, along with the customer's email address\nwhere the order has one. Never the billing or shipping address, and never\npayment details.<\/p><\/li>\n<li><p><strong>Abandoned carts<\/strong> (optional, requires WooCommerce) \u2014 when a shopper who\nhas given an email address adds to their cart or reaches checkout. Sends\nthat email address, the cart's items and total, and a random recovery token.\nNothing is sent for a shopper who has not identified themselves, because\nthere would be nobody to send it to.<\/p><\/li>\n<li><p><strong>Website visitors<\/strong> (optional, off by default) \u2014 when enabled, every page\nof this site loads a few lines of inline JavaScript that send a request from\nyour <strong>visitor's browser<\/strong> to <code>https:\/\/www.nectazo.com<\/code>. It carries the page\npath, the referring site where there is one, and any <code>utm_<\/code> parameters in\nthe address. As with the form script above, that request reaches Nectazo\nfrom the visitor's own device, so their IP address and user agent are\nvisible to it in the process \u2014 Nectazo does not store either, and stores\nnothing on the visitor's device, but the request is made and you should say\nso in your privacy policy. Unlike the form script, this happens on every\npage rather than only where a form appears.<\/p><\/li>\n<li><p><strong>Review tagging<\/strong> (optional, requires the Nectazo Reviews plugin with a\ntag configured) \u2014 when a review is submitted, sends the reviewer's email\naddress and that one tag, so a Nectazo automation can react to it. Nothing\nis sent for a review left without an email address.<\/p><\/li>\n<li><p><strong>Coupon minting<\/strong> (optional, off by default) \u2014 when \"Let Nectazo create\ncoupons\" is on, Nectazo may call this site to create a WooCommerce coupon\nas part of an automation. This is inbound: the request carries the coupon\nterms and the customer's email address (to restrict the coupon to them),\nauthenticated by your site key, and this site creates the coupon locally.\nNo customer data leaves your store for this; it is Nectazo asking your store\nto act.<\/p><\/li>\n<\/ol>\n\n<p>Service terms: https:\/\/www.nectazo.com\/terms\nPrivacy policy: https:\/\/www.nectazo.com\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In Nectazo, switch to the brand this site should feed, go to\n<strong>Settings -&gt; API keys<\/strong>, and create a key. Copy it \u2014 it is shown once.<\/li>\n<li>Optionally copy a <strong>List ID<\/strong> (also under Settings -&gt; API keys) if new\nsignups should join a particular list.<\/li>\n<li>Install this plugin and activate it.<\/li>\n<li>Go to <strong>Settings -&gt; Nectazo<\/strong>, paste the API key, choose a list if you want\none, and save.<\/li>\n<li>Press <strong>Send test contact<\/strong>. The address you enter should appear as a\ncontact in Nectazo within a second or two.<\/li>\n<li>Turn on whichever of the sync options you want. They are all off until you\ndo.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20paid%20nectazo%20account%3F\"><h3>Do I need a paid Nectazo account?<\/h3><\/dt>\n<dd><p>No. There is a free plan, and this plugin is free. You do need an account of\nsome kind \u2014 the plugin sends data to the service and cannot store contacts or\nsend email by itself.<\/p><\/dd>\n<dt id=\"where%20do%20new%20users%20get%20added%3F\"><h3>Where do new users get added?<\/h3><\/dt>\n<dd><p>To the Nectazo brand that issued the API key you pasted in. One site feeds one\nbrand. To feed a different brand, create a key in that brand \u2014 typically on a\ndifferent site.<\/p><\/dd>\n<dt id=\"does%20it%20re-subscribe%20people%20who%20unsubscribed%3F\"><h3>Does it re-subscribe people who unsubscribed?<\/h3><\/dt>\n<dd><p>No. Nectazo ignores contacts already suppressed in that brand, so a repeated\nsync can never put somebody back on a list they left.<\/p><\/dd>\n<dt id=\"can%20i%20stop%20certain%20users%20from%20syncing%3F\"><h3>Can I stop certain users from syncing?<\/h3><\/dt>\n<dd><p>Yes. Return false from the <code>nectazo_connect_should_sync<\/code> filter for any email\naddress you want skipped.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20transactional%20email%20if%20nectazo%20is%20down%3F\"><h3>What happens to transactional email if Nectazo is down?<\/h3><\/dt>\n<dd><p>WordPress delivers it normally. The takeover only short-circuits <code>wp_mail()<\/code> on\na confirmed send, or a deliberate skip for a suppressed address. Any error,\ntimeout or unreachable API leaves <code>wp_mail()<\/code> to run exactly as if the plugin\nwere not there.<\/p><\/dd>\n<dt id=\"does%20it%20track%20clicks%20in%20my%20password%20reset%20emails%3F\"><h3>Does it track clicks in my password reset emails?<\/h3><\/dt>\n<dd><p>No. Links in transactional email are sent exactly as your site wrote them. A\nreset key can only be used once, and putting a redirect in front of it means\nany link scanner that inspects the message spends the key before your customer\ndoes.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20registration%20or%20checkout%3F\"><h3>Will it slow down registration or checkout?<\/h3><\/dt>\n<dd><p>No. Live syncs are sent without waiting for a reply, so a slow or unreachable\nAPI cannot hold up somebody signing up or paying.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.17.0<\/h4>\n\n<ul>\n<li>Security: coupon minting now uses a dedicated server-to-server secret instead\nof the site key. The site key is a public identifier printed in the traffic\nbeacon, so authorising coupon creation with it could let a visitor mint\ncoupons. The new secret is fetched from Nectazo, never sent to the browser,\nand is what the \/mint-coupon endpoint checks. Addresses a WordPress.org plugin\nreview finding. No action needed \u2014 the plugin provisions the secret itself.<\/li>\n<\/ul>\n\n<h4>1.16.1<\/h4>\n\n<ul>\n<li>Hardening: values placed inside the inline traffic and cart-email scripts\nare now encoded with JSON_HEX_TAG, so no value can ever close the script\nelement early. Addresses a WordPress.org plugin review note.<\/li>\n<\/ul>\n\n<h4>1.16.0<\/h4>\n\n<ul>\n<li>The subscription plan, period and coupon fields are now also filled for\non-hold and pending subscriptions, not only active ones. A member whose\nrenewal payment is failing (on-hold) keeps wc_subscription_period, so you can\nsegment \"monthly subscribers on hold\" instead of seeing a blank period.\nCancelled and expired subscriptions still clear those fields, as before.\nRun \"Sync subscriptions\" after updating to backfill existing contacts.<\/li>\n<\/ul>\n\n<h4>1.15.0<\/h4>\n\n<ul>\n<li>Coupons a Nectazo automation issued are marked redeemed when the customer\nuses them, from the order sync. And a review left through Nectazo Reviews now\ntags the reviewer's contact, so an automation can reward it.<\/li>\n<\/ul>\n\n<h4>1.14.0<\/h4>\n\n<ul>\n<li>Nectazo can now create a WooCommerce coupon on your store when an automation\nissues one (for example, to reward a review). Turn on \"Let Nectazo create\ncoupons\" in Settings. The terms are set in the automation; the code is made\nhere, restricted to the customer's own email so it cannot be shared. The\nrequest is authenticated by your site key.<\/li>\n<\/ul>\n\n<h4>1.13.0<\/h4>\n\n<ul>\n<li>Product sync now tells Nectazo which products are subscriptions. A \"Someone\nbuys\" automation can then be pointed at non-recurring products only \u2014 so a\nreview request fires on one-off purchases and never on a subscription or its\nrenewals. Re-sync your catalogue (Settings \u2192 Nectazo) after updating.<\/li>\n<\/ul>\n\n<h4>1.12.0<\/h4>\n\n<ul>\n<li>Website visitor counts. Turn it on and your Nectazo dashboard shows visits,\ntraffic sources, top pages and a live count of who is on the site right now.\nOff by default, and it works without WooCommerce.<\/li>\n<li>No cookies and nothing stored on a visitor's device, so no consent banner is\nneeded. There is deliberately no setting that would change that.<\/li>\n<\/ul>\n\n<h4>1.11.2<\/h4>\n\n<ul>\n<li>Carts filled while logged out are now attached to the shopper when they sign\nin at checkout. Previously the cart hooks only fired when the contents\nchanged, so signing in \u2014 which changes who the cart belongs to but not what\nis in it \u2014 left the cart belonging to nobody and no reminder was possible.<\/li>\n<li>A guest's typed email address now actually sends the cart. The capture stored\nthe address and then stopped short of pushing, because WordPress reports\nadmin-ajax requests as admin requests and the push skips those.<\/li>\n<\/ul>\n\n<h4>1.11.1<\/h4>\n\n<ul>\n<li>A recovery link now puts back the exact variation the shopper chose. Products\nwith options were being rebuilt from the parent product alone, which drops the\nchoice and which WooCommerce will not add at all.<\/li>\n<\/ul>\n\n<h4>1.11.0<\/h4>\n\n<ul>\n<li>Abandoned carts. A cart left behind can start an automation in Nectazo that\nshows the shopper what was in it and links them back to it. Off by default.<\/li>\n<li>Following that link rebuilds the cart on this site and goes straight to\ncheckout, so nothing has to be found again.<\/li>\n<li>Completing an order marks the cart recovered and stops the reminder, matched\nby the cart itself rather than guessed from the email address and the time.<\/li>\n<li>Only subscribed contacts are ever emailed, and a cart abandoned before an\nemail address is entered is never sent anywhere.<\/li>\n<\/ul>\n\n<h4>1.10.1<\/h4>\n\n<ul>\n<li>A rejected batch now reports one readable line instead of the raw response.\nNectazo returns a validation issue per item, so a batch of fifty failing the\nsame way filled the settings screen with several thousand characters saying\none thing.<\/li>\n<\/ul>\n\n<h4>1.10.0<\/h4>\n\n<ul>\n<li>Orders are sent to Nectazo, so a campaign report can show the revenue it\nearned and segments can ask what somebody bought. Off by default.<\/li>\n<li>A \"Send order history\" button sends the last 12 months in one go \u2014 without\nit, a segment like \"bought in the last 90 days\" finds nothing until somebody\norders again.<\/li>\n<li>Order updates are sent on every status change, so a refund takes the revenue\nback down rather than leaving the campaign credited for money that was\nreturned.<\/li>\n<\/ul>\n\n<h4>1.9.1<\/h4>\n\n<ul>\n<li>Each click-triggered form now shows the exact button attribute to use,\nincluding its id. With more than one form on a page the id is what ties a\nbutton to one of them \u2014 a bare <code>data-nectazo-open<\/code> opens all of them.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>The site-wide setting is now a checkbox list of your published forms, read\nfrom Nectazo, instead of a box to paste a form id into. Nobody should have to\ncopy a UUID between browser tabs, and drafts simply do not appear.<\/li>\n<li>More than one form can load site-wide. Two forms opened by their own buttons\nis an ordinary thing to want; two that open by themselves is not, and the\nsettings screen says so rather than refusing.<\/li>\n<li>Settings saved with 1.8.0 are read as a one-item list, so nothing needs\nre-picking after updating.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Add a \"Site-wide form\" setting. The shortcode only loads a form on the pages\nit appears on, which is right for an inline form and wrong for a popup opened\nby a button in the header \u2014 the only way to get one everywhere was to park an\ninvisible shortcode in a footer widget. Set a form id here and it loads on\nevery page instead. Setting both for the same form is harmless; it loads once.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Add an \"Add missing subscribers as contacts\" button. Subscription sync fills\nfields in and never adds anybody, so subscribers who are not on the list were\nreported and left alone; this adds them, carrying their subscription fields\nwith them. Anyone who previously unsubscribed stays unsubscribed, and the\nbrand's own double opt-in setting decides how the rest arrive.<\/li>\n<\/ul>\n\n<h4>1.6.1<\/h4>\n\n<ul>\n<li>Make the sync's time budget actually apply. It was only checked between\nbatches, so a store whose subscribers all fit in one batch never consulted it\nand could be killed by PHP part-way through \u2014 which looks identical to\nsuccess. It is now checked per customer.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>One click now syncs every subscriber, instead of 50 at a time. The backfill\nsends whole batches to Nectazo in a single request rather than one request\nper customer, so a store with a few hundred subscribers finishes in seconds.<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Say next to the sync button that the four custom fields do not need creating\nin Nectazo first, name them, and spell out the one thing the sync does\nrequire: that the customer is already a contact in that brand.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>The \"Sync all subscriptions now\" button now waits for Nectazo's answer and\nreports what actually happened \u2014 how many contacts were updated, and how many\nsubscribers are not contacts in that brand yet. It previously reported success\nwithout checking, so a run that changed nothing looked identical to one that\nworked.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Sync WooCommerce Subscriptions state to Nectazo contacts. Adds four custom\nfields \u2014 wc_subscription, wc_subscription_plan, wc_subscription_period and\nwc_subscription_coupon \u2014 so segments can target, for example, everyone who is\nnot on an annual plan, or annual subscribers paying full price. Updates\nexisting contacts only; it never creates new ones. Includes a \"Sync all\nsubscriptions now\" button for the initial backfill.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Sync WooCommerce products to Nectazo for use in the Products email block.\nProducts are pushed from this site rather than pulled into it, so hosting\nfirewalls and bot protection never get in the way and there are no REST API\nkeys to generate. Individual products are sent automatically when added or\nedited, plus a \"Push all products now\" button for a full refresh.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Add an optional transactional-email takeover: send this site's password\nresets, order receipts, and all other <code>wp_mail()<\/code> traffic (including\nWooCommerce) through Nectazo, with automatic fallback to WordPress's own\ndelivery if Nectazo is unreachable. Includes a test-send tool.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Add a <code>[nectazo_form id=\"...\"]<\/code> shortcode to embed Nectazo forms anywhere on\nthe site.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: sync WordPress registrations and WooCommerce customers to a\nNectazo brand, with an optional target list and a test-connection tool.<\/li>\n<\/ul>","raw_excerpt":"Send your WordPress and WooCommerce customers to Nectazo, and optionally send this site&#039;s email through it too.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/361022","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=361022"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/serks"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=361022"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=361022"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=361022"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=361022"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=361022"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=361022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}