SpeakOut! Email Petitions


SpeakOut! Email Petitions allows you to easily create petition forms on your site.

When visitors to your site submit the petition form, a copy of your message will be sent to the email address you specified e.g. your mayor. They can also choose to have the email BCC’d to themselves (default). The petition message will be signed with the contact information provided by the form submitter. After signing the petition, visitors will have the option of sharing your petition page with their followers on Facebook or Twitter.

Signatures are stored in the WordPress database and can be easily exported to CSV format for further analysis (there is no import function). You may set a goal for the number of signatures you hope to collect and then watch as a progress bar tracks your petition’s advance toward it’s goal. Petitions may also be configured to stop accepting new signatures on a specified date.

This plugin is a fork of the speakup plugin that was quite good but had been abandoned. Current versions of SpeakOut! include an importer to migrate from speakup.


  • Albanian sq_AL Incomplete
  • Arabic ar_AR
  • Arabic ar (Faisal Kadri)
  • Catalan ca (Alberto Canals)
  • Czech cs_CZ (Petr Štepán, Michal Hradecký)
  • Danish da_DK (A. L.)
  • Dutch nl_NL (Kris Zanders, Petronella van Leusden)
  • Finnish fi_FI
  • French fr_FR
  • German de_DE (Hannes Heller, Armin Vasilico, Andreas Kumlehn, Frank Jermann)
  • Hebrew he_IL (Oren L)
  • Korean ko_KO (Paul Lawley-Jones)
  • Icelandic is_IS (Hildur Sif Thorarensen)
  • Italian it_IT (MacItaly, Davide Granti, Simone Apollo)
  • Norwegian nb_NO (Howard Gittela)
  • Polish pl_PL (Damian Dzieduch)
  • Portuguese (Brazil) pt_BR (Tel Amiel)
  • Romanian ro_RO (Web Hosting Geeks)
  • Russian ru_RU (Teplitsa)
  • Serbian sr_SE (Mikhailo Matovic)
  • Slovak sk_SK (@Beata)
  • Slovenian sl_SI (MA-SEO)
  • Spanish es_ES
  • Swedish sv_SE (Susanne Nyman Furugård @sunyfu)

If you would like to request or contribute a specific translation not listed above, visit the SpeakOut! Email Petitions website and use the contact form.

Emailpetition Shortcode Attributes

The following attributes may be applied when using the ‘[emailpetition]’ shortcode


The ID number of your petition (required). To display a basic petition, use this format:
‘[emailpetition id=”1″]’


This sets the width of the wrapper “


div>” that surrounds the petition form. Format as you would a width rule for any standard CSS selector. Values can be denominated in px, pt, em, % etc. The units marker (px, %) must be included.

To set the petition from to display at 100% of it’s container, use:
‘[emailpetition id=”1″ width=”100%”]’

A petition set to display at 500 pixels wide can be achieved using:
‘[emailpetition id=”1″ width=”500px”]’


This sets the height of the petition message box (rather than the height of the entire form). Format as you would a height rule for any standard CSS selector. Values can be denominated in px, pt, em, % etc. The units marker (px, %) must be included.

A few notes on using percentages:
Using a % value only works when the “Allow messages to be edited” feature is turned off—because the petition message will be displayed in a ‘


div>’. When “Allow messages to be edited” is turned on, the petition message is displayed in a ”, which cannot be styled with % heights. Use px to set the height on petitions that allow message customization.

To set the message box to scale to 100% of the height of the message it contains, use any % value (setting this to 100%, 0%, 200% or any other % value has the same result). Use px if you want the box to scale to a specific height.

‘[emailpetition id=”1″ height=”500px”]’
‘[emailpetition id=”1″ height=”100%”]’


Sets the width of the outer progress bar. The filled area of the progress bar will automatically scale proportionally with the width of the outer prgress bar. Provide a numeric value in pixels only. Do not include the px unit marker.

