Milo Elementor Connector
Show or hide any Elementor element based on the visitor’s subscription status or the products they are subscribed to, straight from the Elementor editor.
Installation
- Install and activate the free Milo Subscriptions plugin.
- Install and activate Elementor.
- Upload and activate Milo Elementor Connector (Plugins → Add New → Upload).
The connector stays inert until both Elementor and Milo Subscriptions are active, so it is safe to leave installed on any site.
The visibility panel
Edit any page with Elementor, select an element (widget, section, column or container), and open Advanced → Milo Subscriptions visibility.
| Control | Description |
|---|---|
| Subscription visibility | Everyone can see this element (default), Show this element to…, or Hide this element from… |
| Match by | Subscription status or Subscribed product. Shown once a restriction is picked. |
| Subscription status | Multi-select of statuses to match (defaults to Any active subscription). |
| Subscription products | Multi-select of your published subscription products (simple and variable). |
| Products to match | Any of the selected, or All of the selected. |
| Show restricted content message | On/off switch, widgets only. |
| Restricted content message | The replacement text shown when the switch is on. |
Targeting rules
- Statuses: Any active subscription, Active, On hold, Pending, Pending cancellation, Cancelled, Expired. “Any active subscription” matches Active and Pending cancellation, since a pending-cancellation subscriber is still inside their paid period.
- A status rule matches when the visitor holds at least one subscription in any of the selected statuses.
- Products: an element can target one or more subscription products, matching either any or all of them. Variations count too. Product access only counts subscriptions that are Active or Pending cancellation.
- Logged-out visitors never match any rule, so “Show this element to…” hides the element from them and “Hide this element from…” shows it.
Restricted content message
By default a non-matching element is simply removed from the page. For widgets you can instead enable Show restricted content message and provide your own text; the message replaces the widget’s content. Sections, columns and containers are always removed entirely, they never show a message.
When the Milo Memberships add-on is active, the connector reuses its gate markup and default message, so restricted content looks the same across Elementor pages and regular posts.
Who always sees everything
Users with the manage_options capability (administrators), and anyone editing or previewing in Elementor, always see every element. Change who bypasses the rules with the milo_el_user_can_bypass filter.
Troubleshooting
- The panel does not appear in Elementor: make sure both Elementor and Milo Subscriptions are active; the controls are only registered when both are present.
- Cached pages show the wrong version: elements carrying a visibility rule are marked as dynamic content, so Elementor’s element cache re-renders them per visitor. Full-page caches from other plugins may still need to exclude gated pages.
Developer reference
milo_el_user_can_bypass: filter which users bypass all visibility rules (defaults tomanage_options).
Billing modes
Works in both WooCommerce mode and standalone (Stripe-driven) mode. In standalone mode only an active/inactive gate exists, so the panel offers just “Show only to active subscribers” and “Hide from active subscribers”; per-status and per-product targeting require WooCommerce billing mode.
Did this page miss something?
Tell us and we rewrite it, usually the same day.