{"id":352457,"date":"2026-08-21T14:59:47","date_gmt":"2026-08-21T14:59:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wc-campaign\/"},"modified":"2026-08-21T15:05:19","modified_gmt":"2026-08-21T15:05:19","slug":"now-campaign-storefronts","status":"publish","type":"plugin","link":"https:\/\/yor.wordpress.org\/plugins\/now-campaign-storefronts\/","author":15464627,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.5","stable_tag":"1.4.5","tested":"7.1","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"NOW Campaign Storefronts for WooCommerce","header_author":"NOW Store","header_description":"Build campaign storefronts for WooCommerce with campaign pricing, layouts, attribution, live reports, and protected sharing.","assets_banners_color":"","last_updated":"2026-08-21 15:05:19","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/bboyfan\/now-campaign-storefronts","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":70,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.5":{"tag":"1.4.5","author":"bboyfan","date":"2026-08-21 15:05:19"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3659310,"resolution":"1","location":"assets","locale":"","width":2880,"height":2000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3659310,"resolution":"2","location":"assets","locale":"","width":2880,"height":2000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3659310,"resolution":"3","location":"assets","locale":"","width":2880,"height":2000},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3659310,"resolution":"4","location":"assets","locale":"","width":2880,"height":2000}},"screenshots":[]},"plugin_section":[],"plugin_tags":[7644,59850,3652,11577,286],"plugin_category":[45],"plugin_contributors":[276842],"plugin_business_model":[],"class_list":["post-352457","plugin","type-plugin","status-publish","hentry","plugin_tags-campaigns","plugin_tags-group-buying","plugin_tags-reporting","plugin_tags-storefront","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-bboyfan","plugin_committers-bboyfan"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/now-campaign-storefronts.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/now-campaign-storefronts\/assets\/screenshot-1.png?rev=3659310","caption":""},{"src":"https:\/\/ps.w.org\/now-campaign-storefronts\/assets\/screenshot-2.png?rev=3659310","caption":""},{"src":"https:\/\/ps.w.org\/now-campaign-storefronts\/assets\/screenshot-3.png?rev=3659310","caption":""},{"src":"https:\/\/ps.w.org\/now-campaign-storefronts\/assets\/screenshot-4.png?rev=3659310","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>NOW Campaign Storefronts for WooCommerce<\/strong> \u662f\u5c08\u70ba WooCommerce \u6253\u9020\u7684\u300c\u5718\u8cfc\u5206\u92b7\u3001KOL \u7db2\u7d05\u5408\u4f5c\u3001\u9650\u6642\u7279\u8ce3\u8207\u6a94\u671f\u6d3b\u52d5\u9801\u300d\u5916\u639b\u3002\u8b93\u60a8\u7121\u9700\u91cd\u8907\u5efa\u7acb\u5546\u54c1\u6216\u8907\u88fd\u5eab\u5b58\uff0c\u5373\u53ef\u5feb\u901f\u70ba\u7279\u5b9a\u6d3b\u52d5\u5efa\u7acb\u5c08\u5c6c\u7684\u6d3b\u52d5\u8ce3\u5834\u8207\u7368\u7acb\u5206\u6f64\u5831\u8868\u3002<\/p>\n\n<p>\u672c\u5916\u639b\u70ba\u7368\u7acb\u958b\u6e90\u5c08\u6848\uff0c\u975e WooCommerce \u6216 Automattic \u5b98\u65b9\u7522\u54c1\u3002<\/p>\n\n<h3>\ud83c\udf1f \u6838\u5fc3\u7279\u8272<\/h3>\n\n<ul>\n<li><strong>\u6d3b\u52d5\u5c08\u5c6c\u7279\u60e0\u50f9<\/strong>\uff1a\u76f4\u63a5\u91dd\u5c0d\u73fe\u6709 WooCommerce \u55ae\u4e00\u5546\u54c1\u6216\u898f\u683c\u5546\u54c1\u8a2d\u5b9a\u6d3b\u52d5\u7279\u60e0\u50f9\uff0c\u4e0d\u5f71\u97ff\u539f\u5546\u57ce\u6b63\u5e38\u552e\u50f9\u3002<\/li>\n<li><strong>\u6df7\u642d\u5168\u5834\u6eff\u4ef6\u6298\uff08Campaign Bulk Pricing\uff09<\/strong>\uff1a\u652f\u63f4\u540c\u6d3b\u52d5\u5167\u8de8\u5546\u54c1\uff0f\u8de8\u898f\u683c\u300c\u6df7\u642d\u6e4a\u4ef6\u6578\u300d\u4eab\u968e\u68af\u767e\u5206\u6bd4\u6298\u6263\uff08\u4f8b\u5982\uff1a\u4efb\u9078 3 \u4ef6 9 \u6298\u30015 \u4ef6 8 \u6298\uff09\u3002<\/li>\n<li><strong>\u4e00\u9375\u8907\u88fd\u6d3b\u52d5\uff08Duplicate Campaign\uff09<\/strong>\uff1a\u652f\u63f4\u76f4\u63a5\u8907\u88fd\u65e2\u6709\u6d3b\u52d5\u8a2d\u5b9a\u3001\u7248\u9762\u3001\u5546\u54c1\u6e05\u55ae\u8207\u968e\u68af\u5b9a\u50f9\uff0c\u5feb\u901f\u8907\u88fd\u958b\u5718\u6a94\u671f\u3002<\/li>\n<li><strong>\u4e09\u5927\u539f\u751f\u8ce3\u5834\u7248\u578b<\/strong>\uff1a\u63d0\u4f9b\u5feb\u901f\u4e0b\u55ae\uff08Quick Order\uff09\u3001\u5716\u6587\u8a8c\uff08Editorial\uff09\u53ca\u7cbe\u7c21\u5361\u7247\uff08Compact\uff09\u4e09\u7a2e\u6d3b\u52d5\u7248\u578b\uff0c\u624b\u6a5f\u8207\u96fb\u8166\u7aef\u7686\u7d93\u904e\u6975\u81f4\u512a\u5316\u3002<\/li>\n<li><strong>\u5b8c\u6574\u652f\u63f4\u5340\u584a Builder \u8207 Shortcode<\/strong>\uff1a\u6d3b\u52d5\u5167\u9801\u652f\u63f4\u5340\u584a\u6392\u7248\u3001\u5716\u7247\u3001\u81ea\u8a02\u8272\u5f69\u3001\u81ea\u8a02\u6a23\u5f0f\u53ca WordPress Shortcode\u3002<\/li>\n<li><strong>\u539f\u751f\u6574\u5408 Bricks Builder<\/strong>\uff1a\u63d0\u4f9b\u5c08\u5c6c Single Template \u7bc4\u672c\u3001\u67e5\u8a62\u8ff4\u5708\uff08Query Loop\uff09\u3001\u689d\u4ef6\u5224\u65b7\uff08Conditions\uff09\u8207\u52d5\u614b\u8cc7\u6599\u6a19\u7c64\uff08Dynamic Data Tags\uff09\u3002<\/li>\n<li><strong>\u5bc6\u78bc\u4fdd\u8b77\u7684\u7368\u7acb\u5373\u6642\u5206\u6f64\u5831\u8868<\/strong>\uff1a\u63d0\u4f9b\u5c08\u5c6c\u52a0\u5bc6\u5206\u4eab\u9023\u7d50\uff0c\u5408\u4f5c KOL\uff0f\u5718\u5abd\u8f38\u5165\u5bc6\u78bc\u5373\u53ef\u5373\u6642\u67e5\u770b\u92b7\u552e\u4ef6\u6578\u3001\u8a02\u55ae\u72c0\u614b\u8207\u696d\u7e3e\u7d71\u8a08\uff1b<strong>\u5b8c\u5168\u4e0d\u6d29\u6f0f\u8cb7\u5bb6\u500b\u8cc7\uff08\u7121\u59d3\u540d\u3001\u96fb\u8a71\u3001\u5730\u5740\u8207\u8a02\u55ae\u7de8\u865f\uff09<\/strong>\uff0c\u5b89\u5168\u5408\u898f\u3002<\/li>\n<li><strong>\u7cbe\u6e96\u8a02\u55ae\u6b78\u5c6c\u8207\u9000\u6b3e\u6263\u9664<\/strong>\uff1a\u6d3b\u52d5\u4f86\u6e90\u81ea\u52d5\u6a19\u8a18\u65bc WooCommerce \u8a02\u55ae\u9805\u76ee\uff0c\u5831\u8868\u5177\u5099\u5373\u6642\u9000\u6b3e\u6263\u9664\u8a08\u7b97\uff0c\u8ca1\u52d9\u6578\u64da\u4e00\u76ee\u4e86\u7136\u3002<\/li>\n<li><strong>\u5b8c\u7f8e\u76f8\u5bb9 WooCommerce \u539f\u751f\u751f\u614b<\/strong>\uff1a\u5b8c\u5168\u6cbf\u7528 WooCommerce \u539f\u751f\u5546\u54c1\u5eab\u5b58\u3001\u8cfc\u7269\u8eca\u3001\u7d50\u5e33\u6d41\u7a0b\u3001\u512a\u60e0\u5238\u8207 HPOS\uff08\u9ad8\u6548\u80fd\u8a02\u55ae\u5132\u5b58\uff09\uff0c\u4e0d\u5efa\u7acb\u7b2c\u4e8c\u5957\u5eab\u5b58\u6216\u5e33\u672c\u3002<\/li>\n<\/ul>\n\n<h3>\ud83c\udfaf \u9069\u5408\u7684\u4f7f\u7528\u60c5\u5883<\/h3>\n\n<ul>\n<li><strong>KOL \/ \u7db2\u7d05\u5718\u8cfc\u5206\u92b7<\/strong>\uff1a\u63d0\u4f9b\u5c08\u5c6c\u5718\u8cfc\u7db2\u5740\u8207\u5bc6\u78bc\u4fdd\u8b77\u7684\u5206\u6f64\u5831\u8868\uff0c\u8b93\u5718\u5abd\u96a8\u6642\u638c\u63e1\u958b\u5718\u6210\u6548\u3002<\/li>\n<li><strong>\u6a94\u671f\u5feb\u9583\u7279\u8ce3<\/strong>\uff1a\u7bc0\u6176\u3001\u9031\u5e74\u6176\u6216\u9650\u5b9a\u512a\u60e0\u6d3b\u52d5\uff0c\u7121\u9700\u66f4\u52d5\u5168\u5e97\u5546\u54c1\u5b9a\u50f9\u5373\u53ef\u5feb\u901f\u4e0a\u7dda\u3002<\/li>\n<li><strong>\u5c01\u9928\u8207 VIP \u5c08\u5c6c\u8ce3\u5834<\/strong>\uff1a\u7d50\u5408\u5c08\u5c6c\u6d3b\u52d5\u7db2\u5740\uff0c\u63d0\u4f9b\u7279\u5b9a\u5ba2\u7fa4\u5c08\u5c6c\u512a\u60e0\u3002<\/li>\n<li><strong>\u591a\u4ef6\u7d44\u5408\u4fc3\u92b7<\/strong>\uff1a\u5229\u7528\u5168\u5834\u6df7\u642d\u968e\u68af\u6298\u6263\uff0c\u6709\u6548\u63d0\u9ad8\u5ba2\u55ae\u50f9\uff08AOV\uff09\u3002<\/li>\n<\/ul>\n\n<h3>\ud83c\udf1f \u958b\u6e90\u5c08\u6848\u8207\u793e\u7fa4\u652f\u6301<\/h3>\n\n<ul>\n<li><strong>GitHub \u958b\u6e90\u5132\u5b58\u5eab<\/strong>\uff1a<a href=\"https:\/\/github.com\/bboyfan\/now-campaign-storefronts\">https:\/\/github.com\/bboyfan\/now-campaign-storefronts<\/a><\/li>\n<li>\u5982\u679c\u9019\u500b\u5916\u639b\u5c0d\u60a8\u7684\u5546\u5e97\u6216\u5718\u8cfc\u696d\u52d9\u6709\u5e6b\u52a9\uff0c\u6b61\u8fce\u5230 GitHub \u7d66\u6211\u5011\u4e00\u9846 <strong>Star \u2b50<\/strong> \u652f\u6301\uff01\u4e5f\u6b61\u8fce\u63d0\u4ea4 Issue \u6216 Pull Request \u4e00\u8d77\u8b93\u5916\u639b\u66f4\u5b8c\u5584\u3002<\/li>\n<\/ul>\n\n\n\n<h3>English Description<\/h3>\n\n<p>NOW Campaign Storefronts for WooCommerce adds campaign-specific storefronts and reporting while keeping WooCommerce as the source of truth for products, inventory, carts, orders, refunds, and discounts.<\/p>\n\n<p>NOW Campaign Storefronts is an independent open-source project and is not an official WooCommerce or Automattic product.<\/p>\n\n<p>It is designed for stores that run group buys, influencer campaigns, limited-time sales, private campaign pages, or other campaign-specific storefronts without duplicating WooCommerce product or order data.<\/p>\n\n<p><strong>Key Features:<\/strong><\/p>\n\n<ul>\n<li><strong>Campaign-Specific Pricing<\/strong>: Set special campaign pricing for WooCommerce simple products and variations without altering standard catalog prices.<\/li>\n<li><strong>Campaign-Wide Mix-and-Match Bulk Pricing<\/strong>: Tiered percentage discounts based on total campaign items purchased across multiple products and variations.<\/li>\n<li><strong>One-Click Campaign Duplication<\/strong>: Duplicate any campaign with all sections, products, bulk pricing, and visual styling preserved under fresh internal IDs.<\/li>\n<li><strong>Three Dedicated Storefront Layouts<\/strong>: Quick Order, Editorial, and Compact layouts, fully responsive for desktop and mobile devices.<\/li>\n<li><strong>Rich Content &amp; Shortcode Support<\/strong>: Campaign sections, images, rich text descriptions, color customization, and shortcodes.<\/li>\n<li><strong>Native Bricks Builder Integration<\/strong>: Custom Single Templates, Query Loops, Dynamic Data Tags, and campaign display conditions.<\/li>\n<li><strong>Password-Protected Live Reports<\/strong>: Shareable live reporting links for influencers\/collaborators with aggregate sales metrics and <strong>zero customer personal data exposure<\/strong>.<\/li>\n<li><strong>Accurate Attribution &amp; Refund Deductions<\/strong>: Tracks campaign sales directly on WooCommerce order items with refund-aware net revenue metrics.<\/li>\n<li><strong>100% WooCommerce Native<\/strong>: Fully compatible with WooCommerce HPOS, carts, coupons, checkouts, and inventory management.<\/li>\n<\/ul>\n\n<p><strong>Open Source &amp; Community:<\/strong><\/p>\n\n<ul>\n<li><strong>GitHub Repository<\/strong>: <a href=\"https:\/\/github.com\/bboyfan\/now-campaign-storefronts\">https:\/\/github.com\/bboyfan\/now-campaign-storefronts<\/a><\/li>\n<li>If you find this plugin helpful, please consider giving us a <strong>Star \u2b50 on GitHub<\/strong>! Feedback, feature requests, and contributions are warmly welcome.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Upload and activate NOW Campaign Storefronts for WooCommerce.<\/li>\n<li>Open the Campaigns screen in the WordPress admin.<\/li>\n<li>Create a campaign, add WooCommerce products or variations, and set campaign pricing.<\/li>\n<li>Optional: enable Campaign Bulk Pricing and add quantity \/ percentage-off tiers.<\/li>\n<li>Configure campaign content and sections.<\/li>\n<li>Publish the campaign.<\/li>\n<li>Optional: enable the password-protected external report and share its generated link.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20now%20campaign%20storefronts%20replace%20woocommerce%20products%20or%20inventory%3F\"><h3>Does NOW Campaign Storefronts replace WooCommerce products or inventory?<\/h3><\/dt>\n<dd><p>No. WooCommerce remains the product and inventory authority. Campaign products reference existing WooCommerce products or variations.<\/p><\/dd>\n<dt id=\"does%20it%20replace%20the%20woocommerce%20cart%20or%20checkout%3F\"><h3>Does it replace the WooCommerce cart or checkout?<\/h3><\/dt>\n<dd><p>No. Campaign items use the WooCommerce cart, WooCommerce session, and normal checkout flow.<\/p><\/dd>\n<dt id=\"how%20does%20campaign%20bulk%20pricing%20work%3F\"><h3>How does Campaign Bulk Pricing work?<\/h3><\/dt>\n<dd><p>Bulk Pricing counts the total quantity across all products and variations purchased inside the same Campaign. When a threshold is met, each product's Campaign Price receives the percentage discount before WooCommerce handles standard coupons or downstream calculations.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20campaign%20bulk%20pricing%20message%3F\"><h3>Can I customize the Campaign Bulk Pricing message?<\/h3><\/dt>\n<dd><p>Yes. Each campaign can set its own storefront offer title and description while keeping the quantity-tier badges generated from the configured bulk-pricing rules.<\/p><\/dd>\n<dt id=\"does%20campaign%20bulk%20pricing%20create%20another%20discount%20engine%3F\"><h3>Does Campaign Bulk Pricing create another discount engine?<\/h3><\/dt>\n<dd><p>No. Bulk tiers are treated as a quantity-dependent Campaign Price. WooCommerce remains authoritative for the cart, coupons, checkout, orders, refunds, and financial totals.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%20hpos%3F\"><h3>Does it work with WooCommerce HPOS?<\/h3><\/dt>\n<dd><p>Yes. NOW Campaign Storefronts declares compatibility with WooCommerce High-Performance Order Storage and stores campaign attribution on WooCommerce order items.<\/p><\/dd>\n<dt id=\"can%20a%20campaign%20contain%20variable%20products%3F\"><h3>Can a campaign contain variable products?<\/h3><\/dt>\n<dd><p>Yes. Purchasable variations can be added as independent campaign items, each with its own campaign price and presentation.<\/p><\/dd>\n<dt id=\"can%20i%20use%20shortcodes%20in%20the%20campaign%20introduction%3F\"><h3>Can I use shortcodes in the campaign introduction?<\/h3><\/dt>\n<dd><p>Yes. Campaign introduction content uses the normal WordPress content pipeline, so registered shortcodes can render there.<\/p><\/dd>\n<dt id=\"how%20are%20live%20report%20passwords%20handled%3F\"><h3>How are live report passwords handled?<\/h3><\/dt>\n<dd><p>External reports use WordPress Core password-protected-content behavior. NOW Campaign Storefronts stores the sharing password in an internal, non-public WordPress password record and WordPress manages the unlocked browser session through its standard wp-postpass cookie. Use a dedicated report sharing password and do not reuse an administrator or other sensitive account password.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20store%20or%20customer%20data%20to%20an%20external%20service%3F\"><h3>Does the plugin send store or customer data to an external service?<\/h3><\/dt>\n<dd><p>No. NOW Campaign Storefronts does not make external service requests for campaign operation or reporting. Live reports are served by your own WordPress site and expose aggregate campaign metrics rather than customer contact details.<\/p><\/dd>\n<dt id=\"does%20it%20include%20customer%20details%20in%20the%20external%20report%3F\"><h3>Does it include customer details in the external report?<\/h3><\/dt>\n<dd><p>No. External reports are designed around aggregate sales metrics and product performance and do not expose customer names, email addresses, phone numbers, addresses, or order numbers.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.5<\/h4>\n\n<ul>\n<li>Addressed second-round WordPress.org manual review feedback with vendor-scoped PHP namespace and JavaScript globals.<\/li>\n<li>Replaced raw $_POST exposure in cart compatibility actions with minimal sanitized context parameters.<\/li>\n<li>Hardened request boundary sanitization for all scalar and JSON data structures across editor, bulk pricing, and AJAX endpoints.<\/li>\n<\/ul>\n\n<h4>1.4.4<\/h4>\n\n<ul>\n<li>Addressed WordPress.org manual review requirements with unified canonical prefixing and hardened sanitization.<\/li>\n<li>Updated storefront product media display to cover framing across all section layouts.<\/li>\n<li>Refined Campaign Report typography, card heights, and responsive metric hierarchy.<\/li>\n<\/ul>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Restored WooCommerce standard AJAX Add to Cart lifecycle compatibility for Campaign storefront purchases.<\/li>\n<li>Added WooCommerce fragments, cart hashes, and frontend added_to_cart events for third-party commerce and analytics integrations.<\/li>\n<li>Preserved the existing single-request Campaign cart experience for simple products, variations, and Add selected flows.<\/li>\n<li>Removed the redundant cart-fragment refresh request after successful Campaign cart updates.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Renamed the public plugin identity to NOW Campaign Storefronts for WooCommerce.<\/li>\n<li>Updated the WordPress.org package slug and translation domain.<\/li>\n<li>Used WordPress asset enqueue APIs for the standalone Campaign Report package template.<\/li>\n<li>Removed bundled translation binaries so WordPress.org language packs supply translations.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Bricks element conditions hardened: WC Campaign now evaluates its own Current Campaign condition as the final authority, resolves the Campaign from Bricks page context (including builder preview), and normalizes selected Campaign IDs robustly.<\/li>\n<li>Bricks dynamic data moved to a real provider pipeline: WC Campaign tags now resolve inside mixed text content (for example \"\u958b\u5718\uff1a{wc_campaign_title}\") in Text, Heading, Rich Text, and Button elements, not only as a whole-field tag.<\/li>\n<li>Campaign image dynamic data follows the Bricks image contract (attachment ID for the Image element, URL for text\/link contexts).<\/li>\n<li>Campaign Products query loop id scoped to the campaign_products query type only, so other Bricks queries are never affected.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Native Bricks Builder integration: Campaign pages can be designed and assigned with Bricks Single Templates.<\/li>\n<li>Bricks template ownership: when a Bricks content template is assigned to a Campaign, the native storefront template, automatic product append, and footer Mini Cart fallback stay out of the way.<\/li>\n<li>Campaign Products Query Loop: render Campaign products with Bricks query loops while keeping Campaign, section, product, and variation context.<\/li>\n<li>WC Campaign dynamic data tags for Campaign and Campaign Product values (title, product name, variation, image, reference price, Campaign price, savings, copy, stock note).<\/li>\n<li>Campaign-aware element conditions: show or hide shared Bricks elements by current Campaign (is \/ is not, multiple selection).<\/li>\n<li>The native storefront remains fully available when no Bricks template is assigned, and [nowcastf_products] still renders the complete purchase UI inside Bricks templates.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added a Duplicate action to every Campaign row in the Campaign list.<\/li>\n<li>Duplicated Campaigns preserve campaign configuration, sections, products and variation references, campaign pricing, bulk pricing, and presentation while receiving new post, section, and product-relationship IDs.<\/li>\n<li>Duplicated Campaigns are created as drafts with a unique URL slug and never share the source external report link or password record.<\/li>\n<li>Order attribution and financial reporting stay isolated: a duplicated Campaign starts with zero sales, orders, and units, and the source Campaign is never modified.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Fixed variable-product headings so selected variation attributes remain visible in Campaign cards.<\/li>\n<li>Fixed CTA fallback colors when no custom CTA or Campaign accent color is configured.<\/li>\n<li>Added Campaign Bulk Pricing with campaign-wide mix-and-match quantity tiers.<\/li>\n<li>Bulk tiers use each item's Campaign Price as the pricing baseline before WooCommerce coupon \/ dynamic-pricing processing.<\/li>\n<li>Added customizable storefront bulk-pricing title and description.<\/li>\n<li>Fixed bulk-pricing percentage inputs so whole-number discounts remain valid while decimal values are still supported.<\/li>\n<li>Aligned Bulk Pricing editor spacing with the rest of the Campaign editor.<\/li>\n<li>Mini Cart keeps Proceed to checkout as its only navigation action.<\/li>\n<li>Added campaign title visibility, unified product CTA sizing\/colors\/hover behavior, variation-aware product titles, product-copy color controls, and contain-fit product imagery.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Initial WordPress.org submission.<\/li>\n<li>Added campaign storefront layouts and campaign pricing.<\/li>\n<li>Added WooCommerce order attribution and refund-aware reporting.<\/li>\n<li>Added password-protected live campaign reports using WordPress Core password protection.<\/li>\n<li>Added campaign rich content, image galleries, design controls, and shortcode support.<\/li>\n<li>Added theme-isolated quantity, add-to-cart, and campaign mini-cart controls.<\/li>\n<li>Fixed shortcode rendering in campaign introductions and hardened the WordPress.org release package.<\/li>\n<\/ul>","raw_excerpt":"Build campaign storefronts for WooCommerce with campaign pricing, layouts, attribution, live reports, and protected sharing.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/352457","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=352457"}],"author":[{"embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bboyfan"}],"wp:attachment":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=352457"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=352457"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=352457"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=352457"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=352457"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=352457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}