<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WP Desk</title>
	<atom:link href="https://wpdesk.net/feed/" rel="self" type="application/rss+xml" />
	<link>https://wpdesk.net/</link>
	<description></description>
	<lastBuildDate>Thu, 12 Nov 2026 09:08:27 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://wpdesk.net/wp-content/uploads/2024/06/wp_desk_favicon.svg</url>
	<title>WP Desk</title>
	<link>https://wpdesk.net/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WooCommerce Sale Price: How to Start and End a Promotion Automatically</title>
		<link>https://wpdesk.net/blog/woocommerce-sale-price-how-to-start-and-end-a-promotion-automatically/</link>
		
		<dc:creator><![CDATA[patrycja.wojas]]></dc:creator>
		<pubDate>Fri, 13 Nov 2026 07:12:45 +0000</pubDate>
				<category><![CDATA[WordPress tips & plugins]]></category>
		<category><![CDATA[Custom Price for WooCommerce PRO]]></category>
		<guid isPermaLink="false">https://wpdesk.net/?p=229067&#038;cf-nocache=1</guid>

					<description><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p>Setting sale prices by hand at midnight is the most expensive part of a seasonal promotion. The second is the Monday morning when somebody finds a discount that was never removed. Both can be avoided if the sale starts and ends on a schedule. How to schedule a sale price in WooCommerce Open the product,...</p>
<p><a href="https://wpdesk.net/blog/woocommerce-sale-price-how-to-start-and-end-a-promotion-automatically/">WooCommerce Sale Price: How to Start and End a Promotion Automatically</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p><strong>Setting sale prices by hand at midnight is the most expensive part of a seasonal promotion. The second is the Monday morning when somebody finds a discount that was never removed. Both can be avoided if the sale starts and ends on a schedule.</strong></p>
<h2>How to schedule a sale price in WooCommerce</h2>
<p>Open the product, enter the sale price in the General tab, click Schedule and set the from and to dates. WooCommerce applies the reduction on the first day and removes it after the last one, without anybody in the admin panel. The mechanism is built in and it works, but many stores do not use it.</p>
<p>The reason is that it is set per product. For a promotion covering eight products that is enough. For one covering the whole catalogue it means typing the dates four hundred times.</p>
<p>Bulk editing helps only partly. From the products list, WooCommerce can set a sale price for many selected products at once, but it cannot set the sale dates. As a result, many stores end up with a bulk-applied price and no scheduled end.</p>
<p>That missing end date is the most common problem. A promotion with a start and no end does not finish on its own. Somebody has to end it by hand, and with four hundred products it is easy to miss a few.</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter wp-image-229074 size-full" src="https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-21-20-39-woocommerce-buy-one-get-one-free-dynamic-pricing-plugin.png" alt="Discount rule settings in a WooCommerce dynamic pricing plugin" width="1149" height="616" srcset="https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-21-20-39-woocommerce-buy-one-get-one-free-dynamic-pricing-plugin.png 1149w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-21-20-39-woocommerce-buy-one-get-one-free-dynamic-pricing-plugin-369x198.png 369w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-21-20-39-woocommerce-buy-one-get-one-free-dynamic-pricing-plugin-684x367.png 684w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-21-20-39-woocommerce-buy-one-get-one-free-dynamic-pricing-plugin-119x64.png 119w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-21-20-39-woocommerce-buy-one-get-one-free-dynamic-pricing-plugin-260x139.png 260w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-21-20-39-woocommerce-buy-one-get-one-free-dynamic-pricing-plugin-712x382.png 712w" sizes="(max-width: 1149px) 100vw, 1149px" /></p>
<h2>Why scheduling matters more than convenience</h2>
<p>A scheduled sale starts when it was announced. A reduction advertised for midnight goes live at midnight, not when somebody wakes up, and customers waiting for it see the right price from the start. WooCommerce switches sale prices with a scheduled task, so on a site with very little traffic the change can come a little later, which is worth checking before the first promotion.</p>
<p>Scheduling does not solve the lowest-price obligation, though. If you sell to consumers in the EU, every announced reduction has to be shown with the lowest price from the 30 days before it. WooCommerce does not keep a price history: after a scheduled sale ends, its dates and sale price disappear from the product. A weekend sale in October still counts towards that lowest price, so you need a tool that records every price change, such as <a href="https://wpdesk.net/products/wp-desk-omnibus/">WP Desk Omnibus</a>.</p>
<h2>How to set it up so the promotion ends on its own</h2>
<p>Set the end date at the same time as the start date. The end date is the one that gets left blank, and it is the one that costs money, so treat both dates as a single decision.</p>
<p>Group the products before you set prices: by category, tag or an attribute you add for the promotion. With a rule-based discount plugin, a promotion defined for a group can be scheduled, changed and withdrawn in one step. A promotion set on four hundred separate products cannot.</p>
<p>Then test it on a copy of the store. Set the sale to end today and check after midnight what the store looks like when it is over. Our guide to <a href="https://wpdesk.net/blog/staging-for-woocommerce-how-to-safely-test-store-changes-before-customers-see-them/">staging for WooCommerce</a> shows how to set up that copy. It takes about an hour, and you find out about problems before your customers do.</p>
<div style="border-left: 6px solid #2563EB; background: #EFF6FF; border-radius: 10px; padding: 20px 24px; margin: 28px 0; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif; font-size: 17px; line-height: 1.65; color: #1b2a4a;">
<p style="margin: 0;">The built-in dates are per product, which is why catalogue-wide promotions end up manual. <a href="https://wpdesk.net/products/flexible-pricing-woocommerce/">Flexible Pricing</a> puts the start and end dates on the rule instead, so one schedule covers a whole category and one switch takes it down.</p>
</div>
<h2>Summary</h2>
<p>WooCommerce has a built-in sale schedule: in the General tab of each product you enter the sale price, click Schedule and set the from and to dates, and the reduction starts and ends without anybody in the admin panel. The dates are set per product, so with a large catalogue the method takes a lot of time. Bulk editing can set a sale price for many products at once, but not the dates, so promotions often end up without an end date and have to be switched off by hand. Scheduling makes a reduction start exactly when it was announced, but it does not record price history, which stores selling to EU consumers need to show the lowest price from the previous 30 days. To make a promotion end on its own, set the end date together with the start date, group products by category, tag or attribute and use a rule-based discount plugin for larger promotions, and test the end of the sale on a copy of the store.</p>
<h2>Frequently asked questions</h2>
<p>These questions come up when a store schedules its first promotion.</p>
<h3>What timezone do the sale dates use?</h3>
<p>The timezone set in WordPress under Settings, General, which is not always the one the store owner is in. Check it before scheduling anything that starts at midnight.</p>
<h3>Does the sale end at the start or the end of the to date?</h3>
<p>At the end of that day in the site timezone, so a sale set to finish on the 30th runs through the whole 30th. Check it on your own store before the promotion.</p>
<h3>What happens if I edit the price during a scheduled sale?</h3>
<p>Changing the sale price or the dates by hand during the promotion can change or remove the schedule. After every edit, open the product again and check that both dates are still set.</p>
<p><a href="https://wpdesk.net/blog/woocommerce-sale-price-how-to-start-and-end-a-promotion-automatically/">WooCommerce Sale Price: How to Start and End a Promotion Automatically</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WooCommerce Speed Optimization Before Black Friday: a Load Test You Can Run Yourself</title>
		<link>https://wpdesk.net/blog/woocommerce-speed-optimization-before-black-friday-a-load-test-you-can-run-yourself/</link>
		
		<dc:creator><![CDATA[patrycja.wojas]]></dc:creator>
		<pubDate>Thu, 12 Nov 2026 08:44:54 +0000</pubDate>
				<category><![CDATA[WordPress tips & plugins]]></category>
		<category><![CDATA[ommerce Speed Optimizatio]]></category>
		<guid isPermaLink="false">https://wpdesk.net/?p=229051&#038;cf-nocache=1</guid>

					<description><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p>Every store is fast when one person is browsing it. Before the season, few stores check what happens when two hundred people are shopping at once, and many find out at nine in the evening on Black Friday. How to test your store under load Send more traffic than you expect to a copy of...</p>
