ACS Content for WooCommerce

Description

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

Blocks

This plugin provides 2 blocks.

  • Tip Jar Adds buttons so readers can pick an amount and support you. The amounts come from the set defined under Settings › General.
  • Paid Area Everything after this block is sold. Content placed inside it can be read only by readers who have bought.

Installation

  1. Install and activate WooCommerce first, and complete its setup so that you can take payments
  2. Upload the plugin ZIP from WordPress admin > Plugins > Add New > Upload Plugin, then activate it
  3. A Paid Content menu appears in the admin. Open Paid Content > Settings and set your default price and tip amounts
  4. Edit a post, place the cursor where the free preview should end, and insert the Paid Area block
  5. Move the rest of the article inside the block, set the price in the sidebar, and publish
  6. Open the post while logged out to see the paywall exactly as a reader will

FAQ

Is WooCommerce required?

Yes. This plugin uses your WooCommerce store for the product, the cart, the checkout, the payment gateway, and the order record. If WooCommerce is not active, the plugin stays completely dormant: it registers nothing and shows a single admin notice explaining why.

Do readers need to create an account?

No. A reader buys as a guest and gains access through the email address on the order. A signed cookie keeps them logged in to the article on that device, and they can email themselves a one-time access link at any time from the paywall box. If a reader does happen to have an account, that works too.

What happens when I refund an order?

Access is revoked automatically. A full refund in WooCommerce revokes every article granted by that order, and the amount drops out of the sales reports. Nothing is deleted: the record stays, marked as revoked, so your buyer history remains auditable. You can also revoke or grant access by hand from the Buyers screen.

Will this affect my existing shop?

No. The plugin only acts on carts and orders that contain one of its own items. It does not write to any WooCommerce option, does not change guest checkout or address requirements for your other products, and does not add anything to the front end of pages that have no paywall or tip jar block on them. Its own checkout simplification is opt-in and is applied per cart, never globally.

I used the previous version. How do I move my buyers over?

Open Paid Content > Settings > Data. If the older plugin’s buyer table is present, the screen shows how many records it holds and offers a one-click import into the new format, in batches. The import is safe to run more than once — records that are already imported are skipped rather than duplicated — and it never modifies or deletes the old data. Removing the old table is a separate, explicitly confirmed step you take afterwards. Blocks saved by the older version keep rendering correctly, and the same screen can convert them to the new blocks.

I use a page cache. Is there anything to watch out for?

The purchase and tip buttons carry a nonce so that no other site can add something to a visitor’s cart on their behalf. A nonce stays valid for up to 24 hours, so keep the cache lifetime for posts below that. If a visitor does click a stale button, nothing is added to the cart and they are returned to the article with a short notice and a freshly generated button, so the purchase still goes through on the next click.

Can I use a currency other than the one WooCommerce is set to?

The plugin always uses your WooCommerce store currency and its formatting settings. There is no currency of its own to configure, and no currency symbol is hard-coded anywhere.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“ACS Content for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

3.0.0

  • Full rewrite. New plugin slug, new prefix, and a new data model. This version is not an in-place update of the 2.x plugin; it installs alongside it and imports its data
  • Access records now store the amount actually paid, the currency, the grant source, and an expiry, so reports reflect what was really charged rather than today’s price
  • Refunds revoke access automatically instead of leaving the article readable
  • Removed all global WooCommerce setting changes. 2.x rewrote store options such as guest checkout on every request; nothing of the sort remains
  • Checkout simplification is now decided per cart and only when the cart contains this plugin’s items, and it is off by default
  • Added support for the block-based Cart and Checkout, alongside the classic checkout
  • Declared compatibility with High-Performance Order Storage; all order metadata goes through the order object
  • Paid content is now stripped from the response before rendering, closing the excerpt, feed, and REST API leaks present in 2.x
  • Coupons can be limited to specific paid articles; the 2.x coupon path could apply a content discount to the whole cart
  • One product per article, reused on every purchase; the 2.x behaviour of creating products from unauthenticated requests is gone, along with that endpoint
  • Access is now a signed cookie plus a one-time email link; PHP sessions are no longer used
  • Six new admin screens: dashboard, paid content list, sales report, buyers, coupons, and settings
  • Added personal data export and erase handlers, and an uninstall routine that keeps your data unless you opt out
  • Added a one-click importer for 2.x buyer records, server-side rendering for blocks saved by 2.x, and a warning when both plugins are active
  • Purchase and tip links now carry a nonce, and the handler verifies it before touching the cart, so a link on another site cannot change a visitor’s cart