Membership • Licensing • WooCommerce • Entitlements • Universal Integrations
A modular WordPress membership and licensing platform for products, plans, customers, entitlements, commerce fulfillment, WooCommerce, verified webhooks, and integrations.
Website · Download · Documentation · Issues · Security
Evoxup Membership is a WordPress platform for managing memberships, licensing, customers, products, membership plans, entitlements, commerce fulfillment, WooCommerce integrations, verified webhooks, and external service integrations from one administration environment.
The public WordPress build is designed around a clear principle:
Every feature included in the plugin is available without a paid license, paid membership, trial, quota, or activation key.
License or membership keys may be used to verify eligibility for separately distributed commercial Evoxup packages or external services, but they do not unlock functionality that is already included in the public plugin.
Current release:
Evoxup Membership 1.8.6
- Membership plans and lifecycle management
- Product-to-plan relationships
- Membership status, start date, and expiration handling
- Member entitlement management
- Membership assignment through verified fulfillment flows
EVO Products act as the canonical commercial identity inside Evoxup.
A product can be linked to:
- One or more Membership Plans
- WooCommerce products
- External commerce providers
- EVO licensing
- Supported external licensing providers
- Entitlements
- Purchase and fulfillment workflows
This avoids creating a separate duplicate product model for every integration.
Evoxup Membership can issue and manage EVO licenses for products configured to use EVO licensing.
License verification can evaluate:
- Product identity
- License status
- Activation/site binding
- Membership entitlement
- Domain/site information
- Configured access tier
- Client version
- Other configured verification requirements
When another licensing provider is selected, Evoxup can preserve that provider's ownership of the licensing flow instead of generating a duplicate EVO license.
Entitlements connect products, plans, memberships, licenses, and access rights.
A verified purchase can:
- Resolve the provider product.
- Map it to an EVO Product.
- Create or update the Evoxup customer/member record.
- Grant the configured Membership Plan.
- Issue an EVO license when EVO licensing is selected.
- Create the required entitlements.
- Record the normalized order or transaction.
Starting with 1.8.6, Evoxup Member Administration 1.1.0 is provided as a bundled internal module instead of being permanently embedded in Core.
Module:
modules/evomembers-member-administration-lite/
The module can be enabled or disabled from:
Evoxup → Extensions & Add-ons
When enabled, it provides the Customers administration workspace for managing WordPress users and EVO member records.
Capabilities include:
- Customer/member directory
- Existing WordPress user linking
- Member profile management
- Membership operations
- License and activation context
- Entitlement visibility
- Order context
- Search and filtering
- Activity information
Disabling the module does not remove member, membership, license, order, entitlement, or event data.
Sites upgrading from 1.8.5 receive a one-time migration that preserves the existing Customers workspace behavior.
Evoxup Membership includes optional local Lite modules.
Current bundled modules include:
evomembers-account-lite
evomembers-analytics-lite
evomembers-content-access-lite
evomembers-member-administration-lite
evomembers-social-identity-lite
evomembers-system-health-lite
Bundled modules:
- Run locally
- Are included with the public plugin
- Can be enabled or disabled by an administrator
- Do not require a paid key
- Use the Evoxup extension/module architecture
Commercial PRO and SUPER STAR add-ons displayed by the administration interface are separate products. Their executable code is not bundled into this repository's public WordPress package.
WooCommerce is optional.
When WooCommerce is installed, administrators can map WooCommerce products to EVO Products and configure how purchases should be fulfilled.
A successful WooCommerce order can trigger:
WooCommerce Order
↓
EVO Product
↓
Customer / Member
↓
Membership Plan
↓
License
↓
Entitlements
When EVO licensing is selected, Evoxup can issue the corresponding EVO license.
When another licensing provider is configured, Evoxup respects that provider instead of issuing a duplicate license.
Evoxup Membership uses supported WooCommerce APIs and supports the integration paths used with:
- WooCommerce HPOS
- Cart/Checkout Blocks
Evoxup Membership can receive authenticated commerce events from configured providers.
Verified events can:
- Resolve an external product to an EVO Product
- Create or update an Evoxup customer/member
- Create or update a normalized order
- Grant memberships
- Update memberships
- Cancel or revoke memberships
- Create entitlements
- Revoke entitlements
- Issue EVO licenses when configured
- Process supported refund and cancellation events
Webhook payloads are fulfillment inputs.
They cannot arbitrarily:
- Create privileged WordPress administrator accounts
- Choose privileged WordPress roles
- Install plugins
- Remove plugins
- Install themes
- Change arbitrary WordPress settings
- Execute arbitrary PHP
- Execute arbitrary SQL
- Perform arbitrary filesystem operations
Remote fulfillment does not create WordPress users.
If a matching WordPress account already exists, Evoxup can link it through the supported identity workflow.
Evoxup uses a provider-neutral integration model.
External providers can participate in commerce or licensing flows without becoming hard dependencies of Core.
The architecture is designed to support:
- WooCommerce
- External commerce providers
- External licensing providers
- Verified webhook providers
- External API services
- Future adapters using supported APIs and hooks
Core functionality does not depend on one specific external commerce provider.
Administrators can optionally configure an external HTTPS API endpoint.
When External or Hybrid API mode is enabled, Evoxup can perform server-to-server requests to the administrator-configured endpoint.
Depending on the requested operation, transmitted data can include:
- Client identifier
- Configured service credential
- Correlation/request identifier
- Node identifier
- License key
- Product identifier
- Site URL/domain
- Client version
- Licensing-operation data
Plain HTTP endpoints are rejected for supported external API configuration.
Evoxup Membership does not require an Evoxup external service for normal local operation.
A WordPress user and an EVO member record are separate identities.
When an existing WordPress account matches an EVO member, Evoxup can link them while preserving the native WordPress user ID.
This design prevents remote commerce fulfillment from becoming a WordPress account-provisioning mechanism.
The project is organized into several distinct layers.
evoxup-membership/
│
├── api/
│ └── V1/
│
├── assets/
│
├── docs/
│
├── Extensions/
│
├── modules/
│ ├── evomembers-account-lite/
│ ├── evomembers-analytics-lite/
│ ├── evomembers-content-access-lite/
│ ├── evomembers-member-administration-lite/
│ ├── evomembers-social-identity-lite/
│ └── evomembers-system-health-lite/
│
├── src/
│ ├── Admin/
│ ├── API/
│ ├── Contracts/
│ ├── Core/
│ ├── Editor/
│ ├── Frontend/
│ ├── Infrastructure/
│ ├── Integrations/
│ ├── Providers/
│ ├── SDK/
│ └── Services/
│
├── CHANGELOG.md
├── LICENSE
├── README.md
├── evoxup-membership.php
├── readme.txt
└── uninstall.php
Core provides shared infrastructure such as:
- Database management
- Capability definitions
- Module loading
- Extension context
- Version compatibility
- Installation and upgrade handling
- Security/request guards
- Core hooks
The Services layer contains business operations including:
- Customers
- Memberships
- Products
- Plans
- Orders
- Licenses
- Entitlements
- Integrations
- Notifications
- Mapping
- Purchase links
- Fulfillment routing
The SDK exposes structured APIs for supported Evoxup operations.
Examples include:
- Product API
- Customer API
- Membership API
- License API
- Entitlement API
- Order API
- Plan API
- Notification API
- Capability API
- Purchase Link API
- Platform APIs
Interfaces define stable boundaries between Core, services, integrations, extensions, and SDK implementations.
Evoxup separates commerce detection from fulfillment.
Commerce Provider
↓
Verified Event / Order
↓
Mapping
↓
EVO Product
↓
Fulfillment Router
↓
┌────────────────────────────┐
│ Membership │
│ License │
│ Entitlements │
│ Customer / Member │
│ Order / Transaction │
│ Module fulfillment │
│ External-license handling │
└────────────────────────────┘
This allows supported commerce and licensing providers to participate without requiring Core to be rewritten around a single provider.
| Requirement | Version |
|---|---|
| WordPress | 6.5 or later |
| PHP | 8.3 or later |
| Tested up to | WordPress 7.1 |
| WooCommerce | Optional |
| License | GPL-2.0-or-later |
Go to:
Releases → Latest Release
Download:
evoxup-membership-<version>.zip
For example:
evoxup-membership-1.8.6.zip
Then:
- Open WordPress Admin.
- Go to Plugins → Add New Plugin.
- Select Upload Plugin.
- Upload the Evoxup Membership ZIP.
- Install.
- Activate the plugin.
- Open the Evoxup administration area.
Do not use GitHub's automatically generated Source code (zip) as the WordPress installation package. Use the versioned Evoxup Membership ZIP attached to the GitHub Release.
Official GitHub releases include a SHA-256 checksum file:
evoxup-membership-<version>.zip.sha256
Example:
evoxup-membership-1.8.6.zip.sha256
This can be used to verify that the downloaded package matches the artifact created by the release workflow.
Release packages are built automatically by GitHub Actions.
The release workflow:
- Validates the release tag.
- Verifies the plugin version.
- Verifies the
readme.txtstable tag. - Runs PHP syntax validation.
- Prepares a WordPress distribution package.
- Excludes development-only files.
- Creates the release ZIP.
- Generates a SHA-256 checksum.
- Validates the ZIP structure.
- Uploads the final package to the GitHub Release.
Development-only files such as the following are not intended to be included in the WordPress release package:
.git/
.github/
phpstan.neon.dist
phpstan-bootstrap.php
vendor/
node_modules/
The main branch is checked automatically.
Every PHP file is validated for syntax errors.
Static analysis is performed using PHPStan.
The project is checked using the WordPress Plugin Check workflow.
Official GitHub release packages are created by:
The repository includes files used for development and continuous integration.
Examples:
.github/
phpstan.neon.dist
phpstan-bootstrap.php
These files are useful for development but are excluded from the official WordPress release package where appropriate.
The main branch uses repository protection rules.
The project is configured to protect the stable branch from accidental destructive changes such as:
- Branch deletion
- Force pushes
- Invalid updates
Project maintainers should preserve these protections except during carefully controlled repository maintenance.
Developer and architecture documentation is available in:
docs/
Online:
https://github.com/evoxup/evoxup-membership/tree/main/docs
Additional extension documentation is available under:
Extensions/
Latest release:
https://github.com/evoxup/evoxup-membership/releases/latest
All releases:
https://github.com/evoxup/evoxup-membership/releases
Current stable release:
1.8.6
Evoxup Membership 1.8.6 includes:
- Member Administration
1.1.0moved from the always-on Core workspace to a bundled internal module. - Local Enable / Disable control for Member Administration.
- Upgrade migration preserving the Customers workspace for installations upgrading from 1.8.5.
- Member, membership, license, order, entitlement, and event data preserved independently from the module enabled state.
- Corrected
block_categories_allcallback registration. - Simplified legacy table-prefix migration error initialization.
- Updated bundled module compatibility metadata.
- Database schema remains
3.1.1. - Extension API remains
2.1.0. - PHP Syntax Check passing.
- PHPStan Static Analysis passing.
- WordPress Plugin Check passing.
See:
For the public WordPress distribution, Core updates are intended to follow the normal WordPress plugin update path.
Separately distributed Evoxup packages can use their own documented distribution and entitlement mechanisms.
Commercial package eligibility does not restrict features already included in Evoxup Membership Core.
Security issues should not be submitted as public GitHub Issues when they contain vulnerability details.
Please review the security policy:
https://github.com/evoxup/evoxup-membership/security/policy
Security documentation:
Before opening an issue:
- Confirm you are using the latest stable release.
- Reproduce the issue with the relevant integration configuration.
- Collect non-sensitive error details.
- Do not include passwords, API secrets, private license keys, or customer-sensitive data.
Open a bug report:
https://github.com/evoxup/evoxup-membership/issues/new/choose
Feature ideas are welcome through the GitHub issue templates.
Submit a request:
https://github.com/evoxup/evoxup-membership/issues/new/choose
Feature proposals should explain:
- The use case
- The problem being solved
- Expected behavior
- Compatibility considerations
- Whether the feature belongs in Core, a bundled module, or a separate integration/add-on
Contributions are welcome.
Please read:
Typical contribution workflow:
Fork repository
↓
Create feature/fix branch
↓
Make focused changes
↓
Run checks
↓
Open Pull Request
↓
Review
↓
Merge
Please avoid mixing unrelated architectural changes into a single Pull Request.
Evoxup Membership follows several architectural principles.
Core functionality should use supported WordPress APIs, hooks, permissions, database APIs, HTTP APIs, filesystem APIs, and extension mechanisms.
Core commerce and licensing behavior should not be permanently tied to one external provider.
Optional capabilities should be isolated into modules or integrations where appropriate.
Sensitive actions should use:
- Capability checks
- Nonces where applicable
- Input validation
- Sanitization
- Escaping
- Authenticated integrations
- Verified webhooks
- HTTPS for supported external API configuration
Extensions and integrations should use public contracts, APIs, hooks, and supported interfaces rather than directly modifying unrelated Core internals.
Features included in the public plugin should remain usable without requiring a paid remote Evoxup service.
The public Evoxup Membership plugin does not use a paid key to unlock functionality already shipped in the plugin.
Bundled Lite modules are included functionality.
Separate PRO or SUPER STAR products can be distributed independently.
In short:
Included in public plugin
=
Available without paid unlock
while:
Separately distributed commercial package
=
Can use separate licensing / entitlement rules
Project website:
https://evoxup.com/evo-membership/
GitHub Issues:
https://github.com/evoxup/evoxup-membership/issues
Documentation:
https://github.com/evoxup/evoxup-membership/tree/main/docs
Evoxup Membership is free software.
If the project is useful to you and you would like to support continued development, an optional contribution can be made at:
Donations are optional and do not unlock features, memberships, licenses, updates, or functionality already included in the public plugin.
Evoxup Membership is licensed under the GNU General Public License v2.0 or later.
See:
GPL-2.0-or-later
Evoxup Membership
Membership • Licensing • Products • Entitlements • WooCommerce • Integrations