<p><a href="https://wpdesk.net/blog/woocommerce-speed-optimization-before-black-friday-a-load-test-you-can-run-yourself/">WooCommerce Speed Optimization Before Black Friday: a Load Test You Can Run Yourself</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p><strong>Every store is fast when one person is browsing it. Before the season, few stores check what happens when two hundred people are shopping at once, and many find out at nine in the evening on Black Friday.</strong></p>
<h2>How to test your store under load</h2>
<p>Send more traffic than you expect to a copy of the store, not to the live site, and watch where it slows down. The test does not have to be sophisticated, because the first bottleneck is usually obvious as soon as you measure anything. A load-testing tool such as k6 or Apache JMeter is enough, and it is worth telling your hosting provider before the test, because heavy traffic from one source can look like an attack.</p>
<p>Start with a target. Take the number of visitors from last year's busiest hour and double it. If the store handles that comfortably, you know your margin. If it does not, you have learned something you could not have guessed.</p>
<p>Then test the pages that matter, not the homepage. A load test on the homepage mostly measures your cache. The pages that fail under load are the ones that cannot be cached: the cart, the checkout, the customer account and the search results. Point the whole test at those four. Set the payment gateway to test mode, so the test does not create real payments.</p>
<p>Run the test on a copy with real product data. A test on an empty installation tells you little, because a catalogue of thirty products behaves differently from one of six thousand.</p>
<p><img decoding="async" class="size-medium wp-image-229053 aligncenter" src="https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-15-45-33-best-plugin-to-speed-up-woocommerce-checkout-flexible-options-369x202.png" alt="Flexible Checkout Fields options for simplifying the WooCommerce checkout" width="369" height="202" srcset="https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-15-45-33-best-plugin-to-speed-up-woocommerce-checkout-flexible-options-369x202.png 369w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-15-45-33-best-plugin-to-speed-up-woocommerce-checkout-flexible-options-684x374.png 684w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-15-45-33-best-plugin-to-speed-up-woocommerce-checkout-flexible-options-117x64.png 117w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-15-45-33-best-plugin-to-speed-up-woocommerce-checkout-flexible-options-260x142.png 260w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-15-45-33-best-plugin-to-speed-up-woocommerce-checkout-flexible-options-712x389.png 712w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-15-45-33-best-plugin-to-speed-up-woocommerce-checkout-flexible-options.png 1146w" sizes="(max-width: 369px) 100vw, 369px" /></p>
<h2>What usually breaks first</h2>
<p>Most often it is the database, not the web server. Cart and checkout requests cannot be served from the cache, so each one runs database queries, and plugins that add their own queries to every request are what turn a comfortable load into a problem.</p>
<p>Second come external services called during checkout. A shipping rate lookup, an address validator or a tax service adds its own response time to every order, and when that service is also busy on Black Friday, your customers wait longer.</p>
<p>Third is the admin panel. Three people refreshing the orders list compete for the same resources as the customers, and the orders list is one of the heaviest screens in WooCommerce.</p>
<h2>What to fix with the time you have</h2>
<p>Limit what runs on every request before you pay for a bigger server. A plugin that does work on the checkout page which could be done after the order is placed is usually the cheapest thing to fix and often gives the biggest gain.</p>
<p>Shorten the checkout. Fewer fields mean fewer validations and fewer chances to abandon the order, and fields that call external services, such as address autocomplete, also add requests. Our comparison of <a href="https://wpdesk.net/blog/best-plugin-speed-up-woocommerce-checkout/">plugins that speed up the WooCommerce checkout</a> shows how to simplify the form.</p>
<p>Decide in advance what gets switched off if the store slows down. A live chat widget, a recommendation engine or a review carousel is easy to disable on the night, as long as somebody has already decided which of them goes first.</p>
<div style="border-left: 6px solid #2563EB; background: #EFF6FF; border-radius: 10px; padding: 20px 24px; margin: 28px 0; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif; font-size: 17px; line-height: 1.65; color: #1b2a4a;">
<p style="margin: 0;">A shorter checkout helps twice: it has less to validate and gives customers fewer reasons to abandon the order. <a href="https://wpdesk.net/products/flexible-checkout-fields-pro-woocommerce/">Flexible Checkout Fields PRO</a> lets you remove, reorder and conditionally hide fields without editing a template.</p>
</div>
<h2>Summary</h2>
<p>A load test means sending more traffic than you expect to a copy of the store and watching where it slows down. A good target is double the number of visitors from last year's busiest hour. The test should cover the cart, the checkout, the customer account and search, because these pages cannot be cached, while a test on the homepage mostly measures the cache. It should run on real product data, with the payment gateway in test mode and the hosting provider informed. The database usually breaks first, then external services called during checkout, such as shipping rates or address validation, and then the admin panel, where the orders list competes for resources with customers. Before buying a bigger server, move work out of the checkout request, shorten the checkout form and decide in advance which widgets get switched off if the store slows down.</p>
<h2>Frequently asked questions</h2>
<h3>Will a caching plugin solve this?</h3>
<p>Only partly. Caching speeds up catalogue and product pages, but it does not help the cart and checkout, where most of the load lands during a sale.</p>
<h3>Is it worth upgrading hosting for one weekend?</h3>
<p>Often yes, and many hosting providers offer a temporary upgrade. Do it after the test, not instead of it, so you know what you are paying for.</p>
<h3>How late can a load test be run?</h3>
<p>Four weeks before the peak is comfortable, because the fixes take longer than the test. A week before, it is still worth running, because knowing where the limit is changes what you do on the night.</p>
<p><a href="https://wpdesk.net/blog/woocommerce-speed-optimization-before-black-friday-a-load-test-you-can-run-yourself/">WooCommerce Speed Optimization Before Black Friday: a Load Test You Can Run Yourself</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Import Dropshipping Products via FTP into WooCommerce Automatically</title>
		<link>https://wpdesk.net/blog/how-to-import-dropshipping-products-via-ftp-into-woocommerce-automatically/</link>
		
		<dc:creator><![CDATA[patrycja.wojas]]></dc:creator>
		<pubDate>Tue, 10 Nov 2026 13:49:39 +0000</pubDate>
				<category><![CDATA[WooCommerce import products]]></category>
		<category><![CDATA[dropshipping]]></category>
		<category><![CDATA[ftp import]]></category>
		<category><![CDATA[product import]]></category>
		<category><![CDATA[WooCommerce automation]]></category>
		<guid isPermaLink="false">https://wpdesk.net/?p=228427&#038;cf-nocache=1</guid>

					<description><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p>Many dropshipping suppliers do not publish a product file at a public address. They put it on an FTP server and overwrite it once or twice a day, often because their export process has worked that way for years. This guide shows how to import that file into WooCommerce automatically, what to check before you...</p>