To display the progress bar at 300 pixels wide, use:
‘[emailpetition id=”1″ progresswidth=”300″]’


Adds an arbitrary class name to the wrapper ‘


div>’ that surrounds the petition form. Typically used to assign the alignright, alignleft or aligncenter classes to the petition in order to float the petition form to one side of its container. To assign multiple classes, separate the class names with spaces.

‘[emailpetition id=”1″ class=”alignright”]’
‘[emailpetition id=”1″ class=”style1 style2″]’

Signaturelist Shortcode Attributes


The ID number of your petition (required). To display a basic signature list, use this format:
‘[signaturelist id=”1″]’


The number of signature rows to display in the table. This will override the default value provided on the Settings page. To display 10 rows, use:
‘[signaturelist id=”1″ rows=”10″]’


Format of values in the date column. Use any of the standard PHP date formating characters. Default is ‘M d, Y’. A date such as “Sunday October 14, 2012 @ 9:42 am” can be displayed using:
‘[signaturelist id=”1″ dateformat=”l F d, Y @ g:i a”]’


The text that displays in the previous signatures pagination button. Default is <.


The text that displays in the next signatures pagination button. Default is >.

signaturecount Shortcode

Display the number (as text) of signatures collected for a given petition:


The ID number of your petition (required).
‘[signaturecount id=”3″]’

signaturegoal Shortcode

Display the number (as text) of goal for a given petition:


The ID number of your petition (required).
‘[signaturegoal id=”3″]’


Use the automatic installer. Or…

  1. Download and unzip the the plugin zip file.
  2. Upload the ‘speakout’ folder to your ‘/wp-content/plugins/’ directory
  3. Activate SpeakOut! Email Petitions through the “Plugins” menu in the WordPress admin.


Where is the FAQ?



17 de outubro de 2021
I've had the plugin installed for almost a year and never used it until last week. This plugin is GREAT!!! We have been able to send over 800 emails in 4 days, and the plugin performed flawlessly. My only complaints are: There should be a way to sort signatures by the opt-in and download just the opt-in signers to a csv to import the opt-in users to a subscription system easily. Currently, we need to edit the CSV file before uploading the users into our subscription system. The plugin is not very good-looking and requires a lot of CSS to style. Ofcorese, this is necessary for any plugin with a user frontend, and I would have done it anyway, so not an issue for me. One user did have a problem with Rcapacha that was never figured out, and he couldn't get it to approve his submission. Maybe Rcapacha was doing its job? Anywho, five stars for giving us a way to voice our opinion. Thank you! I'll be making a generous donation. Where do I send it?
3 de setembro de 2021
I don't often leave plugin reviews, but in this case, it is deserved. I was looking for a simple, no-fuss plugin for petitions. SpeakOut! is well designed and coded and does exactly what I wanted. Support has been outstanding. We had a small glitch that was worked on and a fix was released very quickly. If you find this plugin useful please donate. More plugins and developers like this need to be supported.
6 de agosto de 2021
I was impressed how simple and well designed this Plugin is. No worries if you need petitions this is the one. Any questions Support is quick, friendly and professional. Make sure you donate because great plugins like this are almost never free. Thank you for one of the best plugins I've come across in years
24 de maio de 2021
The technical support responded almost immediately to my email and gave a very relevant and extremely fast response: I really recommend this plugin and the seriousness of this company! He even deposited a new repaired version on the WordPress directory!
7 de fevereiro de 2021
Does what it says! Very easy to use even by non-developers. Gives a lot of customisation notes in FAQ
Leia todas as 36 avaliações

Colaboradores e desenvolvedores

“SpeakOut! Email Petitions” é um software com código aberto. As seguintes pessoas contribuíram para este plugin.


“SpeakOut! Email Petitions” foi traduzido para 3 localizações. Agradecemos aos tradutores por suas contribuições.

Traduzir “SpeakOut! Email Petitions” para o seu idioma.

Interessado no desenvolvimento?

