From 3efcc59fa4d8512e762dc952c4d3a977276edc97 Mon Sep 17 00:00:00 2001
From: frantorres
Date: Sun, 14 Jun 2026 20:01:26 +0200
Subject: [PATCH 01/16] Plugin Directory: Rehaul of the "Add your plugin" page.
Wording redo, included the checks in the sections and added "Trialware" and
"No accepted" plugins sections.
---
.../shortcodes/class-upload.php | 164 +++++++++++-------
.../patterns/page-developers.php | 8 +-
2 files changed, 107 insertions(+), 65 deletions(-)
diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
index ea5d8acb0e..01204dce96 100644
--- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
+++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
@@ -449,70 +449,106 @@ public static function display() {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Generic names that resemble existing plugins in the directory (e.g., “AI Writer”, “Image Optimization”) won’t be accepted, even if the slug is available.', 'wporg-plugins' ) ); ?>
-
start your plugin name with a unique or coined term, such as your brand, alias, or organization name (e.g., “Acme AI Writer”, “WriteralAI - AI Writter”, “Acme Image Optimization”, “Imageralia - Image Optimization”).', 'wporg-plugins' ) ); ?>
-
-
-
begin with a project, organization, or trademark are only accepted if submitted by the verified owner. Ownership can be confirmed through the email domain in your user profile - update it before submitting.', 'wporg-plugins' )
- ),
- esc_url( 'https://profiles.wordpress.org/profile/edit' )
- ); ?>
-
- For example, use an official Acme email domain (e.g., “john@acme.example”) for a plugin named “Acme AI Writer”.', 'wporg-plugins' ) ); ?>
-
-
If you don’t own the entity, don’t imply affiliation. Place their name at the end and make the distinction clear.', 'wporg-plugins' ) ); ?>
-
- 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”).', 'wporg-plugins' ) ); ?>
-
distinctive and should not be confusingly similar to existing plugins, projects, products, organizations, or trademarks that are not owned by you.', 'wporg-plugins' ) ); ?>
+
Choosing a distinctive name: 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., “Acme AI Writer”, “WriteralAI – AI Writter”)', 'wporg-plugins' ) ); ?>
+
Demonstrating ownership: 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 email address associated with your WordPress.org account. If necessary, update your profile before submitting.', 'wporg-plugins' )
+ ),
+ esc_url( 'https://profiles.wordpress.org/profile/edit' )
+ ); ?>
+
+
If you are not the owner: 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 for Acme”)', 'wporg-plugins' ) ); ?>
may not artificially restrict functionality that is included in the plugin itself.', 'wporg-plugins' ) ); ?>
+
features implemented in the plugin code and/or that the plugin itself can do.', 'wporg-plugins' ) ); ?>
+
open source directory for free to use plugins. 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' ) ); ?>
+
+
+
🚫
+
+
+
Reason: Security.', 'wporg-plugins' ) ); ?>
+
Reason: Security and Guideline 8.', 'wporg-plugins' ) ); ?>
GNU General Public License v2, 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 GNU General Public License v2, 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' ) );
?>
+
+ must not impose artificial restrictions on its built-in functionality. 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' ) );
+ ?>
+
distinctive and should not be confusingly similar to existing plugins, projects, products, organizations, or trademarks that are not owned by you.', 'wporg-plugins' ) ); ?>
Choosing a distinctive name: 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., “Acme AI Writer”, “WriteralAI – AI Writter”)', 'wporg-plugins' ) ); ?>
-
Demonstrating ownership: 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 email address associated with your WordPress.org account. If necessary, update your profile before submitting.', 'wporg-plugins' )
- ),
- esc_url( 'https://profiles.wordpress.org/profile/edit' )
- ); ?>
-
+
Demonstrating ownership: 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 email address associated with your WordPress.org account. If necessary, update your profile before submitting.', 'wporg-plugins' )
+ ),
+ esc_url( 'https://profiles.wordpress.org/profile/edit' )
+ ); ?>
+
If you are not the owner: 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 for Acme”)', 'wporg-plugins' ) ); ?>
may not artificially restrict functionality that is included in the plugin itself.', 'wporg-plugins' ) ); ?>
-
features implemented in the plugin code and/or that the plugin itself can do.', 'wporg-plugins' ) ); ?>
-
open source directory for free to use plugins. 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' ) ); ?>
-
-
-
🚫
-
-
-
Reason: Security.', 'wporg-plugins' ) ); ?>
-
Reason: Security and Guideline 8.', 'wporg-plugins' ) ); ?>
may not artificially restrict functionality that is included in the plugin itself.', 'wporg-plugins' ) ); ?>
+
features implemented in the plugin code and/or that the plugin itself can do.', 'wporg-plugins' ) ); ?>
+
open source directory for free to use plugins. 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' ) ); ?>
+
+
+
🚫
+
+
+
Reason: Security.', 'wporg-plugins' ) ); ?>
+
Reasons: Security and Guideline 8.', 'wporg-plugins' ) ); ?>
@@ -475,9 +470,9 @@ public static function display() {
Plugin Check plugin, and all indicated issues resolved (apart from what I believe to be false-positives).', 'wporg-plugins' ),
- home_url( '/plugin-check/' )
+ /* Translators: URL to plugin-check plugin */
+ wp_kses_post( __( 'I confirm that the plugin has been tested with the Plugin Check plugin, and all indicated issues resolved (apart from what I believe to be false-positives).', 'wporg-plugins' )),
+ esc_url( home_url( '/plugin-check/' ) )
);
?>
@@ -494,7 +489,7 @@ public static function display() {
Demonstrating ownership: 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 email address associated with your WordPress.org account. If necessary, update your profile before submitting.', 'wporg-plugins' )
+ __( 'Demonstrating ownership: 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 email address associated with your WordPress.org account. If necessary, update your profile before submitting.', 'wporg-plugins' )
),
esc_url( 'https://profiles.wordpress.org/profile/edit' )
); ?>
@@ -510,7 +505,7 @@ public static function display() {
' . esc_html( wp_get_current_user()->user_email ) . ''
);
?>
@@ -527,7 +522,7 @@ public static function display() {
open source directory for free to use plugins. 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' ) ); ?>
🚫
@@ -541,12 +536,12 @@ public static function display() {
From 2ba729400968defa9ff3a94a53cdd04978da248f Mon Sep 17 00:00:00 2001
From: frantorres
Date: Sun, 14 Jun 2026 20:26:10 +0200
Subject: [PATCH 04/16] Linting
---
.../shortcodes/class-upload.php | 24 +++++++++----------
.../patterns/page-developers.php | 12 +++++-----
2 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
index 79f1690df1..f4b9a41735 100644
--- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
+++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
@@ -455,7 +455,7 @@ public static function display() {
@@ -481,32 +481,32 @@ public static function display() {
distinctive and should not be confusingly similar to existing plugins, projects, products, organizations, or trademarks that are not owned by you.', 'wporg-plugins' ) ); ?>
Choosing a distinctive name: 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., “Acme AI Writer”, “WriteralAI – AI Writter”)', 'wporg-plugins' ) ); ?>
Demonstrating ownership: 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 email address associated with your WordPress.org account. If necessary, update your profile before submitting.', 'wporg-plugins' )
- ),
- esc_url( 'https://profiles.wordpress.org/profile/edit' )
- ); ?>
+ wp_kses_post(
+ __( 'Demonstrating ownership: 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 email address associated with your WordPress.org account. If necessary, update your profile before submitting.', 'wporg-plugins' )
+ ),
+ esc_url( 'https://profiles.wordpress.org/profile/edit' )
+ ); ?>
If you are not the owner: 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 for Acme”)', 'wporg-plugins' ) ); ?>
@@ -514,7 +514,7 @@ public static function display() {
🔓
".esc_html( 'Guidelines 5 and 6', 'wporg-plugins' )."";
+ echo ' - '.esc_html( 'Guidelines 5 and 6', 'wporg-plugins' ).'';
?>
may not artificially restrict functionality that is included in the plugin itself.', 'wporg-plugins' ) ); ?>
diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/page-developers.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/page-developers.php
index d859c81e7c..ab89854f3c 100644
--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/page-developers.php
+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/page-developers.php
@@ -33,12 +33,12 @@
printf( wp_kses_post( __( 'Your plugin must be compatible with the GNU General Public License v2, 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' ) );
?>
-
- must not impose artificial restrictions on its built-in functionality. 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' ) );
- ?>
-
+
+ must not impose artificial restrictions on its built-in functionality. 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' ) );
+ ?>
+
Date: Sun, 14 Jun 2026 20:29:38 +0200
Subject: [PATCH 05/16] Linting
---
.../plugins/plugin-directory/shortcodes/class-upload.php | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
index f4b9a41735..807227629b 100644
--- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
+++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
@@ -462,7 +462,7 @@ public static function display() {
@@ -490,8 +490,8 @@ public static function display() {
/* translators: 1: User profile URL. */
wp_kses_post(
__( 'Demonstrating ownership: 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 email address associated with your WordPress.org account. If necessary, update your profile before submitting.', 'wporg-plugins' )
- ),
- esc_url( 'https://profiles.wordpress.org/profile/edit' )
+ ),
+ esc_url( 'https://profiles.wordpress.org/profile/edit' )
); ?>
If you are not the owner: 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 for Acme”)', 'wporg-plugins' ) ); ?>
From 1c3e34ce4e514033059e281d9d44bd9af0b2f174 Mon Sep 17 00:00:00 2001
From: frantorres
Date: Tue, 30 Jun 2026 12:26:40 +0200
Subject: [PATCH 06/16] Changes to texts clarifying guidelines, where to reply
and naming.
---
.../pub/wporg-plugins-2024/patterns/page-add.php | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/page-add.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/page-add.php
index debce175da..3df41dd049 100644
--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/page-add.php
+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/page-add.php
@@ -63,11 +63,12 @@
);
?>
-
+
Learn about Escaping Data', 'wporg-plugins' ), 'https://developer.wordpress.org/apis/security/escaping/' ); ?>
Learn about Sanitizing Data', 'wporg-plugins' ), 'https://developer.wordpress.org/apis/security/sanitizing/' ); ?>
Learn about Nonces', 'wporg-plugins' ), 'https://developer.wordpress.org/apis/security/nonces/' ); ?>
+
Check out the guidelines', 'wporg-plugins' ), 'https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/' ); ?>
your plugin will not be approved. The Plugins Team will refer you back to these Handbook pages, adding further delay to the review process.', 'wporg-plugins' ); ?>
@@ -76,16 +77,17 @@
cannot be renamed.', 'wporg-plugins' ) ); ?>
-
display name you can update that by updating your plugin files in this page. If what you want to change is the permalink / slug 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' ) ); ?>
+
display name you can update that by updating your plugin files in this page. If what you want to change is the permalink / slug 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' ),
+ __( 'If you can no longer change the slug from this page, please contact us. If your plugin is already under review, simply reply to the review email. Otherwise, email us at %s. We can make the change as long as the plugin has not yet been approved.', 'wporg-plugins' ),
'plugins@wordpress.org'
);
?>
-
+
\ No newline at end of file
From 36bad14a360e9556bb40fd62d3e1d65d6d20e2e9 Mon Sep 17 00:00:00 2001
From: frantorres
Date: Tue, 30 Jun 2026 12:35:43 +0200
Subject: [PATCH 07/16] Escaping and linting
---
.../wporg-plugins-2024/patterns/page-add.php | 20 +++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/page-add.php b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/page-add.php
index 3df41dd049..32a584c717 100644
--- a/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/page-add.php
+++ b/wordpress.org/public_html/wp-content/themes/pub/wporg-plugins-2024/patterns/page-add.php
@@ -54,7 +54,7 @@
?>
-
+
-
+
-
Learn about Escaping Data', 'wporg-plugins' ), 'https://developer.wordpress.org/apis/security/escaping/' ); ?>
-
Learn about Sanitizing Data', 'wporg-plugins' ), 'https://developer.wordpress.org/apis/security/sanitizing/' ); ?>
-
Learn about Nonces', 'wporg-plugins' ), 'https://developer.wordpress.org/apis/security/nonces/' ); ?>
-
Check out the guidelines', 'wporg-plugins' ), 'https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/' ); ?>
Check out the guidelines', 'wporg-plugins' ) ), esc_url( 'https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/' ) ); ?>
your plugin will not be approved. The Plugins Team will refer you back to these Handbook pages, adding further delay to the review process.', 'wporg-plugins' ); ?>
@@ -77,11 +77,11 @@
cannot be renamed.', 'wporg-plugins' ) ); ?>
-
display name you can update that by updating your plugin files in this page. If what you want to change is the permalink / slug 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' ) ); ?>
-
display name you can update that by updating your plugin files in this page. If what you want to change is the permalink / slug 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' ) ); ?>
+
simply reply to the review email. Otherwise, email us at %s. We can make the change 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, simply reply to the review email. Otherwise, email us at %s. We can make the change as long as the plugin has not yet been approved.', 'wporg-plugins' ) ),
'plugins@wordpress.org'
);
?>
@@ -90,4 +90,4 @@
-
\ No newline at end of file
+
From 1ac412641969454e78ab8098f952781c795b312e Mon Sep 17 00:00:00 2001
From: frantorres
Date: Tue, 30 Jun 2026 12:49:32 +0200
Subject: [PATCH 08/16] Added plugins whose functionality is "already well
represented" as a not acceptance reason.
---
.../plugins/plugin-directory/shortcodes/class-upload.php | 1 +
1 file changed, 1 insertion(+)
diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
index 807227629b..9fdcd59e4e 100644
--- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
+++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
@@ -530,6 +530,7 @@ public static function display() {
Reason: Security.', 'wporg-plugins' ) ); ?>
Reasons: Security and Guideline 8.', 'wporg-plugins' ) ); ?>
+
Reason: Guideline 18.', 'wporg-plugins' ) ); ?>
From 3db638ad718ad8a450a6e9b105c2508ed1bcb119 Mon Sep 17 00:00:00 2001
From: frantorres
Date: Tue, 30 Jun 2026 13:46:54 +0200
Subject: [PATCH 09/16] Clarify that the shown queue is for the first review.
---
.../plugins/plugin-directory/shortcodes/class-upload.php | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
index 9fdcd59e4e..8261f81d8a 100644
--- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
+++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
@@ -141,13 +141,13 @@ public static function display() {
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'
) ),
@@ -160,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'
) ),
'' . esc_html( $queue_oldest_new_plugin_date_with_offset ) . ''
From 65537f23a135437997595ad13a4195b3a24f7206 Mon Sep 17 00:00:00 2001
From: frantorres
Date: Wed, 15 Jul 2026 19:11:25 +0200
Subject: [PATCH 10/16] Several text changes.
---
.../shortcodes/class-upload.php | 21 ++++++++-----------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
index 8261f81d8a..765dd62ebd 100644
--- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
+++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
@@ -1,7 +1,6 @@
distinctive and should not be confusingly similar to existing plugins, projects, products, organizations, or trademarks that are not owned by you.', 'wporg-plugins' ) ); ?>
-
Choosing a distinctive name: 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., “Acme AI Writer”, “WriteralAI – AI Writter”)', 'wporg-plugins' ) ); ?>
+
Choosing a distinctive name: 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., “Acme AI Writer”, “WriteralAI – AI Writter”)', 'wporg-plugins' ) ); ?>
-
If you are not the owner: 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 for Acme”)', 'wporg-plugins' ) ); ?>
+
If you are not the owner: 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 for Acme”)', 'wporg-plugins' ) ); ?>
GNU General Public License v2, 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' ) );
+ printf( wp_kses_post( __( 'Your plugin must be compatible with the GNU General Public License v2, or any later version. The plugin should either include its human-readable source code or provide a clear, accessible 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' ) );
?>
distinctive and should not be confusingly similar to existing plugins, projects, products, organizations, or trademarks that are not owned by you.', 'wporg-plugins' ) ); ?>
@@ -511,7 +516,13 @@ public static function display() {
@@ -555,8 +557,8 @@ public static function display() {
Plugins Directory Guidelines may be rejected. Repeated or serious violations may result in further restrictions.', 'wporg-plugins' ) ),
- 'https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/'
+ wp_kses_post( __( 'I understand that submissions that do not follow the Plugins Directory Guidelines may be rejected. Repeated or serious violations may result in further restrictions.', 'wporg-plugins' ) ),
+ 'https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/'
);
?>
@@ -565,8 +567,8 @@ public static function display() {
Plugins Directory Guidelines.', 'wporg-plugins' ) ),
- 'https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/'
+ wp_kses_post( __( 'I understand that hosting in the WordPress.org Plugin Directory is provided subject to continued compliance with the Plugins Directory Guidelines.', 'wporg-plugins' ) ),
+ 'https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/'
);
?>
From 155b2ca6eeab52cdf0beae2be4d3e6b88c19d040 Mon Sep 17 00:00:00 2001
From: Konstantin Obenland
Date: Wed, 15 Jul 2026 17:22:20 -0500
Subject: [PATCH 16/16] Fix typo
---
.../plugins/plugin-directory/shortcodes/class-upload.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
index 2d5eab36b0..6e464d041f 100644
--- a/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
+++ b/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload.php
@@ -500,7 +500,7 @@ public static function display() {
If you are not the owner: 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 for Acme”)', 'wporg-plugins' ) ); ?>