<p><a href="https://wpdesk.net/blog/how-to-import-dropshipping-products-via-ftp-into-woocommerce-automatically/">How to Import Dropshipping Products via FTP into WooCommerce Automatically</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p><strong>Many dropshipping suppliers do not publish a product file at a public address. They put it on an FTP server and overwrite it once or twice a day, often because their export process has worked that way for years. This guide shows how to import that file into WooCommerce automatically, what to check before you automate anything and why the first full import needs a look at your server limits.</strong></p>
<h2>How to import dropshipping products from an FTP server into WooCommerce?</h2>
<p>Use the <a href="https://wpdesk.net/products/ftp-import-for-dropshipping-xml-woocommerce/">FTP Import add-on</a> for <a href="https://wpdesk.net/products/dropshipping-xml-woocommerce/">Dropshipping Import Products PRO</a>. It logs into the supplier's FTP or FTPS server with the details they give you, downloads the CSV or XML file and passes it to the regular import, on a schedule you set.</p>
<p>Get the full file address, login and password from the supplier, check the file structure once by hand, map the fields carefully and set the schedule to match the supplier's updates.</p>
<p>If your supplier publishes the file at a public web address, you do not need the add-on: Dropshipping Import Products PRO imports it from a URL with the same field mapping.</p>
<h2>What an automated FTP import does</h2>
<p>The store has current prices and stock levels without anyone opening an FTP client. The difference matters most for stock: a product that sold out at the wholesaler yesterday should not still be available in your store tonight.</p>
<p><img decoding="async" class="aligncenter wp-image-228450 size-full" src="https://wpdesk.net/wp-content/uploads/2026/11/screenshot-2026-10-07-at-20-11-23-docs-dropshipping-ftp-import-products-for-woocommerce-wp-desk.png" alt="Product import from an FTP server in Dropshipping Import Products for WooCommerce" width="715" height="387" srcset="https://wpdesk.net/wp-content/uploads/2026/11/screenshot-2026-10-07-at-20-11-23-docs-dropshipping-ftp-import-products-for-woocommerce-wp-desk.png 715w, https://wpdesk.net/wp-content/uploads/2026/11/screenshot-2026-10-07-at-20-11-23-docs-dropshipping-ftp-import-products-for-woocommerce-wp-desk-369x200.png 369w, https://wpdesk.net/wp-content/uploads/2026/11/screenshot-2026-10-07-at-20-11-23-docs-dropshipping-ftp-import-products-for-woocommerce-wp-desk-684x370.png 684w, https://wpdesk.net/wp-content/uploads/2026/11/screenshot-2026-10-07-at-20-11-23-docs-dropshipping-ftp-import-products-for-woocommerce-wp-desk-118x64.png 118w, https://wpdesk.net/wp-content/uploads/2026/11/screenshot-2026-10-07-at-20-11-23-docs-dropshipping-ftp-import-products-for-woocommerce-wp-desk-260x141.png 260w, https://wpdesk.net/wp-content/uploads/2026/11/screenshot-2026-10-07-at-20-11-23-docs-dropshipping-ftp-import-products-for-woocommerce-wp-desk-712x385.png 712w" sizes="(max-width: 715px) 100vw, 715px" /></p>
<h2>How to set it up</h2>
<p>The setup takes five steps.</p>
<h3>Step 1: Collect the connection details</h3>
<p>You need the full file address with the protocol, for example ftp:// or ftps://, the domain and the path to the file, as well as the login and password. The add-on works with FTP and FTPS servers. If the supplier offers only SFTP, ask them for FTP or FTPS access.</p>
<h3>Step 2: Check the file before automating anything</h3>
<p>Download the file once by hand and look at its structure: column names, character encoding, decimal separators and the field with the unique product identifier. Suppliers change these without notice, and that is the most common reason why a working import breaks.</p>
<h3>Step 3: Map the fields</h3>
<p>Map the SKU, name, price, stock quantity, category and images to WooCommerce fields. The identifier matters most, because it decides whether the next import updates an existing product or creates a duplicate.</p>
<figure><iframe loading="lazy" title="Dropshipping Import Products: the first import" src="https://www.youtube.com/embed/DclGIgBAGlg" width="560" height="315" allowfullscreen="allowfullscreen"></iframe><figcaption>In this video we point the plugin at a supplier file, choose the element that holds a single product and map it to WooCommerce fields. The same steps apply when the file comes from an FTP server instead of a URL.</figcaption></figure>
<p>We also have videos on <a href="https://www.youtube.com/watch?v=hqnhzQ-GJAk">mapping fields to WooCommerce</a>, <a href="https://www.youtube.com/watch?v=GiQZ_5nNtdo">updating stock and prices without overwriting your own descriptions</a> and <a href="https://www.youtube.com/watch?v=3uRj33BXu9Y">the first plugin configuration</a>.</p>
<h3>Step 4: Set the schedule</h3>
<p>Match the schedule to how often the supplier updates the file. Importing every hour from a file refreshed once a day wastes server resources, while importing once a day from a file refreshed every hour means selling products that ran out in the morning.</p>
<h3>Step 5: Check the server limits before the first full import</h3>
<p>Importing a catalogue with images puts a heavy load on the server. WP Desk telemetry data from 19,803 stores (August 2026) shows that 21.3% of them have less than 512 MB of PHP memory and 17.5% still run PHP 7.4. With such settings, a large first import can stop halfway and leave the catalogue partly updated. If that happens, check the error log: depending on the error, raise <code>max_execution_time</code> or the PHP memory limit.</p>
<h2>What to monitor afterwards</h2>
<p>After each run, check how many products were updated, how many were skipped and whether any field suddenly arrived empty. An import that has silently stopped updating stock looks exactly like one that works, until the first order for a product you no longer have.</p>
<p>To limit such orders, turn on stock management in WooCommerce and set the out of stock threshold in the inventory settings, so the store stops selling a product a little before the supplier runs out.</p>
<div style="background: linear-gradient(135deg,#1a2e22 0%,#234a33 100%); border-radius: 14px; padding: 32px; display: flex; flex-wrap: wrap; gap: 28px; align-items: center; justify-content: space-between; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif; margin: 32px 0;">
<div style="flex: 1 1 300px; min-width: 260px;">
<div style="color: #ffaa00; font-size: 12px; font-weight: bold; letter-spacing: 2px; margin-bottom: 10px;">DROPSHIPPING IMPORT PRODUCTS PRO</div>
<div style="color: #ffffff; font-size: 26px; line-height: 1.2; font-weight: bold; margin-bottom: 12px;">FTP Import add-on</div>
<div style="color: #cbdcd1; font-size: 16px; line-height: 1.5;">Connect to the supplier's FTP server, collect the product file and run the import on a schedule you set.</div>
</div>
<div style="flex: 0 0 auto;"><a style="display: inline-block; background: #ffaa00; color: #13223a; text-decoration: none; font-size: 16px; font-weight: bold; padding: 13px 26px; border-radius: 7px;" href="https://wpdesk.net/products/ftp-import-for-dropshipping-xml-woocommerce/">See the add-on »</a></div>
</div>
<h2>Summary</h2>
<p>The FTP Import add-on for Dropshipping Import Products PRO imports a supplier's CSV or XML file from an FTP or FTPS server into WooCommerce on a set schedule. You need the full file address with the protocol and path, the login and the password. Check the file structure once by hand, map the fields with the product identifier as the most important one and match the schedule to the supplier's updates. Before the first full import, check the PHP memory and execution time limits, and after each run monitor the number of updated and skipped products.</p>
<h2>Frequently asked questions</h2>
<p>Answers to common questions about FTP imports.</p>
<h3>Can WooCommerce import products from an FTP server automatically?</h3>
<p>Not on its own. WooCommerce has no FTP client, so it needs an import tool that can log into the server and run on a schedule.</p>
<h3>How often should the import run?</h3>
<p>As often as the supplier updates the file, and no more often. If you import many products with images, consider updating only stock and prices in each run and leaving descriptions unchanged.</p>
<h3>What happens if the supplier changes the file structure?</h3>
<p>The import stops or writes wrong data, so watch for a sudden change in the number of updated products.</p>
<h3>Should I use FTP or FTPS?</h3>
<p>If the supplier offers both, choose FTPS. Plain FTP sends the login and password unencrypted, while FTPS encrypts the connection. The add-on supports both protocols.</p>
<p><a href="https://wpdesk.net/blog/how-to-import-dropshipping-products-via-ftp-into-woocommerce-automatically/">How to Import Dropshipping Products via FTP into WooCommerce Automatically</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The Omnibus Directive and Black Friday: Showing the Lowest Price From the Last 30 Days</title>
		<link>https://wpdesk.net/blog/the-omnibus-directive-and-black-friday-showing-the-lowest-price-from-the-last-30-days/</link>
		
		<dc:creator><![CDATA[patrycja.wojas]]></dc:creator>
		<pubDate>Sun, 08 Nov 2026 13:18:00 +0000</pubDate>
				<category><![CDATA[WordPress tips & plugins]]></category>
		<category><![CDATA[omnibus]]></category>
		<guid isPermaLink="false">https://wpdesk.net/?p=229043&#038;cf-nocache=1</guid>

					<description><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p>Every price reduction a store in the EU announces to consumers has to be shown together with the lowest price from the 30 days before it. This is not the regular price, the recommended retail price or the price from July, but the lowest price from the last 30 days, and the store has to...</p>
<p><a href="https://wpdesk.net/blog/the-omnibus-directive-and-black-friday-showing-the-lowest-price-from-the-last-30-days/">The Omnibus Directive and Black Friday: Showing the Lowest Price From the Last 30 Days</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p><strong>Every price reduction a store in the EU announces to consumers has to be shown together with the lowest price from the 30 days before it. This is not the regular price, the recommended retail price or the price from July, but the lowest price from the last 30 days, and the store has to be able to show where that figure comes from.</strong></p>
<h2>What the rule actually requires</h2>
<p>Every announcement of a price reduction has to state the prior price, and the prior price is the lowest price the store applied during at least the 30 days before the reduction. Many stores get this definition wrong, because the intuitive reading is the regular price, while the law means the lowest one.</p>
<p>Take a product that costs 100, is reduced to 80 for a weekend in early November and then goes back to 100. In late November it cannot be advertised as reduced from 100. The reference price is 80, so a Black Friday price of 70 is a discount of 12.5%, not 30%. In 2024 the Court of Justice of the EU confirmed in the Aldi Süd case (C-330/23) that the percentage and the crossed-out price have to refer to that lowest price.</p>
<p>The rule applies to every announcement of a reduction: on the product page, in the category listing, on a banner, in a newsletter and in advertising. The channel does not change the obligation, and neither does the size of the store. The rule comes from an EU directive, so it applies in every member state, in Poland since 1 January 2023. Some details, such as exceptions for new or perishable products, differ between countries, so check the rules in the countries where you sell.</p>
<p><img loading="lazy" decoding="async" class="size-medium wp-image-229044 aligncenter" src="https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-14-19-29-comply-with-omnibus-directive-in-woocommerce-wp-plugin-369x253.png" alt="WP Desk Omnibus plugin helping a WooCommerce store comply with the Omnibus Directive" width="369" height="253" srcset="https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-14-19-29-comply-with-omnibus-directive-in-woocommerce-wp-plugin-369x253.png 369w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-14-19-29-comply-with-omnibus-directive-in-woocommerce-wp-plugin-93x64.png 93w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-14-19-29-comply-with-omnibus-directive-in-woocommerce-wp-plugin-260x178.png 260w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-14-19-29-comply-with-omnibus-directive-in-woocommerce-wp-plugin.png 676w" sizes="auto, (max-width: 369px) 100vw, 369px" /></p>
<h2>Why the rule matters most in November</h2>
<p>The 30-day window before Black Friday covers the promotions a store ran in late October and early November, and that is when many stores test their seasonal prices.</p>
<p>A short discount in that period lowers the reference price for Black Friday, which is the opposite of what the store wanted. Testing prices before the season therefore has a cost: a smaller discount you can announce on the most important day of the year.</p>
<p>There is a second reason. The obligation requires data the store may not have. The price history has to exist before the promotion starts, and a store that begins recording prices in late November has no data for the period the rule refers to.</p>
<div style="background: linear-gradient(135deg,#352E4F 0%,#4B3F6E 100%); border-radius: 14px; padding: 32px; display: flex; flex-wrap: wrap; gap: 28px; align-items: center; justify-content: space-between; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif; margin: 32px 0;">
<div style="flex: 1 1 300px; min-width: 260px;">
<div style="color: #fcac04; font-size: 12px; font-weight: bold; letter-spacing: 2px; margin-bottom: 10px;">NEW FROM WP DESK</div>
<div style="color: #ffffff; font-size: 26px; line-height: 1.2; font-weight: bold; margin-bottom: 12px;">Commerce Legal: legal documents for your WooCommerce store</div>
<div style="color: #e4e0ef; font-size: 16px; line-height: 1.5;">Terms and conditions, privacy policy and return policy generated automatically and updated when the law changes. Start with the free plugin and send your documents for a lawyer's review when you need it.</div>
</div>
<div style="flex: 0 0 auto;"><a style="display: inline-block; background: #FCAC04; color: #352e4f; text-decoration: none; font-size: 16px; font-weight: bold; padding: 13px 26px; border-radius: 7px;" href="https://commerce.legal/">See Commerce Legal »</a></div>
</div>
<h2>What this means for how you plan the promotion</h2>
<p>Plan the pre-season prices with Black Friday in mind. If a product is going into the Black Friday offer, keeping it at the regular price for the 30 days before the sale protects the reference price.</p>
<p>Record the price history automatically instead of keeping a spreadsheet. To show the lowest price, you need to know every price the product has had, including scheduled sales that started and ended without anybody watching.</p>
<p>Show the lowest price wherever the reduction is announced, not on a separate page. The obligation applies to the announcement itself, so a note that appears only in the cart does not cover a category page advertising 30% off. You can read more about compliance in our article on <a href="https://wpdesk.net/blog/a-new-legal-requirement-for-every-online-store-in-the-eu/">the new legal requirement for every online store in the EU</a>.</p>
<div style="border-left: 6px solid #2563EB; background: #EFF6FF; border-radius: 10px; padding: 20px 24px; margin: 28px 0; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif; font-size: 17px; line-height: 1.65; color: #1b2a4a;">
<p style="margin: 0;">The thirty-day history has to be recorded before the promotion, which is the part a spreadsheet cannot do. <a href="https://wpdesk.net/products/wp-desk-omnibus/">WP Desk Omnibus</a> tracks every change to regular and sale prices from the moment it is activated, including scheduled sales, and shows the lowest figure on the product page, in listings and in the cart.</p>
</div>
<h2>Summary</h2>
<p>A store selling to consumers in the EU has to show the prior price with every announced reduction, and the prior price is the lowest price applied during at least the 30 days before the reduction, not the regular price. A product at 100, reduced to 80 for a weekend in early November and then restored, has a reference price of 80, so a Black Friday price of 70 is a 12.5% discount, not 30%. The CJEU confirmed in case C-330/23 that the percentage and the crossed-out price refer to that lowest price. The rule covers the product page, listings, banners, newsletters and advertising, applies in all EU countries (in Poland since 1 January 2023) and has country-specific exceptions. It matters most before Black Friday, because discounts from the previous 30 days lower the reference price. Keep products planned for Black Friday at the regular price for 30 days before the sale, record the price history automatically and show the lowest price wherever the reduction appears.</p>
<h2>Frequently asked questions</h2>
<p>These three questions come up before every seasonal promotion.</p>
<h3>Does the rule apply to a brand new product?</h3>
<p>Yes, but with an exception that depends on the country. In Poland, for a product sold for less than 30 days, you show the lowest price from the day you started selling it. In other EU countries the rules may differ.</p>
<h3>What about progressive discounts in one campaign?</h3>
<p>It depends on the member state. Some countries allow the price from before the first reduction to stay as the reference when the discount grows in stages during one campaign. Check the rules in each country where you sell.</p>
<h3>Do variations each need their own lowest price?</h3>
<p>Yes, if the variations have different prices, because the reduction is announced for each of them. A single figure for all variations understates the lowest price for some and overstates it for others.</p>
<p><a href="https://wpdesk.net/blog/the-omnibus-directive-and-black-friday-showing-the-lowest-price-from-the-last-30-days/">The Omnibus Directive and Black Friday: Showing the Lowest Price From the Last 30 Days</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Nulled Plugins Before Black Friday: the Cheapest Way to Lose a Season</title>
		<link>https://wpdesk.net/blog/nulled-plugins-before-black-friday-the-cheapest-way-to-lose-a-season/</link>
		
		<dc:creator><![CDATA[patrycja.wojas]]></dc:creator>
		<pubDate>Sun, 08 Nov 2026 10:20:05 +0000</pubDate>
				<category><![CDATA[WordPress tips & plugins]]></category>
		<category><![CDATA[wordpress-plugins]]></category>
		<guid isPermaLink="false">https://wpdesk.net/?p=229046&#038;cf-nocache=1</guid>

					<description><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p>A nulled plugin is a paid plugin with its licence check removed, distributed for free. It installs, it activates and for a while it works. The problem is not that it stops working, but what else was added to it along the way. What you are actually installing Somebody took a paid plugin, found the...</p>
