I have just released another update to the WordPress Google Form plugin. Within the HTML code that Google generates for their forms, each input field has unique identifier (e.g entry.0.group, entry.47.group, entry.6.single, etc.). There was a bug in the Regular Expression which incorrectly handled these identifiers when then had more than one digit. This bug is fixed in v0.17.
Why do the identifiers need to be processed? The need to “massage” the identifiers is due to the fact that WordPress is based on PHP and Google Forms are processed by Python. The two languages handle passing form parameters slightly differently. When the form is submitted on the WordPress side, the periods in the id are translated to underscores by PHP. Inputs like check boxes which may contain multiple values are handled using arrays in PHP where as Python allows the use of the same identifier multiple times. In order to submit the form values to Google, any value received as an array must be converted to a multi-value and the underscores need to be translated back to periods so they match the Python script on the Google side which actually processes the form and stores the result in a Google Spreadsheet.
There was a mistake in the logic which transforms the identifiers from PHP syntax to Python syntax. It didn’t correctly handle more than one digit in the identifier resulting in the wrong identifier names being sent to Google. This also caused loss of input values when a required field was not supplied.
Hopefully this will be the last problem!