Skip to content

Instantly share code, notes, and snippets.

View kdevnel's full-sized avatar

Kyle Nel kdevnel

View GitHub Profile
@kdevnel
kdevnel / resume.json
Last active May 7, 2025 09:18
My personal resume in ResumeJSON format.
{
"basics": {
"name": "Kyle Devereaux Nel",
"label": "Full Stack Engineer | PHP Engineer",
"image": "http://devnel.blog/wp-content/uploads/2025/05/avatar_1200.jpeg",
"email": "[email protected]",
"phone": "+27 671746400",
"url": "https://devnel.com",
"summary": "Full Stack Engineer with 10+ years of cross-functional experience driving innovation across WordPress ecosystems, e-commerce platforms, and SaaS marketplaces. Experienced in bridging backend infrastructure with intuitive frontends using PHP, React, JavaScript, and API orchestration. Built and led cohesive remote engineering teams while implementing AI-integrated tooling, and optimizing performance at scale for global platforms such as WooCommerce.com. Leadership across the full software development lifecycle, customer-centric design, and mentoring engineers across growth stages. Equally comfortable at the code level or driving strategy across departments.",
"location": {
@kdevnel
kdevnel / local-by-flywheel-sql-import.sql
Created December 11, 2018 22:51
Instructions and SQL statement for importing Local by Flywheel manually into new DB
/*
Run the following terminal command from the sql folder to merge files into a new file:
cat *.sql > complete.sql
*/
-- Add the following to the top of complete.sql
SET sql_mode = '';
-- Import complete.sql as normal
@kdevnel
kdevnel / .gitignore
Created October 1, 2018 14:59 — forked from redoPop/.gitignore
Template .gitignore file for WordPress projects
# This is a template .gitignore file for git-managed WordPress projects.
#
# Fact: you don't want WordPress core files, or your server-specific
# configuration files etc., in your project's repository. You just don't.
#
# Solution: stick this file up your repository root (which it assumes is
# also the WordPress root directory) and add exceptions for any plugins,
# themes, and other directories that should be under version control.
#
# See the comments below for more info on how to add exceptions for your
@kdevnel
kdevnel / remote-image-replacer.php
Created September 21, 2018 14:50
Loads media from a remote site when on a local dev environment. Eliminates the need to download the uploads directory from the remote site for testing purposes. Works great with a DB sync tool.
<?php
/**
* Loads media from a remote site when on a local dev environment.
* Eliminates the need to download the uploads directory from the remote site for testing purposes.
*/
//Replace yourdomain.local with local server domain
if ( 'yourdomain.local' === $_SERVER['HTTP_HOST'] ):
add_filter( 'upload_dir', function ( $uploads ) {
//Replace http://your-remote-site.com with your live site URL
$uploads['baseurl'] = 'http://your-remote-site.com/wp-content/uploads';
@kdevnel
kdevnel / profile-update-notification-emails.php
Created June 4, 2018 14:07
Send admin notifications when user profile is updated along with old details check to make sure emails only send if something is actually changed.
/**
* ===========================================
* Send Emails when User Profile Changes
* ===========================================
*/
// IF EMAIL or NAME CHANGES
function user_profile_update_email( $user_id, $old_user_data ) {
//check session exists before evaluating
@kdevnel
kdevnel / menu-tweak.css
Created April 20, 2018 08:48
Understrap (and Bootstrap 4) menu dropdown on hover tweak
/**
* Menu styles needed to make JS work
*/
.dropdown:hover>.dropdown-menu {
display: block;
//For animation
max-height: 400px;
opacity: 1;
}
.dropdown>.dropdown-menu {
@kdevnel
kdevnel / Contract Killer 3.md
Created January 30, 2018 16:58
The latest version of my ‘killer contract’ for web designers and developers

Contract Killer

Based on the popular open-source contract for web professionals by Stuff & Nonsense

  • Originally published: 23rd December 2008
  • Revised date: January 30th 2018
  • Original post

@kdevnel
kdevnel / Plugin Class Boilerplate
Created January 29, 2018 15:00
A boilerplate that can be used to setup the initial class for WordPress plugins
class WP_Plugin_Boilerplate{
// Constructor
function __construct() {
add_action( 'admin_menu', array( $this, 'wppb_add_menu' ));
register_activation_hook( __FILE__, array( $this, 'wppb_install' ) );
register_deactivation_hook( __FILE__, array( $this, 'wppb_uninstall' ) );
}
@kdevnel
kdevnel / .gitignore
Created November 13, 2017 11:44
.gitignore file to only version the main theme and site plugin
# Ignore everything #
**
!wp-content/
wp-content/**
!wp-content/themes/
!wp-content/plugins/
wp-content/themes/**
wp-content/plugins/**
# Add two rules for each Theme or Plugin you want to include:
@kdevnel
kdevnel / banner-with-cookie.php
Last active November 13, 2017 12:29
A simple banner that can be hidden and creates a cookie to stay hidden