--- name: wordpress-org-compliance description: Ensures WordPress.org compliance for freemium plugins and prevents trialware violations. Reviews premium features, upsells, license keys, and teasers before WordPress.org submission. Triggers: "premium", "upsell", "freemium", "license key", "wp.org guidelines", "trialware". allowed-tools: Read, Grep, Glob --- # 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 ```php // ❌ 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](examples.md) - Detailed code examples - [testing.md](testing.md) - Testing procedures and pre-submission verification ## Resources - [WordPress.org Guidelines](https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/#5-trialware-is-not-permitted) **The Simple Rule:** If it's in the WordPress.org version, it must work completely without payment.