Welcome to the official blog for the Plugins Team.
The team acts as gate-keepers and fresh eyes on newly submitted plugins, as well as reviewing any reported security or guideline violations.
Quick Links
The team acts as gate-keepers and fresh eyes on newly submitted plugins, as well as reviewing any reported security or guideline violations.
Quick Links
As an important part of the internet, the WordPress community, actively thinks about the security of the ecosystem. Community members, developers, specialized companies, and independent researchers all play a role in maintaining the security of the environment.
In the Plugins Team, weโre passionate not only with improving the tools we already work with, but also with making them public so the community can use them when developing and building plugins.
Thatโs why the Plugins Team, Performance Team, and MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. Team launched the Plugin Check plugin, a tool that runs checks on your pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party and generates a report so developers can apply proper security measures and improve the plugin overall.
On September 17th of 2024, we introduced automatic detection of issues for new plugins that fail to meet the minimum required checks. This feature provides developers with guidance on how to resolve these issues before the Plugins Team conducts a manual review.
This has helped improve the quality of plugin submissions before they even reach a human reviewer. Thanks to AI support during manual reviews using our Internal Scanner, plus the teamโs effort to complete more reviews, the queue hasnโt grown despite receiving more than double the number of plugins compared to last year.
We are now running Plugin Check for ALL plugins updates, new and already approved.
Since Monday, October 27th, thanks to the Meta team, weโve implemented automatic detection on wordpress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ for issues related to security, compatibility and compliance.
Right now, this information is available internally for the team, who will evaluate it and send reports to authors as needed. During this phase, we will observe how PCPs behave during updates and we will improve as we see fit.
Once weโve evaluated the performance of PCP with plugin updates, the goal is to deliver via email a security report to authors right after they update their plugin. Our aim is to promote and maintain good development practices across the entire WordPress ecosystem.
To wrap up: this week marks a small but meaningful step forward in improving the security of plugins hosted on wordpress.org. We look forward to the community taking this opportunity to double-check their plugins when sending an update โ or even before.
This post was written by David Perez and reviewed by Francisco Torres.
After WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what theyโve learned throughout the year and share the joy. Learn more. US, we have prepared some insights about our team and we wanted to share it with the community.
These are the insights from the Plugins Team:
In summary, although the number of submitted plugins is increasing, the teamโs effort remains steady, thanks in part to AI automation in certain areas. Our goal is to continue improving by implementing AI in more checks, as well as introducing proactive scanning of the current Plugins Directory.
All this data was prepared on the 31th of August.
Written by @davidperez, reviewed by @frantorres
Since the team transition that took place in June 2023, the goals of the PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Review Team have continued to grow. This change has been internally agreed upon, and weโre excited about the new name.
Hereโs a quick summary of our main focus areas:
This has remained our primary task and takes up most of our time. Weโre now receiving over 87% more weekly plugin submissions. Our goal is to keep the queue as short as possible and ensure a balanced workload across the team.
The Scanner tool has undergone major upgrades, now performing over 220 automated checks on plugins. This makes the review process more efficient and reliable. Weโve also introduced AI checks for plugin names, helping ensure clear and trademark-compliant naming from the start.
Since Plugin Check Plugin was introduced to the community, itโs become increasingly integrated into workflows, helping plugin authors self-review their plugins and boosting the overall quality and security of the WordPress ecosystem.
The team is now actively contributing to its development, adding new checks, and weโre proposing to use it during plugin updates and commits as well.
Weโll be working closely with the MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. team to help review open tickets and propose new features we believe will improve plugin reliability and security.
Weโve come to feel that the name โPlugin Review Teamโ no longer reflects everything we do. Thatโs why weโre proposing a simplified name: โPlugins Team.โ Interestingly, the Themes Team made a similar change some time ago.
So we propose updating the name across various community spaces:
We believe this small change is well deserved, given all the efforts the team has made to improve the WordPress plugin ecosystem. Weโre looking forward to continuing to grow and evolve.
Post written by @davidperez, reviewed by @frantorres and @rabmalin
Weโre happy to announce that @davidperez and @frantorres are stepping in as the next team reps for the WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Review Team!
Plugin team reps help coordinate the teamโs duty, coordinate communication with the community, and ensure important updates and community activities stay on track.
Over the past two years, the new team has made important progress โ incorporating new members, reducing the plugin queue, creating and improving tools, streamlining the reviews and refining processes โ thanks to the collective effort of everyone involved.
Looking ahead, the team is preparing to tackle new challenges, which we believe will include: the impact of AI, further tool enhancements, proactive reviews, and improving documentation.
A big thank you to the entire team for their dedication, to the contributions through the โFive for the futureโ program and to all plugin authors for keeping their plugins secure, compatible, and compliant. Together, we are evolving the WordPress plugin ecosystem!
๐ฑ We have great news from the Plugins team. The submission of new plugins in WordPress has almost doubled this year, helping the WordPress ecosystem to grow.
The WordPress developer community is celebrating as they maintain and increase their submissions to be reviewed and published in the WordPress directory.
As you can see in the graph below, we detected this increase since last September, and we can observe the impact of AI as well as achievements made by the team, such as having automated tools and improvements to the internal Scanner, which, in our view, have contributed to the rise in pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party submissions to the official directory.

