Mostly WordPress plus some other random thoughts and musings …

WordPress Google Form Plugin

For the past couple of days I have been working on a new WordPress plugin I am calling WordPress Google Form. This morning I received the approval for adding it to the WordPress plugin repository so I will be doing that over the next couple of days. I spent much of the last two days on an airplane so the plugin is currently in a state where I have it modified to work offline but I’ve done enough online testing that I am pretty confident I have something working.

My interest in Google Forms stems from the work I am doing on a site for our Middle School. We have a need to collect information in the form of Booster Club memberships and while there are a number of Membership type plugins, none of them really do what I want. Ultimately what we need is a spreadsheet of names, addresses, and phone numbers and Google Docs will work well for that. Putting a Google Form on the front end will allow us to capture the data online.

I thought integrating the Google Form with our WordPress site would be pretty simple, Google offers the ability to embed a form using an IFRAME. Unfortunately the ability to style the form is pretty limited and the Confirmation page even less so.

I have been using the Google Inline Spreadsheet Viewer plugin to display the data from our Google spreadsheets, I was somewhat surprised to find that there doesn’t seem to be anything similar for Google Forms. So I decided to write one. Borrowing some ideas from the Google Inline Spreadsheet Viewer plugin, I have created a plugin that defines the shortcode gform. The gform shortcode takes a Google Forms URL and extracts the FORM body content, cleans it up, and outputs it for WordPress posts, pages, and widgets.

There are a number of attributes that can optionally control the output, the most significant is the confirmation page which can redirect to a page within the WordPress site instead of the default Google conformation page.

More details to follow soon and I hope to have an example up and running later today.