<p><a href="https://wpdesk.net/blog/nulled-plugins-before-black-friday-the-cheapest-way-to-lose-a-season/">Nulled Plugins Before Black Friday: the Cheapest Way to Lose a Season</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p><strong>A nulled plugin is a paid plugin with its licence check removed, distributed for free. It installs, it activates and for a while it works. The problem is not that it stops working, but what else was added to it along the way.</strong></p>
<h2>What you are actually installing</h2>
<p>Somebody took a paid plugin, found the code that checks the licence, removed it and uploaded the result. That is the part they advertise. What they do not advertise is that the same person had full access to every other file in the package and no reason to stop at the licence check.</p>
<p>The most common addition is a backdoor: a small piece of code that lets the uploader run commands on your server later. It does not reveal itself, does not break anything and can stay inactive for weeks. When it is finally used, it typically injects spam links into your pages, redirects part of your traffic or steals card details entered at checkout.</p>
<p>Even a nulled plugin without any added code is a risk, because it receives no updates, including security fixes. A payment or checkout plugin stuck at the version it was copied from will sooner or later stop working with a new WooCommerce release.</p>
<h2>Why Black Friday is when it surfaces</h2>
<p>During the season, the store handles far more orders than usual, and that volume turns a hidden problem into a visible one.</p>
<p>A card skimmer on a checkout that takes four orders a day collects four card numbers, and nobody notices. The same skimmer on a checkout that takes four hundred orders collects enough for card networks to spot the pattern. Often the first sign for the store is a letter from its payment provider, and it arrives after the busy weekend, not during it.</p>
<p>The second reason is that in November many stores update WordPress and WooCommerce in a hurry, and an unmaintained plugin is exactly what breaks after a rushed update.</p>
<h2>What to do this week</h2>
<p>Open the plugin list and check every entry. Treat anything you cannot trace to a purchase, the WordPress.org repository or your own developer as unknown, not as safe. The test is not whether it works, but whether you know where it came from.</p>
<p>Removing a nulled plugin does not remove the problem, because by the time anybody looks, the backdoor often sits outside the plugin folder. A store that has used one needs a security scan. If the scan finds anything, restore the store from a backup made before the plugin was installed, then change all admin passwords and the WordPress security keys.</p>
<p>Install anything new on a <a href="https://wpdesk.net/blog/staging-for-woocommerce-how-to-safely-test-store-changes-before-customers-see-them/">staging copy</a> first. This applies to legitimate plugins as well, and it is the habit that most often saves a store from discovering a bad update on the busiest day of the year.</p>
<div style="border-left: 6px solid #2563EB; background: #EFF6FF; border-radius: 10px; padding: 20px 24px; margin: 28px 0; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif; font-size: 17px; line-height: 1.65; color: #1b2a4a;">
<p style="margin: 0;">The usual reason stores reach for a nulled copy is the cost of buying five plugins separately. The <a href="https://wpdesk.net/products/all-plugins-bundle-1-site/">All Plugins Bundle</a> puts the whole catalogue on one licence for one site, which is generally less than three plugins bought individually, with updates and support attached.</p>
</div>
<h2>Summary</h2>
<p>A nulled plugin is a paid plugin with its licence check removed and distributed for free. Whoever removed the check had access to every file in the package, and the most common addition is a backdoor that lets them run commands on your server later, usually to inject spam links, redirect traffic or steal card details at checkout. Even without added code, a nulled plugin gets no updates or security fixes, so sooner or later it stops working with a new WooCommerce version. The problems usually come out during Black Friday: with hundreds of orders a day, card networks notice a skimmer, and the store learns about it from its payment provider after the weekend. Rushed November updates also break unmaintained plugins. Check where every installed plugin came from, and remember that deleting a nulled plugin does not remove a backdoor. A store that used one needs a security scan and, if anything is found, a restore from a backup made before the installation, followed by new passwords and security keys.</p>
<h2>Frequently asked questions</h2>
<h3>Are all nulled plugins infected?</h3>
<p>No, and that is what keeps the practice alive. But many are, and you cannot tell which ones just by looking at them.</p>
<h3>Can an antivirus scan prove the store is clean?</h3>
<p>A scan finds known patterns of malicious code, so it is worth running. It cannot prove that nothing is there, so a store that knowingly used a nulled plugin is safer restoring a clean backup than relying on a scan alone.</p>
<h3>What about a plugin whose licence simply expired?</h3>
<p>That is a different situation. The code is legitimate and unchanged. The plugin keeps working but stops receiving updates and support, and renewing the licence gives you access to the current version again.</p>
<p><a href="https://wpdesk.net/blog/nulled-plugins-before-black-friday-the-cheapest-way-to-lose-a-season/">Nulled Plugins Before Black Friday: the Cheapest Way to Lose a Season</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Connect WooCommerce Subscriptions to External Systems via API</title>
		<link>https://wpdesk.net/blog/how-to-connect-woocommerce-subscriptions-to-external-systems-via-api/</link>
		
		<dc:creator><![CDATA[patrycja.wojas]]></dc:creator>
		<pubDate>Wed, 04 Nov 2026 13:49:21 +0000</pubDate>
				<category><![CDATA[Subscriptions for WooCommerce]]></category>
		<category><![CDATA[api integration]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[crm]]></category>
		<category><![CDATA[woocommerce subscriptions]]></category>
		<guid isPermaLink="false">https://wpdesk.net/?p=228425&#038;cf-nocache=1</guid>

					<description><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p>A subscription store sends the same data to several systems every month, and copying it by hand stops working long before the store gets big. This guide covers how to connect WooCommerce subscriptions to other systems, what to settle before the first API call and how to notice when the integration stops working. How do...</p>
