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 database and can be easily exported to CSV format for further analysis. 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 needed updates and has been abandoned. Current versions of SpeakOut! include an importer to migrate from speakup.


  • Albanian sq_AL Incomplete
  • Arabic ar_AR (Asem Alzoubi)
  • 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)
  • 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.


  • Bug fix: No need to prepare database statement if not including user variables removes a PHP warning
  • Bug fix: declared some variables and updated other code to eliminate PHP notices
  • Bug fix: link to import from legacy speakup plugin broken
  • Improvement: Redirection delay after signing now configurable
  • Improvement: Petition can optionally fade out after signing instead of just disappearing
  • Improvement: Updated signature CSV export routine
  • Improvement: Petition form wrapped in


* Improvement: Added some logic to improve user experience on legacy speakup import page
* Improvement: Removed some debug code from various locations.
* Improvement: Added Brazilian Portuguese – Thanks Tel Amiel.
* Improvement: Updated most countries in petition country drop down to be in their own language plus English – happy to receive any corrections or additions
* Improvement: All languages updated – Thanks Simone Apollo for Italian suggestions

  • Improvement – Italian language update – Thanks Davide
  • Bug fix – some countries in the flag function were in Spanish. Some were spelled wrong. There may be more…please report any countries that don’t show flags.

1.22.2 == (skipped)


  • Bug fix – widget code included in main petition causing country to break ability to sign. How it ever worked in the past is beyond me :o(

  • Bug fix – flag files weren’t sent with previous version


  • Bug fix – missing space for widget form city placeholder
  • Bug fix – removed duplicate recaptcha javascript include
  • Improvement – If displaying country in signaturelist, it now displays flag – Thanks John Sanabria
  • Improvement – Petition form country list changed from to to prevent user entry and force dropdown selection
  • Improvement – removed some debug code
  • Improvement – added wordpress site language to SpeakOut! header in source code – this is to help me debug language issues
  • Improvement – Norwegian language nb_NO cleaned up and redundant no_NO removed. Thanks Howard Gittela
  • Improvement – Update Dutch language – thanks to my Dutch girlfriend :o)


  • Bug fix – search function improved


  • Bug fix – search function fixed.


  • Improvement – added search function to signatures page – thanks Michael
  • Improvement – updated translations

  • Improvement – changed the word “street” to “address” – Thanks Simon
  • Improvement – updated translations


  • Bug fix – updated the email field test so it doesn’t fail on the newer top level domains. – Thanks @zeller


  • Improvement – redirection delay after signing now adjustable
  • Improvement – Removed the “retype your signature” for users when confirmation is enabled. What was the point of that when users didn’t have to retype if not confirming? Thanks Michael.

  • Improvement – made “Country” placeholder translatable


  • Bug fix – added placeholder for Country field


  • Bug fix – database fields weren’t being created for new installs
  • Bug fix – recaptcha worked well. However if it wasn’t enabled people couldn’t sign. Kludge workaround to keep things going.
  • Bug fix – copied Norwegian language file from nb_NO to no_NO
  • Improvement – minor rearrangement of settings page

  • Bug fix – left code out of 1.20.1


  • Bug fix – a site has a javascript error related to recaptcha, workaround for that.


  • Improvement – if custom field is displayed, label is required
  • Improvement – individual address elements can be required or not – thanks @retrocool
  • Improvement – support for recaptcha2 – enable on dashboard > SpeakOut! > settings page – thanks to @Audun and others for prodding me ;o)
  • Improvement – updated Czech translation. Thanks Michal.
  • Improvement – added Japanese translation – needs work, can you help?
  • Improvement – updated translations


  • Bug fix – CSS file not loading on admin settings page

  • Bug fix – one updated file not included in 1.19.3


  • Bug fix – it seems that the core WP bug I have been wrestling with affects different versions of WP differently so I have rolled it back
  • Bug fix – typo was causing a PHP warning in ajax.php
  • Bug fix – replace PHP count() with native wpdb->num_rows to eliminate PHP warnings


  • Bug fix – new petition not saving
  • Bug fix – database update improved


  • Bug fix – Still getting the menus right…sorry…


  • Improvement – URL can be set (on edit petition page) for redirection after successful signing.
  • Bug fix – cause of menu bug discovered (duplicate menu slugs) and remedied.


  • Bug fix – seems there is a bug in WordPress https://core.trac.wordpress.org/ticket/48599 that causes an error to be thrown, possibly only on some versions of PHP. It isn’t affecting the petition, it is caused in the rendering of menus in the dashboard – I have added a workaround for now. I am also learning lots about the guts of WordPress 😛


  • Bug fix – I introduced a future bug in 1.17.8 when preparing for WP 5.3 by not wrapping a number in quotes. Weirdly it only affected 3 sites (so far) and I couldn’t reproduce it. This was really hard to track down and I couldn’t have done it without the help of @fish911


  • Bug fix – in petition, plural of the word “signature” not working in some languages
  • Bug fix – CSV download button wasn’t displaying on signature page load
  • Improvement – Tidier heading on signature page with better information
  • Improvement – added Catalan language – thanks Alberto


  • Bug fix – basic theme wasn’t hiding petition message
  • Improvement – tidied up code and styles for check boxes below petition

  • Bug fix – required custom field not working properly (but it did on my test site…really!)


  • Bug fix – Word “location” for custom field setup wasn’t translated
  • Improvement – now possible to have custom field be required – thanks Bahman
  • Improvement – Code tidied up
  • Improvement – translation updates


  • Bug fix – squashed a future bug that would have shown up in WP 5.4 – thanks @davidbinda
  • Bug fix – missing space in label tag
  • Bug fix – missing space in some translations of “Yes, I accept your privac policy” – Thanks Stijn
  • Bug fix – unwrap those pesky opt-in checkbox lines


  • Improvement – updated styles, especially for basic theme.
  • Improvement – some UI tweaks in petition and dashboard
  • Improvement – removed .less style sheets


  • Bug fix – prevent saviing values of 0 or blank in settings > admin display tab
  • Improvement – Tidied up petition options right column in admin area


  • Bug fix – setting page not working because I copied the wrong code from my development site to a plugin page :o(


  • Bug fix – when using URL to redirect to specific petition e.g. ?petition=10, the signature count was showing total for the first petition instead.
  • Bug fix – when using URL to redirect to specific petition e.g. ?petition=10, the widget was displaying the first petition


  • Bug fix – custom message wasn’t being displayed after signing – thanks @lucapoe


  • Improvement – better handling of drop down menu on signatures page Thanks @Donna4u2
  • Improvement – better display of signature list. Only the custom field wraps.
  • Improvement – option to hide social media sharing buttons
  • Improvement – removed much of the old changelog to reduce the size of this file. Legacy updates can be found at https://speakout.123host.net.au/changelog


  • Bug fix – “display petition message” checkbox not checked by default
  • Bug fix – database field added to wrong table
  • Improvement – added a -fi.mo language file as well as a -fi_FI.mo – ome day I might understand this whole language file thing.
  • Improvement – update language files.


  • Improvement – petition message can now be displayed (default) or hidden, option located in right column when editing petition. Thanks to people who suggested this.
  • Improvement – if custom field is active, the contents are now displayed in the admin signature list. Thanks @fredygiro
  • Improvement – added support for Anedot.com fundraising form. Enable this in the petition settings page. It adds a tab to the settings page. The donation form is then displayed as part of the success message when someone signs the petition. Thanks @DougJoseph for the idea and the code.
  • Improvement – added de_DE_formal language as it seems to be a thing – I can’t find any info about this.
  • Improvement – updated language files


  • Improvement – Honorific now included in CSV export of signatures – thanks Peter


  • Bug fix – return URL wasn’t saving Thanks @dougjoseph
  • Bug fix – allow + sybmol in email addresses – did you know that if your email is hey@gmail.com, hey+you@gmail.com works and when providing your details doing something like hey+speakout@gmail.com can identify if people are selling your email address (SpeakOut! isn’t).
  • Improvement – tidied up the behaviour when someone clicks confirmation email and returns to site.
  • Improvement – cleaned up some inconstistent text formatting


  • Improvement – tweaked CSS for checkboxes on petition so they lign up more neatly
  • Bug fix – Privacy policy check box was submitting petition even if it wasn’t checked. Thanks @mistercurtain


  • Improvement: fixed incorrect checkbox alignment in basic CSS file – thanks @daymobrew
  • Updated to WordPress 5.2.3


  • Improvement: changed field labels to placeholders, reduces size of petition. Required fields now have no label and a pale red border rather than a red asterisk after the label. The border colour can be adjusted in theme-default.css, find the :required element. Thanks for the pointer @mistercurtain
  • updated widget, sometimes changes to main petition get forgotten in widget


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?




2020년 April 1일
Good plugin, do the job right. Thank you for allow it for free, it's very appreciate !!
2019년 November 27일
The creation of petitions is going well and works. Unfortunately, there are small shortcomings in details. Signatures cannot be edited without further ado, e.g. spelling mistakes in the name. In addition, a possibility to add users manually would be good, since there are always people who want to sign individual petitions, but do not have an e-mail address.
2019년 August 27일
As there is just one single developer on this plugin (for free), this is very good work. The plugin works without issues and has one single purpose that it does well. Most of the drawbacks are related to the design: - it's difficult to change how the form fields and petiton text is displayed. I would like to display the petition text above the fields, but that seems difficult without editing the php code. If not as an settings option, maybe at least some filters to control the output? - the default CSS-design is a bit dated. A more modern style option would have been nice. Of course I used my own CSS-file instead, so no worries. - I had to add some CSS to make it responsive. If I set it to width 50% with the shortcode, it would show with 50% width on mobile as well. Some of the settings should be moved for consistency: - The options for view in admin-settings should be moved to Screen Options. - The options for CSV-download in the admin settings would also be better to handle as a filter in the Signatures screen. Edit: I originally gave this plugin a three-star due to the issues mentioned above, but due great support, I've changed it to five. Still would be better with the above issues fixed, but great support is a win.
모든 28 평가 읽기

기여자 & 개발자

“SpeakOut! Email Petitions”(은)는 오픈 소스 소프트웨어입니다. 다음의 사람들이 이 플러그인에 기여하였습니다.


“SpeakOut! Email Petitions”(이)가 1(으)로 번역되었습니다. 기여해 주셔서 번역자님께 감사드립니다.

자국어로 “SpeakOut! Email Petitions”(을)를 번역하십시오.

개발에 관심이 있으십니까?

코드 탐색하기는, SVN 저장소를 확인하시거나, 개발 기록RSS로 구독하십시오.