WordPress Error: Site Downloads PHP Files Moving to another host from BlueHost

Recently I had a client¬† on Dreamhost come to me with a problem where the wordpress files would download to their computer. I know this problem well, usually it’s a php handling error, basically php is not parsing the file and the file is being served as a download. The first place to look for something like this is the .htaccess (the client was running apache). I found the following code in the htaccess

AddHandler application/x-httpd-php70 .php

So removing this piece of code brought the site back up, but how did it get there?

After a bit of research and digging around I found that there was a plugin created by bluehost called Endurance PHP, I asked my client if the site in question was previously on bluehost and they confirmed. So the client built the site on Bluehost then transferred it to Dreamhost and a trigger of the permalink rewrite added the “AddHandler” code into the htaccess.

So to fix the issue all I had to do was remove the 3 files from


The files in question area


After removing the files you need to also delete .htaccess file and then go settings and save permalinks (generating a new .htaccess file)

This is why I always recommend a reputable host like Liquidweb!

Optima Express Yoast SEO integration

Recently a client came to me with a problem with a popular WordPress plugin called Optima Express by ihomefinder which looks like a great IDX plugin for real estate companies. The problem was that it did not support Yoast SEO. This is a huge problem considering Yoast is one of the biggest SEO plugins out there and it was basically passing no title tags to properties.

After inspecting the code I noticed Optima was forcing it’s own data onto a page post type and passing it as ID 0. This results in problems for Yoast or anything else using the post object because basically it was trying to find a title for an ID that did not exist.

To fix this we need to repass the title from the post object to the filters supplied by Yoast SEO. Here is the code, you can place this in your functions file or make a plugin for it.

WordPress Document Manager – How to send an email after download

Recently someone came to me with a problem, they needed to fire off an email from the popular wordpress plugin Smarty Pants Client Document Manager. The plugin did not have that default functionality but it does supply the hooks to do so.

To attack this issue we needed to find two hooks

“sp_download_file_after_query” Which fires after a user has downloaded a file

“sp_cdm_settings_email” which adds a system email to the settings page

In the email settings function we are just creating a simple email that is integrated into the smarty email editor.

In the function we created for the download you can see how we took the file array and from that array got information about the file owner, project owner and current user. With that information we can take the content from the email we created and do anything we want with it. In this instance I’m taking the file owner and sending them a notification that someone has downloaded a file.

Since we built this into the email manager you have full use of the email shortcodes, so that makes this method versatile to do pretty much anything from emailing to submitting information to 3rd party APIs. Check out the plugin here and the code below.

Retry WooCommerce Subscriptions gateway failed renewals

Recently I had a client come to me who had a gateway error, woocommerce subscriptions was not processing renewals correctly. So after a few days we fixed it but there was about 600 failed renewals for $5 each that needed to be re-entered. Since woocommerce doesn’t have a way to to do this I needed to create a script that would loop through failed and pending orders and try the renewal again. If you use this script just create a plugin file and navigate to ?retry=1 ¬†or use the funciton in your own file!