<p><a href="https://wpdesk.net/blog/how-to-connect-woocommerce-subscriptions-to-external-systems-via-api/">How to Connect WooCommerce Subscriptions to External Systems via API</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p><strong>A subscription store sends the same data to several systems every month, and copying it by hand stops working long before the store gets big. This guide covers how to connect WooCommerce subscriptions to other systems, what to settle before the first API call and how to notice when the integration stops working.</strong></p>
<h2>How do you connect WooCommerce subscriptions to an external system?</h2>
<p>Use the <a href="https://www.wpdesk.net/products/flexible-subscriptions-api/">API Integration add-on</a> for <a href="https://www.wpdesk.net/products/flexible-subscriptions/">Flexible Subscriptions</a>. It makes subscription data available as JSON, so accounting software, a CRM, a warehouse system or a reporting tool can request it on its own schedule.</p>
<p>Start with one-way reads, where the external system asks and the store answers. Before the first call, agree on which field links a subscription in WooCommerce to the customer record in your CRM and in your accounting software, and decide who holds the API keys. Then set up an alert for failed calls.</p>
<h2>What the API Integration add-on gives you</h2>
<p>Copying subscription data by hand works for twenty subscriptions, but at two hundred it becomes a weekly job. With an API, nobody prepares an export: the other system sends a request and receives JSON with the data it needs. The main difference is timing: an export is a snapshot, outdated when it lands in someone's inbox, while an API call returns the current state, including a subscription cancelled an hour ago.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-228447 size-full" src="https://wpdesk.net/wp-content/uploads/2026/11/screenshot-2026-10-07-at-20-03-50-flexible-subscriptions-api-integration-for-woocommerce.png" alt="Subscription data returned as JSON by the Flexible Subscriptions API Integration add-on" width="1158" height="551" srcset="https://wpdesk.net/wp-content/uploads/2026/11/screenshot-2026-10-07-at-20-03-50-flexible-subscriptions-api-integration-for-woocommerce.png 1158w, https://wpdesk.net/wp-content/uploads/2026/11/screenshot-2026-10-07-at-20-03-50-flexible-subscriptions-api-integration-for-woocommerce-369x176.png 369w, https://wpdesk.net/wp-content/uploads/2026/11/screenshot-2026-10-07-at-20-03-50-flexible-subscriptions-api-integration-for-woocommerce-684x325.png 684w, https://wpdesk.net/wp-content/uploads/2026/11/screenshot-2026-10-07-at-20-03-50-flexible-subscriptions-api-integration-for-woocommerce-125x59.png 125w, https://wpdesk.net/wp-content/uploads/2026/11/screenshot-2026-10-07-at-20-03-50-flexible-subscriptions-api-integration-for-woocommerce-260x124.png 260w, https://wpdesk.net/wp-content/uploads/2026/11/screenshot-2026-10-07-at-20-03-50-flexible-subscriptions-api-integration-for-woocommerce-712x339.png 712w" sizes="auto, (max-width: 1158px) 100vw, 1158px" /></p>
<h2>What stores usually connect</h2>
<p>Most integrations serve four areas.</p>
<h3>Accounting and invoicing</h3>
<p>When subscription and renewal data reaches the accounting system automatically, nobody has to match renewals with invoices by hand at the end of every month.</p>
<h3>CRM and customer support</h3>
<p>Support agents work faster when the subscription status, the next renewal date and the payment history are on the same screen as the conversation. They will not tell a customer that a subscription is active when that morning's renewal payment has failed.</p>
<p>Fewer renewals fail with the <a href="https://www.wpdesk.net/products/flexible-subscriptions-payment-retry/">Payment Retry add-on</a>, which automatically retries renewal payments that did not go through.</p>
<h3>Fulfilment and warehouse systems</h3>
<p>For physical subscriptions, the warehouse needs tomorrow's delivery list, built from current data, without cancelled or inactive subscriptions.</p>
<p>If this list is the main reason for the integration, add the <a href="https://www.wpdesk.net/products/flexible-subscriptions-stock-management/">Stock Management add-on</a>, which checks stock levels before a renewal, so the list does not include products you cannot ship.</p>
<h3>Analytics and reporting</h3>
<p>Churn, lifetime value and renewal rates are hard to calculate in the store admin and become standard reports once the data reaches a reporting tool.</p>
<h2>What to settle before you start</h2>
<p>Four decisions save the most rework later.</p>
<h3>Check whether your store already uses the REST API</h3>
<p>WP Desk telemetry data from 19,803 WooCommerce stores (August 2026) shows that 18.1% of them have the REST API active. If your store is in the remaining 81.9%, the project starts with access management: creating API keys, setting their permissions and writing down who holds them.</p>
<h3>Decide the direction of the data flow</h3>
<p>Start with one-way reads. Two-way sync, where another tool can change a subscription, needs clear rules on which system wins when the data differs.</p>
<h3>Agree on identifiers</h3>
<p>The subscription ID in WooCommerce, the customer ID in the CRM and the customer account number in accounting are rarely the same. Decide early which field links them, or every report will need manual matching.</p>
<h3>Plan for failure</h3>
<p>An integration that stops without warning is worse than none, because people keep trusting the data. Set up an alert that tells a named person when API calls start failing.</p>
<div style="background: linear-gradient(135deg,#132032 0%,#1d3350 100%); border-radius: 14px; padding: 32px; display: flex; flex-wrap: wrap; gap: 28px; align-items: center; justify-content: space-between; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif; margin: 32px 0;">
<div style="flex: 1 1 300px; min-width: 260px;">
<div style="color: #ffaa00; font-size: 12px; font-weight: bold; letter-spacing: 2px; margin-bottom: 10px;">FLEXIBLE SUBSCRIPTIONS</div>
<div style="color: #ffffff; font-size: 26px; line-height: 1.2; font-weight: bold; margin-bottom: 12px;">API Integration add-on</div>
<div style="color: #cfd8e6; font-size: 16px; line-height: 1.5;">Expose subscription data to your CRM, accounting or warehouse system instead of exporting it by hand.</div>
</div>
<div style="flex: 0 0 auto;"><a style="display: inline-block; background: #ffaa00; color: #13223a; text-decoration: none; font-size: 16px; font-weight: bold; padding: 13px 26px; border-radius: 7px;" href="https://www.wpdesk.net/products/flexible-subscriptions-api/">See the add-on »</a></div>
</div>
<h2>Summary</h2>
<p>WooCommerce subscriptions connect to accounting, a CRM, a warehouse system or a reporting tool through the API Integration add-on for Flexible Subscriptions, which returns current subscription data as JSON instead of an outdated export. Stores use it for renewal data in accounting, subscription status for support, daily delivery lists and churn reports. Only 18.1% of WooCommerce stores have the REST API active (WP Desk telemetry, August 2026), so most projects start with API keys and permissions. Start with one-way reads, agree on the field that links your systems and set up an alert for failed calls.</p>
<h2>Frequently asked questions</h2>
<h3>Do I need a developer to connect subscriptions to another system?</h3>
<p>For a one-way read into a reporting tool, often not. For two-way sync with accounting, yes, including maintenance.</p>
<h3>Is the standard WooCommerce REST API enough?</h3>
<p>It covers orders, products and customers, but subscription data needs an endpoint that understands subscriptions: billing cycles, next renewal dates and subscription status. That is what the add-on provides.</p>
<h3>What about personal data in an API integration?</h3>
<p>Subscription records contain customer data, so the same data protection, retention and access rules apply to the integration as to the store itself. Document who holds the API keys and what permissions they carry.</p>
<h3>Does the API Integration add-on work on its own?</h3>
<p>No. It is an add-on, so it requires the Flexible Subscriptions plugin installed in the store.</p>
<p><a href="https://wpdesk.net/blog/how-to-connect-woocommerce-subscriptions-to-external-systems-via-api/">How to Connect WooCommerce Subscriptions to External Systems via API</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WooCommerce Black Friday: a Five-Week Preparation Checklist</title>
		<link>https://wpdesk.net/blog/woocommerce-black-friday-a-five-week-preparation-checklist/</link>
		
		<dc:creator><![CDATA[patrycja.wojas]]></dc:creator>
		<pubDate>Wed, 04 Nov 2026 10:59:56 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[black friday]]></category>
		<guid isPermaLink="false">https://wpdesk.net/?p=229028&#038;cf-nocache=1</guid>

					<description><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p>Black Friday falls on 27 November 2026, which leaves five weeks. That is enough time to prepare a store properly and not enough to start in the last fortnight, which is when most shops begin and why most of them spend the weekend firefighting instead of selling. What to do in each of the five...</p>
