WordPress.org Plugin Compliance
Ensures WordPress.org compliance for free vs premium code and upselling.
Core Rule: No Locked Code
Golden Rule: All code in WordPress.org plugins must be free and fully functional.
- Every feature works completely without a license key
- No trial periods or usage limits
- No features requiring payment to unlock
Quick Reference
Not Allowed
- Trial periods or time limits
- Usage quotas or artificial limits
- License keys for local features
- Disabled features requiring payment
- Intrusive nag screens
Allowed
- Informational upselling (non-intrusive)
- Separate premium plugin from your site
- Feature detection (not restriction)
- Comparison tables and teasers
- Disabled form previews for premium-only features
Key Patterns
// ❌ WRONG: Feature Restriction
if ( ! $this->is_premium() ) {
echo 'Premium required';
return;
}
// ✅ CORRECT: Feature Detection
$this->show_basic_export();
if ( $this->has_premium_addon() ) {
do_action( 'sh_premium_export_options' );
}
// ❌ WRONG: Artificial Limits
$limit = $this->is_premium() ? 10000 : 100;
// ✅ CORRECT: No Artificial Limits
$limit = apply_filters( 'sh_event_limit', 10000 );
Compliance Checklist
- [ ] All features work without license key
- [ ] No trial periods or time limits
- [ ] No usage quotas
- [ ] Upselling is informational, not obstructive
- [ ] Free version provides real value
Detailed Information
- examples.md - Detailed code examples
- testing.md - Testing procedures and pre-submission verification
Resources
The Simple Rule: If it's in the WordPress.org version, it must work completely without payment.