-
Notifications
You must be signed in to change notification settings - Fork 204
Plugin Directory: Changes to the "Add your plugin" page. #696
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: trunk
Are you sure you want to change the base?
Changes from all commits
3efcc59
b570b3e
dd162b4
2ba7294
151aba3
e5ef46e
1c3e34c
250e72a
36bad14
1ac4126
3db638a
63dc888
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
| @@ -1,6 +1,7 @@ | ||||||||
| <?php | ||||||||
| namespace WordPressdotorg\Plugin_Directory\Shortcodes; | ||||||||
| use WordPressdotorg\Plugin_Directory\Template; | ||||||||
| use function WordPressdotorg\MainTheme\_esc_html_e; | ||||||||
| use function WordPressdotorg\Two_Factor\get_onboarding_account_url; | ||||||||
|
|
||||||||
| class Upload { | ||||||||
|
|
@@ -140,13 +141,13 @@ public static function display() { | |||||||
| <p> | ||||||||
| <?php | ||||||||
| if ( 1 === (int) $plugins->new ) { | ||||||||
| esc_html_e( 'Currently there is 1 plugin awaiting review.', 'wporg-plugins' ); | ||||||||
| esc_html_e( 'Currently there is 1 plugin awaiting its first review.', 'wporg-plugins' ); | ||||||||
| } else { | ||||||||
| printf( | ||||||||
| /* translators: %s: Amount of plugins awaiting review. */ | ||||||||
| esc_html( _n( | ||||||||
| 'Currently there is %s plugin awaiting review.', | ||||||||
| 'Currently there are %s plugins awaiting review.', | ||||||||
| 'Currently there is %s plugin awaiting their first review.', | ||||||||
| 'Currently there are %s plugins awaiting their first review.', | ||||||||
| $plugins->new, | ||||||||
| 'wporg-plugins' | ||||||||
| ) ), | ||||||||
|
|
@@ -159,7 +160,7 @@ public static function display() { | |||||||
| printf( | ||||||||
| /* translators: %s: Date of the oldest new plugin in the queue, with a 36 hours offset. */ | ||||||||
| esc_html( __( | ||||||||
| 'All plugins that have been submitted before %s have received an initial response by email to their submission.', | ||||||||
| 'All new submissions received before %s have been sent an initial response by email.', | ||||||||
| 'wporg-plugins' | ||||||||
| ) ), | ||||||||
| '<strong>' . esc_html( $queue_oldest_new_plugin_date_with_offset ) . '</strong>' | ||||||||
|
|
@@ -449,70 +450,101 @@ public static function display() { | |||||||
| <?php wp_nonce_field( 'wporg-plugins-upload' ); ?> | ||||||||
| <input type="hidden" name="action" value="upload"/> | ||||||||
|
|
||||||||
| <h3><?php esc_html_e( 'Please, read and check the following before uploading your plugin', 'wporg-plugins' ); ?></h3> | ||||||||
|
|
||||||||
| <p> | ||||||||
| <label> | ||||||||
| <input type="checkbox" name="requirements[faq]" required="required"> | ||||||||
| <?php | ||||||||
| printf( | ||||||||
| __( 'I have read the <a href="%s">Frequently Asked Questions</a>.', 'wporg-plugins' ), | ||||||||
| 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/' | ||||||||
| ); | ||||||||
| ?> | ||||||||
| </label> | ||||||||
| <br> | ||||||||
| <label> | ||||||||
| <input type="checkbox" name="requirements[guidelines]" required="required"> | ||||||||
| <?php | ||||||||
| printf( | ||||||||
| __( 'This plugin complies with all of the <a href="%s">Plugin Developer Guidelines</a>.', 'wporg-plugins' ), | ||||||||
| 'https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/' | ||||||||
| ); | ||||||||
| ?> | ||||||||
| </label> | ||||||||
| <br> | ||||||||
| <label> | ||||||||
| <input type="checkbox" name="requirements[author]" required="required"> | ||||||||
| <?php _e( 'I have permission to upload this plugin to WordPress.org for others to use and share.', 'wporg-plugins' ); ?> | ||||||||
| </label> | ||||||||
| <br> | ||||||||
| <label> | ||||||||
| <input type="checkbox" name="requirements[license]" required="required"> | ||||||||
| <?php _e( 'This plugin, all included libraries, and any other included assets are licenced as GPL or are under a GPL compatible license.', 'wporg-plugins' ); ?> | ||||||||
| </label> | ||||||||
| <br> | ||||||||
| <label> | ||||||||
| <input type="checkbox" name="requirements[plugin-check]" required="required" /> | ||||||||
| <?php | ||||||||
| printf( | ||||||||
| /* Translators: URL to plugin-check plugin */ | ||||||||
| __( 'I confirm that the plugin has been tested with the <a href="%s">Plugin Check</a> plugin, and all indicated issues resolved (apart from what I believe to be false-positives).', 'wporg-plugins' ), | ||||||||
| home_url( '/plugin-check/' ) | ||||||||
| ); | ||||||||
| ?> | ||||||||
| </label> | ||||||||
| </p> | ||||||||
|
|
||||||||
| <h3><?php esc_html_e( 'Plugin Naming', 'wporg-plugins' ); ?></h3> | ||||||||
| <p><?php echo wp_kses_post( __( '<strong>Generic names</strong> that <strong>resemble existing plugins in the directory</strong> (e.g., “AI Writer”, “Image Optimization”) won’t be accepted, even if the slug is available.', 'wporg-plugins' ) ); ?></p> | ||||||||
| <p><?php echo wp_kses_post( __( 'Instead, please <strong>start your plugin name with a unique or coined term</strong>, such as your brand, alias, or organization name (e.g., “Acme AI Writer”, “WriteralAI - AI Writter”, “Acme Image Optimization”, “Imageralia - Image Optimization”).', 'wporg-plugins' ) ); ?></p> | ||||||||
| <h2><?php esc_html_e( 'Step 1: Before you submit', 'wporg-plugins' ); ?></h2> | ||||||||
| <p><?php esc_html_e( 'Please, read and confirm the following.', 'wporg-plugins' ); ?></p> | ||||||||
| <label> | ||||||||
| <input type="checkbox" name="requirements[faq]" required="required"> | ||||||||
| <?php | ||||||||
| printf( wp_kses_post( __( 'I have read the <a href="%s">Frequently Asked Questions</a>.', 'wporg-plugins' ) ), 'https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/' ); | ||||||||
| ?> | ||||||||
| </label> | ||||||||
| <br> | ||||||||
| <label> | ||||||||
| <input type="checkbox" name="requirements[guidelines]" required="required"> | ||||||||
| <?php | ||||||||
| printf( wp_kses_post( __( 'I have read and make sure that this plugin complies with <strong>all</strong> of the <a href="%s">Plugins Directory Guidelines</a>.', 'wporg-plugins' ) ), 'https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/' ); | ||||||||
| ?> | ||||||||
| </label> | ||||||||
| <br> | ||||||||
| <label> | ||||||||
| <input type="checkbox" name="requirements[plugin-check]" required="required" /> | ||||||||
| <?php | ||||||||
| printf( | ||||||||
| /* Translators: URL to plugin-check plugin */ | ||||||||
| wp_kses_post( __( 'I confirm that the plugin has been tested with the <a href="%s">Plugin Check</a> plugin, and all indicated issues resolved (apart from what I believe to be false-positives).', 'wporg-plugins' )), | ||||||||
| esc_url( home_url( '/plugin-check/' ) ) | ||||||||
| ); | ||||||||
| ?> | ||||||||
| </label> | ||||||||
|
|
||||||||
| <h3><?php esc_html_e( 'Plugin Ownership', 'wporg-plugins' ); ?></h3> | ||||||||
| <h2><?php esc_html_e( 'Step 2: Common reasons plugins are rejected', 'wporg-plugins' ); ?></h2> | ||||||||
| <h3>🏷️ | ||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You're sure you want to add emoji on this page? |
||||||||
| <?php | ||||||||
| esc_html_e( 'Naming and ownership', 'wporg-plugins' ); | ||||||||
| echo ' - <i>'.esc_html( 'Guideline 17', 'wporg-plugins' ).'</i>'; | ||||||||
|
Comment on lines
+483
to
+484
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
This one would be easier to translate for RTL languages if it was a single string. |
||||||||
| ?> | ||||||||
| </h3> | ||||||||
| <p><?php echo wp_kses_post( __( 'Plugin names must be <strong>distinctive</strong> and should not be <strong>confusingly similar</strong> to existing plugins, projects, products, organizations, or trademarks that are not owned by you.', 'wporg-plugins' ) ); ?></p> | ||||||||
| <p><?php echo wp_kses_post( __( '<strong>Choosing a distinctive name</strong>: Generic names such as "AI Writer" or "Image Optimization" and/or names similar to existing plugins are unlikely to be accepted, even if the plugin slug is available. Make your plugin stand out by using a unique identifier such as your name, brand, organization, or project name (e.g., “<u>Acme</u> AI Writer”, “<u>WriteralAI</u> – AI Writter”)', 'wporg-plugins' ) ); ?></p> | ||||||||
| <p><?php printf( | ||||||||
| /* translators: 1: User profile URL. */ | ||||||||
| wp_kses_post( | ||||||||
| __( 'Names that <strong>begin</strong> with a project, organization, or trademark are <strong>only accepted if submitted by the verified owner</strong>. Ownership can be <strong>confirmed through the email domain in your <a href="%1$s" target="_blank">user profile</a></strong> - update it before submitting.', 'wporg-plugins' ) | ||||||||
| __( '<strong>Demonstrating ownership</strong>: Names that begin with a company, project, organization, or trademark name may only be submitted by the verified owner. Ownership is typically verified using the <a href="%1$s" target="_blank">email address associated with your WordPress.org account</a>. If necessary, update your profile before submitting.', 'wporg-plugins' ) | ||||||||
| ), | ||||||||
| esc_url( 'https://profiles.wordpress.org/profile/edit' ) | ||||||||
| ); ?> | ||||||||
| <br> | ||||||||
| <?php echo wp_kses_post( __( '<i>For example, use an official Acme email domain (e.g., “john@acme.example”) for a plugin named “Acme AI Writer”.</i>', 'wporg-plugins' ) ); ?> | ||||||||
| </p> | ||||||||
| <p><?php echo wp_kses_post( __( '<strong>If you don’t own the entity, don’t imply affiliation</strong>. Place their name <strong>at the end</strong> and <strong>make the distinction clear</strong>.', 'wporg-plugins' ) ); ?> | ||||||||
| <p><?php echo wp_kses_post( __( '<strong>If you are not the owner</strong>: Simply do not imply affiliation with a company, project, or trademark that you do not own. You can do so placing their name at the end and making the distinction clear (e.g., “WriteralAI – AI Writer <u>for Acme</u>”)', 'wporg-plugins' ) ); ?></p> | ||||||||
| <label> | ||||||||
| <input type="checkbox" name="requirements[naming]" required="required"> | ||||||||
| <?php esc_html_e( 'I have chosen a plugin name that is not confusingly similar to existing plugins, projects, organizations, or trademarks. I searched on internet for similar names and found nothing similar.', 'wporg-plugins' ); ?> | ||||||||
| </label> | ||||||||
| <br> | ||||||||
| <label> | ||||||||
| <input type="checkbox" name="requirements[author]" required="required"> | ||||||||
| <?php | ||||||||
| printf( | ||||||||
| /* translators: %s: Current user's email address. */ | ||||||||
| wp_kses_post( __( 'I have permission to upload this plugin to WordPress.org for others to use and share and I am using a WordPress.org account that accurately represents the plugin owner: %s.', 'wporg-plugins' )), | ||||||||
| '<strong>' . esc_html( wp_get_current_user()->user_email ) . '</strong>' | ||||||||
| ); | ||||||||
| ?> | ||||||||
| </label> | ||||||||
|
|
||||||||
| <h3>🔓 | ||||||||
| <?php | ||||||||
| esc_html_e( 'Trialware', 'wporg-plugins' ); | ||||||||
| echo ' - <i>'.esc_html( 'Guidelines 5 and 6', 'wporg-plugins' ).'</i>'; | ||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same as above. |
||||||||
| ?> | ||||||||
| </h3> | ||||||||
| <p><?php echo wp_kses_post( __( 'Plugins hosted in the WordPress.org Plugin Directory <strong>may not artificially restrict functionality that is included in the plugin itself</strong>.', 'wporg-plugins' ) ); ?></p> | ||||||||
| <p><?php echo wp_kses_post( __( 'This includes but is not limited to: paywalls, license/feature gating, time-limited trials, usage cutoffs, or any other mechanism that restricts, disables, or conditions access to <u>features implemented in the plugin code and/or that the plugin itself can do</u>.', 'wporg-plugins' ) ); ?></p> | ||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Underlined text usually denotes a link, let's avoid the confusion. |
||||||||
| <p><?php echo wp_kses_post( __( 'Please bear in mind that this is an <strong>open source directory for free to use plugins</strong>. Building a business around your plugin is fine, and there are compliant ways of doing so; artificial limitations in built-in code are not one of them.', 'wporg-plugins' ) ); ?></p> | ||||||||
| <label> | ||||||||
| <input type="checkbox" name="requirements[trialware]" required="required"> | ||||||||
| <?php esc_html_e( 'I confirm that my plugin code does not include artificial limitations to the included functionality. I acknowledge that I must comply with this in future, and that my plugin and account could be suspended indefinitely if I fail to do so.', 'wporg-plugins' ); ?> | ||||||||
| </label> | ||||||||
|
|
||||||||
| <h3>🚫 <?php esc_html_e( 'Not accepted plugins', 'wporg-plugins' ); ?></h3> | ||||||||
| <p><?php esc_html_e( 'There are some kind of plugins that aren\'t accepted in the directory, please do not submit them.', 'wporg-plugins' ); ?></p> | ||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Let's use curly quotes everywhere. |
||||||||
| <ul> | ||||||||
| <li><?php echo wp_kses_post( __( 'Plugins that allow arbitrary code insertion/execution are no longer accepted. This includes but is not limited to: PHP, JavaScript editors, File Managers, and AI tools creating code that is executed on the site. HTML is fine as long as it is escaped correctly. <i>Reason: Security</i>.', 'wporg-plugins' ) ); ?></li> | ||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Instead of "Reason", maybe a friendlier "See:" would have the same effect? |
||||||||
| <li><?php echo wp_kses_post( __( 'Plugins downloading executable code from external sources. <i>Reasons: Security and Guideline 8</i>.', 'wporg-plugins' ) ); ?></li> | ||||||||
| <li><?php echo wp_kses_post( __( 'Plugins whose functionality is already well represented in the directory, with hundreds of comparable plugins available, and that do not provide meaningful differentiation or introduce substantial innovation. <i>Reason: Guideline 18</i>.', 'wporg-plugins' ) ); ?></li> | ||||||||
| </ul> | ||||||||
|
|
||||||||
| <h2><?php esc_html_e( 'Step 3: Submission acknowledgement', 'wporg-plugins' ); ?></h2> | ||||||||
| <p><?php esc_html_e( 'Please confirm that you understand the following:', 'wporg-plugins' ); ?></p> | ||||||||
| <label> | ||||||||
| <input type="checkbox" name="requirements[confirmation1]" required="required"> | ||||||||
| <?php esc_html_e( 'I understand that submissions that do not follow the Plugin Directory Guidelines may be rejected. Repeated or serious violations may result in further restrictions', 'wporg-plugins' ); ?> | ||||||||
| </label> | ||||||||
| <br> | ||||||||
| <label> | ||||||||
| <input type="checkbox" name="requirements[confirmation3]" required="required"> | ||||||||
| <?php esc_html_e( 'I understand that hosting in the WordPress.org Plugin Directory is provided subject to continued compliance with the Plugin Directory Guidelines.', 'wporg-plugins' ); ?> | ||||||||
| </label> | ||||||||
| <br> | ||||||||
| <?php echo wp_kses_post( __( '<i>For example, if you don’t own “Acme” use a structure like: “{your-distinguible-plugin-name} for Acme” (e.g., “WriteralAI – AI Writer for Acme”).</i>', 'wporg-plugins' ) ); ?> | ||||||||
| </p> | ||||||||
|
|
||||||||
| <h3><?php esc_html_e( 'Are you ready? Upload the .zip file for your plugin', 'wporg-plugins' ); ?></h3> | ||||||||
|
|
||||||||
|
|
||||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -54,7 +54,7 @@ | |||||
| ?> | ||||||
| </p> | ||||||
|
|
||||||
| <h3><?php _e( 'How can I expedite my plugin review?', 'wporg-plugins' ); ?></h3> | ||||||
| <h3><?php esc_html_e( 'How can I expedite my plugin review?', 'wporg-plugins' ); ?></h3> | ||||||
| <p> | ||||||
| <?php | ||||||
| printf( | ||||||
|
|
@@ -63,11 +63,12 @@ | |||||
| ); | ||||||
| ?> | ||||||
| </p> | ||||||
| <p><?php _e( 'Our three most common reasons for not approving a plugin are:', 'wporg-plugins' ); ?></p> | ||||||
| <p><?php esc_html_e( 'Our four most common reasons for not approving a plugin are:', 'wporg-plugins' ); ?></p> | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
So we don't need to re-translate every time that count changes. |
||||||
| <ul> | ||||||
| <li><?php printf( __( 'The plugin contains unescaped output: <a href="%s">Learn about Escaping Data</a>', 'wporg-plugins' ), 'https://developer.wordpress.org/apis/security/escaping/' ); ?></li> | ||||||
| <li><?php printf( __( 'The plugin accepts unsanitized data: <a href="%s">Learn about Sanitizing Data</a>', 'wporg-plugins' ), 'https://developer.wordpress.org/apis/security/sanitizing/' ); ?></li> | ||||||
| <li><?php printf( __( 'The plugin processes form data without a nonce: <a href="%s">Learn about Nonces</a>', 'wporg-plugins' ), 'https://developer.wordpress.org/apis/security/nonces/' ); ?></li> | ||||||
| <li><?php printf( wp_kses_post( __( 'The plugin contains unescaped output: <a href="%s">Learn about Escaping Data</a>', 'wporg-plugins' ) ), esc_url( 'https://developer.wordpress.org/apis/security/escaping/' ) ); ?></li> | ||||||
| <li><?php printf( wp_kses_post( __( 'The plugin accepts unsanitized data: <a href="%s">Learn about Sanitizing Data</a>', 'wporg-plugins' ) ), esc_url( 'https://developer.wordpress.org/apis/security/sanitizing/' ) ); ?></li> | ||||||
| <li><?php printf( wp_kses_post( __( 'The plugin processes form data without a nonce: <a href="%s">Learn about Nonces</a>', 'wporg-plugins' ) ), esc_url( 'https://developer.wordpress.org/apis/security/nonces/' ) ); ?></li> | ||||||
| <li><?php printf( wp_kses_post( __( 'The plugin does not comply with the guidelines: <a href="%s">Check out the guidelines</a>', 'wporg-plugins' ) ), esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/' ) ); ?></li> | ||||||
| </ul> | ||||||
| <p><?php _e( 'If the code in your plugin falls into one of the above categories, <strong>your plugin will not be approved</strong>. The Plugins Team will refer you back to these Handbook pages, adding further delay to the review process.', 'wporg-plugins' ); ?></p> | ||||||
|
|
||||||
|
|
@@ -76,16 +77,17 @@ | |||||
| <p><?php echo wp_kses_post( __( 'Once your plugin is approved, it <em>cannot</em> be renamed.', 'wporg-plugins' ) ); ?></p> | ||||||
|
|
||||||
| <h3><?php esc_html_e( 'I made a mistake in my plugin name. Should I update it?', 'wporg-plugins' ); ?></h3> | ||||||
| <p><?php echo wp_kses_post( __( 'It depends on what you want to change. If you want to change the plugin <strong>display name</strong> you can update that by updating your plugin files in this page. If what you want to change is the <strong>permalink / slug</strong> of your plugin, you can do that ONCE before we begin with the review (if that’s available you’ll see a link to change it on this page).', 'wporg-plugins' ) ); ?></p> | ||||||
| <p><?php | ||||||
| printf( | ||||||
| /* translators: %s: Email address */ | ||||||
| __( 'It depends on what you want to change. If you want to change the plugin <strong>display name</strong> you can update that by updating your plugin files in this page. If what you want to change is the <strong>permalink / slug</strong> of your plugin, you can do that ONCE before we begin with the review (if that’s available you’ll see a link to change it on this page). If this is not possible, you will need to contact us at %s, we can change it as long as the plugin has not yet been approved.', 'wporg-plugins' ), | ||||||
| wp_kses_post( __( 'If you can no longer change the slug from this page, please contact us. If your plugin is already under review, <strong>simply reply to the review email</strong>. Otherwise, email us at %s. We can make the change as long as the plugin has not yet been approved.', 'wporg-plugins' ) ), | ||||||
| '<code>plugins@wordpress.org</code>' | ||||||
| ); | ||||||
| ?></p> | ||||||
|
|
||||||
| <h3><?php esc_html_e( 'Why can’t I submit a plugin with certain display names?', 'wporg-plugins' ); ?></h3> | ||||||
| <p><?php echo wp_kses_post( __( 'Certain plugin names are prohibited due to trademark abuse. Similarly, we prevent their use in plugin slugs entirely for your protection.', 'wporg-plugins' ) ); ?></p> | ||||||
| <p><?php echo wp_kses_post( __( 'Certain plugin names are prohibited due to trademark abuse and to avoid confusion with other project names or plugins. Similarly, we prevent their use in plugin slugs entirely for your protection.', 'wporg-plugins' ) ); ?></p> | ||||||
| </div> | ||||||
| </section> | ||||||
| </div> | ||||||
| </div> | ||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -30,7 +30,13 @@ | |
| <li> | ||
| <?php | ||
| /* translators: URL to licence list. */ | ||
| printf( wp_kses_post( __( 'Your plugin must be compatible with the <a href="%s">GNU General Public License v2</a>, or any later version. We strongly recommend using the same license as WordPress — “GPLv2 or later.”', 'wporg-plugins' ) ), esc_url( 'https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses' ) ); | ||
| printf( wp_kses_post( __( 'Your plugin must be compatible with the <a href="%s">GNU General Public License v2</a>, or any later version. The plugin should either include its source code or provide a clear link to it. We strongly recommend using the same license as WordPress — “GPLv2 or later.”', 'wporg-plugins' ) ), esc_url( 'https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses' ) ); | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
This sounds confusing, without source code there is no plugin. Is this a reference to unminified code by chance? If so, let's make that clear. |
||
| ?> | ||
| </li> | ||
| <li> | ||
| <?php | ||
| /* translators: URL to guidelines. */ | ||
| printf( wp_kses_post( __( 'The plugin <a href="%s" target="_blank">must not impose artificial restrictions on its built-in functionality</a>. This includes license gates, paywalls, time-limited trials, usage quotas, or any other mechanism that limits features included in the plugin code and/or that the plugin code can do.', 'wporg-plugins' ) ), esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/#5-trialware-is-not-permitted' ) ); | ||
| ?> | ||
| </li> | ||
| <li><?php esc_html_e( 'The plugin must not do anything illegal or be morally offensive (that’s subjective, we know).', 'wporg-plugins' ); ?></li> | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doesn't seem to be used anywhere?