If you use ActiveCampaign.com for your campaign, from version 2.14.0 SpeakOut! can automatically add signers to your list of contacts if they check the "Add to mailing list" option, assuming you have it enabled and have ActiveCampaign enabled in the petition settings.
To enable ActiveCampaign go to dashboard > SpeakOut! > petitions > edit the petition > 3rd Party Extras tab. Checking the box will expose the fields that you need to find and enter.
Campaign ID - Open your campaign, look at the URL and find the ID number https://youraccount.activehosted.com/admin/main.php?action=campaign_new_list&id=1
Your new contact will be added to your account.
There are 2 likely scenarios that you may have. A single campaign with a number of petitions or a number of separate campaigns, each with its own petition.
In scenario 1, a single campaign, use the same ActiveCampaign API details for each petition.
If you have separate campaigns, assuming they are all in the same ActiveCampaign account, the only thing to change is the list ID for each petition. The API Key and server ID will be the same.
NOTE: for this to work, you must enable the 'Display opt-in checkbox' under the Display Options tab on the edit petition page. i.e. you can't add people to your mailing list without their permission.
Auto update the goal
In the SpeakOut! WordPress Petition plugin it is possible to set a goal for how many signatures you wish to collect. This can be displayed as a bar graph.
It is possible to have the goal automatically increase when you reach a specified percentage of your goal.
In dashboard > SpeakOut! > petitions > edit > petition options there is an option to set the signature goal
Check the box and it reveals another option to auto increase goal
selecting that reveals some options
This is pretty self-explanatory. However you may not want to have to update manually.
If you would like SpeakOut! petition plugin to manage the goal increase automatically set the auto increase by value to 0
When your trigger % is reached e.g. 85%, SpeakOut! will do some calculations and add around 50% to your goal, also rounding it so the goal is "pretty" e.g. 1,500, instead of a literal calculation that could end up being 1,432
From version 2.14.0
Can I add a custom field?
You can add up to 7 custom fields.
Four are text fields, one is a drop-down and two are checkboxes - see more info below.
Apart from the checkboxes, the field contents are included at the bottom of the petition email sent to your target by default, however when setting them up you can choose to not have them included.
Go to dashboard > SpeakOut! > petitions > edit > display petition options tab and click one of the Display custom field n checkboxes to reveal some option fields including the field label, placeholder text whether it is sent with the petition and whether or not to make it required.
Custom fields 1 - 4 are standard text fields.
Custom field 5 is a drop-down field. Options can be added in the dashboard values field by separating each value with a| character e.g. one|two|three|something|else
Custom checkboxes 1 and 2 are not included in the petition. They are intended for you to collect info e.g. I would like to volunteer or I am a regular visitor to this place etc. For any info you want to include with the petition to the target, use one of the other custom fields.
Can I add a link to the petition message?
No, and this is intentional for security (and safety) reasons.
The petition message is sent to someone like the mayor or another politician, it is not a good idea for my plugin to allow people to put links in those emails. It could be used to deliver malware or other bad things.
Can I change “read the petition” text?
The default text is "Read the Petition". You can set this text to anything you like, in any language, with different text for each petition.
If your theme doesn’t show Additional CSS you can access it directly from yoursite.com/wp-admin/customize.php
Can I customise the honorifics?
An honorific is the title used to address someone. In English it could be Ms., Mr., Dr., etc.
The default list will never be perfect and it can be modified to suit you.
Open the file /wp-content/plugins/speakout/includes/honorifics.txt and you will see a list of honorifics.
To make your own list you need to copy that file to /wp-content/plugins/speakout/custom/honorifics.txt. If that file exists it is used instead of the default file.
IMPORTANT: Each honorific is on its own line. They can be 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.
If you want to make the list of signatures displayed on your site sort by last name;
In the file /wp-content/plugins/speakout/includes/class.signature.php find at about line 76
ORDER BY $db_signatures.id DESC $sql_limit
and change it to
ORDER BY $db_signatures.last_name ASC $sql_limit
to order by last name ascending. If you want descending
ORDER BY $db_signatures.last_name DESC $sql_limit
This file is updated pretty rarely, if ever, so your changes should be pretty sticky.
Can I display the petition as a widget?
Yes. Once you've created a petition, go to the Widgets screen and drag the "SpeakOut! Email Petitions" widget into a sidebar. In the widget's options, enter a Title and a Call to Action and then select the petition you wish to display.
Can I display the total signatures of 2 petitions?
Yes, but it isn't quite so straightforward.
Firstly install the plugin: Insert PHP Code Snippet. This allows us to add PHP code to the page.
Go into the XYZ PHP Code > Settings and disable Autoinsert PHP opening tags
Then go back to XYZ PHP Code > PHP Code Snippets and Add new PHP code snippet
Before you add the code, notice the arrows, the number in each case has to match the petition number.
Tracking name: multisignatures
PHP Code:
// IF YOU ARE USING THIS ON A PAGE WITHOUT A PETITION you need to include the petition class by removing the // from in front of the next line
//include_once( '/wp-content/plugins/speakout/includes/class.petition.php' );
// create a new petition object
$petition = new dk_speakout_Petition();
// check if first petition exists
$petition1_exists = $petition->retrieve( 1 );
// if it does
if ( $petition1_exists ) {
// get the signature count and save it in $signature_total
$signature_total = $petition->signatures;
}
// see if our next petition exists
$petition7_exists = $petition->retrieve( 7 );
if ( $petition7_exists ) {
// this time add our signature count to $signature_total - we have a running total
$signature_total = $signature_total + $petition->signatures;
}
// you could repeat the second block to add a 3rd or more petition
// print the signature total on the page
echo $signature_total;
Awesome! You now have the total signatures sitting in a variable ready to be displayed on the page.
Now we need to add the shortcode to the page to actually display it.
Total signatures - [xyz-ips snippet="multisignatures"]
Here is live data - The total of both SpeakOut! demo petition signatures is
Can I download a list of my petition’s signatures?
To download the signatures in CSV format, click the "Download as CSV" button at the top of the Signatures screen. If you do not see a "Download as CSV" button on this screen, you will first need to select your petition from the drop-down list.
Can I format the petition message?
SpeakOut! supports markdown which is a simple way of adding basic formatting that will display on any device. You can see some basic examples at https://SpeakOut.123host.net.au/markdown - or search the web.
Can I hide the petition message?
Yes. In the petition edit page, on the right is an option to hide the message that is sent with the petition. The purpose of this is so that you can add the text of your petition to the page itself, likely above the petition. You could then format it a bit better than the default display.
Can I import existing petitions and signatures from SpeakUp?
SpeakOut! was forked from an abandoned plugin speakup.
Since version 1.3.0 there is an item in the dashboard menu to import from speakup to SpeakOut! This is a non destructive import, it doesn't affect the existing SpeakUp data at all, simply copies it to SpeakOut! If you have any previous petitions in SpeakOut! they will not be affected. Legacy SpeakUp shortcodes will still work, but the petition ID may need to be updated.
After importing it is strongly recommended that speakup be deactivated.
Can I make fields all the same length?
In the default theme, some field are shorter so that the form is more compact.
If you would prefer that they are all the same length like this
If your theme doesn't show Additional CSS you can access it directly from yoursite.com/wp-admin/customize.php
Can I make the postal code a required field?
You need to edit two files in order to get the new “required” fields working. First file is /wp-content/plugins/speakout/includes/emailpetition.php and the second file is /wp-content/plugins/speakout/js/public.js
The first file: emailpetition.php
The following steps are required in order to make the field “required”.
if ( lastname === '' ) { $( '#dk-speakout-last-name-' + id ).addClass( 'dk-speakout-error' ); errors ++; }
Append the following code just after this section .
if ( postcode === '' ) { $( '#dk-speakout-postcode-' + id ).addClass( 'dk-speakout-error' ); errors ++; }
So it should look like this:
if ( lastname === ” ) { $( '#dk-speakout-last-name-' + id ).addClass( 'dk-speakout-error' ); errors ++; } if ( postcode === ” ) { $( '#dk-speakout-postcode-' + id ).addClass( 'dk-speakout-error' ); errors ++; }
(Thanks to @altinkaya)
Can I preserve custom CSS?
First, select “Custom” as your theme on the Settings screen.
Then copy one of /wp-content/plugins/speakout/css/theme-standard.css or /wp-content/plugins/speakout/css/theme-basic.css to /wp-content/themes/your_theme/petition.css. This will be a template for your new styles. Now you can edit petition.css and unless you change themes, your custom styles will not be modified by the plugin.
Custom styles can also be created for the widget and signaturelists by creating petition-widget.css and/or petition-signaturelist.css to your theme directory just as you did with the petition CSS and you also change the CSS setting these items to “None”.
Of course, you can always use the WordPress custom CSS option, however if you change themes they are lost.
Can I run a petition without having it send email?
When you create a new petition, simply select the checkbox labelled "Do not send email (only collect signatures)" at the top of the Petition box and email will not be sent out when the petition is signed.
Can I style the signature list?
In version 2.3.1 an additional inline-block structure was added. This allows for more flexibility but some knowledge of CSS is needed. You can choose this in
dashboard > SpeakOut! > settings > signatures tab
Here are a few sample CSS code blocks that you can insert into your theme's Custom CSS settings.
Remove the border, have signatures flow and add a | (pipe symbol) between them:
Change the number of columns - this will always need a little bit of experimentation on your part. For example, creating 3 columns using 33.3% may not work, try 32% or 31%...keep tweaking. Same for 2 columns, instead of 50% try 49.5% or 49%.
.dk-speakout-signaturelist { width:32%; }
Of course, you can still choose to display signatures in a standard table or the run-on list of signatures if you prefer.
Can people sign anonymously
Of course, people can give fake names and email addresses (unless confirmation is enabled) which effectively makes them anonymous.
However this might compromise the integrity of the petition giving the target an excuse to ignore it.
It is possible to have a signer's real details sent with the petition, but hidden completely on the public signature list.
Edit your petition and in the Petition Options tab notice the option to "Allow public anonymous". Enabling that will display "anonymous" in the list of signatures, but only if the signer chooses the "hide name from public" option.
In all other aspects, the name is treated as entered.
Can the petition message be sent to multiple email addresses?
Yes. In the Target Email field, simply enter a comma-separated list of email addresses.
The plugin doesn't need to comply, it is your site that has to meet the rules. I have done my best based on what people have asked for. Under dashboard > SpeakOut! > settings there is a new item at the bottom to Display Privacy Policy accept". If you check that box and fill in the URL to your privacy policy a checkbox will be displayed on your petition form with a link to your privacy policy.
If it needs more work (I am not in the EU) please send me a message via the contact form.
Duplicate a petition
Yes
dashboard > SpeakOut! > Petitions > (mouseover the petition) Duplicate
The new petition is created and you are taken to a page to edit it.
Elementor
I have had a small number of reports of problems with Elementor that I haven't been able to reproduce.
Insert the SpeakOut! shortcode in the post content with Gutenberg.
The content that I would usually publish in the post content, I have put it in a WYSIWYG type custom field.
In the design of the individual view I have put that custom field with the information in the left column and in the right column I have put the dynamic field with the content of the post. This way, the shortcode is loaded by Gutenberg and not by Elementor.
I confess to not fully understanding this as I don't use Elementor, but if it works, that is a good thing.
How can I create a custom style for the petition form?
First, select "None" as your theme on the Settings screen. Then add a 'petition.css' file to your theme folder. You can use the styles included in the plugin's CSS folder as a starting point for your custom theme — just copy the contents of 'theme-standard.css' or 'theme-basic.css' into your 'petition.css' file and make any modifications you desire.
Custom styles can also be created for the widget and signaturelists by adding petition-widget.css or petition-signaturelist.css to your theme and changing the theme for these items to "None".
How do I add a petition to Avada builder?
In Avada builder, and likely other builders like Divi, WP Bakery etc, create a text element and add the shortcode to that.
If you add the shortcode to a regular paragraph element it won't work.
How do I create a new petition?
Select "Add New" from the "SpeakOut!" menu in the dashboard.
Complete the "Add New Email Petition" form with the options you desire and save your petition by clicking the "Create Petition" button.
Enter the petition's shortcode into any page or post where you want the petition form to appear.
Example:
[emailpetition id="1"]
How do I customise the success message?
After your petition has been signed, a message is displayed
This can be customised, including adding some personalised information. Set this in dashboard > SpeakOut! > settings > Petition Form tab > success message
There are 3 variables that can be included, first name, last name and the signature number. A limited number of HTML styling tags can be included. This setting is applied to each petition.
In the example above the field looks like this:
<strong>Thank you, %first_name%.</strong>
<p>Your signature is number %signature_number% and has been added.</p>
The text "A custom message after signing" is customisable per petition in dashboard > SpeakOut! > petitions > edit (choose petition) > Display custom message
How do I edit the countries list
There is a file /wp-content/plugins/speakout/includes/countries.txt which contains a list of countries. This is the default country list.
If you want to have your own list, firstly make a copy of that file and place it in /wp-content/plugins/speakout/custom. If this file exists, it is used instead of the default file.
Each country must be on its own line and has a separator | (a pipe symbol) between the English name (for the database) and the display name which can be in the language of that country.
Country names can also be listed in whatever order you choose and you can even remove all the not 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.
Open the dashboard > Speakout! > settings and you will see an option to enable either hcaptcha or google recaptcha.
It is necessary to obtain your own site key and secret key from the appropriate website.
How do I enable the anedot form?
To enable the anedot settings tab you will find an option in the settings page under the petitions tab. Checking the box and saving will then display a new tab with fields for anedot settings. If you add a page id, it will attempt to display a donation link in the success message after someone has signed. I have no idea about anedot.com itself, this was a request.
I downloaded the CSV file, but when I open it in a spreadsheet application, the values aren’t in the correct columns. Can I fix this?
If the CSV file looks scrambled, try changing its filename extension from .csv to .txt and then re-opening it in your spreadsheet app. The columns should be arranged correctly.
If you wish to keep the .csv extension, once you've opened the .txt file, re-save it as a CSV from your spreadsheet app, which will structure the contents of the file in a version of the CSV format that it understands.
Integrating with mailerlite
Mailerlite is email software similar to Mailchimp and Active Campaign (both of which are supported by SpeakOut!).
You need 2 pieces of information to connect your petition to Mailerlite; the API Key and the Group ID.
Log into Mailerlite and in the top right corner click the drop down arrow next to your account name
Click Integrations
Beside the Developer API item at the top, click Use
The values you need will then be revealed - assuming you have your group already set up
Copy them both into the SpeakOut! fields, update your petition and test.
NOTE: for this to work, you must enable the 'Display opt-in checkbox' under the Display Options tab on the edit petition page. i.e. you can't add people to your mailing list without their permission.
Is it possible to have the petition form hide after it has been signed leaving the success message and social media icons?
There are instructions in the file /wp-content/plugins/speakout/js/public.js at about line 110.
Is there a way to confirm a user’s email address when they sign a petition?
Simply select "Confirm signatures" when creating a petition and a confirmation email will be sent to the address used to sign the petition. By clicking the link in the confirmation email, the signer can confirm their email address. The petition message will not be sent to the target until the signer's email address is confirmed.
Is there a way to publicly display the names of people who have signed my petition?
Place the signaturelist shortcode wherever you want the list to appear in your post (be sure to set the 'id' value to match the id number of your petition). Example:
[signaturelist id="1"]
Mailchimp?
If you use Mailchimp, from version 2.14.0 SpeakOut! can automatically add signers to your audience (your list) if they check the "Add to mailing list" option, assuming you have it enabled and have Mailchimp enabled in the petition settings.
To enable Mailchimp go to dashboard > SpeakOut! > petitions > edit the petition > 3rd Party Extras tab. Checking the box will expose 3 fields that you need to find and enter.
If you have the 2FA setting enabled, your new audience member (their terminology) will receive an email to confirm their address.
There are 2 likely scenarios that you may have. A single campaign with a number of petitions or a number of separate campaigns, each with its own petition.
In scenario 1, a single campaign, use the same Mailchimp API details for each petition.
If you have separate campaigns, assuming they are all in the same Mailchimp account, the only thing to change is the list ID for each petition. The API Key and server ID will be the same.
NOTE: for this to work, you must enable the 'Display opt-in checkbox' under the Display Options tab on the edit petition page. i.e. you can't add people to your mailing list without their permission.
My language isn’t available, will you translate Speakout! for me?
The First Name, Last Name or Email fields in the petition form display the name and email of the site administrator. What’s going on?
These fields are filled automatically for logged-in users. You are seeing the name and email info associated with your user account. Other users will see their own information in these fields. Or, if the user is not logged-in, the fields will be empty.
There isn’t room for all my target emails
In your hosting management (cpanel?) create a series of email forwarders; something like speakout@yourdomain.com for each email address.
Then make that forwarder (speakout@example.com) your target email in the petition.
So when the petition is sent to speakout@yourdomain.com it is forwarded to everyone in your list.
That is tedious, can I change the code?
Firstly, backup your database:
Then in your database, in the table wp_dk_speakout_petitions change the target_email from type VARCHAR (300) to LONGTEXT - this allows more data to be stored in the database table. I am deliberately being a bit vague as if you don't know how to do this based on the minimal information, you shouldn't be messing with the database 😛
Next, make a copy of /wp-content/plugins/speakout/includes/addnew.view.php
However note that this is liable to be over-written whenever an update has changes to this file...which is often.
Why a Pro version?
There will always be a 100% free and useful version of SpeakOut!
Unfortunately donations are very rare and therefore I don't spend as much time on the plugin as it deserves and I would like to.
From July 2022 I am implementing a Pro version of the plugin, this will obligate me to continue to work on SpeakOut!. Anyone who has ever donated in the past, no matter how big or small, will get a free license key on request.
The premium version will include all features, this is not the complete list of limitations:
Licenses will only work on a single site. I understand that some organisations have campaigns in multiple countries and may have more than one site. Contact me, if I am sympathetic to your cause I will probably give you free extra licenses.
Why are some people not receiving the confirmation emails?
Some email services (like AOL, Hotmail, and a few others) do not accept mail sent from the PHP mail() function. So, people who sign your petition with an email address from one of these providers may not be able to receive a confirmation email.
To get around this problem, try installing the WP Mail SMTP plugin which will redirect calls to the PHP mail() function through your webserver's SMTP configuration.
Why are some phrases not translated into my language?
It is only the fixed phrases that will will automatically translate. Some of the strings on a petition can be edited, change them in dashboard > SpeakOut! > settings > check all the tabs.
If it is a fixed word or phrase, I might have missed it. Let me know via the contact page.
Why can’t ‘no email address’ be reversed?
From version 2.6.0 there is an option to not collect email addresses. This was a feature request and is a good idea but has some implications;
Since the database requires a unique email address for a regular petition, once you start collecting data with no email address, you can't reverse that. Otherwise the database would be full of empty email addresses which are (obviously) not unique
To give legitimacy, petitions sent to a target come from the signer@their-email-address. If we don't have their email address then sending to a target is not allowed.
No email address = no optin to a mailing list
One of the principles of the SpeakOut! plugin is to ensure that petitions have high integrity so that the target (e.g. your mayor) can't dismiss a petition as being flawed simply because it came via the SpeakOut! plugin.
Why doesn’t the redirection to an external site work?
If you have your petition redirect to a different URL after signing and you also have checked the option target="_blank" hoping it will open in a new window, it is unlikely to work as you expected.
The issue is that spammers and scammers have abused the browser popup function and it is now blocked by default.
You can still do it, but your visitor may have to explicitly allow the popup.
Why is my page showing the shortcode instead of the petition?
Find the shortcode on the page e.g. [emailpetition id="3"], delete the space and type it again. The original code included a non-breaking space which caused a problem with Wordpress. It might have been a WordPress update that caused it to stop working.
Will you fix my site?
Possibly, if you make a reasonable donation and contact me.