How to submit plugin to WordPress plugin repository

So you made an interesting WordPress plugin, and you want that to be available for others to use. Though GitHub is really nice to share code, when it comes to WordPress, nothing beats the WordPress.org plugin and theme repository.

Why Publish Your WordPress Plugin?

The reasons people publish plugins in the WordPress Plugin Directory are obviously varied. A couple of examples are explained below:

  • You see a need for functionality that doesn’t exist in a plugin in the directory
  • You see a market opportunity
  • You want to build a community around your plugin
  • Your favorite plugin doesn’t offer additional functionality that you want
  • You’re frustrated by how much some plugins charge for extra extensions and you think you could build those features at a lower cost
  • You want to simplify functionality in a way that doesn’t exist
  • You want to contribute to the WordPress Plugin Directory in order to be a part of the community

Today, I am trying to explain how you can submit your plugin/s to the WordPress.org repository.

The plugin Submission process:

I am breaking down the process into smaller steps for ease;

The Guidelines.

Make sure you read the guidelines before creating and submitting your plugin to the repository. Make sure that your plugin is in compliance with all the rules. Some of the rules include:

  • Your plugin must be GLP compatible
  • Requiring user consent before storing user information
  • Not spamming users
  • Not including obfuscated code
  • Not doing anything that is illegal or morally offensive
  • Not embedding external link in the public site

Check the plugin name on the WordPress Directory

This is a simple step to decide the name for your plugin before you start. Doing this will let you know if that name is already taken. Just like usernames, you might not get what you expected.

Go to https://wordpress.org/plugins/ and enter your desired plugin name into the “Search plugin” search box. If you find no plugin for the name you used, there’s still a chance that a plugin has been submitted under that name and the user hasn’t submitted their first subversion commit, so don’t get too excited. Stay positive 🙂

You will want to submit the plugin as soon as possible in order to make sure that you get the name. If the plugin name already exists, you will need to brainstorm to think of a new one.

Create a plugin that works

Isn’t this so obvious? Make sure you plugin does exactly what you mention in the Readme. I create several plugins using the WordPress Plugin BoilerPlate. It saves a lot of time and has a perfect structure. But this is a choice and not a necessity. You are free to use whatever structure you find comfortable working with, as far as it follows the guidelines.

After you have made the plugin test it various times, in different environments if possible. Test all the functionalities so everything works exactly as you want it to.

Validate the Readme file.

The readme file plays an important role since it is used to populate the plugins page in the WordPress directory. If you want to make sure your plugin stands out here is an interesting article which talks about it in more detail.

To give you a general overview, you should enter in your plugin name, contributors (WordPress author IDs), donate link, tags, the WordPress version that is required and the WordPress version the plugin has been tested on, license (it must be GPL) and a short description of your plugin. For the tags, I would suggest choosing tags based on those listed in a competing plugin and popular tags that are relevant to your plugin. You can find tags from competing plugins by looking at their directory page and scrolling to the bottom of their page or by checking out theirreadme.txt file.

After adding that information, you should add the main description, installation instructions frequently asked questions and screenshots of your plugin. Make sure to include the screenshots, banner, and icon in your plugin’s assets directory. The more screenshots the better. Once you’re happy with your readme file, run it through the ReadMe Validator.

Submit your plugin for Review

Once you have completed all the above, you can log in to WordPress.org and add your plugin for review, by uploading your plugin at https://wordpress.org/plugins/add/

Add your plugin name as well as a description of your plugin. For the plugin URL, you need to compress your plugin files and upload your plugin.zip file to your website or to a website that you have access to. You should be able to upload the compressed file to Dropbox or Google Drive and add a public link to the plugin zip file.

Wait for approval 🙂

During the review, in some cases, the plugin review team may suggest some improvements to your plugin. Once the review is done, you should receive an email from WordPress.org regarding the approval. Congrats! You may now have that little dance you were waiting for 😛

The email will also contain the URL for your plugin page on WordPress.org, A SVN URL to upload your plugin files.

This command adds all of your central WordPress Subversion repository’s files into your local repository. An important note, make sure to replace  https://plugins.svn.wordpress.org/your-plugin-name. with the URL that is provided in your plugin approval email; You SVN URL will also be in the similar format of https://plugins.svn.wordpress.org/your-plugin-name. And, replace your-plugin-name at the end of the command with what you would like to name the directory.

You’ll get a response asking the following:

(R)eject, accept (t)emporarily or accept (p)ermanently? 

Type in t or p and hit Enter. Then, you’ll receive the message below. This indicates that the your-plugin-name directory was created on your computer and the tags, assets, trunk, and branches directories were added within the your-plugin-name Subversion repository directory.

Place all of your plugin files in the trunk directory. Now that you have your plugin files in the trunk directory, you need to add those files to your Subversion repository so that they can be tracked. You can do this by running the terminal command below.

svn2

You then need to push the changes made to your local repository to the central WordPress repository by running the following command in your terminal window.

svn-ci

You’ll need to enter your computer’s logged in username and password.

Then, you will be asked for your WordPress username and password.

Once those are credentials are provided, your plugin’s files will be transferred to the WordPress central repository. A Transmitting File Data message will be displayed and when complete, a Committed revision message will be displayed.

transmitting

DONE! You should get an email from WordPress explaining the new commit. Now, you may go and check your plugin URL on WordPress.org to see the changes.

Your plugin is now available for the public to download and use. But there are some improvements you can make to help users know your plugin a little better.

If you have not added images for banner and screenshots etc in the /assets directory already you won’t see them on your plugin page. Now add them and run the following command.assest*

Now, you need to commit the change to the central repository.

adding-assets

 

Check out your WordPress Plugin Directory page now and you should see images.

If you are developing your plugin on multiple computers or with multiple contributors, make sure to run the update command (visible below) before committing any changes. This pulls the changes that exist in the central WordPress repository into your local plugin repository.

update

Question?

Please feel free to get in touch using this contact form if you have any question regarding this, which I may have missed adding here.

References:
https://developer.wordpress.org/plugins/wordpress-org/
https://developer.wordpress.org/plugins/wordpress-org/how-your-readme-txt-works/
https://make.wordpress.org/plugins/2012/06/09/the-plugins-directory-and-readme-txt-files/
https://www.sitepoint.com/create-awesome-wordpress-org-page-plugin/
https://wordpress.org/plugins/developers/add/
https://wppb.me/
https://github.com/DevinVinson/WordPress-Plugin-Boilerplate
https://www.slushman.com/guide-using-wordpress-plugin-boilerplate/

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

About Swapnil V. Patil

I make people smile. Not by being funny, No, but by crafting applications and interfaces. I love the web as a platform and is most likely to talk about WordPress, Javascript and Open Source. Here you will find some of my ideas. Enjoy.