SEO Article Type “H” Test Article

You’ll get an extra hour added onto your time for reading these directions.

DO NOT UNDER AND CIRCUMSTANCES COPY AND PASTE ANYTHING. You can copy stuff by re-writing it, or re-ordering sentences, but not word for word. You will be fired and reported to UpWork. If you submit poor but original work, I will pay you and give you a 5 star rating no matter what. If you submit plagiarized work, I will fire you and give you bad report.

You only need to write the body of the article. Don’t write introductions or conclusions / summations. Just jump right into the article. Someone else will write the intro and conclusion.

Put section headers in your work. At least every 400 words, but can be more often.

<h2>tags</h2> on your section headers.

Paragraphs should be only 3 sentences long. No exceptions. It’s more important that it be 3 sentences than that it makes sense.

When you are done, email your article to “” and log off UpWork.

Good luck! If this works out, I’ll have more work for you!

-John Dee

WordPress Plugin: Remove GDPR

GDPR is a Rube Goldberg contraption that serves no real purpose. Get it off your WordPress install!

GDPR is a European Union law which makes about as much sense as 2 + 2 = 5. Americans DO NOT have to obey GDPR. It is a violation of the 1st Amendment to the United States Constitution. This plugin removes GDPR features from WordPress. LONG LIVE FREE SPEACH!

Get it in the .org plugin repo here.

Github repo.

Vanishing Checkbox in WordPress Comment Form

This is the tale of the incredible vanishing checkbox, on WordPress versions 4.9.6 and 4.9.8.

WordPress uses cookies by default to log in users and track who is making a comment. Cookies are small snippets of data kept on a user’s browser. WordPress is trying to deal with the new GDPR regulations. It seems from following Trac, that it’s a giant cluster fuck.

This annoying checkbox was forced onto every WordPress site in the world as of 4.9.6:

As soon as I saw this monster I started making a plugin to roll it back. It was obvious to me that most sites wouldn’t want this, and that it served absolutely no purpose. It comes from a misunderstanding of the law, and a desire to be clever.

There is no requirement in GDPR for websites to display a check box for cookie use. None, totally false.

Then comes out 4.9.8 which removed the check-box that was just installed!

However! This revert also breaks functionality. Users who aren’t logged in have no way now of knowing that their comment was submitted.

So the situation as of 4.9.8 is that the comment cookie check box came and went, and now everybody’s site is broken.

You can solve the problem by re-activating the comment check box in the admin SETTINGS >> DISCUSSION, but then you’ll still have the checkbox. Or use this plugin to restore functionality to the way it was.

How to find the best possible WordPress plugins

How to find the best WordPress plugins

Post this template as a guaranteed contest on or for $40.

******** Recommend and install a WordPress plugin *********

I want to install a WordPress plugin, but I’m not sure exactly which one I should use.

Give me a very brief overview of what WordPress plugin(s) I should use, how much it will cost me (if anything), and what functionality it has. I’m not looking for a comprehensive overview of WordPress plugins, I’m looking for a specific plugin and someone who can execute installing it. You don’t need to submit credentials or previous projects, just know how to use the plugin you recommend and be able to install and set up the functionality.

Submit a simple text entry describing what plugin I should use, and you’re contact information. I will provide you with access. This is a guaranteed contest.

Functionality I need:

The Toolkit for WordPress BDD

To do Behavior Driven Development [BDD] in WordPress, you need to get the tools! Here is the stack you should use:

Operating System

Ubuntu 16 LTS. I personally use an Ubuntu 17 development server on my laptop. You can run Ubuntu on most machines with a USB memory stick, and it’s free. I use Ubuntu on the Amzaon AWS remote cloud servers and production servers. Ubuntu is a brand, but it’s just a Debian based Linux distro, so it’s future proof. If you stopped liking Ubuntu, you could switch to another distro without hassel.

Get the stack