๐ค Itโs clear that AI is influencing plugin submissions to the directory. Here, we analyze plugins that have โAIโ in their title, showing the use of Artificial Intelligence integrated into WordPress.
As seen in this chart, growth is exponential, with many plugins directly using AI to offer features within the directory.

If we were to group them by functionality and ordered by number of submissions, weโd have these categories:
๐ฌ Chatbots / Virtual Agents
โ๏ธ Content Generators
๐ Ecommerce / WooCommerce
๐ SEO
๐ผ๏ธ Multimedia Generation (images, 3D, etc.)
๐ Forms / Inputs
โจ Summaries / Highlights
โ FAQ / Q&A Generators
๐ Translation / Multilingual
๐ท๏ธ TaxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. Management (categories/tags)
๐ Titles and Metadata
We highly appreciate developers betting on WordPress to include Artificial Intelligence and improve integration and functionalities for users.
Artificial intelligence has become a key tool to speed up and improve plugin development in WordPress. From writing code to generating ideas, here are some standout ways AI is helping:
Weโve upgraded our internal tool focusing on three pillars: better detection, more examples, and AI integration.
We revamped the tool that assists our manual reviews by catching more issues and checking more detection points, while customizing examples to make it easier for developers to find solutions.
Remember, the main security issues stem from lack of sanitization, escaping, and nonce usage.
Finally, weโve added AI to detect duplicate or similar plugin names in the directory, making the team more productive.
Since last year, we have the Plugin Check Plugin tool, which lets you review your own plugin. Plugin Check Plugin is an official tool that automatically checks if your plugin meets WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ directory requirements and best practices.
More info is available in the detailed introductory post.
Since September 2024, Plugin Check Plugin has been integrated for automatic reviews directly on WordPress.org, improving review speed and reducing issues by 41% when approving a plugin.
Even though weโve received twice as many new plugin submissions, we should applaud the teamโs dedication to keeping the time for first reviews low.
A short waiting time for plugin review encourages developers to publish in the directory and offers many advantages:
This year, we are also managing to keep the average waiting time for the first review at a minimum. We work hard every day to maintain this commitment and avoid long delays that could discourage new plugin development.
This post was written by @davidperez and reviewed by @frantorres and @rabmalin
Itโs been a transformative year of growth in the WordPress Plugins Directory, particularly as the Plugins Team welcomed several new members onboard. Throughout this time, we remained focused on our primary goals: enhancing security, improving the review process, and fostering community engagement.
Our security efforts have focused on creating tools to benefit all developers, including the introduction of mandatory PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Check for new plugin submissions, 2FA in SVNSVN Short for "SubVersioN", it's the code management system used to maintain the plugins hosted on WordPress.org. It's similar to git. and our renovated Internal Scanner Tool. These features, detailed here, enhance security and streamline the submission process. Additionally, the SVN Password feature has become a critical measure to prevent account theft and related issues.
When it comes to reviews, it remains our most time-intensive task, reflecting our commitment to maintaining quality and trust within the Plugins directory.
Since September 2023, the plugin review queueโonce around 1,300โhas seen significant improvements thanks to enhanced tools, refined workflows, and better submissions. In October 2024, the queue even briefly hit zero. The Plugin Check plugin has been key, enabling developers to improve code quality and security pre-submission, which in turn has sped up reviews. Over the past year, 2,983 plugins have been approved, and the number of reviews required per plugin has increased. That means that we now detect more issues per plugin.
The Plugin Check plugin has significantly reduced the time for reviews, bringing the average wait time down from 37 weeks to 9 weeks, even as plugin submissions have almost doubled. In the past year, weโve reviewed 7,382 pluginsโ59,1% more than the previous yearโwhile detecting more issues through both automated and manual reviews than ever before. This has resulted in faster, more thorough reviews despite the increased volume of submissions.
We have continued refining our Internal Scanner tool, a magnificent legacy created by Mika Epstein, to streamline reviews and boost productivity. Recent updates, encompassing over 400 commits, include new checks for issues like sanitize and escape, along with enhanced examples and personalized guides to help plugin authors effectively resolve identified issues.
The tool now features over 200 checks, detecting a wide range of potential security-related issues while also supporting reviewers in conducting thorough manual reviews.
The issues highlighted in the chart below account for approximately 80% of all issues detected.