Navegue pelo código, dê uma olhada no repositório SVN ou assine o registro de desenvolvimento via RSS.

Registro de alterações


  • improvement: updated “tested up to:” for WordPress 5.9


  • improvement: implemented hcaptcha, an alternative to Google recaptcha
  • improvement: updated signaturelist CSS so that table is 100% width – thanks Bahman
  • improvement: better handling of required fields if form resubmitted


  • bug fix: custom field 5 was not validating if set as required and in middle or bottom position on petition form – thank @pieter


  • bug fix: there was no field to set the text to open/close an editable petition
  • bug fix: if not collecting signatures and hiding email, options fields were disabled on any petition save – thanks @pieter


  • bug fix: If it was enabled, the custom field 5 required checkbox wasn’t displaying the check after being saved. Thanks @pieter


  • bug fix: didn’t include additional database fields for new install – thanks Dino


  • Improvement: custom fields can now be excluded from the petition went it is sent to target – thanks Don G.
  • Improvement: layout of checbox elements adjusted to match – thanks @nanuc
  • Improvement: moved class selector from redundant span to parent div and removed span – thanks @nanuc


  • Bug fix: petition title not being sent in reconfirm emails – thanks Vincent


  • Improvement: fixed height of email field – thanks Luis
  • Improvement: aligned checkbox if optin text flowed more than one line


  • Improvement: changed text from “hide email from public” to “hide name from public” – wasn’t actually done in version 2.7.1
  • Improvement: in Active Campaign integration setup, if no custom fields were active, “none” wasn’t displayed
  • Improvement: removed superfluous “?”.
  • Improvement: added “optin needs to be enabled” warning at top of integrations page
  • Improvement: updates to language files

  • Improvement: updated languages location in plugin settings to try to get languages added to WP translations
  • Improvement: Translation updates
  • Improvement: added translation for “anonymous” – thanks @isabelladallavecchia


  • Bug fix: removed reference to mailerlite_server causing PHP warning
  • Improvement: you can now duplicate a petition (dashboard > SpeakOut! > Petitions > Duplicate), Thanks @madmed
  • Language updates


  • Bug fix: adisabled admin notice until I have time to fix it
  • Improvement: moved CSV file options from Admin Display tab to Admin Signature List tab, which seems more intuitive

  • Bug fix: Mailerlite worked in test site but not when upgrading


  • Bug fix: when outputting CSV, honorific had a line break. Thanks Jonathan W.
  • Bug fix: under certain circumstances the “apply” button would become active on the signatures page
  • Improvement: added Mailerlite integration – thanks @jdegraaf


  • Bug fix: when creating a petition it wasn’t including the petition ID in the sample short code
  • Bug fix: after upgrading to 2.14.0 settings page content wasn’t displaying – thanks John


Bug fix: updated signature CSS so that table expanded to 100% width
Bug fix: removed debug code causing a popup if using recaptcha V3
Bug fix: increased length of honorific field in database – thanks Erik
Improvement: Added Mailchimp integration (dashboard > SpeakOut! > petitions > edit > 3rd party extras tab)
Improvement: Added Active Campaign integration (dashboard > SpeakOut! > petitions > edit > 3rd party extras tab) – thanks John Lynch
Improvement: Added custom fields to CSV export – thanks @tommch
Improvement: Added automatic goal increase by configurable amount when configurable % reached – thanks Jeremy
Improvement: CSS for flag size
Improvement: CSS for submit button text colour
Improvement: updated language files


