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 x.
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 β the goal can even update automatically when a % of your goal is reached. Petitions may also be configured to stop accepting new signatures on a specified date.
The free version includes the core features needed to run a successful petition. For those who need more, the Pro version unlocks the ability to run unlimited campaigns and provides additional tools, such as an email sharing option and expanded integration with third-party mailing services.
More information about the plugin and how to upgrade to the fully featured Pro version can be found at the official SpeakOut! WordPress petition plugin website.
4.6.5.1
This is a critical security patch. Please update immediately to protect your user data.
4.6.5
- Bugfix: address misc warnings.
4.6.4
- Bugfix: fix anonmyous record keeping issue.
- Bugfix: fix nonce issue with some admin pages causing permision errors.
4.6.3
Fix bad cache.
4.6.2
Fix php warning regarding missing options.
4.6.1
- Security: Added a secure AJAX endpoint with nonce and capability checks for dismissing admin notices.
- Improvement: Modernized admin script and style loading to improve performance and adhere to WordPress best practices.
- Improvement: Redesigned the the admin pages the petition settings page for a cleaner and more consistent user interface.
- Improvement: The GDPR (Privacy Policy) setting is now mandatory when enabled.
- Bug fix: Corrected an issue in an AJAX handler that could prevent petition emails from being sent correctly.
- Bug fix: Prevented a potential PHP warning by ensuring the petition message is always a string.
- Improvement: updated βtested up toβ to WP version 6.8.3
4.6.0
- Security: Hardened the plugin by adding comprehensive data sanitization and output escaping across all forms, AJAX handlers, and admin pages to prevent XSS and other vulnerabilities.
- Security: Replaced direct use of
$_POST,$_GET, and$_REQUESTvariables with sanitized and validated data. - Security: Ensured all URLs generated by the plugin are properly escaped using
esc_url. - Refactor: Completely overhauled the
[emailpetition]shortcode rendering. The form HTML is now loaded from a separate template file (includes/email-petition-form-template.php), improving code organization and making customization easier. - Refactor: Consolidated all mailing list integration logic (ActiveCampaign, MailChimp, etc.) into a single, cleaner function call.
- Refactor: Improved custom field rendering by creating a dedicated helper function to reduce code duplication.
- Refactor: Updated AJAX handlers to securely process and validate all incoming data.
- Refactor: Switched to using WordPress best practices, such as
has_shortcode()for content checking andadmin_url()for creating admin links. - Tweak: Improved pagination logic to be more robust and prevent potential errors.
4.5.2
- improvement: updated βtested up toβ to WP version 6.8
4.5.1
- bug fix: CSV export was throwing an error β thanks Vegard B.
- improvement: updates to Swedish translations β thanks Magnus
- improvement: updated βtest toβ to WordPress 6.8
4.5.0
- improvement: further refined bug fixed in 4.4.0 β thanks Darius S. @ patchstack.com
4.4.3
- improvement: updated old changelog link at end of current changelog
4.4.2
- improvement: updated βTested up toβ to 6.7
4.4.1
- bug fix: Export to CSV not working β thanks Vincent R & Shawn D
4.4.0
- bug fix: fixed XSS vulnerability in specially crafted shortcode β thanks Darius S. @ patchstack.com
4.3.6
- bug fix: wonky CSS setting in basic theme β thanks Jordan.
4.3.5.2
- improvement: updated βtested toβ to version 6.6
4.3.5.1
- improvement: changed CSV max_execution_time from 180 to 300 seconds and moved it so it is only applied if script is actually run. Also reset it to system default at end of script β thanks @gideonlupine
4.3.4
- improvement: updated compatibility to WordPress 6.5
4.3.3.1
- bug fix: debug code removed
- bug fix: new social icons missing in free version
- bug fix: in some circumstances an error was thrown in settings page β thanks Heiko
4.3.3
- bug fix: error being thrown by field that canβt be edited in free version β thanks Giuseppe
- bug fix: somehow above error wasnβt fixed in 4.3.2 β thanks Mayda
4.3.1
- improvement: updated social icons in all style sheets
4.3.0
- improvement: changed βtwitterβ to βXβ β thanks Jos
- improvement: removed some superfluous code
- improvement: added Serbian language
4.2.6
- bug fix: no error if privacy policy box not checked β thanks Mika
- improvement: SpeakOut! now has its own domain SpeakOutPetitions.com
4.2.3
- bug fix: In certain languages if privacy was enabled to show only the first letter of the surname, it would display a
?instead β thanks Niklas - bug fix: signature list wouldnβt display if petition ID was greater than one. This was implemented to limit free users, but it has unintended consequences for legacy users with multiple petitions. Thanks Jim for letting me poke around.
4.2.2
- improvement: updated βtested toβ to 6.3
4.2.1
- bug fix: multiple email addresses in Target Email or CC Email fields would be mashed together β thanks James and someone else who reported this
4.2.0
- bug fix: custom field 6 location wasnβt being saved
- bug fix: in admin signature list, βanonymousβ icon was showing HTML instead of being superscript
- improvement: added several webhooks β see https://speakoutpetitions.com/webhooks. Thanks for the idea Ben & Nick
- improvement: added email share icon to Pro version β thanks to whoever suggested it.
- improvement: displaying emails in the public signature list is now optional β with a warning that it might not be a wise idea
- improvement: translation updates
4.1.3.1
- bug fix: Somehow a stray character found its way into the code which was breaking petitions. β thanks Meagan
4.1.2
- bug fix: database creation error for new installs
- bug fix: if message was editable, formating was lost when sent to target (Pro only) β thanks Linda
- bug fix: language wasnβt bein passed via URL in confirmation emails
- improvement: eliminated php warning βob_end_flush(): failed to send buffer of zlib output compressionβ
- improvement: added note to when βDo not send email (only collect signatures)β is checked
4.1.1
- bug fix: if the petitionmessage shortcode was used, any Markdown in the message wasnβt being displayed. Thanks Michael.
- bug fix: if email confirmation was enabled, the numbering in the public signature list reflected the total number of signatures, not just the confirmed signtures. Thanks Rene & Martin
- bug fix: if email confirmation was enabled and public signatures spanned more than one page, scrolling didnβt work as expected β thanks Rene
- bug fix: on one layout of the public signature list, the word anonymous wasnβt translated β thanks Myriam-Zaa
- bug fix: increased size of honorifics field in database β thanks Glen C.
- bug fix: following some actions in the admin signature list it wasnβt showing the signature count
- improvement: new installs will now use the utf8mb4_general_ci character set for database text fields, instead of just utf8 β down the track I will change the character set for existing installs
- improvement: database creation now makes fields NULL instead of NOT NULL to allow for not collecting some data β down the track I will change all fields to NULL in existing installs
4.1.0
- bug fix: Confirmation emails werenβt being sent if Email From field wasnβt set up properly, which was impossible. Thanks Thomas and Rene
- bug fix: non-existant parameter being passed to function
- improvement: updated the contextual help β first time ever :o)
- improvement: clarified wording of βdisplay signature countβ and where it refers to.
- improvement: database updates so free version is ready to upgrade to Pro
4.0.10
- improvement: changed a page title β thanks Debbie P
- bug fix: some required fields were not showing red border β thanks Debbie P
- bug fix: redirect after signing not working β thanks Debbie P
4.0.9
- bug fix: when clicking next in signature list it was displaying html β thanks Dan @tahninial
4.0.8
- bug fix: slashes added to any apostrophes in email subject or greeting
- bug fix: missing default value in free version
4.0.7
- bug fix: missing character would cause error in certain circumstances β thanks heiko
4.0.6.1
- bug fix: if WordPress was installed in a subfolder, some administrator links may not have worked. Thanks Calvin
4.0.6
- bug fix: petition message kept adding slashes in editor when saved. Thanks Calvin
- improvement: removed %%Your Signature%% from the petition message displayed on your site. It was causing confusion. Thanks Razvan
- improvement: minor typo fixed
- improvement: Dutch language imrovements β thanks Michiel
4.0.5
- bug fix: petition message losing formatting β thanks @dcbuffalo
- improvement: better data sanitization in signature list
4.0.4.6
- bug fix: html being displayed in admin signature list
- bug fix: file was being included twice
- bug fix: reconfirming selected signatures wasnβt working
4.0.4.5
- bug fix: settings not saving due to incorrect input sanitize function
- improvement: German language update β thanks Mario
4.0.4.4
bug fix: in some circumstances an error was thrown in settings page β thanks Heiko
4.0.4.2
- Policy compliance: Version 3 of SpeakOut! included a method of upgrading that turned out to be a WordPress plugin policy breach (4 months later!) and some potential security issues (after 10+ years!). This version remedies that and introduces a more cumbersome (for users), but compliant method of upgrading.
- bug fix: various fixes of things found while creating V4
- improvement: removed support for importing the original speakup plugin. After 10 years, itβs time.
Localizations
- 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_RS (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
id
The ID number of your petition (required). To display a basic petition, use this format:
β[emailpetition id=β1β³]β
width
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β]β
height
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.
Examples:
β[emailpetition id=β1β³ height=β500pxβ]β
β[emailpetition id=β1β³ height=β100%β]β
progresswidth
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β³]β
class
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.
Examples:
β[emailpetition id=β1β³ class=βalignrightβ]β
β[emailpetition id=β1β³ class=βstyle1 style2β³]β
Signaturelist Shortcode Attributes
id
The ID number of your petition (required). To display a basic signature list, use this format:
β[signaturelist id=β1β³]β
rows
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β³]β
dateformat
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β]β
prevbuttontext
The text that displays in the previous signatures pagination button. Default is <.
nextbuttontext
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:
id
The ID number of your petition (required).
β[signaturecount id=β3β³]β
signaturegoal Shortcode
Display the number (as text) of goal for a given petition:
id
The ID number of your petition (required).
β[signaturegoal id=β3β³]β
| Domain | Exposures | Headers | Last Checked |
|---|---|---|---|
| p*o*e*t*e*t*t*o*.de (WP 6.2.9) | F | 2026-04-26 16:46:07 | |
| s*v*h*g*w*y*0.com (WP 6.9.4) | F | 2026-04-26 02:33:46 | |
| e*e*5*.fr (WP 6.9.4) | F | 2026-04-25 11:29:05 | |
| c*i*a*e*c*a*t*r.org (WP 6.9.4) | F | 2026-04-25 04:27:25 | |
| k*k*s*o*t.com (WP 6.9.4) | F | 2026-04-25 03:23:16 | |
| w*r*d*u*i*t.org (WP 6.9.4) | F | 2026-04-24 23:37:59 | |
| c*m*o*f*o*t*e*s.ca | F | 2026-04-24 20:21:14 | |
| i*l*n*.info (WP 5.9.13) | F | 2026-04-24 19:19:00 | |
| u*i*e*s*l*o*e*.com | F | 2026-04-24 06:19:42 | |
| r*g*t*f*r*m.org (WP 6.9.4) | F | 2026-04-23 15:03:15 | |
| g*n*p*c*.org (WP 6.9.4) | F | 2026-04-23 04:14:37 | |
| p*e*c*m*u*i*y*n.org | D | 2026-04-22 18:30:34 | |
| r*t*d*n*w*l*.com (WP 6.9.4) | F | 2026-04-20 22:11:34 | |
| r*f*g*o*i*b*.org | F | 2026-04-20 14:13:51 | |
| h*s*o*i*r*c*m*n*.com (WP 6.9.4) | F | 2026-04-20 08:45:28 | |
| i*a*2*.com (WP 6.2.2) | F | 2026-04-19 06:52:40 | |
| p*i*s*e*s*a*d.com (WP 6.4.2) | F | 2026-04-19 05:20:49 | |
| n*c*g*.org (WP 5.1.19) | F | 2026-04-19 04:26:27 | |
| b*i*-*h*v*t*a*r*h*m.com (WP 6.9.4) | F | 2026-04-17 16:00:05 | |
| s*b*j*p*o*i*n*s*l*a.com (WP 6.9.4) | F | 2026-04-17 15:09:53 | |
| s*o*d*e*e*e*g*e*e*p*r*n*.com (WP 6.9.4) | F | 2026-04-16 16:59:07 | |
| a*i*a*p*t*t*o*.com (WP 6.9.4) | C | 2026-04-16 13:04:57 | |
| r*c*k*d.pl (WP 6.4.3) | F | 2026-04-15 00:34:28 | |
| t*e*e*i*i*n.net (WP 6.7.4) | F | 2026-04-14 22:15:40 | |
| b*e*g*r*i*l*g.online (WP 6.9.4) | F | 2026-04-14 13:45:21 | |
| v*l*n*e*r*u*i*t*.org | F | 2026-04-14 13:45:19 | |
| p*o*e*i*n*l*s*t*c*.org (WP 6.9.4) | F | 2026-04-14 13:42:07 | |
| r*a*a*h*r*e*a*p.com | F | 2026-04-14 12:31:14 | |
| j*s*i*e*j*d*p.com (WP 6.9.4) | F | 2026-04-12 23:29:11 | |
| a*e*o*5*1*0*a*s*.org (WP 6.9.4) | F | 2026-04-12 15:35:06 | |
| s*u*e*o*s*t*r*l*g*o*.info (WP 6.5.8) | F | 2026-04-12 14:16:33 | |
| m*n*f*s*e*e*3*.com (WP 6.4.8) | F | 2026-04-11 20:57:51 | |
| h*-*o*n*a*i*n.com (WP 6.6.1) | F | 2026-04-11 20:23:50 | |
| p*i*a*k*.cz (WP 6.9.4) | F | 2026-04-11 12:53:28 | |
| b*a*k*w*n*e*t.com (WP 6.9) | F | 2026-04-11 07:01:38 | |
| m*l*i*e*v*i*e.com (WP 6.2.9) | F | 2026-04-10 22:14:05 | |
| s*v*t*e*i*d*p.org | F | 2026-04-10 21:25:12 | |
| t*g*e*h*b.com (WP 6.9.4) | F | 2026-04-10 18:09:03 | |
| t*d*l*x*h*n*e.com (WP 6.9.4) | F | 2026-04-10 11:28:13 | |
| b*t*n*g*i*e*e.no | D | 2026-04-10 00:37:15 | |
| s*u*e*t*e*l*r*t*o*2*2*.org (WP 6.9) | F | 2026-04-09 11:38:45 | |
| p*l*c*c*p.com (WP 6.9.4) | F | 2026-04-08 22:50:14 | |
| n*s*s*a.org (WP 6.9.4) | F | 2026-04-08 21:28:14 | |
| t*k*a*e*g*o*a*.com (WP 6.9.4) | F | 2026-04-06 15:23:37 | |
| l*g*e*e*e*s*f*m*e*.com (WP 6.9.4) | F | 2026-04-05 11:12:05 | |
| a*e*o*5*1*0*a*s*.com (WP 6.9.4) | F | 2026-04-01 05:46:21 | |
| w*t*r*o*n*i*i*e*s.org (WP 6.9.4) | β | 2026-03-28 16:46:41 | |
| c*a*o*.org (WP 6.9.4) | β | 2026-03-27 23:38:15 | |
| p*n*h*i*m.net | β | 2026-03-27 22:00:34 | |
| p*t*i*t*e*i*i*n.org (WP 6.9.4) | β | 2026-03-27 14:32:58 | |
| g*o*a*s*r*y*.org | β | 2026-03-27 11:39:24 | |
| g*r*e*t*o*k*r*e*t*r.org (WP 6.8.5) | β | 2026-03-27 11:38:12 | |
| g*n*m*.ch (WP 6.6.5) | β | 2026-03-27 03:49:12 | |
| a*t*o*s*l*t*d*.fr (WP 6.8.5) | β | 2026-03-27 01:05:23 | |
| c*m*c*m*a*s.org | β | 2026-03-26 17:48:34 | |
| t*e*a*e*s*e*.org | β | 2026-03-20 03:54:30 | |
| a*i*a*v*c*o*y.org (WP 6.9.4) | β | 2026-03-20 03:48:08 | |
| p*o*i*e*i*n*s*.org (WP 6.9.4) | β | 2026-03-19 20:19:21 | |
| s*o*s*c.com (WP 6.9.4) | β | 2026-03-16 10:57:49 | |
| r*v*t*.com | β | 2026-03-14 05:43:30 | |
| r*-*i*.com | β | 2026-03-14 01:12:02 | |
| m*r*l*n*b*d*s*g*.org | β | 2025-11-12 06:30:24 | |
| l*t*t*l*s*x.net | β | 2025-11-12 06:26:03 | |
| n*e*i*.us | β | 2025-11-12 06:25:32 | |
| m*l*i*i*p*r*.fi | β | 2025-11-12 06:24:57 | |
| m*i*2*a*.ca | β | 2025-11-12 06:23:17 | |
| a*e*.org | β | 2025-11-12 05:42:59 | |
| f*a*t*l*a.eu | β | 2025-11-12 04:17:05 | |
| u*r*a.org | β | 2025-11-12 03:45:38 | |
| n*i*i*f*r*e*k*r*.no | β | 2025-11-12 03:31:50 | |
| r*c*s*n*c*w*.org | β | 2025-11-12 03:30:40 | |
| i*-*m*e*t*z*h*m*d*z*n.de | β | 2025-11-12 03:22:18 | |
| g*a*f*t*a*l*y.org | β | 2025-11-12 01:36:06 | |
| c*l*i.org | β | 2025-11-12 00:18:16 | |
| u*p*a*e*o*n*i*.org | β | 2025-11-11 23:52:47 | |
| w*p*t*t*o*s.com | β | 2025-11-11 13:14:36 | |
| w*n*k*h*e*.com | β | 2025-11-11 12:14:12 | |
| w*l*b*i*w*l*.com | β | 2025-11-11 11:58:44 | |
| w*p*e*g*m*d*i*u*a.com | β | 2025-11-11 11:12:44 | |
| w*t*r*o*n*i*i*e*s.com | β | 2025-11-11 10:21:04 | |
| v*d*s*r*m*r*s*.com | β | 2025-11-11 07:39:33 | |
| v*t*c*n*u*m*t*p*r*f*r*l*.com | β | 2025-11-11 07:33:42 | |
| t*i*k*i*p*i*l*.com | β | 2025-11-11 01:16:24 | |
| t*e*r*f*s*o*s*h*m*e*s.com | β | 2025-11-11 00:23:42 | |
| t*e*l*n*b*s*d*h*l*e*g*.com | β | 2025-11-11 00:19:52 | |
| t*e*e*p*e*c*n*r*s*.com | β | 2025-11-11 00:17:18 | |
| t*e*o*f*i*t*l*d*e.com | β | 2025-11-10 22:55:41 | |
| s*v*w*i*e*o*k.com | β | 2025-11-10 08:29:32 | |
| s*v*t*e*r*l*e*s.com | β | 2025-11-10 08:29:32 | |
| s*v*t*e*r*l*e*.com | β | 2025-11-10 08:29:32 | |
| s*v*t*e*o*f*u*n*e.com | β | 2025-11-10 08:29:08 | |
| s*v*s*t*e*r*a*.com | β | 2025-11-10 08:29:08 | |
| s*v*o*r*u*a*s*h*o*s.com | β | 2025-11-10 08:28:43 | |
| s*v*1*1.com | β | 2025-11-10 08:27:28 | |
| s*f*t*c*h*w*i*.com | β | 2025-11-10 06:54:14 | |
| p*l*e*e*i*i*n.com | β | 2025-11-09 23:43:08 | |
| p*o*e*t*y*r*f*s*i*n.com | β | 2025-11-09 23:14:21 | |
| p*o*h*t*c*t*n*a*d*.com | β | 2025-11-09 23:07:04 | |
| p*l*c*n*e*i*i*n.com | β | 2025-11-09 18:42:21 | |
| p*n*f*i*a*e*w*r*.com | β | 2025-11-09 17:22:03 |