For more reading about these and other common issues, you can click here.
With regard to improving the plugin development community, we have focused on migrating and maintaining the Developer Handbook to GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the โpull requestโ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. https://github.com/ which can now accept contributions.ย
The team is also participating in the Plugins tables at various contributor days at WordCamps, helping and encouraging users to create their plugins whilst using WordPress best practices.
We will aim to do this type of review each year, and until the next one, please remember to use Plugin Check! Adding it to your development workflow will save you effort, and countless hours. As our roadmap outlines, we promise to increase its capacity, and usefulness.
Post written and reviewed by @janmtm @chriscct7 @frantorres @davidperez
PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Check, a multi-team effort within the WordPress project, is designed to allow plugin authors to check the plugins they develop to catch and self-service commonly found issues seen in plugin initial submissions and re-reviews for WordPress Plugin Directory Guideline violations, security issues, and plugin development best practices. If you have not already done so, I recommend reading the Introducing Plugin Check (PCP) post and the post outlining PCP becoming a pre-submission requirement for new plugins to Plugin Directory before reading the rest of this post.
The goals of the Plugin Check Plugin (PCP) within the Plugins Team are primarily to:
Letโs dive into each of these to explore them in more detail, and talk about how they correspond to goals found in the roadmap for Plugin Check.
The majority of the issues that are caught with plugins in the initial review of a new plugin are violations of the Guidelines or issues with Plugin Directory rules (such as: not using a unique prefix for names of classes/functions; an invalid readme; plugin versions in the readme not matching the plugin headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitorโs opinion about your content and you/ your organizationโs brand. It may also look different on different screen sizes.; etc).
Our goal is to allow plugin developers to test for the majority of these before they submit their plugin with one click using Plugin Check. As a backup, a more limited set of these checks (the ones that almost or neverdeliver a false positive) are automatically run against a plugin before it can be submitted into the queue (this part is already live on WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/).ย
This process helps developers address issues before submission, reducing back-and-forth and speeding up reviews. It saves time for the Plugins Team and allows new plugins to go live on the repository more quickly. To improve upon this, one of the goals for Plugin Check is to further this goal by adding more checks, making the UXUX UX is an acronym for User Experience - the way the user uses the UI. Think โwhat they are doingโ and less about how they do it. of the plugin better, and building more ways for plugin authors to build Plugin Check into their development flow.
While no static analysis or rule set tool will ever be able to catch 100% of security vulnerabilities in plugins, our goal with Plugin Check is to aggressively work on tackling the ones we see most commonly. The majority of security issues generally found in plugins are things like missing nonce/capability checks or missing sanitization/escaping/validationโ issues that are oftentimes easier to build detection around. By helping developers catch and address potential security issues, especially before release, we can make plugins more secure overall.
During Phase 1 of the security categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. rollout for developers submitting plugins for security re-review, the team has observed that even the limited checks in Plugin Check significantly improve plugin security and reduce the time reviewers spend on these reviews by minimizing follow-up messages.
In Phase 2, we will focus on adding more comprehensive checks for additional common security issues found in the .org repository.
The Plugin Directory now hosts over 60,000 plugins crafted by a diverse group of authors, ranging from first-time developers to seasoned commercial plugin companies. These plugins span a wide spectrumโsome offer simple quick fixes, while others are robust SaaS replacements. They also reflect varying levels of community involvement, from WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Committers to software companies integrating their services with WordPress.
Because the Plugin Review Team reviews plugins from authors with varying levels of experience, we occasionally encounter plugins that violate the Plugin Directory Guidelines or contain code that deviates from WordPress development or security best practices. Most violations or oversights come from authors unfamiliar with the Guidelines, so the team approaches these cases as teaching opportunities rather than punitive actions.
With WordPress Core and GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses โblocksโ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ evolving rapidly, even experienced plugin authors may struggle to keep up with the latest best practices. While the Plugin Team and Core Teams provide resources like Make Posts and pre-release emails to communicate key updates, the Plugin Check project aims to simplify this process. Plugin Check allows authors to quickly scan their plugins for performance improvements and best practice opportunities.
The Plugin Team has collaborated with teams like the Performance Team, co-developers of Plugin Check, to identify performance enhancements and catch common Directory guideline violations. In Phase 2, we plan to expand these checks and collaborate with additional teams to further support plugin authors.
Weโve recommended that plugin developers integrate Plugin Check into their development workflow and have worked to make it as accessible as possible by enabling multiple ways to run it:
Weโll continue improving Plugin Check in Phase 2 by simplifying output customization for easier integration.
In Phase 1, Plugin Check was released to the community as a plugin available through WordPress.org. It became a requirement for new plugin submissions to the Plugin Directory and for relisting plugins that were pulled due to security issues, requiring all Security category checks to be passed.
In Phase 2, Plugin Check will expand to cover updates made by plugin authors to plugins already in the Directory. The initial rollout will include a post-SVNSVN Short for "SubVersioN", it's the code management system used to maintain the plugins hosted on WordPress.org. It's similar to git. check-in process, where Plugin Check will email plugin authors about detected issues and notify Plugin Team members based on severity.
Specific rollout timelines and processes for Phase 2 will be shared in a future Make Plugins post as its release approaches.
To roll out Phase 2, the Plugins Team will prioritize essential updates to Plugin Check, considered prerequisites for this phase. These updates will collectively define the Phase 2 priorities.
Weโre excited to kick off development of Phase 2 of Plugin Check! If youโre a plugin author, we encourage you to integrate Plugin Check into your development workflow. The GitHub Action is a great starting point, and running Plugin Check against your existing plugins can help identify improvement opportunities (repository link / GitHub Marketplace link). Additionally, spreading awareness is crucialโtell other plugin authors you know about Plugin Check. The more developers who use it, the better the tool becomes for the entire community.
For those interested in contributing directly to Plugin Check, you can find the GitHub repository here. Whether you have ideas for new checks, want to write or test code, or help improve documentation, there are always tasks needing assistance. Weโre grateful for any contributions to help improve Plugin Check and support the WordPress ecosystem.
After the original proposal for a WordPress plugin check a little over two years ago, the Plugin Check plugin (or PCP for short) has become a reality. It saw its first stable release earlier this year and has since been used by hundreds of developers. This post provides more context about PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party Check and why you should start using it.
Plugin Check is a tool for testing whether your plugin meets the required standards for the WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ plugin directory. With this plugin you will be able to run most of the checks used for new submissions, and check if your plugin meets the requirements. The plugins team is currently working on making it an integral part of the review process. If you are considering submitting a new plugin to the plugin directory, run these checks yourself beforehand to save time later on.
But there is more! In addition to things relevant for the review process, the tool flags violations or concerns around plugin development best practices, from basic requirements like correct usage of internationalization functions to accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both โdirect accessโ (i.e. unassisted) and โindirect accessโ meaning compatibility with a personโs assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility), performance, and security best practices. It does so using both static checks using PHP_CodeSniffer and dynamic checks, where it actually activates your plugin to test it โliveโ.
Because of this, PCP is useful even beyond the initial plugin submission, which is why itโs recommended to make it a part of your development workflow. This shortens your feedback loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. as you can immediately address potential bugs as they come up, before they affect your users. To achieve this, simply install the plugin on a local environment and regularly run it against your plugin. The checks can be run either via WordPress admin or WP-CLIWP-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/.