<p><a href="https://wpdesk.net/blog/woocommerce-black-friday-a-five-week-preparation-checklist/">WooCommerce Black Friday: a Five-Week Preparation Checklist</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p><strong>Black Friday falls on 27 November 2026, which leaves five weeks. That is enough time to prepare a store properly and not enough to start in the last fortnight, which is when most shops begin and why most of them spend the weekend firefighting instead of selling.</strong></p>
<h2>What to do in each of the five weeks</h2>
<p>Work backwards from the date, because the order matters more than the list. Anything that touches prices has to be settled first, anything that touches infrastructure second, and anything that touches copy last.</p>
<p>Five weeks out, settle the offer and the legal side. Decide what is discounted, by how much, and confirm your price history is being recorded, because the lowest-price rule applies to the whole promotion and cannot be fixed retrospectively.</p>
<p>Four weeks out, test the store under load and audit the plugins. Both are infrastructure questions, both take time to fix, and neither can be done on the day.</p>
<p>Three weeks out, set up the discounts themselves and schedule them, so nothing depends on somebody being at a keyboard at midnight. Two weeks out, prepare checkout and fulfilment, which means the fields customers fill in and the labels you print afterwards.</p>
<p>The last week is for copy, emails and the things you will want to change twice. Leave it empty of anything structural.</p>
<h2>The three things that go wrong</h2>
<p>Prices announced before the history exists. A store that starts recording its price history the week it launches the promotion has no thirty-day history to show, and the discount is either unlawful or has to be presented against a reference price that makes it look smaller than it is.</p>
<p>A plugin stack nobody checked. The season is when stores discover that a plugin they stopped paying for is two years behind, and the discovery usually arrives as a checkout that fails for some customers and not others.</p>
<p>And manual promotions. A sale price typed in by hand on the Thursday is a sale price somebody has to remove by hand on the Monday, and the one that gets forgotten is always the highest-margin product in the catalogue.</p>
<p><!-- ZRZUT 1: kalendarz lub tabela z pieciotygodniowym harmonogramem przygotowan. Alt: Five-week WooCommerce Black Friday preparation timeline --></p>
<h2>What is worth skipping</h2>
<p>A redesign. Whatever is wrong with the shop in October will still be wrong in December, and the week before a peak is the worst possible moment to change a layout that currently converts.</p>
<p>New plugins you have not run before. Anything installed in the last fortnight has not been through a full order cycle on your data, and Black Friday is not the week to find out what it does under load. If you do need something new, install it now and run it for three weeks first, ideally on a <a href="https://wpdesk.net/blog/staging-for-woocommerce-how-to-safely-test-store-changes-before-customers-see-them/">staging copy of the store</a>.</p>
<p>Also worth skipping is the all-day countdown banner. It costs page speed, it annoys the customers who were going to buy anyway, and the stores that measure it rarely keep it the following year.</p>
<div style="border-left: 6px solid #2563EB; background: #EFF6FF; border-radius: 10px; padding: 20px 24px; margin: 28px 0; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif; font-size: 17px; line-height: 1.65; color: #1b2a4a;">
<p style="margin: 0;">Most of the five weeks above comes down to four or five plugins doing their part on schedule. The <a href="https://wpdesk.net/products/all-plugins-bundle-1-site/">All Plugins Bundle</a> covers pricing, checkout, returns and analytics on one licence, which is usually cheaper than buying them separately in the week they turn out to be needed.</p>
</div>
<h2>Summary</h2>
<p>Five weeks before 27 November is the right moment to start, and the order of the work matters more than the list. Week five settles the offer and the legal position, including confirming that price history is being recorded, because the lowest-price rule covers the whole promotion and cannot be applied after the fact. Week four is infrastructure: a load test and a plugin audit, both of which take time to fix. Week three sets up and schedules the discounts so nothing depends on somebody being awake. Week two covers checkout and fulfilment. The final week is copy and email, with nothing structural in it.</p>
<p>Three failures recur. Announcing prices before the history exists, which leaves the discount either unlawful or presented against a reference price that understates it. An unaudited plugin stack, where a licence that lapsed two years ago surfaces as a checkout failing for some customers. And manual promotions, where a price typed in on Thursday has to be removed by hand on Monday and the one forgotten is always the highest-margin product. Three things are worth skipping outright: a redesign, any plugin you have not already run for three weeks, and the countdown banner.</p>
<h2>Frequently asked questions</h2>
<p>These three come up every October.</p>
<h3>Is five weeks really necessary?</h3>
<p>For the price history, yes, because thirty days is the reference period itself. The rest can be compressed, though compressing the load test is how stores find out about a problem on the day.</p>
<h3>Should the sale start before Friday?</h3>
<p>Many stores now run the whole week, and the data generally supports it. What matters more is that the start and end are scheduled rather than manual.</p>
<h3>What should be ready on the day itself?</h3>
<p>Nothing. If anything still needs doing on the Friday, it was scheduled too late, and the day should be spent watching orders rather than editing products.</p>
<p><a href="https://wpdesk.net/blog/woocommerce-black-friday-a-five-week-preparation-checklist/">WooCommerce Black Friday: a Five-Week Preparation Checklist</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Recurring Shipping for WooCommerce Subscriptions: How to Charge for Delivery Every Cycle</title>
		<link>https://wpdesk.net/blog/recurring-shipping-for-woocommerce-subscriptions-how-to-charge-for-delivery-every-cycle/</link>
		
		<dc:creator><![CDATA[patrycja.wojas]]></dc:creator>
		<pubDate>Sat, 31 Oct 2026 13:49:05 +0000</pubDate>
				<category><![CDATA[Subscriptions for WooCommerce]]></category>
		<category><![CDATA[recurring shipping]]></category>
		<category><![CDATA[shipping cost]]></category>
		<category><![CDATA[subscription boxes]]></category>
		<category><![CDATA[woocommerce subscriptions]]></category>
		<guid isPermaLink="false">https://wpdesk.net/?p=228423&#038;cf-nocache=1</guid>

					<description><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p>To charge shipping on every WooCommerce subscription renewal, add the Recurring Shipping add-on for Flexible Subscriptions and give delivery its own schedule, separate from the billing cycle. That separation is the whole point: a quarterly payment can cover three monthly shipments, so the shipping cost has to reflect three deliveries rather than one. This guide...</p>
<p><a href="https://wpdesk.net/blog/recurring-shipping-for-woocommerce-subscriptions-how-to-charge-for-delivery-every-cycle/">Recurring Shipping for WooCommerce Subscriptions: How to Charge for Delivery Every Cycle</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p><strong>To charge shipping on every WooCommerce subscription renewal, add the Recurring Shipping add-on for Flexible Subscriptions and give delivery its own schedule, separate from the billing cycle. That separation is the whole point: a quarterly payment can cover three monthly shipments, so the shipping cost has to reflect three deliveries rather than one. This guide explains how to work out your real cost per shipment, whether to show delivery as a separate line or build it into the price, and how to handle the courier increase that arrives at least once a year.</strong></p>
<h2>Shipping charged once, paid every month</h2>
<p>A subscription for a physical product has a cost the store pays again with every delivery, and many setups collect it only once, at the first order.</p>
<p>On a twelve-month subscription with monthly shipments, that difference turns a healthy margin into a loss. The customer is not being generous and you are not being competitive. The shipping cost simply never made it into the recurring charge.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-228445 size-full" src="https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-20-00-00-flexible-subscriptions-recurring-shipping-wp-desk.png" alt="" width="1009" height="558" srcset="https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-20-00-00-flexible-subscriptions-recurring-shipping-wp-desk.png 1009w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-20-00-00-flexible-subscriptions-recurring-shipping-wp-desk-369x204.png 369w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-20-00-00-flexible-subscriptions-recurring-shipping-wp-desk-684x378.png 684w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-20-00-00-flexible-subscriptions-recurring-shipping-wp-desk-116x64.png 116w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-20-00-00-flexible-subscriptions-recurring-shipping-wp-desk-260x144.png 260w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-20-00-00-flexible-subscriptions-recurring-shipping-wp-desk-712x394.png 712w" sizes="auto, (max-width: 1009px) 100vw, 1009px" /></p>
<h2>Why delivery and billing are two different schedules</h2>
<p>It is tempting to treat them as one, but they diverge as soon as the product structure gets interesting.</p>
<p>A customer may pay quarterly and receive monthly, which means one charge covering three deliveries. Another may pay monthly and receive every second month. A third may order a bulk size that ships once per cycle while a smaller one ships twice.</p>
<p>Different sizes shipping at different frequencies is also an argument for subscriptions on selected variations, so the bulk pack can stay a one-time purchase.</p>
<p>Treating shipping as a property of the billing cycle breaks in each of those cases. The <a href="https://www.wpdesk.net/products/flexible-subscriptions-recurring-shipping/">Recurring Shipping add-on</a> for <a href="https://www.wpdesk.net/products/flexible-subscriptions/">Flexible Subscriptions</a> exists precisely to manage delivery separately from billing.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-228444 size-full" src="https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-20-00-10-flexible-subscriptions-recurring-shipping-wp-desk.png" alt="" width="1410" height="484" srcset="https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-20-00-10-flexible-subscriptions-recurring-shipping-wp-desk.png 1410w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-20-00-10-flexible-subscriptions-recurring-shipping-wp-desk-369x127.png 369w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-20-00-10-flexible-subscriptions-recurring-shipping-wp-desk-684x235.png 684w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-20-00-10-flexible-subscriptions-recurring-shipping-wp-desk-125x43.png 125w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-20-00-10-flexible-subscriptions-recurring-shipping-wp-desk-260x89.png 260w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-20-00-10-flexible-subscriptions-recurring-shipping-wp-desk-712x244.png 712w" sizes="auto, (max-width: 1410px) 100vw, 1410px" /></p>
<h2>How to set recurring shipping up</h2>
<h3>Step 1: Work out your real cost per delivery</h3>
<p>Not the courier's list price. Packaging, labels, the time somebody spends packing, and the share of deliveries that fail on the first attempt and go out again. Subscription boxes are often packed in batches, which lowers the per-unit cost, so measure rather than assume.</p>
<h3>Step 2: Decide whether shipping is visible or built into the price</h3>
<p>Two defensible options. Charge shipping as a separate recurring line, which is transparent and easy to adjust when courier rates change. Or build it into the subscription price and advertise free delivery, which converts better but hides your exposure when rates rise.</p>
<h3>Step 3: Match the shipping schedule to the delivery schedule</h3>
<p>This is the setting that actually saves money. If a quarterly payment covers three shipments, the shipping cost has to reflect three, not one.</p>
<h3>Step 4: Plan for rate changes</h3>
<p>Courier prices change at least once a year. Decide in advance how you will communicate an increase, and whether existing subscribers keep the old rate for a period. Changing a recurring charge without warning is the fastest way to a wave of cancellations.</p>
<p>Announce the increase in the pre-renewal reminder rather than in a separate campaign. It is the one subscription email customers reliably open.</p>
<h2>Combining with stock control</h2>
<p>Recurring shipping and stock management solve two halves of the same problem. One ensures the delivery is paid for, the other ensures there is something to deliver. For physical subscriptions, both are worth having before you scale past a few dozen active subscribers.</p>
<p>The other half is covered in stock management for recurring orders: how to stop a renewal firing when the product is not on the shelf.</p>
<div style="background: linear-gradient(135deg,#132032 0%,#1d3350 100%); border-radius: 14px; padding: 32px; display: flex; flex-wrap: wrap; gap: 28px; align-items: center; justify-content: space-between; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif; margin: 32px 0;">
<div style="flex: 1 1 300px; min-width: 260px;">
<div style="color: #ffaa00; font-size: 12px; font-weight: bold; letter-spacing: 2px; margin-bottom: 10px;">FLEXIBLE SUBSCRIPTIONS</div>
<div style="color: #ffffff; font-size: 26px; line-height: 1.2; font-weight: bold; margin-bottom: 12px;">Recurring Shipping add-on</div>
<div style="color: #cfd8e6; font-size: 16px; line-height: 1.5;">Give delivery its own schedule, separate from the billing cycle, and charge it on every shipment.</div>
</div>
<div style="flex: 0 0 auto;"><a style="display: inline-block; background: #ffaa00; color: #13223a; text-decoration: none; font-size: 16px; font-weight: bold; padding: 13px 26px; border-radius: 7px;" href="https://www.wpdesk.net/products/flexible-subscriptions-recurring-shipping/">See the add-on »</a></div>
</div>
<h2>Summary</h2>
<p>Delivery is the recurring cost that most subscription stores forget to charge recurrently. Measure the real cost per shipment, decide whether it is visible or baked into the price, match the shipping schedule to the delivery schedule rather than the billing cycle, and plan how you will communicate the next courier increase.</p>
<h2>Frequently asked questions</h2>
<h3>Can shipping be charged on every renewal in WooCommerce?</h3>
<p>Yes, with a setup that treats shipping as a recurring cost rather than a one-off charge on the first order. By default many configurations collect delivery only once, which is where the margin goes.</p>
<h3>What if deliveries and payments run on different schedules?</h3>
<p>That is the main reason to manage shipping separately from billing. A quarterly payment can cover three monthly shipments, and the shipping cost has to be calculated against the deliveries, not the charge.</p>
<h3>Should I offer free shipping on subscriptions?</h3>
<p>It converts well, but the cost does not disappear. It moves into the product price. Make that move deliberately and recalculate when courier rates change.</p>
<h3>How do I handle an address change mid-subscription?</h3>
<p>Let customers update the address from the account area, and make sure the change applies to the next renewal rather than only to the current order.</p>
<h3>What is the real cost per delivery?</h3>
<p>More than the courier's list price. Add packaging, labels, the time somebody spends packing, and the share of deliveries that fail on the first attempt and go out again. Subscription boxes are often packed in batches, which lowers the per-unit cost, so measure rather than assume.</p>
<p><a href="https://wpdesk.net/blog/recurring-shipping-for-woocommerce-subscriptions-how-to-charge-for-delivery-every-cycle/">Recurring Shipping for WooCommerce Subscriptions: How to Charge for Delivery Every Cycle</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WooCommerce Checkout Fields: What to Add and What to Remove Before Peak Season</title>
		<link>https://wpdesk.net/blog/woocommerce-checkout-fields-what-to-add-and-what-to-remove-before-peak-season/</link>
		
		<dc:creator><![CDATA[patrycja.wojas]]></dc:creator>
		<pubDate>Thu, 29 Oct 2026 12:39:52 +0000</pubDate>
				<category><![CDATA[WordPress tips & plugins]]></category>
		<category><![CDATA[woocommerce checkout fields]]></category>
		<guid isPermaLink="false">https://wpdesk.net/?p=229101&#038;cf-nocache=1</guid>

					<description><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p>The default WooCommerce checkout asks for about a dozen things. Some of them you need, some of them your courier needs, and at least two of them nobody has looked at since the shop was built. Every one of them is a place a customer can stop. Which fields to remove and which to keep...</p>