Once you have a machine with Ubuntu running, you can load the entire development stack by running a single command:
source <(curl -s

Test Framework

Codeception with WordPress modules - PHPunit is the standard and default library for doing unit testing in PHP. CodeCeption INCLUDES PHPunit, as well as a whole series of libraries for doing BDD.

Acceptance testing

You should use the WPWebDriver and WPDb modules. You can use Selenium to drive a full browser if you want, but generally you should use PhantomJS, because it is much faster. You can write your test in the Gherkin format, or in procedural PHP. Generally, I consider Gherkin cumbersome and not worth the candle.
Sample acceptance.yml

WP-Unit testing

You should use the WPloader and WPQueries modules.
Sample unit.yml

Where does code live?

Use a Git repo. Use Github for code that has a public face. Use Bitbucket for private repos [or pay Github for a private repo, either way].

How do you control outsourcer Git commit access?

First setup a few emails:, etc. These accounts are granted direct commit access to the repo. Give the outsourcer access to the email account. The repo itself can set a webhook to pull to the production server upon commit. When you want to freeze the outsourcer from the project, you just change the password on Github and email accounts. The project manager retains access to pull to production. The outsourcer can make a commit and it appears directly on the development server. When the commit is approved by the project manager, he does a manual pull to the production machine.

How does the outsourcer work on the code?

Some programmers will have their own IDE setups that they like and know how to use. Eclipse is the best free IDE, while PHPStorm is probably the best commercial IDE. If they know how to pull down from Github and run the code on a local host, great. If they don't know how to do that, setup a development server in the cloud for them. Our stack include the Codiad IDE, which is an open source IDE similar to PHPStorm. TO access it, just go to /codiad/ on your development server, it's all setup already.

How do you run the test suite?

cd /var/www/html/wp-content/plugins/{project dir}
bin/codecept run -vvv --html

How do I see the test results?

They appear in the terminal, or at{project dir}/tests/_output/
Usually in the terminal you can use the up arrow shortcut.

How do I commit to the repo?

git add --all
git commit -m "some kind of message!"
git push origin master

How do I log in to the WordPress site?

You can log in by using the FastRegister plugin. Just enter an email in the sidebar form and viola! You're logged in as an admin.

How do I log in to a terminal?

The stack will preconfigured a user called "freelancer" with a password "password". Just SSH into the system without a pem file.

Roles in WordPress development

First of all, the word roles, has several meanings. This article refers to social roles human beings play in relation to one another during development.
On a WordPress site, there is a technical concept known as user roles and capabilities. The default ones are subscriber, contributor, editor, and administrator. This article isn’t referring to that use of the word roles.
Roles can be played by the same person, but usually aren’t in direct relation to the size of the project and organization.

  • business stakeholder – [aka the client, the product owner, the guy with the money] – This person wants software. It is from him the requirements flow, and hopefully the money.
  • project manager – [aka “Jobs”] Sharing financial awareness, and responsibility to a budget with the business stakeholder, the PM has overall responsibility for the project, usually including the ability to hire and fire people. This expert can, and must, throttle the efficiency of the project, and therefore should be paid in equity or a salary, not hourly.
  • developer – [aka “Woz”] the developer is a senior programmer. This person must have a global perspective of the project or at least on a major unit of the project. He can be paid a salary or hourly. Rates run from $20 – $150 hr based on experience.
  • architect – [QA architect, senior developer] This person sets up the development environment in conjunction with the PM and the developer. John Dee is an expert in WordPress plugin development architecture and can help you set up yours!
  • programmer – this junior to the developer writes code. He can be “front end” [javascript] or “back end” [PHP] or both. It is appropriate to pay a programmer hourly, or per project. Rates are from, gratis to $25 hr.
  • designer – In WordPress, a “designer” is a person who can modify themes. He can either be skilled at using a graphic page builder, or WYSIWYG editor, or they may know CSS and HTML. You should not employ a designer who cannot produce clean CSS and HTML code. Settings jockeys – designers who don’t know how to hard code things – should never be used. Rates are from about $7/hr to $20/hr

Running Codeception tests on multiple WordPress environments

Using the –env flag in Codeception. Running tests against multiple versions of WordPress.

Suppose you want to run your test suite against multiple environments? Perhaps with different browsers or with different versions of WordPress or PHP? Codeception makes this easy with the –env flag.

This is a plugin I made that rolls back a new feature added to WordPress 4.9. I want to run an acceptance test against the latest version of WordPress, and also against a legacy version of WordPress.

Setup multiple environments

I use an Ubuntu laptop with apache2. Your mileage will vary. When I develop a website, say, I setup my laptop to redirect to a local directory on my laptop. There I keep a copy of the production site to work on.

Directions to setup multiple hosts from

On my machine, I setup two distinct WordPress installs, one at http://localhost and the other at One running version 4.9 and the other running version 3.9.

WordPress v 3.9.23
WordPress v 3.9.23

WordPress v 4.9
WordPress v 4.9

In this example, I’ll be running an acceptance test against both versions of WordPress. I’ll need to setup the YML file like this:

I use this command:
bin/codecept run acceptance -vvv --html --env remotehost --env localhost

bin/codecept is the executable [might be wpcept or codecept]
acceptance is the suite
remotehost and localhost are the envs
-vvv very very verbose [one dash]
–html report to html [two dashes]

Codeception runs:

Passing Tests!
Passing Tests!

WordPress Plugin: Change Admin Email

WordPress Plugin: Change Admin Email Setting Without Outbound Email

As of WordPress 4.9, the administrator cannot change the site admin email without outgoing email setup on the server, and recipient email credentials. This plugin restores the admin’s ability to change this setting without sending a confirmation email.

Plugin in the .org repo
Plugin on Github

Bonus BDD!
As a bonus, for developers I’m distributing some BDD Codeception tests with this plugin. The tests are designed to run via the WordPress module from Codeception. To run them, you’ll need composer, selenium, and chrome. To pull the framework, use the instructions here.

I use this as an example of running tests in multiple environments.

When building this, I used TDD / BDD by creating an acceptance test that worked on v3.9 so that I could run the same test against v4.9. This is overkill, but I wanted to show how to run tests against different environments.

7 FREE Plugins

I will help you build a WordPress plugin – 100% for free – in exchange for letting me blog about the experience.

I’m John Dee – an expert WordPress plugin developer. I am going to be making 7 WordPress plugins for business stakeholders using my Behavior Driven Development / Test Driven Development method. This is an attempt to write a book on WordPress plugin development. I’m looking for business partners who wish to get involved.

My claim

Using BDD / TDD, I can decimate production costs and increase quality for WordPress plugin development. Rough guess, I can reduce costs by 90% at most enterprises.

You get

Directions for the toolkit.

  • A WordPress plugin made for you, which you then own, 100%.
  • A development work-flow for your own team to use in the future.
  • A comparison of your current work flow to other small and medium sized development teams. [Except any proprietary information]

Your requirements

  • You must come up with an IDEA for a WordPress plugin. That’s mostly it.
  • You have to pay for programmers. I am a developer – I am an expert programmer who manages other programmers [usually lower skilled, lower paid programmers, but I love working with experts too!]. If you are running an Agile team already, great! If you’re a one man shop, great! If you already have programmers or developers, great! This might be a very large cost, or a very small cost, but I promise it will be cheaper by an exponential factor than you can do on your own. Again, I will receive zero percent of this, and I’m not shilling for someone else. I prefer outsourcers, but if you already employ human beings who know PHP, great let’s use them!
  • This is for WordPress plugins! Business scripting [which is perfect for WordPress], PHP APIs in general, WP-API, PHP SPAs with WP backend etc.
  • This is for backend plugin development, not frontend theme design. Not content, not hosting – although I’ll throw in development hosting if you want it. I use dev servers on AWS, which are nearly free.
  • Assuming this is a business project, you will have to provide for all aspects of your project not specifically related to development. [i.e. if there is a marketing component to your project, you’ll need to manage that.]


  • One of the main points I’m trying to develop is the ability to work remotely. All work is done via Skype.
  • I will provide development servers. I use
    cloud based development servers on Amazon AWS domain with some garbage like The main obstacle to doing WordPress BDD is setting up the frameworks. It’s really hard.
    That’s what I bring.
  • Code is stored on Github or Bitbucket. If you require a firewall, no problem. I make everything compatible on any site, so I don’t need access to your production servers. You can do that.
  • I am doing semi strict TDD / BDD. Programmers DO NOT NEED TO UNDERSTAND TDD IN ADVANCE.
  • I’m doing modified pair programming. I monitor the programmers and direct how they write the code. I generally check in every hour with them. This preserves my brain to take a higher level view of the project while the programmer can work doggedly on the smaller scale without worrying about the higher live architecture.
  • Toolkit is 100% open source, Codeception with WordPress module [PHPUnit etc.]

Contact John Dee to get involved.
p. (702)748-5491 [call or text]