Plugin Directory

Google Forms

Embeds a published, public Google Form in a WordPress post, page, or widget.

Why I do I have a "cURL transport missing" message on my Dashboard?

There was a change to the WordPress HTTP API in version 3.7 which resulted in wp_remote_post() no longer working with the streams and fsockopen transports when posting form data back to Google Docs. The cURL transport does work reliably so a check has been added and a notification is issued when the cURL transport is missing. This notification can be hidden by selecting the proper checkbox on the plugin settings page.

Will the plugin work without the cURL transport?

Up until WordPress 3.6.1, the plugin worked with any of the supported transports (streams, fsockopen, curl). Currently only cURL is known to work properly. You may have some success with other transports IF your form does not include checkboxes. Checkboxes definitely do not work with anything but the cURL transport.

How can I add the cURL transport to WordPress?

The cURL transport is enabled by WordPress when PHP support for cURL is detected. It isn't something which can be added to WordPress, it needs to be present in the PHP version your web server is running. Contact your hosting provider to inquire about adding cURL support to PHP for your WordPress site.

The default style is ugly. Can I change it?

Yes, there are two ways to change the style (aka apearance) of the form.

  1. By adding the necessary CSS to your theme's style sheet.
  2. Through the WordPress Google Form custom CSS setting.

Google Forms include plenty of CSS hooks. Refer to the CSS section for further details on styling the form. There are also some CSS solutions posted to questions users have raised in the Tips and Tricks section of this page.

Why are the buttons and some other text on form in Chinese (or some other language)?

This problem occurred fairly infrequently with the older version of Google Forms but with the upgrade in early 2013, it seems to happen much more often. The solution to this problem depends on which URL format your published Google Form takes on (old or new).

If your form URL looks like this, then you are using the older version of Google Forms:


To force the language to English, you need to include the parameter hl=en. Placement doesn't matter except it must appear before the #gid=0 (or similar syntax depending on which sheet you're using). You will either need to prefix or append the & character to ensure the parameter is passed correctly.


If your form URL looks like this, then you are using the new version of Google Forms:


To force the form to use English you would append "?hl=en" to the URL so it looks like this:


You can find an example Google Form with French buttons on the plugin web site.

Why do I get a 403 error?

There a number of reasons to get a 403 error but by far the most common one encountered so far is due to ModSecurity being installed by your web hosting provider. Not all providers deploy ModSecurity but enough do that it comes up every once in a while. If your provider is running ModSecurity and your version of the plugin is v0.30 or lower, you will likely see odd behavior where when the form is submitted, the page is simply rendered again and the data is never actually sent to Google. There isn't any error message to indicate what might be wrong.

Version 0.31 fixes this problem for most cases but there is still a chance that it could crop up. If your provider has enabled ModSecurity AND someone answers one of the questions on your form with a URL (e.g. http://www.example.com), then very likely ModSecurity will kick in an issue a 403 error. The plugin is now smart enough to detect when the error is issued and let you know what is wrong. Unfortunately there isn't currently a solution to allow URLs as responses when ModSecurity issues a 403 error.

Some themes filter page content which could potentially affect forms. If the filter modifies the Google Form HTML in such a way (e.g. changing the value of a hidden form variable) such that it is different that what Google is expecting upon form submission, a 403 error may result.

No matter what I do, I always get the "Unable to retrieve Google Form. Please try reloading this page." error message. Why is this?

  1. The most common reason for this error is from pasting the Google Form URL into the WordPress WYSIWYG Editor while in "Visual" mode. When you paste the URL, the Visual Editor recognizes at a link and wraps the text in the apprpriate HTML tags so the link will work. Visually you'll trypically see the URL in a different color than the rest of the short code text. If this happens, simply click anywhere in the link and use the "Break Link" icon (broken chain) on the tool bar to remove the link. The other alternative is to toggle to HTML mode and manually remove the HTML which is wrapped around the URL.

  2. Validate that the WordPress HTTP API is working correctly. If you are seeing HTTP API errors on the WordPress Dashboard or when you attempt to access the plugin repository through the Dashboard, the WordPress Google Form will likely fail too. It requires the WordPress HTTP API to be working. With some free hosting plans, ISPs disable the ability to access remote content.

Do you have a demo running?

Yes, see a demo here: Demo of WordPress Google Form plugin

Feel free to submit a response and then view other responses as well.

Content appears, but it's not my form and it looks odd! Why?

You should triple-check that you've published your Form. Google provides instructions for doing this. Be sure to follow steps 1 and 2 in Google Spreadsheets Help: Publishing to the Web as the same process applies to Forms and Spreadsheets.

Why doesn't my form look the same as it does when I use the stand alone URL?

Google Forms can have Themes which are really nothing more than CSS defitinions to change the form's appearance. None of the Google CSS is brought into WordPress, just the CSS class names and the HTML used to define the form. Refer to the CSS section for more information on styling your form.

Google supports embedding forms, why isn't that sufficient?

For many uses the simple embedding of a Google Form in an <iframe> may be sufficient. However, if you want your forms to take on the look and feel of your WordPress site while retaining the ability to collect information in a Google Spreadsheet, the WordPress Google Form plugin may be for you.

I really like having a colon character after my form labels, is that possible?

Sure. You can use the following CSS to have the colon character appear after all of your form labels.

label.ss-q-title:after {
    content: ':';

I don't like the redirection behavior of the custom confirmation, can you change it back to the way it worked in v0.10?

Unfortunately not. I understand that the older behavior is preferable as it looks cleaner for the end user however there is no way to support multi-page Google Forms using the old model. The requirement to support multi-page Google Forms is a higher priority than the older confirmation model based on the overwhelming feedback received to support multi-page forms. In v0.26 a new confirmation behavior was introduced which uses AJAX to update the page with the content from the custom confirmation page. In v0.27 the redirection mechanism has returned to be the default behavior but if the AJAX methodology is preferred, it is available by setting the style='ajax' attribute within the shortcode.

Can I change the range of values the CAPCTHA is based on?

Not at this time. However, you can choose between two (2) or three (3) terms for the CAPTCHA.

Can I change the math operator the CAPTCHA is based on?

Yes. Beginning in v0.46 you can specify which operator(s) (+, -, *) the CAPTCHA will be based on.

How do specify which fields go in which columns when splitting a form across multiple columns?

This isn't possible. The process of splitting the form into columns is automatic and will try to balance the colummn content. You can rearrange the fields on the Google side to have some affect on their placement but there isn't any control over the exact column layout or where splits are inserted.

Requires: 4.0 or higher
Compatible up to: 4.5.4
Last Updated: 1 week ago
Active Installs: 20,000+


4.9 out of 5 stars


6 of 13 support threads in the last two months have been marked resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

75,4,3 100,1,1 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,2,2 0,1,0
0,2,0 0,1,0
100,1,1 100,1,1 100,1,1