Bug fix: if custom field 1 was required it made other fields required whether enabled or not
Bug fix: custom field 3 not passing values if in top position
Bug fix: custom field 3 “required” option wouldn’t save in settings
Bug fix: custom field 5 wasn’t forcing required
Improvement: removed confusing “3rd part extras” tab in settings until ready


  • Improvement: clean up meta data on uninstall
  • Improvement: additional custom fields included in widget
  • Improvement: link (below admin petition message) to markdown examples now opens in new window.
  • Improvement: rearranged tabs on settings page in a more logical order
  • Improvement: custom field data can now be displayed in public signature list – thanks @rmillsop
  • Bug fix: incorrect class name in widget


  • Bug fix: missing letter in field name prevented new installs from creating petitions


  • Security fix: escaped a string before outputting it – thanks Erwan @ wpscan.com


  • Bug fix: Custom field 5 position not checked in admin area
  • Bug fix: Custom field 5 label not showing in all positions

  • Bug fix: Field label added as top option in Custom Drop Down field


  • Bug fix: Two files missing from 2.13.0


  • Bug fix: missing default value for petition_fade option
  • Improvement: Custom filed 5 converted to drop-down field
  • Improvement: Better admin display of custom field values submitted

  • Bug fix: Fixed typo causing error for new installations – thanks Ana M.


  • Improvement: Added clarification that to display country flags in signature list, country column must be enabled.
  • Improvement: Update compatability to WordPress 5.8


  • Improvement: Added dashboard notice to advise of extra custom fields.


  • Improvement: Five custom fields now available – thanks to all who suggested/requested this
  • Improvement: Some code clarification
  • Improvement: Update compatability to WordPress 5.8
  • Improvement: Admin area style sheet updated2.12.0
  • Improvement: Languages updated


  • Bug fix: Country flags always displayed in public signature list table layout – Thanks Erik.
  • Bug fix: Declared variable to stop PHP warning in admin signature list
  • Improvement: Changed theme description from none to Custom for clarity
  • Improvement: Expanded admin signature list search to cover all user input fields
  • Improvement: added CSS style for align-center class
  • Improvement: added an extra line above the footer in email to target
  • Improvement: Language updates – some phrases in the admin area weren’t being translated

  • Bug fix: Roll back to release 2.11.4 – introduced bug I don’t have time to fix right now


  • Bug fix: Country flags always displayed in public signature list table layout – Thanks Erik
  • Bug fix: Declared variable to stop PHP warning in admin signature list
  • Improvement: Expanded admin signature list search to cover all user input fields
  • Improvement: added CSS style for align-center class
  • Improvement: added an extra line above the footer in email to target


  • Bug fix: Some debug code left behind was causing some people’s dashboard to be blank.
  • Improvement: Added nowrap value to signature table row
  • Improvement: Removed leading 0 if no signatures found

  • Version control drives me nuts. This is an update to try to fix it.


  • Bug fix: Missing close of div tag cause page to cllapse to petition width
  • Bug fix: Some changes to the petition script weren’t included with the widget


  • Bug fix: Blank lines in honorifics list and coutries list now ignored
  • Bug fix: Removed white space from an element ID name
  • Bug fix: Closed submit button tag
  • Bug fix: Removed <caption> tag from signature list header, replaced with ID in <div>
  • Bug fix: Extra </div> in sharing section caused layout problems with some themes – Thanks Erik Tuschtfeld
  • Improvement: Replaced <h3> around signature header with <div>
  • Improvement: Better styling of signature list with some space around it


  • Bug fix: Custom honorifics and country lists now work differently. I learned something about the WordPress plugin repository – either the plugin files were always updated (and therefore over-written) or they weren’t included in the plugin. So my idea of providing custom files that you can update won’t work. Instead the new method is that default files are in the /wp-content/plugins/speakout/includes/ directory. If you want to have custom honorific strings then you need to copy honorifics.txt to the /wp-content/plugins/speakout/custom directory so you have /wp-content/plugins/speakout/custom/honorifics.txt which will be read instead of the included file.


  • Improvement: New shortcodes to display petition title and petition message outside of actual petition. Thanks @newregular
  • Improvement: Added new shorcodes to list of shortcodes displayed on petitions page.
  • Improvement: Languages updated


  • Bug fix: markdown wasn’t implemented in widget
  • Bug fix: CSS directory missing in

  • Improvement: Updated tested up to


  • Bug fix: The install/upgrade process was a bit wonky
  • Bug fix: More PHP warnings resolved
  • Improvement: The text “Read The Petition” can now be edited in Dashboard > SpeakOut! > petitions > edit the petition > display options tab – Thanks Henri Squeueira – this was never actually added in 2.9.0
  • Improvement: There is a new file /wp-content/plugins/speakout/custom/countries.txt which contains a list of countries. Each is on its own line and has a separator | between the English name (for the database) and the display name which can be in the language of that country. They can also me changed to whatever order you choose and you can even remove all the un-needed countries e.g. if your petition is limited to Mexico, you might remove all other countries to make the page smaller to load and also less complex for users. Any files in the custom directory will remain untouched during updates, so your custom strings will be safe. More details at https://speakout.123host.net.au/faqconc/how-do-i-edit-the-countries-list/


  • Bug fix: Fixed Warning in petition page. Thanks @lzapad


  • Improvement: Custom modifications are going to become easer. First step is custom honorifics. There is a new file /wp-content/plugins/speakout/custom/honorifics.txt which contains a list of honorifics. Each is on its own line in your language in whichever order you choose. Any files in the custom directory will remain untouched during updates, so your custom strings will be safe. Inspired by a question by Alex.
  • Improvement: The text “Read The Petition” can now be edited in Dashboard > SpeakOut! > petitions > edit the petition > display options tab – Thanks Henri Squeueira
  • Improvemment: Fixed cursor style Edit Petition page


  • Bug fix: missing space in label on admin settings page
  • Bug fix: Missing CSS style for admin petition page
  • Improvement: Redesign of petition edit page into tabs to match settings page. Much tidier.
  • Improvement: Settings page styling now matches other pages


  • Improvement: email character ser changed to UTF-8. Thanks Markus B


  • Improvement: Entire SpeakOut! menu now only available to administrators. Previously some functions were available to all users. Thanks Oleg
  • Improvement: Update compatability to WordPress 5.7
  • Bug fix: Choosing “new window” as target for redirection wouldn’t have been working.


  • Bug fix: Pagination not working on petition list. Thanks Jason Goodman


  • Bug fix: Some strings in admin area weren’t being translated – thanks Przemek
  • Improvement: Polish language fixes – thanks Przemek


  • Bug fix: typo introduced in 2.7.5 broke petition if using recaptcha


  • Bug fix: email validation wasn’t working – thanks @sham2983
  • Improvement: Update to German language file – thanks @spanni26


  • Improvement: update German language – thanks @spanni26


  • Bug fix: Check to see if Parsedown already declared by theme


  • Bug fix: custom field now on its own line – Thanks Bob M.


  • Bug fix: widget country list not showing
  • Bug fix: “hide name from public” not in widget
  • Bug fix: widget CSS fixed to style drop-down menus
  • Improvement: changed text from “hide email from public” to “hide name from public”
  • Improvement: updated language files


  • Bug fix: improved integrity of new signature options
  • Bug fix: when emailed, the petition didn’t CC as set in dashboard
  • Bug fix: removed some debug code
  • Bug fix: fixed PHP warnings when no signature list columns selected
  • Bug fix: fixed ‘target=_blank’ for redirect URL
  • Bug fix: div around signature list, element name not wrapped in quotes
  • Bug fix: declared some variables to eliminate PHP notices
  • Improvement: Renamed function format_address to format_street_address to reduce confusion with email address
  • Improvement: Added Serbian language – thanks Mihailo Matovic.
  • Improvement: Updated all languages
  • Improvement: Option to allow signers to anonymise name on public signature list – the name is still sent to petition target. Thanks @raphaelgal
  • Improvement: If signer has chosen to be anonymous, in the admin area, their name is highlighted with a diamond ♦
  • Improvement: Added more clarity to settings pages
  • Improvement: Updated to WP version 5.6
  • Improvement: Changed some settings radio buttons to checkboxes for consistency
  • Improvement: Time can optionally be shown in admin signature list – settings -> admin signature list tab. Thanks @katalikai
  • Improvement: Display only unconfirmed signatures – choose from admin signature page dropdown. Thanks @katalikai


  • Improvement: A variable showing the number of signatures can now be added to the success message so it can say “You are signature number nn”. Thanks Ray S.


  • Bug fix: previous update didn’t allow for “no email” being seen as duplicate
  • Improvement: a few tweaks to the UI associated with 2.6.0 update. The most important is that the “no email field” opotion can’t be reversed
  • Improvement: Translation updates
  • Improvement: Typo fix “adress” -> “address”
  • Improvement: Added some links to FAQ items in dashboard
  • Apology: 2.6.0 idea wrongly attributed


  • Improvement – It is now possible to collect names without an email address, cutting the petition to the bare minimum. If disabling email it auto disables opt-in and BCC (since there is no email address). Thanks Ray S.


  • Bug fix: changed styling for signature list so it is 100% width
  • Bug fix: Signature ID not showing in CSV
  • Improvement: In the settings screen, admin can now choose which columns to display in the management signature list – thanks Michael G
  • Improvement: Human friendly option values in CSV

  • Updated compatability to WordPress 5.6 and PHP 7.0 – no code changes.


  • Bug fix: value not passed from web page to jquery

  • Improvement: Update Czech language – thanks @diprimalex


  • Bug fix: Default text in new petition title wasn’t a placeholder.


  • Improvement: Added first and last pagination buttons. Thanks @Bruno Riggs
  • Bug fix: Signature pagination buttons weren’t working as expected Thanks @tdrewes
  • Bug fix: missing { in widget.css


  • Improvement – If petition is not editable by a visitor, markdown formatting is applied
  • Improvement – other minor markdown related tweaks


  • Improvement – outgoing emails to target can now be formatted using markdown. This can be done by the admin when setting the message and additionally, if messages are editable, markdown can be used by the signer. For more information on markdown see https://speakout.123host.net.au/markdown or search the web.
  • Improvement – languages updated.


  • Bug fix: Automatic redirect after confirmation wasn’t working. Thanks @tdrewes
  • Improvement: Signature total now updates instantly when someone signs, but only if email confirmation is not enabled. Thanks Alan T.
  • Improvement: Code tidy up in various places.


  • Bug fix: Added a default value if there is no value in number of petitions to display field or number of signatures to display field in admin settings.
  • Improvement: Added generic Arabic language (_ar). Thanks Faisal K.


  • Improvement: Language updates. I discovered that the software I was using didn’t include translations that were marked as incomplete. Sheesh. Everything is now marked as complete whether it is or not 😛

  • Bug fix: Somehow jquery fix for the petition popup close icon in 2.2.12 had partially reverted. Did I never do it properly in the first place?


  • Bug fix: removed calls to non-existant jquery files. How it didn’t cause widespread issues but affected one site is a mystery. Thanks Guillaume
  • Bug fix: Check All Signatures wasn’t working in admin area
  • Improvement: Some strings weren’t being translated
  • Improvement: All language files updated
  • Improvement: Added styling class to signature list elements that didn’t have one – see https://speakout.123host.net.au/faqconc/can-i-style-the-signature-list/ Thanks @Neil F & others
  • Improvement: The signature list table has been rehashed. Now 3 options: comma separated list, table or stylable blocks. This can be selected in dashboard > SpeakOut! > settings > Signature List tab
  • Improvement: Text in admin area beside signaturelist number of rows clarified when displaying all
  • Improvement: Some styling fixes on Signature List settings page
  • Improvement: Fix styling of some address fields in theme-basic.css


  • Improvement: Better styling options for signaturelist. Removed table, added classes to each element. Thanks Nate C.


  • Improvement: Added a database index for petition ID in the signatures table. Thanks @andi22

Earlier Changelog