{"id":273327,"date":"2026-01-19T17:42:27","date_gmt":"2026-01-19T17:42:27","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/2-download-2dl\/"},"modified":"2026-01-19T20:22:05","modified_gmt":"2026-01-19T20:22:05","slug":"2download-connector","status":"publish","type":"plugin","link":"https:\/\/twd.wordpress.org\/plugins\/2download-connector\/","author":23431043,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.1.5","stable_tag":"0.1.5","tested":"6.9.4","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"2Download Connector for 2DL Hosted Checkout","header_author":"2dl.app","header_description":"Connector plugin for 2DL hosted checkout and secure digital delivery via 2dl.app.","assets_banners_color":"","last_updated":"2026-01-19 20:22:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/2dl.app\/products\/wordpress-plugin","header_author_uri":"https:\/\/2dl.app","rating":0,"author_block_rating":0,"active_installs":0,"downloads":170,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.4":{"tag":"0.1.4","author":"2download","date":"2026-01-19 17:41:51"},"0.1.5":{"tag":"0.1.5","author":"2download","date":"2026-01-19 20:22:05"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3442715,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3442715,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":{"todownload\/storefront":{"name":"todownload\/storefront","title":"2Download Storefront"},"todownload\/pricing":{"name":"todownload\/pricing","title":"2Download Pricing"},"todownload\/purchase-button":{"name":"todownload\/purchase-button","title":"2Download Purchase Button"},"todownload\/preview":{"name":"todownload\/preview","title":"2Download Preview"},"todownload\/cart":{"name":"todownload\/cart","title":"2Download Cart"},"todownload\/checkout":{"name":"todownload\/checkout","title":"2Download Checkout"},"todownload\/purchase-history":{"name":"todownload\/purchase-history","title":"2Download Purchase History"},"todownload\/products":{"name":"todownload\/products","title":"2Download Products Grid"},"todownload\/account":{"name":"todownload\/account","title":"2Download Account"},"todownload\/reviews":{"name":"todownload\/reviews","title":"2Download Reviews"}},"tagged_versions":["0.1.4","0.1.5"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Connect screen (store public ID + Store API key)","2":"Storefront block\/shortcode preview","3":"Buyer account \/ receipts"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[5346,282,20853],"plugin_category":[45],"plugin_contributors":[254279],"plugin_business_model":[],"class_list":["post-273327","plugin","type-plugin","status-publish","hentry","plugin_tags-digital-downloads","plugin_tags-ecommerce","plugin_tags-licenses","plugin_category-ecommerce","plugin_contributors-2download","plugin_committers-2download"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/2download-connector\/assets\/icon-128x128.png?rev=3442715","icon_2x":"https:\/\/ps.w.org\/2download-connector\/assets\/icon-256x256.png?rev=3442715","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>2Download Connector for 2DL Hosted Checkout integrates your WordPress site with 2DL hosted services (2dl.app).<\/p>\n\n<ul>\n<li>Checkout sessions and receipts are created\/fetched via 2dl.app.<\/li>\n<li>Subscription tier (Standard\/Pro\/Studio) is managed on 2dl.app.<\/li>\n<li>This plugin does not require payment secret keys or webhooks on your WordPress site.<\/li>\n<\/ul>\n\n<p>This plugin does not include any license-key locks for local functionality. Subscription billing (if used) is handled by the 2dl.app hosted service.<\/p>\n\n<p>Shortcodes:\n- <code>[ToDownload_storefront]<\/code> \u2013 storefront listings\n- <code>[ToDownload_cart]<\/code> \u2013 cart\n- <code>[ToDownload_checkout]<\/code> \u2013 checkout (redirects to hosted checkout)\n- <code>[ToDownload_account]<\/code> \u2013 receipts \/ account view<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin communicates with 2DL hosted services to enable hosted checkout, secure delivery, and Connect onboarding\/status.<\/p>\n\n<p>Domain(s) the plugin may connect to:<\/p>\n\n<ul>\n<li>https:\/\/2dl.app (default)<\/li>\n<li>https:\/\/staging.2dl.app (optional, if your WordPress site is configured to use staging)<\/li>\n<li>https:\/\/wp.2dl.app and subdomains (optional, used by the hosted WordPress connector environment)<\/li>\n<\/ul>\n\n<p>The exact base URL is configured by your site admin in the plugin settings.<\/p>\n\n<p>What the service is \/ what it is used for:<\/p>\n\n<ul>\n<li>2DL hosted services (2dl.app)\n\n<ul>\n<li>Purpose: create hosted checkout sessions, look up receipts\/licenses, and manage seller onboarding\/status.<\/li>\n<li>Data sent and when (depending on configuration and flow):<\/li>\n<li>When creating a hosted checkout session: store\/product identifiers and redirect URLs (for example <code>store_public_id<\/code>, <code>product_public_id<\/code>, <code>success_url<\/code>, <code>cancel_url<\/code>).<\/li>\n<li>When looking up receipts\/licenses: checkout session ID (for example <code>session_id<\/code>).<\/li>\n<li>When starting Connect onboarding via 2DL (admin\/seller action): store identifier plus redirect URLs (for example <code>store_public_id<\/code>, <code>return_url<\/code>, <code>refresh_url<\/code>).<\/li>\n<li>When checking Connect status (admin\/seller action): store identifier.<\/li>\n<li>For authenticated server-to-server requests: a Store API key in the <code>Authorization: Bearer ...<\/code> header.<\/li>\n<li>Optional request tracing headers.<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p>See our policies:\n- Privacy Policy: https:\/\/2dl.app\/privacy\n- Terms of Service: https:\/\/2dl.app\/terms\n- Refund &amp; Dispute Policy: https:\/\/2dl.app\/refunds<\/p>\n\n<p>Payments are handled by 2dl.app. This plugin does not send payment-processor secret keys from your WordPress site.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin sends data to 2dl.app to perform hosted checkout and receipt\/license lookups. See the \"External services\" section above for details about what data is transmitted and when.<\/p>\n\n<p>If you use this plugin, you should review and link to your site's own privacy policy, and include 2dl.app as a service provider where applicable.<\/p>\n\n<h3>Hosting requirements<\/h3>\n\n<p>2DL runs inside your WordPress site, so upload limits are controlled by your web host (PHP\/nginx), not by 2DL.<\/p>\n\n<p>Recommended settings:<\/p>\n\n<ul>\n<li><code>upload_max_filesize<\/code>: 64M or higher<\/li>\n<li><code>post_max_size<\/code>: 64M or higher (must be &gt;= <code>upload_max_filesize<\/code>)<\/li>\n<li><code>memory_limit<\/code>: 256M<\/li>\n<li>If using nginx: <code>client_max_body_size 64M;<\/code><\/li>\n<\/ul>\n\n<p>If you see an upload limit like 2\u20138MB in WordPress (Media Library, Site Health), increase the limits in your hosting control panel.<\/p>\n\n<p>Cloudways example:<\/p>\n\n<ol>\n<li>Server \u2192 Settings &amp; Packages \u2192 PHP: set <code>upload_max_filesize<\/code> and <code>post_max_size<\/code>.<\/li>\n<li>Manage Services: restart PHP-FPM (and nginx if you changed nginx settings).<\/li>\n<\/ol>\n\n<h3>Update Notice<\/h3>\n\n<h4>0.1.5<\/h4>\n\n<p>Recommended update.<\/p>\n\n<h4>0.1.1<\/h4>\n\n<p>Recommended update.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin.<\/li>\n<li>Activate it.<\/li>\n<li>Configure settings under 2DL Admin \u2192 Settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20stripe%20keys%20or%20stripe%20webhooks%20on%20my%20wordpress%20site%3F\"><h3>Does this plugin require Stripe keys or Stripe webhooks on my WordPress site?<\/h3><\/dt>\n<dd><p>No. Payments and webhooks are handled by 2dl.app. This plugin is connector-only.<\/p><\/dd>\n<dt id=\"what%20external%20service%20does%20it%20connect%20to%3F\"><h3>What external service does it connect to?<\/h3><\/dt>\n<dd><p>2dl.app. See the \"External services\" section above.<\/p><\/dd>\n<dt id=\"where%20is%20my%20store%20api%20key%20stored%3F\"><h3>Where is my Store API key stored?<\/h3><\/dt>\n<dd><p>Your Store API key is stored in WordPress options and is only shown as a password field in the admin UI. Treat it like a secret.<\/p><\/dd>\n<dt id=\"can%20i%20use%20staging%20for%20testing%3F\"><h3>Can I use staging for testing?<\/h3><\/dt>\n<dd><p>Yes. Use the Connect screen to select staging (staging.2dl.app).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.5<\/h4>\n\n<ul>\n<li>Add on-demand hosted product sync into WordPress Products.<\/li>\n<li>Move pricing calculator outside the Products list table.<\/li>\n<li>Prefer hosted product_public_id for hosted checkout cart items when available.<\/li>\n<\/ul>\n\n<h4>0.1.4<\/h4>\n\n<ul>\n<li>WP.org review fixes: avoid inline \/ output, sanitize forwarded checkout POST payload, minor admin\/frontend JS refactors.<\/li>\n<\/ul>\n\n<h4>0.1.3<\/h4>\n\n<ul>\n<li>Add cart discount rule configuration sync and preview (tiered\/volume, cheapest-item % off, bundle\/set pricing).<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>WP.org submission polish (license\/uninstall\/privacy\/readme improvements).<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"2Download Connector for 2DL Hosted Checkout \u2013 a WordPress connector for hosted checkout and secure digital delivery via 2dl.app.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/273327","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=273327"}],"author":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/2download"}],"wp:attachment":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=273327"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=273327"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=273327"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=273327"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=273327"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=273327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}