Over the course of my 20 years as a PHP developer, I have developed many WordPress plugins. I don’t have an exact number, as some of them have been custom code plugins, some of them bespoke plugins for various clients, some of them have been experiments which eventually ended up being merged in larger functionality plugins. In this article, I’d like to make a list of all my plugins (the ones I still have or remember developing).
Introduction
Being a full-stack developer and understanding how WordPress worked from the very beginning, I have never abused the functions.php
file for custom functionality or features.
Long before the explosion of form plugins, I coded several bespoke forms for front-end uploading. I remember one plugin was for a big company, and they requested a video upload form. This needed to be bespoke, as the uploaded data was on a secure server and there were various API keys involved. This ended up being a very nice and complex bespoke plugin. Years later, the site has evolved, and my plugin is gone.
Another plugin that started as a small project and an offshoot of the Traq project (a bug tracking system, similar to Redmine’s Trac) ended up as a plugin on CodeCanyon. The plugin, Roo Project Management, got a bit of traction until I pulled it down to merge it with a web directory plugin (as they shared the same code structure) and republish it on CodeCanyon as Roo Framework. This one got a bit of traction, too.
Looking back I can see more bespoke plugins, such as a hotel management system, a CRM and a document manager. They are all gone now.
I had an eCommerce plugin called GBCart. I used it for several clients, and it worked perfectly for my needs. Here are some screenshots I found:
You can find an old version of GBCart on GitHub.
👀
Commercial Plugins
Here’s a list of some of my old commercial plugins I’ve found, thanks to web.archive
:
Clicker Counter
A basic statistics plugin. It evolved into a standalone PHP solution, then back into a WordPress plugin – Smashing Analytics – then into Active Analytics. None of the old code exists.
Comment Genius
Comment Genius was a plugin which allowed the admins to aggressively market their site by presenting a lightbox with Facebook Like/Share, Twitter Tweet, Google AdSense Ads and more to their visitors upon leaving a comment.
Mobilize
This one still exists and it’s free now.
Autocomplete Wizard
This plugin allowed text autocomplete on various search forms. Basic, but really useful.
vote5
This plugin still exists and it is being updated.
Personal Livescore
This plugin has a very interesting history, which I’ll dive into below. It doesn’t exist anymore, though.
WordPress Placeholder
WordPress Placeholder was a quick and simple function for inserting image placeholders in your design or code. Add the shortcode in your post or page (or straight into your template) and get a customized placeholder. Pretty easy.
Mortgage Calculator
A modern UI (modern back then) mortgage calculator with email functions, multiple themes, results template and easy integration. It calculates standard mortgage payment, mortgage rate based on payment and term, and APR based on payment, term, and fees paid. I’ve reused this plugin with several real estate agents over time and I have improved it, but eventually it died. Mortgage calculators, and the entire financial niche actually, can get pretty spammy, and it’s hard to market.
Smart Backup with Scheduler
Another great plugin with lots of downloads, Smart Backup was a complete WordPress backup plugin for database and file operations. You could create backups of your complete WordPress installation, files only, or database only. Backups could be restored using phpMyAdmin or various cPanel utilities. Backups could be sent via email as attachments. Amazon S3 backup was available as an on-demand solution. Again, it died, as it relied on several server packages that got obsolete in time.
Also, look at some of the features! Oh, boy.
- No bloated features and unnecessary code.
- Fast, AJAX-driven options (no page reload).
- PHP4 compatibility for older servers.
- WordPress 2.8+ compatibility for older versions.
- Enhanced
.htaccess
protection for backups directory. - No external PEAR libraries for ZIP archive generation.
WordPress eCards
This one is really alive and kicking, and it’s one of my flagship WordPress plugins.
Roo Link Directory
Do you remember the golden age of link directories? I was right in the middle of it with a small business based on a link directory website. I also had a WordPress plugin, albeit simpler. So many stories and memories here…
Roo Classifieds
Look at this! “Roo Classifieds is the new kid on the block, a popular classified ads plugin for WordPress. Its feature-rich control panel and straightforward behaviour was built for ease-of-use and tight integration with WordPress. Roo Classifieds is using native custom post types and taxonomies.” It was eventually merged into Roo Framework.
Jobbin Jobs
A job listing plugin. Again, merged into Roo Framework.
You can see how all these plugins, merged into Roo Framework, used the same structure. My initial idea was to generate more sales by going with 3 separate niche plugins. Obviously, maintainability increased 3 times, so, after a few months, I merged everything, combined tutorials, documentation sections and how-to’s and created a behemoth plugin. It does not exist anymore, though.
LoopPress
Same as above, an attempt to use the framework to create a video library. The plugin accepted .mp4
, YouTube and Vimeo, if I remember correctly.
Roo Maps
This plugin was a very ambitious experiment created for one of my clients at the time. It made it really easy to put a dynamic map in any post or page. It was able to display unlimited markers loaded from a shortcode. It also had a magnifying glass, and it was built using a lot of jQuery, layers and z-index.
Roo Heatmap
Another good one, a HotJar precursor ? Roo Heatmap generated a click heatmap for your site. Roo Heatmap showed you what’s hot and what’s not, so you could make changes that increased conversions. A heatmap is an easy way to understand what users do on your site. It’s a visual representation showing you where users click and what they do.
Newsletter Tycoon
Another plugin I have heavily used before Wysija and before MailPoet existed. A newsletter plugin, natively integrated into WordPress. An old version has been preserved on GitHub.
WordPress Gold Slider
This plugin has been heavily used on a CGI showcase website, displaying 4 posts at a time in the form of a sliding area. A really revolutionary slider for that time. I still love it after all these years. Check out the video below.
WordPress Query Admin
This was a controversial plugin as it fiddled with the database. Think of it as a phpMyAdmin plugin for WordPress. There were lots of support calls, lots of incompatibilities and database issues. I ended up scrapping it. It’s seen good days, though, especially for shared hosting clients with no access to MySQL.
Personal Livescore
Personal Livescore plugin allows the administrator to run and maintain a live score system without the need to sign up for various web services or feeds. The plugin is completely standalone.
Unlike all the other plugins, this plugin is entire controllable by the administrator, and does not require any third-party account. The plugin is white-labeled and offers an embeddable version for other sites. The embeddable version is 100% mobile/tablet compatible and works in real time.
This plugin started as custom code for a volleyball competition. I was on the beach getting ready to plug into YouTube Live and broadcast several matches live on a sports website. Due to various matches taking place at the same time, someone needed to update the scores in real time on one dedicated page. As this was practically impossible, I whipped up a small plugin to allow for score recording straight into the database, and I had 2 or 3 colleagues adding and changing scores from their mobile phones. This plugin turned into a full-featured plugin. It was one of my most spammed plugins, as lots of sports and iGaming sites tried to promote their businesses in my support forums. The plugin stayed unmaintained for a while, then it got retired from the marketplace.
Premium Featured WordPress Plugins
These are my remaining commercial plugins, which I’m focusing on full time:
-
ImagePress — Category Images
PRO
1.0.1 | €9.99
Add thumbnail images to your ImagePress image categories. -
WooCommerce Conditional Blocks
PRO
1.0.0 | €29.00
Effortlessly display blocks across your WooCommerce store based on customizable rules and conditions. -
WooCommerce Bulk Discount
PRO
4.0.0 | €29.00
Your ultimate WooCommerce tool for storewide sales and special promotions! -
W3P Admin Login
PRO
1.0.3 | €14.99
An easy-to-use WordPress plugin that allows you to safely change your website’s admin login URL to anything you want. -
Metro Mortgage Calculator
PRO
1.5.0 | €19.00
A modern UI mortgage calculator with email functions, multiple themes, results template and easy integration. -
WP Google Consent Platform (GCP)
PRO
1.0.2 | €19.99
WP GCP — A WordPress plugin for Google Consent Mode v2 -
WordPress Theme: Saturn
PRO
2.6.6 | €59.00
Saturn is a fast, lightweight WordPress theme, fully enhanced for the native Block Editor and fully compatible with hundreds of block patterns. -
Active Analytics — A WordPress Analytics Plugin
PRO
2.6.0 | €29.99
Privacy-enhanced, lightweight, local analytics -
Lighthouse – WordPress Performance & Security Plugin
PRO
4.2.3 | €39.99
WordPress performance tuning plugin -
ImagePress – WordPress Image Gallery Plugin
PRO
8.3.9 | €22.00
Full-featured, modular WordPress image gallery -
vote5 – Advanced WordPress Voting Plugin
PRO
4.3.0 | €17.00
Advanced WordPress voting plugin -
WordPress eCards Plugin with Email Designer
PRO
5.4.3 | €19.99
Send eCards to all your friends
Free WordPress Plugins
And these are my free plugins:
-
WP Guardian
FREE
1.5.2
Downloaded 1,758 times -
Admin Menu Tree Page View
FREE
2.8.6
Downloaded 332,946 times -
Block for Font Awesome
FREE
1.5.0
Downloaded 23,121 times -
YouTube Playlist Player
FREE
4.7.2
Downloaded 60,068 times -
W3P SEO
FREE
1.8.7
Downloaded 9,853 times -
eCards Lite
FREE
4.2.5
Downloaded 9,241 times -
Modern Design Library
FREE
1.1.3
Downloaded 3,334 times -
ImagePress – Image Gallery
FREE
1.3.0
Downloaded 20,281 times
More Plugins
Article Reactions
A simple plugin I have coded for myself. Not active anymore.
Metro Mortgage Calculator
A modern UI mortgage calculator with email functions, multiple themes, results template and easy integration. It calculates standard mortgage payment, mortgage rate based on payment and term, and APR based on payment, term, and fees paid.
AnyChart
A bespoke plugin I created for a college a long time ago. A simple bar chart custom post generator, based on CSS.
WordPress Primary Category
A plugin I coded for an interview to replicate Yoast’s “primary category” feature. Set a primary category for your (custom) posts and query them in your template using native WordPress queries.
V5 Star Ratings
Flexible star ratings plugin with multiple options for appearance and behaviour.
Bonus
While I was writing this article, I coded another small plugin to help me send bulk emails from a WordPress + SendGrid setup.
Requirements
An email gateway or a third-party email solution such as SendGrid or Mailgun or even Gmail for low-volume emails. Add your email addresses, each on a separate line, compose your email (do not use any special styling, as the CSS is not transferred to the email template. Use headings, paragraphs, images, basic elements.
I use this plugin for short email bursts, 20-40 per week for various client updates and notifications.
Here’s the code, simple and with no dependencies:
<?php
/**
* Plugin Name: Whiskey Emails
* Plugin URI: https://getbutterfly.com/
* Description: Send bulk emails from WordPress.
* Version: 0.0.1
* Author: Ciprian Popescu
* Author URI: https://getbutterfly.com/
* License: GNU General Public License v3 or later
* License URI: https://www.gnu.org/licenses/gpl-3.0.html
*/
function whiskey_admin_menu_links() {
add_menu_page('Whiskey Settings', 'Whiskey Settings', 'manage_options', 'whiskey', 'whiskey_build_admin_page', 'dashicons-admin-home', 3);
add_submenu_page('whiskey', 'Email', 'Email', 'manage_options', 'whiskey_email', 'whiskey_build_email_page');
}
add_action('admin_menu', 'whiskey_admin_menu_links', 10);
function whiskey_build_admin_page() {
//
}
function whiskey_build_email_page() {
$tab = (filter_has_var(INPUT_GET, 'tab')) ? filter_input(INPUT_GET, 'tab') : 'dashboard';
$section = 'admin.php?page=whiskey_email&tab=';
?>
<div class="wrap">
<h1>Whiskey</h1>
<h2 class="nav-tab-wrapper">
<a href="<?php echo $section; ?>dashboard" class="nav-tab <?php echo $tab === 'dashboard' ? 'nav-tab-active' : ''; ?>">Dashboard</a>
<a href="<?php echo $section; ?>email" class="nav-tab <?php echo $tab === 'email' ? 'nav-tab-active' : ''; ?>">Email</a>
</h2>
<?php if ($tab === 'dashboard') { ?>
<h3>Whiskey</h3>
<?php } else if ($tab === 'email') { ?>
<?php
if (isset($_POST['save_send'])) {
$bulkEmailSubject = sanitize_text_field($_POST['bulk_email_subject']);
$bulkEmailBody = stripslashes_deep($_POST['bulk_email_body']);
$emails = explode(PHP_EOL, $_POST['bulk_email_addresses']);
foreach ($emails as $email) {
wp_mail($email, $bulkEmailSubject, $bulkEmailBody, ['Content-Type: text/html; charset=UTF-8']);
}
echo '<div class="updated notice is-dismissible"><p>Email sent successfully!</p></div>';
}
?>
<h2>Bulk Email</h2>
<p>Send bulk email to custom email addresses. Use in combination with Gmail SMTP or SendGrid.</p>
<form method="post">
<table class="form-table">
<tbody>
<tr>
<th scope="row"><label for="bulk_email_addresses">Email Addresses</label></th>
<td>
<p>
<textarea id="bulk_email_addresses" name="bulk_email_addresses" class="regular-text large" rows="8"></textarea>
</p>
</td>
</tr>
<tr>
<th scope="row"><label for="bulk_email_subject">Email Subject</label></th>
<td>
<p>
<input type="text" id="bulk_email_subject" name="bulk_email_subject" class="regular-text">
<br><small>Use a short and concise subject line.</small>
</p>
</td>
</tr>
<tr>
<th scope="row"><label for="bulk_email_body">Email Body</label></th>
<td>
<p>
<?php
wp_editor('', 'bulk_email_body', [
'teeny' => false,
'media_buttons' => false,
'textarea_name' => 'bulk_email_body'
]);
?>
</p>
</td>
</tr>
<tr>
<th scope="row"></th>
<td><input type="submit" name="save_send" class="button button-primary" value="Send"></td>
</tr>
</tbody>
</table>
</form>
<?php } ?>
</div>
<?php
}