WordPress Plugins
- Cleanup Multisite DB Tables (WP-CLI Custom Command): Finds and delete orphaned tables in a WordPress Multisite network using WP-CLI. Useful when plugins don’t properly clean up their tables after deletion in a multisite network.
https://github.com/shawnhooper/delete-orphaned-multisite-tables - Gravity Forms Country and Province Dropdowns: Populates a Gravity Forms dropdowns with country and state/province names. Currently supports Canada, US and Italy.
https://github.com/shawnhooper/gravity-forms-country-province-dropdown - HTTP Verb Conditional Display Shortcode: A plugin that adds two new shortcodes in WordPress, [http_get] and [http_post] to only display sections of content on posts or pages based on the current HTTP verb.
https://github.com/shawnhooper/http-verb-condtional-display-shortcode - NoPIN: Blocks Pinterest from being able to Pin images from your WordPress site.
https://wordpress.org/plugins/nopin/ - Page Template Usage Info: This plugin generates a list of all the custom page templates available in the active WordPress theme, and shows you how many pages use this template. It will also show you if the page contains any Gutenberg blocks or not.
https://wordpress.org/plugins/page-template-usage-info/ - Remove UTM Codes from WordPress Posts: This plugin adds a WP-CLI command that removes UTM codes from all links in your post content.
https://github.com/shawnhooper/remove-utm-codes - RESTful Localized Scripts: WP REST API enhancement to return JSON arrays containing localized strings registered with WordPress’ wp_localize_script() function
https://github.com/shawnhooper/restful-localized-scripts - Twitter Archive to WordPress: This plugin contains a custom WP-CLI command to import a Twitter data archive into WordPress.
Because this is an add-on for a WP-CLI, it is not available in the WordPress.org plugin repository. You can download it from GitHub here:
https://github.com/shawnhooper/twitter-archive-to-wp - WPML REST API: A WordPress plugin that adds links to translated versions of each post to the WordPress REST API responses. The plugin works for users of the WPML translation plugin.
Because this is an add-on for a commerical plugin, it is not available in the WordPress.org plugin repository. You can download it from GitHub here:
https://github.com/shawnhooper/wpml-rest-api/
Open Source Contributions
Apart from my own projects, I try to give back to other open source projects whenever I can. Here’s a very incomplete list of these contributions (The ones I could find):
2024
Project | Contribution | Link |
Laravel Harbor | Allow environment URL to be overridden in the GitHub PR commenting module | https://github.com/mehrancodes/laravel-harbor/pull/73 |
Laravel Harbor | Added Slack notification support when a new site is deployed. | https://github.com/mehrancodes/laravel-harbor/pull/78 |
WP-CLI | Added wp user exists command | https://github.com/wp-cli/entity-command/pull/486 |
Laravel Dusk | New Assertions: assertPathEndsWith and assertPathContains | https://github.com/laravel/dusk/pull/1088#event-12475221576 |
2023
Project | Contribution | Link |
WordPress | REST API: Correct parsing of password from Authorization header when processing Application Password credentials. | https://core.trac.wordpress.org/changeset/56804 |
WordPress | Added Unit Tests and testing instructions for new new_admin_email_subject filter | https://core.trac.wordpress.org/ticket/59250 |
WP-CLI | Suggest network meta instead of network option | https://github.com/wp-cli/wp-cli/pull/5879 |
WP-CLI | Checksum validation for Hello Dolly plugin. WP-CLI Hack Day | https://github.com/wp-cli/checksum-command/pull/119 |
WP-CLI | Add --force-check flag to check-update commandWP-CLI Hack Day | https://github.com/wp-cli/core-command/pull/246 |
WP-CLI | Fix deleting a site by a slug that is an integer WP-CLI Hack Day | https://github.com/wp-cli/entity-command/pull/444 |
WP-CLI | Add origin and exclude-role-names filters to list-caps command WP-CLI Hack Day | https://github.com/wp-cli/entity-command/pull/445 |
Laravel FormRequest Tester | Fixes deprecated ${var} usage in PHP 8.2 21 by shawnhooper was merged Aug 28, 2023 | https://github.com/mohammedmanssour/form-request-tester/pull/21 |
2022
Project | Contribution | |
Laravel SAML IdP | Replaced an abandoned dependency with a maintained fork. | https://github.com/codegreencreative/laravel-samlidp/pull/96 |
Snipe Migrations | Add PHP 8.0 Support | https://github.com/drfraker/snipe-migrations/pull/40 |
Laravel SAML IdP | Get E-Mail from field defined in the config | https://github.com/codegreencreative/laravel-samlidp/pull/53 |
Laravel NoFLoC | Add Laravel 9 Compatibility | https://github.com/jpmurray/LaravelNoFLoC/pull/2 |
“WordPress PHPCS” Github Action | Readme Fix – Wrong action name in “uses” step | https://github.com/shalior/wordpress-phpcs-action/pull/1 |
2021
Project | Contribution | |
Laravel NoFLoC | Fix Streaming Downloads | https://github.com/jpmurray/LaravelNoFLoC/pull/1 |
PHPUnit Assertions package by Astrotomic | Add Assertions for “Plus Sign Alias” Email Addresses | https://github.com/Astrotomic/phpunit-assertions/pull/3 |
2020
Project | Contribution | |
Scribe | Fixed a typo in the documentation | https://github.com/knuckleswtf/scribe/pull/34 |
Laravel Zxcvbn validator | Fixed a typo in the documentation | https://github.com/REBELinBLUE/laravel-zxcvbn/pull/10 |
2019
Project | Contribution | |
Vue Good Table | Fixed invalid CSS values for flex-wrap and font-weight | https://github.com/xaksis/vue-good-table/pull/562 |
WP Engine’s “PHP Compatibility Checker” WordPress Plugin Paid open source contribution | Add PHP 7.3 Compatibility Checks | https://github.com/wpengine/phpcompat/pull/244 |
Laravel-JS-Locatlization Laravel PHP Package | Future Proof Major Version Checks | https://github.com/rmariuzzo/Laravel-JS-Localization/pull/140 |
2018
Project | Contribution | |
WordPress | HTTP Status code should be a 400 instead of a 409 when attempting to add a term (by slug) that already exist | https://core.trac.wordpress.org/ticket/42781 |
2017
Project | Contribution | |
Caldera Forms | Allow Multiple Recipients & BCCs | https://github.com/CalderaWP/Caldera-Forms/pull/1617 |
Rock the Slackbot | Fix PHP Notice on 404 Page. Check if $_SERVER[‘HTTPS’] is set before checking it’s value | https://github.com/bamadesigner/rock-the-slackbot/pull/21 |
WordPress | Contributed Tests to “REST API: Attempting to create an existing term yields HTTP 500” | https://core.trac.wordpress.org/ticket/41370 |
WordPress | Changed Status Code and Added Unit Tests to “REST create user: existing_user_login is returned before existing_user_email” WordCamp US Contributor Day | https://core.trac.wordpress.org/ticket/41672 |
“Rock the Slackbot” WordPress Plugin | Check if $_SERVER[‘HTTPS’] is set before checking it’s value | https://github.com/bamadesigner/rock-the-slackbot/pull/21 |
“Caldera Forms” WordPress Plugin | Fix status column creation error on activation | https://github.com/CalderaWP/Caldera-Forms/pull/1611 |
“Caldera Forms” WordPress Plugin | Add interface & base class to support future CRM processors | https://github.com/CalderaWP/Caldera-Forms/pull/1616 |
“Caldera Forms” WordPress Plugin | Allow Multiple Recipients & BCCs | https://github.com/CalderaWP/Caldera-Forms/pull/1617 |
“Caldera Forms” WordPress Plugin | change php syntax – travis didn’t like passing [] object to constructor | https://github.com/CalderaWP/Caldera-Forms/pull/1618 |
2016
“Disable Blog” WordPress Plugin | Check if $_SERVER[‘HTTPS’] is set before checking it’s value | https://github.com/petenelson/wp-any-ipsum/pull/4 |
2015
WordPress | Added add_user_role and remove_user_role actions | https://core.trac.wordpress.org/ticket/32060 |
Any Ipsum | Added HTML Format | https://github.com/petenelson/wp-any-ipsum/pull/4 |
Any Ipsum | Add format parameter and plain text return format to API endpoint | https://github.com/petenelson/wp-any-ipsum/pull/2 |
2014
Project | Contribution | |
WordPress | Account for longer translations of ‘Customize Your Site’ button label. WordCamp Boston Contributor Day | https://core.trac.wordpress.org/ticket/29451 |
Sponsorship
If you want to support any of my open source work, you can donate on my GitHub Sponsors page.