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:
- Create a rule → Define which product(s) unlock content.
- Choose timing → Set drip delays (days/hours) or a cohort start date.
- Add shortcodes → Place the [if_purchased] or [ipg_open] shortcodes where you want to control content.
- 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.
- Try the selected order timestamp (if set).
- If unavailable, use “last” (most recent completed qualifying order).
- If still unavailable, use “first” (earliest completed qualifying order).
- 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.