For even more peace of mind you can continuously monitor your plugin using a dedicated GitHub action. It automatically runs Plugin Check against your plugin for every commit or PR, and posts all results as annotations on your source files so you know exactly where to look for resolving any errors or warnings.

Plugin Check is not a replacement for the manual review process, but it will help you speed up the process of getting your plugin approved for the WordPress.org plugin repository, and it will also help you avoid some common mistakes. Even if you do not intend to host your plugin in the WordPress.org directory, you are encouraged to use it so that your plugin follows the base requirements and best practices for WordPress plugins. Keep in mind that automated tools like this arenโt perfect, so there may occasionally be false positives.
All development for this plugin is handled via GitHub, and any bug reports or feature requests should be reported there. The GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the โpull requestโ where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. https://github.com/ Action is maintained in its own repository.
Download theย Plugin Checkย plugin or install theย Plugin Check GitHub Actionย today to get started.
Written and reviewed by swissspidy, flixos90, davidperez
TL;DR: Clarification on installing another pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party from within a plugin, and community consultation on how to better inform and consent users in this regard.
There are plugins in the directory that ask to install other plugins. This can happen for various reasons, and there are different contexts and cases.
We would like to explore this with the community, analyze the cases where this happens, get feedback from different perspectives, and hopefully make an informed decision about what should and should not be allowed in certain cases.
Please share your feedback before September 23rd 30rd.
After this process, this post will be updated with specific details in those cases.
The current guidelines have different indications regarding the context in which other plugins are installed. For example: no tracking without consent, guidelines regarding executable code, dismissible notices, trialware, etc.
There are two specific cases we want to mention because they will be useful in analyzing the different casuistries:
We have narrowed it down to two main reasons: Extended plugins and Recommendations.
There are plugins that extend other plugins. Technically, they need the extended plugin to work.
A common example of this is a payment gateway integration for WooCommerce, which of course requires the WooCommerce plugin as itโs extending it.
In this case, the installation of that other plugin is a requirement, since the plugin wonโt be able to work without it.
For plugins available in the directory, this just got a lot easier since the WordPress core now includes support for required plugins. If you have a plugin that extends another plugin in the directory, we recommend that you use it.
There are many different cases within this classification, here are some:
In any case, after reading this list, you can probably forget about it completely, because while there are different reasons behind it, they all fall into the same categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.: a plugin recommendation and their installation should be optional.
We have narrowed this down to the following 4 cases in essence.
The plugin informs the user that another plugin is recommended or required. Then the plugin must be manually installed by the user, either using the search plugins feature (if the plugin is in the directory), uploading a zip file, or uploading it to the /plugins/ directory.
This also informs the user that another plugin is recommended or required, but instead of asking the user to manually install it, it uses the interface that the WordPress core already provides to install it.