<p><a href="https://wpdesk.net/blog/woocommerce-checkout-fields-what-to-add-and-what-to-remove-before-peak-season/">WooCommerce Checkout Fields: What to Add and What to Remove Before Peak Season</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p><strong>The default WooCommerce checkout asks for about a dozen things. Some of them you need, some of them your courier needs, and at least two of them nobody has looked at since the shop was built. Every one of them is a place a customer can stop.</strong></p>
<h2>Which fields to remove and which to keep</h2>
<p>Keep anything required to deliver the order, charge for it or issue the document that goes with it. Remove everything else, and apply the test field by field rather than screen by screen.</p>
<p>The company name field is the usual first casualty in a store selling to consumers. It is shown to everybody, filled in by a small minority, and in most shops exists because the default template includes it.</p>
<p>The second address line is the second. It is genuinely needed in some markets and for some couriers, and genuinely dead weight in others, which makes it a question about your own delivery data rather than about checkout theory.</p>
<p>The phone number is the one worth arguing about. Couriers increasingly require it, customers increasingly resent it, and the resolution is usually to keep it and say in one line why it is being asked for. A field with a reason attached is answered far more often than the same field without.</p>
<h2>What is worth adding</h2>
<p>Anything that prevents a failed delivery or a support message, which is a much shorter list than it sounds.</p>
<p>Delivery instructions is the strongest candidate in a peak season, because a parcel left in the wrong place in December is a complaint with a deadline attached. It costs one optional field and removes a category of problem.</p>
<p>A gift message field earns its place in November and December and should be removed afterwards. The same is true of a requested delivery date where your fulfilment can honour one, and not at all true where it cannot.</p>
<p>What is not worth adding is anything you will not read. A how did you hear about us field that nobody analyses is a question asked of every customer for no return, and the same information is available from your analytics. Our guide to <a href="https://wpdesk.net/blog/woocommerce-shipping-and-billing-address/">shipping and billing address fields</a> goes through which of the defaults are genuinely required.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-229103 size-full" src="https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-23-42-56-woocommerce-checkout-page-add-shipping-address-fields.png" alt="" width="1074" height="756" srcset="https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-23-42-56-woocommerce-checkout-page-add-shipping-address-fields.png 1074w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-23-42-56-woocommerce-checkout-page-add-shipping-address-fields-369x260.png 369w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-23-42-56-woocommerce-checkout-page-add-shipping-address-fields-684x481.png 684w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-23-42-56-woocommerce-checkout-page-add-shipping-address-fields-91x64.png 91w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-23-42-56-woocommerce-checkout-page-add-shipping-address-fields-260x183.png 260w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-26-at-23-42-56-woocommerce-checkout-page-add-shipping-address-fields-712x501.png 712w" sizes="auto, (max-width: 1074px) 100vw, 1074px" /></p>
<p><!-- ZRZUT 1: edytor pol w kasie z lista pol i widocznym ustawieniem wymagalnosci. Alt: WooCommerce checkout field editor showing fields and their required setting --></p>
<h2>What to check before the traffic arrives</h2>
<p>Test the checkout on a phone, with one hand, in a hurry. That is how most of December's orders will be placed, and it surfaces problems that are invisible on a desktop, such as a field that triggers the wrong keyboard or a validation message that appears above the fold the customer is looking at.</p>
<p>Check every field's validation against a real foreign address. Postcode rules in particular are a common source of checkouts that work perfectly for domestic customers and reject everybody else.</p>
<p>And count the fields. Not as an exercise in minimalism, but because the number is the single figure most correlated with abandonment, and most stores are surprised by their own total.</p>
<div style="border-left: 6px solid #2563EB; background: #EFF6FF; border-radius: 10px; padding: 20px 24px; margin: 28px 0; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif; font-size: 17px; line-height: 1.65; color: #1b2a4a;">
<p style="margin: 0;">Adding a seasonal field in November and taking it out in January should not involve a template. <a href="https://wpdesk.net/products/flexible-checkout-fields-pro-woocommerce/">Flexible Checkout Fields PRO</a> adds, removes, reorders and relabels checkout fields from the admin, including per country.</p>
</div>
<h2>Summary</h2>
<p>Keep any field required to deliver the order, charge for it or issue the accompanying document, and remove the rest, testing field by field. The company name field is usually the first to go in a consumer store, since it is shown to everyone and used by few. The second address line depends on your markets and couriers rather than on any general rule. The phone number is the contested one: couriers want it, customers resist it, and the usual resolution is to keep it with one line explaining why, because a field with a stated reason is completed far more often.</p>
<p>Worth adding is anything that prevents a failed delivery or a support message. Delivery instructions is the strongest seasonal candidate, since a parcel left in the wrong place in December is a complaint against a deadline. A gift message field earns November and December and should come out afterwards, as should a requested delivery date unless fulfilment can honour it. Nothing should be added that will not be read. Before the traffic arrives, three checks: use the checkout on a phone one-handed, since that is how December orders arrive; test validation against a real foreign address, because postcode rules routinely reject everyone outside the home market; and count the fields, as the total is the figure most closely tied to abandonment and most stores guess it wrong.</p>
<h2>Frequently asked questions</h2>
<p>These three come up in every checkout review.</p>
<h3>How many fields is too many?</h3>
<p>There is no universal number, but every field past the ones needed to deliver and invoice should have a reason somebody can state out loud.</p>
<h3>Should fields be removed or just made optional?</h3>
<p>Optional still costs attention, since the customer reads it before skipping it. Remove what is not needed and make optional only what some customers genuinely use.</p>
<h3>Can checkout fields differ by country?</h3>
<p>They should, since address formats and courier requirements differ. A single field set applied worldwide is how stores end up asking for a state from customers who do not have one.</p>
<p><a href="https://wpdesk.net/blog/woocommerce-checkout-fields-what-to-add-and-what-to-remove-before-peak-season/">WooCommerce Checkout Fields: What to Add and What to Remove Before Peak Season</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Sell Subscriptions with a One-Time Setup Fee in WooCommerce</title>
		<link>https://wpdesk.net/blog/how-to-sell-subscriptions-with-a-one-time-setup-fee-in-woocommerce/</link>
		
		<dc:creator><![CDATA[patrycja.wojas]]></dc:creator>
		<pubDate>Wed, 28 Oct 2026 13:48:50 +0000</pubDate>
				<category><![CDATA[Subscriptions for WooCommerce]]></category>
		<category><![CDATA[product variations]]></category>
		<category><![CDATA[recurring payments]]></category>
		<category><![CDATA[variable products]]></category>
		<category><![CDATA[woocommerce subscriptions]]></category>
		<guid isPermaLink="false">https://wpdesk.net/?p=228421&#038;cf-nocache=1</guid>

					<description><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p>To sell a subscription for only some variations of a WooCommerce product, build the item as a variable product and add the One-Time Payment add-on for Flexible Subscriptions, which enables recurring billing on the variations you pick and leaves the rest as ordinary one-time purchases. One product page then carries both buying models: the customer...</p>
