How to release own developed Plugin on WordPress.org?
If you are
- WordPress PlugIn Developer,
- and just have created your very first Plugin,
- and want to release that Plugin on WordPress.org
then this article is for you.
![How to release own developed Plugin on WordPress.org ? How to release own developed Plugin on WordPress.org ?](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3KthbQSZv3uj97DzcUoyg0IhIgOs3NA8SjOza7dUC2v73FJI64JUBToa40iQhxy0l6Osue8bnMc5-FfOstPYWy6X1kpT9O-5AAE_6HPDioCOy_Q7hcs3Im4vN4ELqJBN6BHKlvpxVvQtFwL214lEfXvCYh3NDk1p5lBZrLdGVlnHafQETWBcY6gk6O4k/w597-h640/Submit_WordPress_Plugin.png)
Creation of WordPress Plugin
To discuss all the points, an example of a live Wordress Plugin will be used here: Special Promotion and Support - https://wordpress.org/plugins/special-promotion-and-support/
Download it, and install it. all WordPress Plugins must be kept at this location always :
- www.example.com/wp-content/plugins
- C:\xampp\htdocs\test\wp-content\plugins
Obviously a PlugIn may contain a lot of files and folders. But there must be two files at least:
- filename.php,
- readme.txt
here is the sample of a blank filename.php file:
<?php
/*
Plugin Name: Special Promotion and Support
Plugin URI: https://store.devilhunter.net/wordpress-plugin/special-promotion-and-support/
Description: Only Plugin activation is enough! No need to use any short-code or to edit settings. See the change in your website
Version: 1.0
Author: Tawhidur Rahman Dear
Author URI: https://www.tawhidurrahmandear.com/
Text Domain: tawhidurrahmandearfiftythree
License: GPLv2 or later
*/
// Prevent direct file access
if ( ! defined ( 'ABSPATH' ) ) {
exit;
}
//
WRITE CODE HERE
Plugin URI means you should have a personally hosted webpage highlighting your PlugIn. If you don't have any special page for this, leave it blank. Author URI means developer's homepage. It may be your company homepage like: https://store.devilhunter.net or even may be your own Facebook profile address.
here is the sample of a blank readme.txt file:
=== Special Promotion and Support ===
Contributors: tawhidurrahmandear (Your WordPress.org username)
Tags: special offer, marketing, new offer, support, woocommerce (Maximum five keywords separated by comma)
Requires at least: 4.0 (Here 4.0 means WordPress 4.0 version)
Tested up to: 6.4 (Here 6.4 means WordPress 6.5 version)
Stable tag: 1.0 (The version of your own WordPress Plugin that you have just created)
Requires PHP: 7.0 (may be latest PHP version, if your Plugin works)
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Attract your audience instantly that you have a Special Offer for them (Type Introduction here)
== Description ==
<p><strong>A Paragraph in Bold</strong></p>
* Feature 1
* Feature 2
* Feature 2
<h3>Headline</h3>
https://www.youtube.com/watch?v=mOAS7mvQjRM
<ul>
<li>List 1</li>
<li>List 2</li>
<li>List 3</li>
</ul>
<p>Little HTML is allowed <a target="_blank" href="https://www.example.com" style="text-decoration: none"><font color="#3366FF"><strong>TEXT</strong></font></a></p>
<br>
<p>Thank you</p>
== Installation ==
<p><strong>Download this free WordPress.org Plugin, and </strong></p>
Step 1. Open your WordPress Admin Dashboard, click "Add New" in Plugins section
Step 2. Click on "Upload Plugin"
Step 3. Select the downloaded package, now click on "Install Now"
Step 4. Click on "Activate Plugin" to activate the Plugin
Step 5.
Step 6.
== Changelog ==
= 1.0 - 2022-04-09 =
- Fix - Minor Change
= 0.9 - 2018-07-29 =
* Initial release
⚠️ Plugin name will be plugin slug ⚠️
Here
- Plugin name is Special Promotion and Support, and
- the slug is https://wordpress.org/plugins/special-promotion-and-support/
Although after approval, you can change the Plugin name to something else, but should be related. But the slug will always be the same.
Validate WordPress readme.txt file
WordPress.org offers to validate readme.txt file here: https://wordpress.org/plugins/developers/readme-validator and you should check it before Plugin submission.
Submit Plugin to WordPress.org for Review
Step 1 : Log-in to WordPress.org from https://login.wordpress.org
Step 2 : Submit your plugin for review from https://wordpress.org/plugins/developers and before doing that read instructions. There may be an important update, which you should know.
Step 3 : You will get upload link there. Open that webpage. Read from top to bottom, and upload and submit the Plugin. It must be zip folder just in the way you download other Plugins.
If there is any problem, Plugin Review Team will inform you for corrections. Once the PlugIn is approved, you will be notified via email. Email subject should be like this: [WordPress Plugin Directory] Special Promotion and Support has been approved! Sender email should be plugins@wordpress.org
This email will contain the SVN repository address. This is a publicly open address. Anyone can read from any computer without even log-in to WordPress. But only you can update it via SVN. Now just open with your browser to know how it looks https://plugins.svn.wordpress.org/special-promotion-and-support
Update WordPress Plugin via SVN
For the first time when Plugin Review Team approves the Plugin, it will be instantly available for download, but there will be no Icon or Banner image. You will have to upload it manually. These are called assets. Beside that every time you want to update the PlugIn, you can't use Web-based upload system. You will have to do it using a software.
Tortoise SVN
SVN, or Subversion, is a version control system similar to Git. It can be used via command line, or one of numerous GUI applications, such as Tortoise SVN, SmartSVN, and more.
Download Tortoise SVN from https://tortoisesvn.net/downloads.html and install.
Asset Upload
See the Banner and Thumbnail below. After the Plugin approval from WordPress Plugin Review Team, you will have to upload the assets.
![WordPress PlugIn Banner and Icon example WordPress PlugIn Banner and Icon example](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0J4MMEUxjutrq2vrpVQG1rWT3-G-NneakIlRzVS5sHyB375XgpLuVd0d2YA4VSnGb-ZjLG9golcQXOQ3yX7tE_gyAJsjs0IZPBSWA9smEj1z75YGE1IXWPCfNPcv2-HP_hwUuoCR8MsVeL7Q7by4rvCxYYro0OsMzAGn5yz2KxaQQ6gYbjxNFNjD6I6w/w619-h640/WordPress_PlugIn_Banner_and_Icon_example.png)
First copy the SVN URL of your PlugIn from your email, and after that, anywhere in your PC click the right button of you mouse. Now find "SVN Checkout". If the address is fine, click on "OK".
![SVN Checkout SVN Checkout](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRa5lV6r7IcmmwJ_rQm6Iyd20FJu3RV1VTTq71AayshSwSJaTRC7rLQLYU9HsQmNNAKq9W2vu4tCGpUqq3EFZsL6-XmqNd_ghByaeOZ-WCVGcIbS1Id9dweLK_nVTIDxGCfZ34p61VFrU-GKugbxjIMYDh94EgmYJMZm0nh-N3XJ1mvduEdLwT6bnObGQ/s16000/SVN_Checkout.png)
Click on "OK" again when it's finished.
![SVN Checkout Finished SVN Checkout Finished](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-EmlMDzOnl2R8rbVdtvCdIyJ36JQEdSoZYWHGGzD_xMsAUdjZ3gmXXIfuA1789cafwTndR7BEcHkBWd1ysj-SFrajS6jhTnN6WSrHo31P6bIOzMmeLHZR88jTCkZ6rsQth3SRB1lGt1cgH_AhxQ17vkgJ5JThV-my23EUOABwWTOpzJ1DKkQ8FEi9T6A/w640-h286/Checkout_FInished.png)
Now open the downloaded folder. You will get four folders
- assets
- branches
- tags
- trunk
Keep banners here inside assets folder, and file name must be:
- banner-772x250.png
- banner-1544x500.png
also keep banners here, and file name must be:
- icon-128x128.png
- icon-256x256.png
You can create two different types of Banners or you can create two different types of Icons for the Plugin.
![assets inside assets folder - WordPress Plugin update assets inside assets folder - WordPress Plugin update](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdGrN_eeMUfTAXDd82BwPLhj_6Y0bMS7vywueD443hmntKb7BDVK_pm8dzRiPT51vqPHI8EXgKCXZywjgIxVcHXcrkIiwQlhhlgTNDE7A8DR7puOCvtRyVf5JpsgyTjqqNQ4z7TR2keWMgOIDogcXghhvyBU-FeUa2TTE95HqlT0OWBInsEVhBw5HYg-g/s16000/assets_inside_assets_folder.png)
Depending on window size, different Banner and Icon set will be displayed in the Web browser.
![WordPress PlugIn Assets Update WordPress PlugIn Assets Update](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZUuNW2UAWAFZQNN3YS28Z2oXuANl-0GF8BcDGN5N00MK5GB3yDUrJEEoYm1c2EuShnmV54M9UaqZTcKuC-z0RpZfI7jUlLWVS3XAbgxJeFOOEMtUakzAnbU5GW3Mght4zphG5DYe7PTklElK0AmgsbGFPSGYWh2GtCkm9nivG-jHFyLLS8H-s1NrTltU/s16000/WordPress_PlugIn_Assets_Update.png)
Now select the assets folder (this is the assets folder where you just have kept your Banners and Icons.) Press right button of mouse, and find "SVN Commit".
At this point, if you are not logged in already, it will prompt for authentication. Type your WordPress.org credentials.
![Tortoise SVN Authentication Tortoise SVN Authentication](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisH1gGpjB60lY18dQ-k_UjLZxY4AEX4gK-TV1er5eE9i1kBuzOPtgVG76fa5tdvyXkNQRJS3VAPeTP15yrAFFgY3UzlI8KmT5JRAku5k_w49fae_4nTBfkuJHuL56Y5ZmNVjdYqGNYdauDY8_yk8pTidPfUmZazPm13Tww-LwkWhb1-ZkYTWMLkwDyEwA/s16000/Tortoise_SVN_Authentication.png)
After that the SVN Commit window will appear like below. Type a note in Recent message.
![SVN Commit window SVN Commit window](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOAxgVxwOGXXZKiFTU-GwuPwlZXpbkoAdHAdqXFhN8vBQpHNkgAUQcPTHbYrhP2F4USSBb26yJlUUrK0f8XzWmD2CfYikNhePNsQnEDLp0E7BRQc325_MRYvLug7Zj4Q4EMnpQtZKshrJxsqHTCUyWlqrF0wrpxYY0MyXMlfxsQu8R8vuiIyZnLlZXvts/w640-h534/SVN_Commit.png)
Click on "OK" again when it's finished. Your are done. Refresh your browser, and check your Banner and Icon. If you want to update the assets, process is same.
For screenshots, you should keep all screenshots inside assets folder, and upload/update ins the same way. Screenshot files name must be like these:
- screenshot-1.png
- screenshot-2.png
- screenshot-3.png
Update Plugin
Process is almost same. Keep updated Plugin files inside Trunk folder. All files must be unzipped.
- Now select the Trunk folder (this is the Trunk folder where you just have kept your PlugIn files.)
- Press right button of mouse, and find "SVN Commit".
- After that the SVN Commit window will appear. Type a note in Recent message.
- Click on "OK" again when it's finished.
![WordPress Plugin Update by Tortoise WordPress Plugin Update by Tortoise](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9yaiE4DIfu9mH1bbG767cMgZt_TVSfLb0YlU0TFYcQBcXPSEoBWXAzhdwRwY95FmKYMA3QBRnGi7ve6L2f2AdChS4jcekLL4FyO4PJfbQdYJ5LFWkhLZRtJOdCLX4xIHVNCYBnlwN2w3zdZnA2ECyQbY6QEqcH-x6lsjiMx8w1Mk4Bpsn3pi-OqBOVaE/w640-h285/WordPress_Plugin_Update_by_Tortoise.png)
Your are done. Refresh your browser, and check your Banner and Icon.
Major Update
If your update is a Major update, you must versionize/tag new release.
- Select the Trunk folde
- Press right button of mouse, and find "Tortoise SVN".
- Then find "Branch/Tag" option. Open it
![WordPress Plugin Major Update by Tortoise WordPress Plugin Major Update by Tortoise](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXNjXgapIfBPjSmBtrxVURkNpTLYN7Gpzz_9H_w7wj9n0QKgDV1s8tEz11aoOZTyy5816iatgQduzAIZY5pLw0Jmu76IQVesiHsofktWXoP8IOM43rKKMr_Y2zVHzrEQF2c7Fr7bCoudf44ujQsPDygP_yGsyUJYVLDx7t11Z4MJ9VQa6r7CfMDfhAmvU/s16000/WordPress_Plugin_Major_Update_by_Tortoise.png)
- After that a window will appear. Type a note in Recent message.
- Click on "OK" again when it's finished.
Minor Update
If your update is a Minor update, don't bother your Plugin users. For example, you are fixing a spelling mistake somewhere which is not even noticeable at all, then you
- update trunk folder.
- delete present version from tags folder by repo browser,
- then Branch/Tag the present version again.
For example, if the present version is 1.0, then you will have to update trunk normally. Then open Repository Browser (or Repo-browser in short)
- Press right button of mouse, and find "Tortoise SVN".
- Then find "Repo browser" option. Open it. It will take 1 or 2 minutes.
![Repo browser Repo browser](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6_v3N0y84WR3FR5iJzG69afCP6t119YN1B6wMzCd_cNQ42C6UOsFKWbYdy1BsJJZlUBUtxzGTEmYXMS8YR3lh9C0eP5y7knm61vPC_J6SV5yRxIWVxRsJpxRso3PJwLiq2p5vjs8y49lgIkwI1Tal1bpkOmwjMWH9J5RilQc0bls51TWSLzu2fJYlNMs/w640-h488/Repo-browser.png)
- Open Tags folder
- Delete 1.0 version. Press Delete on keyboard. Type Recent message.
![Repo-browser window Repo-browser window](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijW5Phk9yvfj8tVJoV-MEMSvgedL0vp5k0QFugwTpPBlE3yf9YsSBUoRupb7mPEb9XiuKCzb3CAZjxElDF6l1RiLITy0eUMVSDTCTIuC_gA3N-CvLgqaJX1ULUlbnTDChSZbDKyg0tU9EqKKmCmeB_VYqz3OISpwwRZBR75Sy8C4uf5Fv87dwUIMmUA54/w640-h488/Repo-browser-delete-tags.png)
- Click "OK" to close
![If your update is a Minor update, don't bother your Plugin users If your update is a Minor update, don't bother your Plugin users](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBczQ85kWJQThCS-oUS-93mb1I0j5qAmr7aXHQ8c53hHnpkpsMJb_a3zFILBFLTQAjQYBtEKbgrPGjvoBWUfluwJe-mR2uL-PDi4Z-Q-kOpa-ExYfkLY9pKane0vyPC1SwWb7_f-LDcZ610HllETSCNUKheFuSdhd3j1ARHsFnfwghSgmtc1h_FotOmmY/s16000/Updating_Tag_in_Tortoise.png)