Petr’s gadgets and mini-services

For joy (in life and business)

Help and Q&A

Drip Content for Woocommerce Pro

Welcome to Help & FAQ

This page brings together everything you need:

  • Quick setup guide

  • Shortcodes, tokens, and attributes

  • Use cases & examples

  • Frequently asked questions

If you are looking for troubleshooting or direct contact, please see the Support page (support is lightweight, handled once a week).

Setup & Configuration

WooCommerce Drip Content integrates directly with WordPress and WooCommerce. No heavy setup needed.

Basic steps:

  1. Create a rule → Define which product(s) unlock content.
  2. Choose timing → Set drip delays (days/hours) or a cohort start date.
  3. Add shortcodes → Place the [if_purchased] or [ipg_open] shortcodes where you want to control content.
  4. Customize messages → Add messages (before, after, login, fallback) with dynamic tokens.

Works seamlessly with modern page builders (Divi, Elementor, Block Editor).

Shortcodes

  • [dripco_if_purchased]…[/dripco_if_purchased]— Show content to buyers.
  • [dripco_if_not_purchased]…[/dripco_if_not_purchased] — Show to non-buyers.
  • [dripco_open …] [dripco_close]— Wrap multiple sections/modules. E.g. for DIVI theme.
  • [dripco_help] —Show inline help.
  • [dripco_debug] — Debug info for current user.

Tokens

Use inside message attributes:

  • {opens_at} — Exact unlock date & time (site timezone).
  • {opens_in} — Countdown (e.g. “2 days 5 hours”).

Atributy

Attribut Values Description Default
product_id CSV ID, e.g.. 123,456 CSV of product IDs (including variations). none
relation any | all Access if user has any vs all listed products any
from first | last Baseline for timing. “last” = most recent completed qualifying order/renewal; “first” = earliest completed. last
drip_days number ≥ 0 Delay from anchor/purchase (individual) or from start_at (cohort) in days. 0
drip_hours number ≥ 0 Fine-grained delay in hours (added to drip_days). 0
window_days number ≥ 0 Window length in days. 0 = never expires. 0
window_hours number ≥ 0 Fine-grained window length in hours (added to window_days). 0
drip_anchor order_completed | order_paid | order_created Which timestamp to anchor to in individual mode. Empty = heuristic (see below). empty (heuristic)
strict_anchor true | false If true and the chosen anchor timestamp is missing/invalid, no heuristic fallback is used and the order is ignored (fallback message may be shown). false
start_at RRRR-MM-DD [HH:MM] Enables cohort mode (site timezone). Everyone starts from this moment + drip. none
strict_cohort true | false In cohort: true = no catch-up for late buyers (past lessons stay closed). false
message text/HTML Fallback message (a.k.a. “backup line”). Shown when access cannot be established (e.g., no qualifying order, strict anchor failed) or when explicitly used by logic. empty
message_before + tokens text/HTML Shown before the window opens. Supports tokens {opens_at} and {opens_in}. empty
message_after text/HTML Shown after the window closes (if window is finite). empty
message_login text/HTML Zobrazuje se nepřihlášeným uživatelům (má přednost před message). empty (falls back to message)

Heuristic & strict_anchor

When an explicit anchor (drip_anchor) is not set or cannot be resolved, the plugin can try a reasonable baseline automatically, unless strict_anchor=true.

  1. Try the selected order timestamp (if set).
  2. If unavailable, use “last” (most recent completed qualifying order).
  3. If still unavailable, use “first” (earliest completed qualifying order).
  4. If no safe baseline exists, show the fallback message.

With strict_anchor=true, no heuristic fallback is applied — if the requested anchor is missing/invalid, the order is ignored and the fallback message is shown.

FAQ / Q&A

Can I use the plugin without WooCommerce products?

Yes, in PRO you can unlock content even for free users or non-buyers.

Does it work with caching plugins?

Yes, but for aggressive caching (e.g. WP Rocket) we recommend testing your setup. If you encounter problems, we recommend not caching the page or setting a short timeout.

Does Free have limits?

Free allows:

  • 1 product per rule.
  • Max 3 drip per product.
  • Max 7 dys of drip_days

PRO removes this limit, adds unlimited rules, expiration windows, and cohort launches.

Can I customize the design of messages?

Yes, all messages support HTML, tokens and CSS. 

Use cases & Examples

Simple drip: unlock 7 days after the most recent completed order

[dripco_if_purchased product_id=”123″ from=”last” drip_days=”7″
message_before=”Opens on {opens_at} ({opens_in}).”
message=”You don’t have access to this content yet.”]

Your lesson content here…

[/dripco_if_purchased]

Baseline is the most recent completed order. Content opens after 7 days. Shows a friendly countdown before opening.

Cohort launch: everyone starts together on a fixed date

[dripco_if_purchased product_id=”123″ start_at=”2025-09-01 09:30″ drip_days=”0″
message_before=”Module opens at {opens_at} ({opens_in}).”
message_after=”This module is now closed.”
message=”Please purchase the course to join the cohort.”]

Cohort module content…

[/dripco_if_purchased]

Cohort mode ignores individual purchase times. Everyone unlocks at start_at (+ drip). You may combine with window_days to close the module after a period.

Precise anchor with strict mode (no fallback)

[dripco_if_purchased product_id=”123″ from=”last” drip_anchor=”order_paid” strict_anchor=”true”
drip_days=”3″ drip_hours=”12″
message_before=”Unlocks on {opens_at} ({opens_in}).”
message=”We couldn’t determine your schedule. Please contact support.”]

Content with a strict paid-time anchor…

[/dripco_if_purchased]

Anchors to the payment time of the most recent completed order. With strict_anchor=true, if that timestamp is missing/invalid, no heuristic is used and the fallback message is shown.