
ACS Content for WooCommerce turns any post or page into a paid article. Write as usual, drop a Paid Area block where the free preview should end, set a price, and everything below it is sold through the WooCommerce checkout you already have.
Readers do not need a WordPress account. They pay, they read. Access is tied to the email address used at checkout, so the same purchase works on a phone and a laptop.
Why Not a Paid Newsletter Platform?
Hosted platforms take a cut of every sale and own the reader relationship. Here, the sale happens in your own store:
- You keep the payment processing fees you already negotiated — the plugin adds none of its own
- Buyer email addresses and order history stay in your WooCommerce install
- Your article stays at your own URL, with your own theme, and your own SEO
- No license key, no account, no phone-home. The plugin never contacts an external server
Main Features
Paid Area block
* Everything after the block is sold; everything before it is the free preview
* The paid text is removed from the response for readers who have not bought — it is never merely hidden with CSS, and it does not leak through the RSS feed, the auto-generated excerpt, or the REST API
* A soft fade and a single call-to-action button. One action, no clutter
* Price, button label, and headline can be set per article or site-wide
Tip Jar block
* Readers choose from an amount set you define and pay in the same checkout
* Useful on free articles, at the end of paid ones, or both
Access without accounts
* Access is granted to the email address on the order
* A signed cookie remembers the reader on that device
* Readers who switch devices or clear cookies can request a one-time access link by email, from a link inside the paywall box
Sales dashboard
* Scorecards for today, this month, and all time, plus a daily revenue graph
* A list of every paid item with inline price editing
* A sales report with period segments and CSV export
* A buyer list with masked email addresses, manual grants, revokes, and resend
Coupons that only apply to your content
* Discounts scoped to specific paid articles, so a content coupon cannot be spent on the rest of your shop
Refund aware
* Refunding an order in WooCommerce revokes the reader’s access automatically, and the sale drops out of the reports
Designed Not to Disturb Your Shop
This plugin is deliberately non-invasive. It never writes to your WooCommerce settings, and it never changes checkout for orders that do not contain one of its own items:
- Guest checkout, address fields, and payment methods are left exactly as you configured them for ordinary products
- Checkout simplification (hiding shipping and address fields that a digital article does not need) is applied per cart, only when the cart contains a paid article or a tip, and only if you enable it
- Both the classic shortcode checkout and the newer block-based Cart and Checkout are supported
- Compatible with High-Performance Order Storage (HPOS)
Privacy
Buyer email addresses are stored in a table belonging to this plugin so that access can be checked without a user account. The plugin registers with the WordPress personal data exporter and eraser, so a data request covers this data too. Nothing is ever sent off-site.
External Services
This plugin does not connect to any external service. It sends no data off your server, requires no API key, and performs no license check.
Screenshots

Dashboard — scorecards for today, this month, and all time, with a daily revenue graph and a setup checklist

Paid content list — every article for sale with its price, sales count, and revenue, with inline price editing

Sales report — revenue by period with a stacked bar chart separating article sales from tips, plus CSV export

Buyers — who bought what, with masked email addresses, manual grant, revoke, and resend

Coupons — discounts scoped to specific paid articles so they cannot be spent elsewhere in the shop

Settings — defaults for price, tip amounts, access period, appearance, checkout behaviour, and data

The reader's view — free preview, fade, and a single call to action