In this case, the user seems to be well informed right out of the box. They can see the pluginโs name, description, version, etc. and the call to action is a clear button with the text โInstall Nowโ.
In this case, the install functionality is built into a custom interface that takes care of displaying information about the plugin being installed and asking the user for permission to install it. This is often embedded in an options page and in setup wizards or onboarding processes.
In this interface itโs important to get the userโs consent after providing them with sufficient information about whatโs being installed.
Automatically install plugins without informing the user and/or asking for their permission. This is expressly not allowed.
Ok, too much information: typologies, interfaces, guidelines. Letโs narrow this down.
| Why install other plugins? | Extended plugins | Recommended plugins |
| As a requirement | โ | โ |
| Optionally | N/A | โ |
| How are other plugins installed? | Manually | Core UX | Custom UX | No-asking |
| Plugins in the directory | โ | โ | โ | โ |
| External plugins | โ | โ | โ | โ |
Now that weโve clarified what is and isnโt allowed in terms of installing other plugins under the current guidelines, letโs take a closer look at a common case that we know is causing confusion for both plugin authors and users: information and consent regarding plugins that are installed using a Custom UX.
This is because while the general rule is โget the userโs consent after providing them with sufficient information about whatโs being installedโ, we recognize that this is on a case-by-case basis, and is somewhat subjective.
This team does not have specific details about what these interfaces should contain or how they should work, which leads to different criteria. We also realize that interfaces are complicated to regulate; itโs challenging to define specific details for them that are applicable in all cases, sufficiently clear, easily understandable and applicable and durable over time.
The number one goal we want to achieve with your help is to improve user information and consent, so that users have all the information they need to make a decision about installing a plugin, and a clear and easy way to give their consent. The lack of information or processes where the user was not aware of the action they were taking is an issue that users have reported to us and, after investigation, we believe needs to be addressed.
We have some suggestions on what plugin authors can do to achieve this goal (if applicable to their case). Please feel free to mix and match these suggestions and make your own, any feedback towards this goal is welcome. Note that there are suggestions that can be combined with each other.
We have found cases where it is mentioned that a plugin will be installed, but it is done in a way that is not clear to the user, as it is mentioned in a smaller font, separated from the option, and/or using other techniques that in practice do not make it clear what the main action will be.
One suggestion would be to make the information about installing a plugin the most prominent information in the area where the user chooses to install it.
We have found cases where the option to install a plugin is pre-selected and the user has to explicitly uncheck it to avoid installation.
A suggestion would be to make that option not selected by default, so that the user has to take explicit action regarding that particular plugin in order to install it.
There are cases where several different plugins are installed at the same time during the process.
One suggestion would be to require plugins to be installed one at a time in a process that requires explicit user action to install them, by clicking a button that clearly states what it does.
We see cases where the information about the plugin is pretty much limited to the name, there is other information that could be really useful for the user to make an informed decision about the plugin they are about to install.
One suggestion is to provide access to all information about the plugin, and perhaps the easiest way to do that would be to clearly link to the WordPress.org plugin page for that plugin.
The WordPress core includes an interface that can be used to install a plugin, and it meets most of the suggestions already mentioned: Itโs clear, itโs not pre-selected, install them one by one and it gives all the information. Also, it would be a really clear definition of whatโs allowed (the definition: only this).
The downside is that users lose the integrated interface and experience that a plugin could provide to perform those operations. There are some plugins that create really great onboarding forms, and users can lose a bit of that experience by having a modal window with a different aspect when asked to install another plugin.
The suggestion in this case would be to route any plugin installation process through this interface.
This post will be updated after getting your feedback and the team makes a decision.
After that, there will be a 3-month period during which plugin authors will be able to make the necessary changes to meet this common goal of improving user information and consent.
Please share your feedback in the comments. Thanks!
On June 23 and 24, 2024, five WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ user accounts were compromised by an attacker trying username and password combinations that had been previously compromised in data breaches on other websites. The attacker used access to these 5 accounts to issue malicious updates to 5 plugins those users had committer access to.
The affected plugins have had security updates issued by the Plugins Team to protect user security.
The Plugins Team would like to use this opportunity to spread awareness around best practices for WordPress.org accounts, particularly those with pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party committer and owner level access.
As a reminder, Plugin Owners can set a WordPress.org user to have a special permission role for their plugin which include:
โ Owner: a plugin has one Owner which grants that user the ability to perform destructive actions such as to permanently close or transfer the plugin, as well as the ability to issue plugin updates and manage support for that plugin on WordPress.org. For company owned plugins, this should be a company branded WordPress.org account that only the companyโs owner, CEO or CTO (or a single person in a similar role) has access to, which uses an email address only that individual has access to (ie not support@{companyname}.com)
โ Committer: this role grants the user the ability to manage support for that plugin on WordPress.org as well as the ability to issue new plugin versions by updating the pluginโs code in SVNSVN Short for "SubVersioN", it's the code management system used to maintain the plugins hosted on WordPress.org. It's similar to git..
โ Support Rep: this role grants the user the ability to manage support for that plugin on WordPress.org only.
You can also acknowledge users who contributed to the plugin without giving that user any special abilities for the plugin on WordPress.org by using your pluginโs readme.txt to mark them as a Contributor.
As weโve mentioned in the past, plugin commit access, which is the ability to issue updates on behalf of your plugin should only be given to developers, and more specifically, only the developers who are actively responsible for issuing plugin updates for your plugins.
Committer accounts should not be shared by more than one user, and should not use an email address that more than one person has access to. Weโve seen developers in the past use emails such as a support@ for their wp.org account with Committer or Owner access, which would mean anyone with access to your support tool can click on reset password, get the password, change it, and blow up your plugin (or permanently close it). Obviously thatโs a major security issue (and could also be a Guidelines violation that gets your plugin pulled from the repository if it sends back an auto-responder email).
Additionally, the Plugins Team sends emails to all committers for a plugin if we ever need clarification on Guideline issues with your plugin or have a reported security vulnerability for your plugin. So the best practice is to limit the number of committer users you have on a plugin to the minimum number of developers possible, and have those developers ensure that emails from plugins@wordpress.org do not go to spam in their email client.
Users who do not need commit level access should instead be given Support Rep access, which allows them to respond to and manage support topics for your plugins on WordPress.org. This account level does not allow those users to issue plugin updates.
We recommend routinely auditing the committers for each of your WordPress plugins on a regular basis, removing commit access (or downgrading them to Support Rep access) when they donโt need active commit access. The owner of the plugin can manage the committers for the plugin on the Advanced tab of the pluginโs WordPress.org page.
In April, 2021, the Plugins Directory introduced opt-in support for Release Confirmations.
Release Confirmations, when opted-in for a WordPress.org plugin, allows for a second factor of security against the ability for an unauthorized user to issue plugin updates.
After opting in, a plugin committer wishing to issue a new version of the plugin would commit and tag the plugin update in SVN as normal. Once the tag has been pushed to the WordPress Plugins Directory, the Directory then emails a unique tokenized link to all plugin committers for that plugin which brings the committers to a special dashboard that allows them to confirm the new release. Only once the version is confirmed will the update then be issued.
For additional security, the Plugin Directory also supports the ability to require 2 plugin committers to confirm the release in order to issue the update โ if youโre interested in requiring that for your plugin, please email plugins@wordpress.org with your request.
You can see which that you have Committer (or Owner) access to have Release Confirmations enabled on the Release Confirmations dashboard.
If you are the owner or a committer of a WordPress plugin, it is imperative you use a unique password that is complex and not re-used on any other website.
As mentioned in WordPressโs Password Best Practices guide, we recommend using a password that is:
โ is at least 20 characters (preferably substantially more)
โ uses lowercase and uppercase letters as well as numbers
โ contains special characters such as `!โ#$%&'()*+,-./:;?@[]^_{}|~
โ does not contain names, words or years that are easily linked to you
This password should not be used on any other site.
To make it easy to use secure, complex passwords, we recommend using a password manager to generate and store this password in. This helps avoid the temptation of password re-use and makes it easy to generate unique, complex passwords for each website that you use.
We also strongly recommend all accounts on WordPress.org setup and use two-factor authentication (2FA) which has been supported since May, 2023. This helps keep your WordPress.org account secure by requiring a second piece of evidence to login to your account such as a rotating 6 digit TOTP code using an authenticator app or a hardware key. To setup 2FA for your WordPress.org account, follow this step-by-step-guide.