Hiring low cost, off-shore WordPress / PHP outsourcers

How to get cheap software for WordPress using Test Driven Development.

Post an ad on a site like Upwork.com or Freelancer.com for a low cost PHP programmer, and you’ll experience something unlike anything else in business. You’ll receive applications faster than you can possibly read them. A vertitable gusher of low grade computer programmers. Give me your tired, your poor, your huddled masses.

$5/hr software developers, what could go wrong?
Obviously a lot. However, these programmers represent a massive untapped talent pool, and Test Driven Development is the technique you can use to leverage this talent. Using TDD, you can safely, effectively, and efficiently use low cost human talent on your projects.

Issue #1: Quality of work
Issue #2: Onboarding and retention
Issue #3: Security

Concept Massive talent pool
Concept Cost comparisons
Concept No employees
Concept 24 hours a day

Understanding WordPress Codeception configuration files

Doing proper Test Driven Development [TDD] in WordPress, is actually easier than cowboy coding the old way. What is quite difficult however, is understanding and setting up all the configuration files. This guide will help.

The Server

In order to run WP-Codeception, you have to have a working installation of WordPress running on a web server you have access to. This can be any type of server, be it an Ubuntu laptop running Apache-Tomcat, a cloud based server, a Windows machine with a Vagrant box, or whatever. You’ll need access to the command line via a shell, and you’ll need admin access and the ability to load software. You should have Git, and Composer installed globally and at least a rudimentary understanding of haow to use them. Most of this guide assumes an Ubuntu 16LTS server with Apache2, as this is what I use, and you can get one for free. If you have a Windows machine, you can install Ubuntu on a memory stick and turn a junk laptop into a high powered server. You can get a cloud based server from Amazon or Google for next to nothing.

Understanding DNS and subdomains

The Domain Name System [DNS] is the system your browser uses to resolve names like generalchicken.net to IP addresses like 34.197.171.101. A server connected to the internet generally has one IP address, usually one main domain, but it can also have many subdomains. For instance, this server hosts the domains generalchicken.net and another blog, messagetothefish.com. Both have the same IP address, but different domain names.
When an HTTP or HTTPS request is sent to this server, the request should have a header called the host which indicates to the server what domain a resonse is expected from.
Internally, the server sends each request to a particular directory, based on what subdomain is named in the host header. On most Ubuntu WordPress setups I have seen, the main domain the server hosts is usually set to:
/var/www/html/
and subdomains go from there
/var/www/html/sub1/
/var/www/html/sub2/

Understanding this is important because if you are setting up a local development version of WordPress, you are going to want to be able to set subdomains up.

The default setup on Ubuntu, is for the domain “localhost” to point to /var/www/html . Therefore, to access your local WordPress site, open a browser like Chrome, and got to http://localhost/ and you should get the WordPress install screen.

Another consideration is that most forms of testing work the best when you don’t have any state. That is, the database is either reset to a starting point, or totally scrubbed after each test. If you’re not used to this, you may accidentally delete anything you have on your site, especially if you’re using it for anything. My personal setup is that I use http://localhost/ for unit testing, and I have another WordPress install, called http://laptop.dev/ where I have a database that doesn’t reset.

Plugins that remove or roll-back WordPress features

Tired of some new feature in WordPress?

As new features come out for WordPress, they almost always suck. Here are some plugins that roll back new “features”.

Classic Editor

Change Admin Email

WP Rollback

WP Disable Automatic Updates


Unfortunately, WP Disable Automatic Updates doesn’t seam to be working.

Disable Administration Email Verification Prompt

How can we manually create multilingual WordPress website without using Polylang plugin or Google Translator?

General Chicken answers a question on Quora:

Read John Dee's answer to How can we manually create multilingual WordPress website without using Polylang plugin or Google Translator? on Quora

Is there a way to automatically rollback WordPress versions and plugin/them versions if they break the site?

John Dee answers a question on quora.com

General Chicken answers a question on Quora:
Read John Dee's answer to Is there a way to automatically rollback WordPress versions and plugin/them versions if they break the site? on Quora

Another answer:
Read Pol Tajani's answer to Is there a way to automatically rollback WordPress versions and plugin/them versions if they break the site? on Quora