{"id":373836,"date":"2026-09-28T14:53:19","date_gmt":"2026-09-28T14:53:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dabdash-sync-for-woocommerce\/"},"modified":"2026-09-28T14:52:43","modified_gmt":"2026-09-28T14:52:43","slug":"dabdash-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/twd.wordpress.org\/plugins\/dabdash-for-woocommerce\/","author":23398323,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.6","stable_tag":"1.1.6","tested":"7.1.2","requires":"7.0","requires_php":"8.5","requires_plugins":null,"header_name":"DabDash Sync for WooCommerce","header_author":"Shadow Software LLC","header_description":"Keeps WooCommerce customers in step with DabDash \u2014 verification status, loyalty balance, and marketing consent \u2014 with DabDash as the source of truth. Free and open source; requires a DabDash tenant.","assets_banners_color":"304d25","last_updated":"2026-09-28 14:52:43","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/shadowsoftware.com\/","header_plugin_uri":"https:\/\/github.com\/shadow-software\/dabdash-for-woocommerce","header_author_uri":"https:\/\/shadowsoftware.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.6":{"tag":"1.1.6","author":"shadowsoftware","date":"2026-09-28 14:52:43","revision":3717407}},"upgrade_notice":{"1.0.1":"<p>Usermeta keys renamed to <code>_dabdash_woo_*<\/code>. Existing <code>_dabdash_*<\/code> values are\nstill read until rewritten by sync.<\/p>","1.0.0":"<p>First public release. Requires WooCommerce and a DabDash tenant token.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3717405,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3717405,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3717405,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3717405,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3717405,"resolution":"1","location":"assets","locale":"","width":1200,"height":750}},"screenshots":{"1":"Settings \u2014 connect a DabDash tenant and review field-map diagnostics."}},"plugin_section":[],"plugin_tags":[20011,65951,283207,3377,286],"plugin_category":[45],"plugin_contributors":[269919],"plugin_business_model":[],"class_list":["post-373836","plugin","type-plugin","status-publish","hentry","plugin_tags-consent","plugin_tags-customer-sync","plugin_tags-dabdash","plugin_tags-loyalty","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-shadowsoftware","plugin_committers-shadowsoftware"],"banners":{"banner":"https:\/\/ps.w.org\/dabdash-for-woocommerce\/assets\/banner-772x250.png?rev=3717405","banner_2x":"https:\/\/ps.w.org\/dabdash-for-woocommerce\/assets\/banner-1544x500.png?rev=3717405","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/dabdash-for-woocommerce\/assets\/icon-128x128.png?rev=3717405","icon_2x":"https:\/\/ps.w.org\/dabdash-for-woocommerce\/assets\/icon-256x256.png?rev=3717405","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/dabdash-for-woocommerce\/assets\/screenshot-1.png?rev=3717405","caption":"Settings \u2014 connect a DabDash tenant and review field-map diagnostics."}],"raw_content":"<!--section=description-->\n<p>DabDash Sync connects a WooCommerce store to a\n<a href=\"https:\/\/dabdash.com\/\">DabDash<\/a> tenant so storefront-facing flags stay honest:<\/p>\n\n<ul>\n<li>ID \/ profile \/ email \/ phone verification timestamps<\/li>\n<li>Loyalty balance and coupon eligibility<\/li>\n<li>Marketing consent (email and SMS) with a <strong>most-restrictive<\/strong> merge \u2014 an\nunsubscribe on either side always wins<\/li>\n<\/ul>\n\n<p>DabDash is canonical. WooCommerce may propose contact edits; it cannot forge\nverification or profile compliance state. Sensitive fields (ID images, regulated\nprofile identifiers, date of birth) never land in <code>wp_usermeta<\/code>.<\/p>\n\n<p>Runtime API calls use the official Packagist package\n<a href=\"https:\/\/packagist.org\/packages\/shadow-software\/dabdash-php-sdk\"><code>shadow-software\/dabdash-php-sdk<\/code><\/a>.<\/p>\n\n<p>This plugin is free and open source. It is developed and maintained by\n<a href=\"https:\/\/shadowsoftware.com\/\">Shadow Software LLC<\/a>, and its full source code is\npublic on <a href=\"https:\/\/github.com\/shadow-software\/dabdash-for-woocommerce\">GitHub<\/a>.<\/p>\n\n<h4>Documentation and source code<\/h4>\n\n<ul>\n<li>Platform: https:\/\/dabdash.com\/<\/li>\n<li>API reference: https:\/\/dabdash.com\/docs\/api<\/li>\n<li>TypeScript SDK: https:\/\/github.com\/shadow-software\/dabdash-sdk<\/li>\n<li>Plugin page: https:\/\/dabdash.com\/integrations\/woocommerce<\/li>\n<li>Documentation: https:\/\/github.com\/shadow-software\/dabdash-for-woocommerce#readme<\/li>\n<li>Source code and releases: https:\/\/github.com\/shadow-software\/dabdash-for-woocommerce<\/li>\n<li>Report a bug or request a feature: https:\/\/github.com\/shadow-software\/dabdash-for-woocommerce\/issues<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<ol>\n<li>Enter your DabDash tenant API base URL (a <code>*.dabdash.com<\/code> host) and access\ntoken under <strong>Settings \u2192 DabDash Sync<\/strong>.<\/li>\n<li>Review the field-map diagnostics (canonical \/ contact \/ consent \/ never).<\/li>\n<li>Enable sync. Confirm you understand customer fields will be sent to DabDash.<\/li>\n<li>An hourly background job pulls customers, links them to WooCommerce users,\napplies DabDash-owned fields, and queues contact\/consent proposals upward\nwhen WordPress holds a newer local edit.<\/li>\n<\/ol>\n\n<h4>What it does not do<\/h4>\n\n<p>It does not store ID document images, sensitive profile documents, or date of birth in\nWordPress. It does not invent verification state. It does not send passwords.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to your <strong>DabDash<\/strong> tenant API \u2014 a host you configure under\n    *.dabdash.com or <code>*.dabdash.app<\/code> (local hosts only when <code>WP_DEBUG<\/code> is on).\nNothing is sent until an API base URL and access token are saved and <strong>Enable\nbackground sync<\/strong> is checked.<\/p>\n\n<p><strong>1. Tenant API (your DabDash host, via shadow-software\/dabdash-php-sdk)<\/strong><\/p>\n\n<ul>\n<li><strong>What it is for:<\/strong> keeping WooCommerce customers in step with DabDash\nverification, loyalty, and marketing consent. DabDash is the source of truth\nfor verification and loyalty; consent merges most-restrictive.<\/li>\n<li><strong>When it is called:<\/strong> on an Action Scheduler \/ WP-Cron pull (hourly by\ndefault) and when a tracked local profile field changes (push proposal).<\/li>\n<li><strong>What is sent (contact \/ consent proposals only):<\/strong> name, email, phone;\nemail \/ SMS marketing opt-out flags. The plugin never pushes ID documents,\nregulated profile identifiers, dates of birth, or passwords.<\/li>\n<li><strong>What is received:<\/strong> verification timestamps, loyalty \/ coupon flags,\nconsent state, and the DabDash customer id linked on the WordPress user.<\/li>\n<li>Transport: HTTPS JSON via the Packagist SDK (Guzzle). Tokens are stored with\n  autoload disabled.<\/li>\n<\/ul>\n\n<p><strong>Terms and privacy<\/strong><\/p>\n\n<ul>\n<li>DabDash Terms: https:\/\/dabdash.com\/terms-of-service<\/li>\n<li>DabDash Privacy Policy: https:\/\/dabdash.com\/privacy-policy<\/li>\n<li>Shadow Software Terms: https:\/\/shadowsoftware.com\/terms<\/li>\n<li>Shadow Software Privacy Policy: https:\/\/shadowsoftware.com\/privacy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install from the WordPress.org directory (or a GitHub Release ZIP), then\nactivate. WooCommerce must be active.<\/li>\n<li>Go to <strong>Settings \u2192 DabDash Sync<\/strong>.<\/li>\n<li>Enter your tenant API base URL and access token.<\/li>\n<li>Enable sync when ready.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20send%20customer%20passwords%20or%20id%20documents%20to%20wordpress%3F\"><h3>Does this send customer passwords or ID documents to WordPress?<\/h3><\/dt>\n<dd><p>No. Passwords, ID images, sensitive profile documents, and date of birth are classified\n<strong>never<\/strong> and are not mirrored.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20someone%20unsubscribes%20in%20woocommerce%3F\"><h3>What happens if someone unsubscribes in WooCommerce?<\/h3><\/dt>\n<dd><p>Consent is a ratchet. When a customer updates their account, checks out, or\ntheir marketing meta changes, the plugin stamps a local-modified time and the\nnext sync proposes the opt-out upward to DabDash so both platforms converge on\nthe restrictive value.<\/p><\/dd>\n<dt id=\"do%20i%20need%20woocommerce%3F\"><h3>Do I need WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. This plugin requires WooCommerce 8.2+.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.6<\/h4>\n\n<ul>\n<li>Remove remote writes to WordPress user identity fields, correct public legal URLs, and exclude OpenAPI generator metadata from the distribution archive.<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>WordPress.org readme: neutral compliance\/profile language in directory copy.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Strip OpenAPI SDK dev artifacts (<code>git_push.sh<\/code>, etc.) from release ZIPs; enforce\nvendor prune in CI Plugin Check and deploy builds.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Updated bundled <code>shadow-software\/dabdash-php-sdk<\/code> to 6.3.0.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Updated bundled <code>shadow-software\/dabdash-php-sdk<\/code> to 6.2.1.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Updated bundled <code>shadow-software\/dabdash-php-sdk<\/code> to 6.1.1.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Usermeta keys use the <code>dabdash_woo_<\/code> prefix family (<code>_dabdash_woo_*<\/code>) for\nWordPress.org uniqueness; legacy <code>_dabdash_*<\/code> keys still read\/uninstall.<\/li>\n<li>External services section expanded; Plugin Review sandbox guidance on settings.<\/li>\n<li>Host allowlist messaging includes <code>*.dabdash.app<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Updated bundled <code>shadow-software\/dabdash-php-sdk<\/code> to 6.1.0.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Production sync loop via Action Scheduler (or WP-Cron) using\n  shadow-software\/dabdash-php-sdk from Packagist.<\/li>\n<li>WooCommerce hooks stamp local edits for upward contact\/consent proposals.<\/li>\n<li>Host allowlist for API base URLs; token stored without autoload.<\/li>\n<li>WordPress.org packaging (slug <code>dabdash-for-woocommerce<\/code>).<\/li>\n<\/ul>","raw_excerpt":"Keeps WooCommerce customers in step with DabDash \u2014 verification, loyalty, and marketing consent \u2014 with DabDash as the source of truth.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/373836","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=373836"}],"author":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/shadowsoftware"}],"wp:attachment":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=373836"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=373836"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=373836"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=373836"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=373836"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=373836"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}