<p><a href="https://wpdesk.net/blog/how-to-sell-subscriptions-with-a-one-time-setup-fee-in-woocommerce/">How to Sell Subscriptions with a One-Time Setup Fee in WooCommerce</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Visit <a href="https://wpdesk.net">WP Desk</a>.</p>
<p><strong>To sell a subscription for only some variations of a WooCommerce product, build the item as a variable product and add the One-Time Payment add-on for Flexible Subscriptions, which enables recurring billing on the variations you pick and leaves the rest as ordinary one-time purchases. One product page then carries both buying models: the customer chooses the size, version or flavour, and the purchase model follows that choice. This guide covers the setup, how to label it so nobody is surprised at checkout, and how to price the two options against each other.</strong></p>
<h2>One product, two ways to buy it</h2>
<p>Not every variation of a product makes sense as a subscription. A 250 g bag of coffee suits a monthly delivery, a 5 kg catering pack does not. A monthly plan fits a standard licence, a lifetime version by definition does not.</p>
<p>Forcing one model onto the whole product means either losing the one-time buyers or managing two near-identical products in the catalogue.</p>
<h2>What this setup solves</h2>
<p>With subscriptions enabled only for selected variations, a single product page can offer both. The customer picks the size, the version or the flavour, and the purchase model follows that choice automatically.</p>
<p>The <a href="https://wpdesk.net/products/subscription-with-one-time-payment/?srsltid=AU7gw4WwLkkJ-xEPc-C3Qh6wT2Y6sO5clANiUj4lbHfSXkrccaNEnLC9">One-Time Payment add-on</a> for <a href="https://www.wpdesk.net/products/flexible-subscriptions/">Flexible Subscriptions</a> makes that possible: subscriptions apply to the variations you choose, while the rest of the product stays a normal one-time purchase.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-228441 size-full" src="https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-19-53-06-flexible-subscriptions-one-time-payment-add-on.png" alt="" width="954" height="627" srcset="https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-19-53-06-flexible-subscriptions-one-time-payment-add-on.png 954w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-19-53-06-flexible-subscriptions-one-time-payment-add-on-369x243.png 369w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-19-53-06-flexible-subscriptions-one-time-payment-add-on-684x450.png 684w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-19-53-06-flexible-subscriptions-one-time-payment-add-on-97x64.png 97w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-19-53-06-flexible-subscriptions-one-time-payment-add-on-260x171.png 260w, https://wpdesk.net/wp-content/uploads/2026/10/screenshot-2026-10-07-at-19-53-06-flexible-subscriptions-one-time-payment-add-on-712x468.png 712w" sizes="auto, (max-width: 954px) 100vw, 954px" /></p>
<p>If you are still deciding which subscription plugin to build this on, start with the comparison of WooCommerce Subscriptions alternatives.</p>
<h2>When this is the right approach</h2>
<h3>Product sizes with different consumption rates</h3>
<p>Small and medium packs run out predictably, which is what makes a subscription attractive. Bulk sizes last unpredictably long, so a recurring delivery becomes an annoyance rather than a convenience.</p>
<p>Popular sizes are also the ones that sell out, which makes stock control for renewals worth setting up at the same time.</p>
<h3>Flavours and variants customers rotate</h3>
<p>In categories where customers like to change what they receive, a subscription on one flavour and single purchases on the rest reflects how people actually shop.</p>
<h3>Software and licences with two pricing models</h3>
<p>An annual licence as a subscription, a lifetime version as a single payment, both on the same page, with no duplicate product entries to keep in sync.</p>
<h3>Services with an optional recurring tier</h3>
<p>A one-off consultation and a monthly retainer are the same service at different intensities. Variations keep them together, which helps the customer compare.</p>
<h2>How to set it up</h2>
<h3>Step 1: Build the product as a variable product</h3>
<p>The structure comes first. Create the attributes, generate the variations and price each one. This is standard WooCommerce work, with no subscription logic involved yet.</p>
<h3>Step 2: Enable subscriptions on the chosen variations only</h3>
<p>Select which variations should be sold as subscriptions. Leave the others as they are. Review this list after any catalogue change, because new variations do not inherit the setting by default.</p>
<h3>Step 3: Make the difference obvious on the product page</h3>
<p>This is where most implementations fail. If selecting a size silently changes a purchase into a recurring commitment, you will get refund requests. Label the subscription variations explicitly, state the billing cycle next to the price, and keep the wording the same in the cart.</p>
<h3>Step 4: Test the mixed cart</h3>
<p>Add a subscription variation and a one-time product to the same basket and complete the order. Check that the renewal schedule applies only to the subscription line and that the payment method chosen at checkout supports recurring charges.</p>
<h2>Pricing the two models</h2>
<p>A subscription price lower than the one-time price is the usual arrangement, and the discount buys predictability. Five to fifteen per cent is a common range. Below that the incentive is too weak to change behaviour, above it you are paying heavily for a commitment the customer can cancel next month.</p>
<div style="background: linear-gradient(135deg,#132032 0%,#1d3350 100%); border-radius: 14px; padding: 32px; display: flex; flex-wrap: wrap; gap: 28px; align-items: center; justify-content: space-between; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif; margin: 32px 0;">
<div style="flex: 1 1 300px; min-width: 260px;">
<div style="color: #ffaa00; font-size: 12px; font-weight: bold; letter-spacing: 2px; margin-bottom: 10px;">FLEXIBLE SUBSCRIPTIONS</div>
<div style="color: #ffffff; font-size: 26px; line-height: 1.2; font-weight: bold; margin-bottom: 12px;">One-Time Payment add-on</div>
<div style="color: #cfd8e6; font-size: 16px; line-height: 1.5;">Turn recurring billing on for selected product variations and keep the rest as one-time purchases.</div>
</div>
<div style="flex: 0 0 auto;"><a style="display: inline-block; background: #ffaa00; color: #13223a; text-decoration: none; font-size: 16px; font-weight: bold; padding: 13px 26px; border-radius: 7px;" href="https://wpdesk.net/products/subscription-with-one-time-payment/?srsltid=AU7gw4WwLkkJ-xEPc-C3Qh6wT2Y6sO5clANiUj4lbHfSXkrccaNEnLC9">See the add-on »</a></div>
</div>
<h2>Summary</h2>
<p>Selling subscriptions on selected variations keeps one product page for two buying models. Build the variable product first, enable subscriptions only where recurring delivery makes sense, label the difference clearly on the page, and test a mixed cart before you publish.</p>
<h2>Frequently asked questions</h2>
<h3>Can one WooCommerce product have both subscription and one-time variations?</h3>
<p>Yes. That is exactly what this setup is for, and it removes the need to maintain two near-identical products in the catalogue.</p>
<h3>What happens in a cart with both a subscription and a one-time product?</h3>
<p>The order contains both lines, and the renewal schedule applies only to the subscription one. Test it before launch, because the payment method chosen at checkout has to support recurring charges.</p>
<h3>Do new variations become subscriptions automatically?</h3>
<p>No. Review the setting whenever you add variations, otherwise a new size will quietly stay one-time only.</p>
<h3>Does this work with the block checkout?</h3>
<p>Yes. Flexible Subscriptions supports both the classic checkout and the Cart and Checkout Blocks.</p>
<h3>How much cheaper should the subscription variation be?</h3>
<p>Five to fifteen per cent below the one-time price is the common range. Below that the incentive is too weak to change behaviour, above it you are paying heavily for a commitment the customer can cancel next month.</p>
<p><a href="https://wpdesk.net/blog/how-to-sell-subscriptions-with-a-one-time-setup-fee-in-woocommerce/">How to Sell Subscriptions with a One-Time Setup Fee in WooCommerce</a> from <a href="https://wpdesk.net">WP Desk</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
