Raising Manager
Raising Manager automatically assigns volunteers to stores for one or more days of raising in 10 seconds, while respecting their choices, their availabilities, and maximizing the number of stores in which the raising will take place.
Download Raising Manager for free
Summary
- Installation
- Upgrade [+]
- Contents Restricted To Volunteers
- Pages Restricted To Volunteers [+]
- Volunteer Status [+]
- Display Of Informations About The Volunteer [+]
- Display Of Informations About A Store [+]
- Display Of Informations About A Planning [+]
- Minimum Number And Maximum Number
- Algorithm [+]
- Time Offered And Time Required
- Counters [+]
- Display Of The Options [+]
- Encryption Of URLs
- Emails [+]
- Autoresponders [+]
- WordPress
- Display Of Informations About The User [+]
- Custom Instructions
- Display Of Forms [+]
- Creation Of Forms [+]
- The [input] Shortcode
- Attributes Of The [input] Shortcode
- The [textarea] Shortcode
- Attributes Of The [textarea] Shortcode
- The [select] Shortcode
- Attributes Of The [select] Shortcode
- The [option] Shortcode
- Attributes Of The [option] Shortcode
- Required Fields
- Error Messages
- Attributes Of The [error] Shortcode
- The [label] Shortcode
- Attributes Of The [label] Shortcode
- CAPTCHAs
- Attributes Of The [captcha] Shortcode
- Double Entry
- Current Password
- The Submit Button
- The [validation-content] Shortcode
- The [indicator] Shortcode
- Attributes Of The [indicator] Shortcode
- Display Of The Plannings List
- Personalization Of The Plannings List [+]
- PDF documents
- Creation Of Your Pages Relating To Raising [+]
- GDPR [+]
- Custom Fields
- Non-WordPress Static Websites [+]
- Advanced Customization [+]
- FAQ [+]
- Changelog
1. Installation
You can install Raising Manager through the Add Plugins page of the Plugins menu in WordPress (Plugins => Add Plugin => Upload Plugin). Upload the plugin file without unzipping it. You can also install it like this:
- Unzip the plugin file.
- Upload with your FTP software the raising-manager folder, and only this folder, to your plugins directory (it should be wp-content/plugins).
Once you have installed Raising Manager:
- Activate the plugin through the Plugins menu in WordPress.
- Configure the plugin through the Options page of Raising Manager.
2. Upgrade
When you upgrade Raising Manager, you don't lose any settings or any data.
You can upgrade Raising Manager through the Plugins menu in WordPress, and through the WordPress Updates page of the Dashboard menu in WordPress (Dashboard => Updates), or through the Add Plugins page of the Plugins menu in WordPress (Plugins => Add Plugin => Upload Plugin, upload the plugin file without unzipping it). You can also upgrade it like this:
- Unzip the plugin file.
- Upload with your FTP software the raising-manager folder, and only this folder, to your plugins directory (it should be wp-content/plugins), without deleting the raising-manager folder that already exists in this directory.
You don't need to deactivate and reactivate the plugin.
2.1 Automatic Upgrade
You can choose to automatically install all the upgrades of Raising Manager as soon as they become available, by checking the Automatically upgrade Raising Manager box of the Upgrade module in the Options page of Raising Manager. To make sure it works well, enter your FTP credentials in your wp-config.php file, like this:
define('FTP_HOST', 'your-ftp-host');
define('FTP_USER', 'your-ftp-username');
define('FTP_PASS', 'your-ftp-password');
If it still doesn't work, make sure the PECL Zip extension is enabled on the server that hosts your website.
3. Contents Restricted To Volunteers
To display a content restricted to volunteers, insert into your posts/pages/widgets a code like this:
[raising-content]Content displayed if you are logged in as a volunteer[/raising-content]
You can also define a content that will be displayed if the user is not logged in as a volunteer, like this:
[raising-content]
Content displayed if you are logged in as a volunteer[other]
Content displayed if you are not logged in as a volunteer
[/raising-content]
4. Pages Restricted To Volunteers
You can create pages restricted to users logged in as volunteers, and redirect the users to another page if they're not logged in as volunteers. If you use Raising Manager on a non-WordPress static website, follow these instructions.
Note: If you are logged in as an administrator or editor, you will not be redirected.
Create a new page in WordPress. In the edit page of this page, answer the questions of the Volunteer Area module. You can also do this:
Create the raising custom field (if you don't see the module of custom fields, follow these instructions, or click on Screen Options at the top right of the page and check the Custom fields box in order to display it) and enter as the value a code like this:
[raising-redirection condition=condition url=URL]
by replacing URL with the URL to which you want to redirect the user and condition with:
- session to redirect the user only if she/he's logged in as a volunteer
- !session to redirect the user only if she/he's not logged in as a volunteer
For example, in the edit page of the page containing your login form, create the raising custom field and enter as the value a code like this:
[raising-redirection condition=session url=URL]
When she/he's logged in as a volunteer, the user will be immediately redirected to the URL.
To understand how to create your pages relating to raising, refer to this section.
4.1 Logout Page
To logout the volunteer, she/he must click on a link that points to urlindex.php?action=logout, where url is the URL of the raising-manager directory (in your plugins directory). The logged out volunteer is redirected to your home page.
Your logout URL should look like this:
https://www.your-domain-name.com/wp-content/plugins/raising-manager/index.php?action=logout
You can create a logout page with a custom redirection URL. Create a new page in WordPress. In the edit page of this page, create the raising custom field and enter as the value a code like this:
[raising-redirection action=logout url=URL]
by replacing URL with the URL to which you want to redirect the user.
Access to this page will have the effect of logout the volunteer and redirect her/him to the specified URL.
4.2 Non-WordPress Static Websites
If you use Raising Manager on a non-WordPress static website, you can't use custom fields. To replace them, you must insert these lines of code into the PHP file of your webpage:
add_shortcode('raising-redirection', create_function('$atts', 'include_once raising_path("shortcodes.php"); return raising_redirection($atts);'));
$raising = '[your-shortcode]'; do_shortcode($raising);
just after this line:
include_once $file;
by replacing [your-shortcode] with a shortcode allowing to redirect the user.
If your page contains a login form, you must also insert this line of code:
<?php $redirection = do_shortcode($raising); if ($redirection!= '') { echo '<script>window.location = \''.$redirection.'\';</script>'; } ?>
just after this line:
<?php wp_footer(); ?>
5. Volunteer Status
Your volunteers can have 3 statuses: Active, Inactive and Deactivated. An active volunteer can login. At the opposite, an inactive (or deactivated) volunteer can't.
You can choose the status assigned to your volunteers upon their registration. If they're inactive, you will must activate them manually, or send them an activation link.
You can also deactivate your volunteers at any time.
The activation confirmation/notification emails are sent only when the volunteer status moves from Inactive to Active, and the deactivation notification email is sent only when the volunteer has been deactivated.
5.1 Activation Link
If when they register, your volunteers are inactive, you can send them an activation link so they can activate their account. To send your volunteers an activation URL, use the following code:
[raising-activation-url]
In the Body field of your registration confirmation email, you can insert a code like this:
Click on the link below to activate your volunteer account:
[raising-activation-url]
5.2 Automatic Login
You can choose to automatically login your volunteers after their registration through the registration form of Raising Manager. If your volunteers are active when they register, they will be logged in immediately. Otherwise, they will be logged in immediately after clicking on their activation link.
To send your volunteers a one-click login URL, use the following code:
[raising-login-url]
In the Body field of your registration confirmation email, you can insert a code like this:
Click on the link below to login in one click:
[raising-login-url]
6. Display Of Informations About The Volunteer
To display an information about the volunteer, insert into your posts/pages/widgets a code like this:
[volunteer information]
by replacing information with:
- address to display the address
- birth-date to display the birth date
- country to display the country
- date to display the registration date
- email-address to display the email address
- first-name to display the first name
- id to display the ID
- ip-address to display the IP address
- last-name to display the last name
- login to display the login name
- password to display the password
- phone-number to display the phone number
- postcode to display the postcode
- status to display the status (possible values: active, inactive, deactivated)
- town to display the town
Example:
Your login name: [volunteer login]
6.1 The default Attribute
You can specify a text that will be displayed instead of the information when this one is empty, using the default attribute, like this:
[volunteer information default="text"]
Don't forget to include the quotes at the beginning and the end of the default value.
6.2 The filter Attribute
You can specify a PHP function that will be applied to the information before this one is displayed, using the filter attribute (you must follow these instructions for it to work), like this:
[volunteer information filter=function]
Replace function by the name of the function you want to apply.
Sometimes, the information is an English word. You can translate it into the language of your website by entering i18n as the value for the filter attribute.
Example:
Your status: [volunteer status default="inactive" filter=i18n]
It is possible to specify several functions for the filter attribute, by separating the different functions by /, like this:
[volunteer information filter=function1/function2/…/functionN]
The functions will be applied in the specified order.
7. Display Of Informations About A Store
To display an information about a store, insert into your posts/pages/widgets a code like this:
[store information id=N]
by replacing N with the ID of the store and information with:
- address to display the address
- email-address to display the director's email address
- name to display the name
- phone-number to display the director's phone number
- postcode to display the postcode
- town to display the town
Example:
Name: [store name id=N]
7.1 The default Attribute
You can specify a text that will be displayed instead of the information when this one is empty, using the default attribute, like this:
[store information default="text" id=N]
Don't forget to include the quotes at the beginning and the end of the default value.
7.2 The filter Attribute
You can specify a PHP function that will be applied to the information before this one is displayed, using the filter attribute (you must follow these instructions for it to work), like this:
[store information filter=function id=N]
Replace function by the name of the function you want to apply.
It is possible to specify several functions for the filter attribute, by separating the different functions by /, like this:
[store information filter=function1/function2/…/functionN id=N]
The functions will be applied in the specified order.
8. Display Of Informations About A Planning
To display an information about a planning, insert into your posts/pages/widgets a code like this:
[planning information id=N]
by replacing N with the ID of the planning and information with:
- comment to display the comment
- end-time to display the end time
- raising-date to display the raising date
- referent-id to display the ID of the referent
- start-time to display the start time
- store-id to display the ID of the store
Example:
Comment: [planning comment id=N]
8.1 The default Attribute
You can specify a text that will be displayed instead of the information when this one is empty, using the default attribute, like this:
[planning information default="text" id=N]
Don't forget to include the quotes at the beginning and the end of the default value.
8.2 The filter Attribute
You can specify a PHP function that will be applied to the information before this one is displayed, using the filter attribute (you must follow these instructions for it to work), like this:
[planning information filter=function id=N]
Replace function by the name of the function you want to apply.
It is possible to specify several functions for the filter attribute, by separating the different functions by /, like this:
[planning information filter=function1/function2/…/functionN id=N]
The functions will be applied in the specified order.
9. Minimum Number And Maximum Number
For each store, we need to know the minimum number of volunteers needed (present at the same time) to do the raising, and the maximum number at which the addition of an extra volunteer has a negative impact because:
- it doesn't increase the weight of the products collected in the store
- some volunteers might get bored and feel useless (if they're not satisfied, they will be less likely to agree to participate in future raisings)
Generally, the maximum number is twice the minimum number.
10. Algorithm
10.1 Goal
The assignment algorithm can have 2 goals:
- Maximize the number of stores in which the raising will be done
- Maximize the estimated quantity of products that will be raised
If the raising is held over two weekends instead of one, it's best to maximize the number in order to limit the number of stores for which the raising will have to be rescheduled a few days later.
If it's held over a single weekend, it's best to maximize the estimation of the quantity of products that will be raised. For each store, the software calculates an estimation of the quantity of products that will be raised, based on the raisings that have taken place in the store over the last two years. It multiplies the average quantity per minute of products raised by the duration in minutes during which the raising will be done in the store. If no raisings have been made from the store in the last two years, the software considers its average quantity per minute to be equal to the average quantity per minute of the stores for which at least one raising has been made in the last two years.
10.2 Trials
In order to help reach the goal, the assignment algorithm contains several sub-steps called New trial. The higher the number of trials, the higher the execution time of the algorithm, but this helps to reach the goal.
For a simple simulation intended to detect problems well in advance of the raising (in order to better target the recruitment of volunteers and the negotiation with current volunteers), it's best to run a reasonable number of trials to get a quick result. If the simulation is intended to generate the final plannings, it's better to run a high number of trials.
10.3 Step 5
The step 5 of the algorithm assigns additional volunteers to stores beyond those required to do the raising. For a simple simulation intended to detect problems well in advance of the raising (in order to better target the recruitment of volunteers and the negotiation with current volunteers), this step is of little use, so you may want to uncheck the Execute step 5 box to get a quick result.
When a volunteer is assigned to a store on one day, it may reduce her/his availability the day before and the day after, if the maximum total duration (per period of 2 consecutive days) that she/he agrees to participate is too low. For this reason, when a simulation is launched for several days, the first 4 steps of each day are executed first, before moving on to the fifth.
11. Time Offered And Time Required
For each raising date and for each period of the day, the time offered by a volunteer is equal to the time she/he agrees to participate. The time offered by this volunteer for the entire day may be less than the sum of the time offered during each period of the day, because the maximum amount of time in a row that the volunteer agrees to participate must be taken into account.
For each raising date and for each period of the day, the time required by a store is equal to the product of the time that store agrees to participate and the minimum number of volunteers (present at the same time) required to properly do the raising.
Example:
For a certain raising date, a store agrees to participate during the entire time it is open (from 9:00 to 20:00). Throughout the day, at least 3 volunteers must be present to do a proper raising. The time required for this day is therefore 33 hours (10.5 hours in the morning (9:00-12:30), 13.5 hours in the afternoon (12:30-17:00), and 9 hours in the evening (17:00-20:00)). Only 3 volunteers can be assigned to this store, provided that each volunteer is present in the store from 9:00 to 20:00. Alternatively, 7 volunteers can be assigned: one who stays in the store from 9:00 to 20:00, and 6 others who will be present only during one period of the day.
No matter how many volunteers are assigned to that store, the sum of the time they'll spend there must be greater than or equal to the time required by that store, unless some absences are tolerated.
The Simulation page of Raising Manager shows, for each future raising date and for each period of the day, the sum of the times offered by each volunteer, the sum of the times required by each store, and the quotient of these two numbers.
The Time offered/Time required ratio is a good indicator of the possibility of covering all stores that agree to participate. It should be as high as possible. If it's less than 1, we're in the shit because it will be impossible to cover all of them, unless some absences are tolerated. If it's greater than 2, it's likely that all stores can be covered, and the maximum number of volunteers can be reached for most of these stores.
12. Counters
To display a counter, insert into your posts/pages/widgets a code like this:
[raising-counter data=data limit=L]
Data: [number][/raising-counter]
by replacing L with a positive number and data with:
- volunteers to count the number of volunteers
- stores to count the number of stores
When the limit is reached, the content between [raising-counter data=data limit=L] and [/raising-counter] disappears. You can format this content as any content of your website. The limit attribute is optional. If you don't use it, the content will not disappear:
[raising-counter data=data]
Data: [number][/raising-counter]
You can insert the [number] shortcode as many times as you want between [raising-counter data=data limit=L] and [/raising-counter]. If you don't insert it, Raising Manager allows you to schedule a content disappearance without displaying a counter:
[raising-counter data=data limit=L]
When the data reaches [limit], this sentence will disappear!
[/raising-counter]
12.1 Display Of Numbers And The Limit
You are not limited to the [number] shortcode. You can use the following shortcodes:
[limit]to display the limit[number]to display the data[remaining-number]to display the difference between the limit and the data
The filter attribute (defined here) is also available for these shortcodes.
12.2 Automatic Content Substitution
If you want to schedule a content substitution, insert into your posts/pages/widgets a code like this:
[raising-counter data=data limit=L]
Data: [number][after]The limit is reached.[/raising-counter]
by replacing L with a positive number.
Insert the content you want to substitute between [after] and [/raising-counter]. When the limit is reached, the content between [raising-counter data=data limit=L] and [after] disappears, and the content between [after] and [/raising-counter] appears. The content between [after] and [/raising-counter] is never sent to the browser until the limit is reached.
You can insert the [number] shortcode as many times as you want between [raising-counter data=data limit=L] and [/raising-counter]. If you don't insert it, Raising Manager allows you to schedule a content substitution without displaying a counter:
[raising-counter data=data limit=L]
The limit will be reached soon.
[after]The limit is reached.[/raising-counter]
12.3 Succession Of Counters
It is possible to specify several limits for the limit attribute, by separating the different limits by /, like this:
[raising-counter data=data limit=50/100]
The first limit will be reached soon.
[after]The second limit will be reached soon.
[after]The second limit has been reached.[/raising-counter]
You can use the following shortcodes:
[limit]to display the current limit[number]to display the difference between the current data and the previous limit[remaining-number]to display the difference between the current limit and the current data[total-limit]to display the last limit of the limit attribute[total-number]to display the current data[total-remaining-number]to display the difference between the last limit of the limit attribute and the current data
The filter attribute (defined here) is also available for these shortcodes.
12.4 The range Attribute
You can count only data recorded during a specific time range by using the range attribute, like this:
[raising-counter data=data range=range limit=L]
Data: [number][/raising-counter]
Replace range with:
- a positive number N to count only data recorded during the N last days
- previous-week to count only data recorded during the previous week
- previous-half-month to count only data recorded during the previous half-month
- previous-month to count only data recorded during the previous month
- previous-bimester to count only data recorded during the previous bimester
- previous-trimester to count only data recorded during the previous trimester
- previous-quadrimester to count only data recorded during the previous quadrimester
- previous-semester to count only data recorded during the previous semester
- previous-year to count only data recorded during the previous year
13. Display Of The Options
To display an option of Raising Manager, insert into your posts/pages/widgets a code like this:
[raising-manager option]
by replacing option with:
- automatically-generated-password-length to display the length of the automatically generated password
- encrypted-urls-validity-duration to display the validity duration of encrypted URLs
- maximum-login-length to display the maximum length of the login name
- maximum-password-length to display the maximum length of the password
- minimum-login-length to display the minimum length of the login name
- minimum-password-length to display the minimum length of the password
- version to display the version of Raising Manager
This list is not complete and has only the most relevant items. You can find all possible values of option in the initial-options.php file of Raising Manager.
Example:
Initial status of the volunteers: [raising-manager volunteers-initial-status]
13.1 The default Attribute
You can specify a text that will be displayed instead of the option when this one is empty, using the default attribute, like this:
[raising-manager option default="text"]
Don't forget to include the quotes at the beginning and the end of the default value.
13.2 The filter Attribute
You can specify a PHP function that will be applied to the option before this one is displayed, using the filter attribute (you must follow these instructions for it to work), like this:
[raising-manager option filter=function]
Replace function by the name of the function you want to apply.
Sometimes, the option is an English word. You can translate it into the language of your website by entering i18n as the value for the filter attribute.
Example:
Initial status of the volunteers: [raising-manager volunteers-initial-status filter=i18n]
It is possible to specify several functions for the filter attribute, by separating the different functions by /, like this:
[raising-manager option filter=function1/function2/…/functionN]
The functions will be applied in the specified order.
14. Encryption Of URLs
You can encrypt the URLs. The encryption key and the validity duration of encrypted URLs are configurable through the Options page of Raising Manager. Enter a random string (difficult to guess) into the Encryption key field.
To send to your volunteers an encrypted activation URL, use the following code:
[raising-activation-url filter=encrypt-url]
instead of this one:
[raising-activation-url]
In the Body field of your registration confirmation email, you can insert a code like this:
Click the link below to activate your volunteer account:
[raising-activation-url filter=encrypt-url]
You have [raising-manager encrypted-urls-validity-duration] hours to do it. Then this link will no longer be valid.
15. Emails
By default, emails are plain text, like the ones you receive from your friends. If you want a more elaborate design, here's how to do it.
You can insert shortcodes into Sender, Receiver, Subject and Body fields of emails to display informations about the volunteer. These shortcodes are simply the same as those presented in the Display Of Informations About The Volunteer section.
You can also insert in these fields all shortcodes available on your website.
If you register the volunteer as a WordPress user, you can insert shortcodes into these fields in order to display informations (login name and password for example) about the user. These shortcodes are presented in this section.
Name <email@address>, Reply-To: Reply To Name <reply-to-email@address>
You can also enter several email addresses separated with commas in the Receiver field of emails. And you can insert HTML code into the Body field of emails.
15.1 Deliverabilily
For a variety of reasons (server configuration of the website sending the emails, spam filters…), emails are sometimes not received by their recipients. So in order to ensure that the volunteers know their assignments for the upcoming raising, you can take at least one of the following precautions:
- Send them an email manually from a mailbox that you know they receive emails from
- Create a volunteer area where they can view and download the plannings that concern them
- Add them to an autoresponder list and use this autoresponder to notify them that plannings have just been created and invite them to log into the volunteer area to view and download the plannings that concern them
16. Autoresponders
Raising Manager allows you to subscribe your volunteers to an autoresponder list. You must make the settings shown in this section so that it works.
For the following autoresponders, you must enter the ID of the list into the List field of the Autoresponders module:
- AWeber
- Brevo
- CyberMailing
- MailChimp
- MailerLite
- Sendy
- SG Autorépondeur
For GetResponse, enter the TOKEN key of the list. For MailerLite, enter the ID of the group. You can get this information in this page by logging into your MailerLite account.
You can find the ID of a MailChimp list in the List name & defaults page.
You can allow the user to choose an autoresponder list by inserting a code like this one into the Code field of your form:
<p><label><strong>List:</strong> [select autoresponder-list]
[option value=list1]List 1[/option]
[option value=list2]List 2[/option]
…
[option value=listN]List N[/option]
[/select]</label></p>
Replace list1, list2… listN with the IDs or names of the lists.
You can also allow her/him to subscribe or not to an autoresponder list, by inserting a code like this one into the Code field of your form:
<p><label>[input subscribed-to-autoresponder value=yes] Subscribe to this list</label></p>
16.1 AWeber
You must make some adjustments so that Raising Manager works with AWeber. Go to this page to get your authorization code and copy it to the API key field in the AWeber module of the Options page. Raising Manager will automatically extract your API key from it when you click a button to update your options.
16.2 Brevo
You must enter the API key of your Brevo account in the Autoresponders integration module of the Options page of Raising Manager so that Raising Manager works with Brevo. You can get your API key by logging into your Brevo account.
16.3 CyberMailing
You have no adjustment to make so that Raising Manager works with CyberMailing, but do not enable the protection against bots.
16.4 GetResponse
You must enter the API key of your GetResponse account in the Autoresponders integration module of the Options page of Raising Manager so that Raising Manager works with GetResponse. You can get your API key by logging into your GetResponse account.
16.5 MailChimp
You must enter the API key of your MailChimp account in the Autoresponders integration module of the Options page of Raising Manager so that Raising Manager works with MailChimp. You can get your API key by logging into your MailChimp account.
16.6 MailerLite
You must enter the API key of your MailerLite account in the Autoresponders integration module of the Options page of Raising Manager so that Raising Manager works with MailerLite. You can get your API key in this page by logging into your MailerLite account.
16.7 Sendy
You must enter the URL of your Sendy installation and your API key in the Autoresponders integration module of the Options page of Raising Manager so that Raising Manager works with Sendy. You can get your API key in the Settings page of Sendy.
16.8 SG Autorépondeur
You must enter the ID of your SG Autorépondeur account and your activation code in the Autoresponders integration module of the Options page of Raising Manager so that Raising Manager works with SG Autorépondeur. You can get these informations by logging into your SG Autorépondeur account.
If it doesn't work, make sure the cURL extension is enabled on the server that hosts your website.
17. WordPress
You can register your volunteers as WordPress users. Upon registration, the user's login name of the volunteer is her/his volunteer's login name, if there is no WordPress user with the same login name. Otherwise, a number will be added to the end.
If the user registers to your volunteer area while logged in as a WordPress user, or by specifying an email address identical to that of an existing WordPress user, Raising Manager will not create a new WordPress user account.
You can give to the volunteer her/his login name and her/his password, by inserting a code like this one in the Body field of your registration confirmation email:
Your login name: [user login]
Your password: [user password]
You can insert shortcodes into the Sender, Receiver, Subject and Body fields of registration confirmation/notification emails in order to display informations about the user. These shortcodes are presented in the Display Of Informations About The User section.
The connection as a WordPress user automatically creates a connection as a volunteer, if the user is not an administrator (or editor), also has a volunteer account and if the email addresses of the two accounts are identical. And under the same conditions, the connection as a volunteer automatically creates a connection as a WordPress user.
18. Display Of Informations About The User
To display an information about a WordPress user, insert into your posts/pages/widgets a code like this:
[user information]
by replacing information with:
- date to display the registration date
- date-utc to display the registration date according to UTC time
- email-address to display the email address
- first-name to display the first name
- id to display the ID
- last-name to display the last name
- login to display the login name
- password to display the password (only in emails)
- website-url to display the website URL
Example:
Your login name: [user login]
18.1 The default Attribute
You can specify a text that will be displayed instead of the information when this one is empty (this is generally the case when the user is not logged in as a WordPress user), using the default attribute, like this:
[user information default="text"]
Don't forget to include the quotes at the beginning and the end of the default value.
18.2 The filter Attribute
You can specify a PHP function that will be applied to the information before this one is displayed, using the filter attribute (you must follow these instructions for it to work), like this:
[user information filter=function]
Replace function by the name of the function you want to apply.
It is possible to specify several functions for the filter attribute, by separating the different functions by /, like this:
[user information filter=function1/function2/…/functionN]
The functions will be applied in the specified order.
19. Custom Instructions
You can add custom instructions that will be executed just after the registration of a volunteer, or other events. This allows you, among other things, to subscribe the volunteer to a list of an autoresponder that is not yet supported by Raising Manager.
Some PHP skills are required. In the PHP code field, you can enter a PHP code or the path (relative to the directory in which your wp-config.php file is located) of a PHP file on your website. In the latter case, it's the PHP code of this file that will be executed.
The custom instructions (for the registration of a volunteer) are executed inside the includes/add-volunteer.php file of Raising Manager. You can find where the custom instructions of other events are executed by opening all files of Raising Manager with a text editor like Notepad++ and searching for the string of characters eval( in these files.
The custom instructions of form submission are executed inside the includes/forms/processing.php file of Raising Manager. You can execute different instructions depending on the form by doing a test on the $id variable set in the forms.php file of Raising Manager.
20. Display Of Forms
Insert into your posts/pages/widgets the code:
[raising-login-form]to display the login form[raising-login-compact-form]to display the compact login form[raising-password-reset-form]to display the password reset form[raising-profile-form]to display the profile form[raising-registration-form]to display the registration form[raising-registration-compact-form]to display the compact registration form[raising-stores-form]to display the geographical availability form[raising-times-form]to display the time availability form
The login form, the password reset form and the registration form appear only if the user is not logged as a volunteer. The profile form, the geographical availability form and the time availability form appear only if the user is logged as a volunteer.
The volunteer can also login by entering her/his email address instead of her/his login name, and reset her/his password by entering her/his login name instead of her/his email address.
To understand how to create your pages relating to raising, refer to this section.
20.1 Redirection
You can redirect the user to a page of your choice when she/he completed the form, by using the redirection attribute:
[raising-login-form redirection=URL]
Replace URL with the URL to which you want to redirect the user.
The redirection attribute is available for all the forms shortcodes.
You can also redirect the user to a specific part of the page where she/he submitted the form, like this:
[your-shortcode-of-form redirection=#your-anchor]
To redirect the user to the top of the form, simply enter # as the value for the redirection attribute:
[your-shortcode-of-form redirection=#]
You can also redirect the user to the page she/he saw just before the current page, if this page belongs to your website, by entering referring-url as the value for the redirection attribute:
[your-shortcode-of-form redirection=referring-url]
If the user just attempted to access a page restricted to volunteers but has been redirected to a login page because she/he was not logged in, you can redirect her/him to this private page when she/he's logged in, by entering private-page as the value for the redirection attribute:
[raising-login-form redirection=private-page]
20.2 Automatic Positioning Of The Cursor
You can decide, for each of your forms, if the cursor is or not automatically positioned in the first field when the page loads. Insert into your posts/pages/widgets a code like this:
[your-shortcode-of-form focus=yes]
20.3 Attributes
All attributes (except action, id and name) of the <form> HTML tag are also available for the shortcodes that display a form, with an identical role.
21. Creation Of Forms
You can customize the forms through the Front Office page of Raising Manager. To customize a form, you must insert into the Code field of this form a special code.
This code is very similar to a normal HTML code, with the exception of the following characteristics:
- The opening
<form>tag and the closing</form>tag are absent. - Some HTML tags are replaced with shortcodes. For example, the
<input />tag is replaced with the[input]shortcode.
21.1 The [input] Shortcode
Insert into the Code field a code like this:
[input name]
by replacing name with:
- address to display a form field allowing the user to enter her/his address
- birth-date to display a form field allowing the user to enter her/his birth date
- captcha to display a form field allowing the user to enter the CAPTCHA
- country to display a form field allowing the user to enter her/his country
- email-address to display a form field allowing the user to enter her/his email address
- first-name to display a form field allowing the user to enter her/his first name
- last-name to display a form field allowing the user to enter her/his last name
- login to display a form field allowing the user to enter her/his login name
- password to display a form field allowing the user to enter her/his password
- phone-number to display a form field allowing the user to enter her/his phone number
- postcode to display a form field allowing the user to enter her/his postcode
- remember to display a checkbox allowing the user to login with cookies
- submit to display a button allowing the user to submit the form
- town to display a form field allowing the user to enter her/his town
Example:
<p><label><strong>Your first name:</strong> [input first-name]<br />[error first-name]</label></p>
<p><label><strong>Your email address:</strong> [input email-address]<br />[error email-address]</label></p>
<div>[input submit value="Submit"]</div>
The above code displays a form containing a field allowing the user to enter her/his first name, a field allowing her/him to enter her/his email address, and a button allowing her/him to submit the form.
Outside the standard names listed above, you can also replace name with the name you want, provided it contains only lowercase letters, numbers and hyphens, like this:
[input your-name]
21.2 Attributes Of The [input] Shortcode
All attributes (except id and name) of the <input /> HTML tag are also available for the [input] shortcode, with an identical role.
Example:
<p><label><strong>Your first name:</strong> [input first-name size=20]<br />[error first-name]</label></p>
<p><label><strong>Your email address:</strong> [input email-address size=30]<br />[error email-address]</label></p>
<div>[input submit value="Submit"]</div>
The above code displays a form containing a field (width of 20 characters) allowing the user to enter her/his first name, a field (width of 30 characters) allowing her/him to enter her/his email address, and a button allowing her/him to submit the form.
You can use the pattern HTML5 attribute to specify a syntax that the field must respect. In your regular expression, replace the [ and ] characters with their corresponding HTML entities: [ and ].
Example:
<p><label><strong>Postcode:</strong>
[input postcode pattern="[0-9]{5,5}" size=20]<br />
[error postcode]</label></p>
<div>[input submit value="Submit"]</div>
21.3 The [textarea] Shortcode
Insert into the Code field a code like this:
[textarea name]Content[/textarea]
by replacing Content with the content you want display in the text area before the user completes the form and name with:
- address to display a text area allowing the user to enter her/his address
- birth-date to display a text area allowing the user to enter her/his birth date
- captcha to display a text area allowing the user to enter the CAPTCHA
- country to display a text area allowing the user to enter her/his country
- email-address to display a text area allowing the user to enter her/his email address
- first-name to display a text area allowing the user to enter her/his first name
- last-name to display a text area allowing the user to enter her/his last name
- login to display a text area allowing the user to enter her/his login name
- password to display a text area allowing the user to enter her/his password
- phone-number to display a text area allowing the user to enter her/his phone number
- postcode to display a text area allowing the user to enter her/his postcode
- town to display a text area allowing the user to enter her/his town
Example:
<p><label><strong>Your first name:</strong> [textarea first-name][/textarea]<br />[error first-name]</label></p>
<p><label><strong>Your email address:</strong> [textarea email-address][/textarea]<br />[error email-address]</label></p>
<div>[input submit value="Submit"]</div>
The above code displays a form containing a text area allowing the user to enter her/his first name, a text area allowing her/him to enter her/his email address, and a button allowing her/him to submit the form.
Outside the standard names listed above, you can also replace name with the name you want, provided it contains only lowercase letters, numbers and hyphens, like this:
[textarea your-name]Content[/textarea]
21.4 Attributes Of The [textarea] Shortcode
All attributes (except id and name) of the <textarea> HTML tag are also available for the [textarea] shortcode, with an identical role.
Example:
<p><label><strong>Your first name:</strong> [textarea first-name cols=20 rows=1][/textarea]<br />[error first-name]</label></p>
<p><label><strong>Your email address:</strong> [textarea email-address cols=30 rows=1][/textarea]<br />[error email-address]</label></p>
<div>[input submit value="Submit"]</div>
The above code displays a form containing a text area (20 columns and 1 row) allowing the user to enter her/his first name, a text area (30 columns and 1 row) allowing her/him to enter her/his email address, and a button allowing her/him to submit the form.
21.5 The [select] Shortcode
The [select] shortcode has the same role as the <select> HTML tag. Insert into the Code field a code like this:
[select name]Content[/select]
by replacing name with:
- country to display a dropdown list allowing the user to select her/his country
- postcode to display a dropdown list allowing the user to select her/his postcode
- town to display a dropdown list allowing the user to select her/his town
Example:
<p><label><strong>Your country:</strong> [select country]
[option]Canada[/option]
[option]France[/option]
[option]Ireland[/option]
[/select]</label></p>
<div>[input submit value="Submit"]</div>
The above code displays a form containing a dropdown list allowing the user to select her/his country, and a button allowing her/him to submit the form.
Outside the standard names listed above, you can also replace name with the name you want, provided it contains only lowercase letters, numbers and hyphens, like this:
[select your-name]Content[/select]
To display easily a dropdown list allowing the user to select a country, insert into the Code field the code below:
[country-selector]
21.6 Attributes Of The [select] Shortcode
All attributes (except id and name) of the <select> HTML tag are also available for the [select] and [country-selector] shortcodes, with an identical role.
21.7 The [option] Shortcode
The [option] shortcode has the same role as the <option> HTML tag. Insert into the Code field a code like this:
[option value="Value of the option"]Name of the option[/option]
If the name and the value of the option are identical, you can also insert into the Code field a code like this:
[option]Name of the option[/option]
Example:
<p><label><strong>Your country:</strong> [select country]
[option]Canada[/option]
[option]France[/option]
[option]Ireland[/option]
[/select]</label></p>
<div>[input submit value="Submit"]</div>
The above code displays a form containing a dropdown list allowing the user to select her/his country, and a button allowing her/him to submit the form.
21.8 Attributes Of The [option] Shortcode
All attributes of the <option> HTML tag are also available for the [option] shortcode, with an identical role.
21.9 Required Fields
By default, all form fields are optional. To insert a required field, use a code like this:
[input name required=yes]
by replacing name with one element of this list.
The required attribute is also available for the [textarea], [select] and [country-selector] shortcodes.
21.10 Error Messages
When the user does not complete one of the required fields of the form, or enters an invalid email address, error messages are displayed. You can customize these messages through the Options page of Raising Manager or through the interface of Raising Manager.
Insert into the Code field a code like this:
[error name]
by replacing name with:
- address to display the error message of address
- birth-date to display the error message of birth date
- country to display the error message of country
- email-address to display the error message of email address
- first-name to display the error message of first name
- inactive-account to display the error message of inactive account
- inexistent-account to display the error message of inexistent account
- invalid-captcha to display the error message of invalid CAPTCHA
- invalid-fields to display the error message of invalid fields
- invalid-login-or-password to display the error message of invalid login or password
- last-name to display the error message of last name
- login to display the error message of login name
- numeric-login to display the error message of numeric login name
- password to display the error message of password
- phone-number to display the error message of phone number
- postcode to display the error message of postcode
- too-long-login to display the error message of too long login name
- too-long-password to display the error message of too long password
- too-short-login to display the error message of too short login name
- too-short-password to display the error message of too short password
- town to display the error message of town
- unavailable-email-address to display the error message of unavailable email address
- unavailable-login to display the error message of unavailable login name
- unfilled-fields to display the error message of unfilled required fields
Example:
<p><label><strong>Your first name:</strong> [input first-name]<br />[error first-name]</label></p>
<p><label><strong>Your email address:</strong> [input email-address]<br />[error email-address]</label></p>
<div>[input submit value="Submit"]</div>
Outside the standard names listed above, you can also replace name with the name you want, provided it contains only lowercase letters, numbers and hyphens, like this:
[error your-name]
To display the error messages in red, add this code to your CSS stylesheet:
.error { color: #c00000; }
21.11 Attributes Of The [error] Shortcode
All attributes (except id) of the <span> HTML tag are also available for the [error] shortcode, with an identical role.
You can set different error messages for each field of a form, like this:
[error field data-name-message="Your error message"]
by replacing name with:
- invalid-email-address to enter the message of invalid email address
- invalid-field to enter the message of invalid field
- unfilled-field to enter the message of unfilled field
Example:
<p><label><strong>Your first name:</strong> [input first-name required=yes]<br />[error first-name data-unfilled-field-message="The first name is required."]</label></p>
<p><label><strong>Your email address:</strong> [input email-address]<br />[error email-address data-invalid-email-address-message="The email address is invalid."]</label></p>
<div>[input submit value="Submit"]</div>
21.12 The [label] Shortcode
The [label] shortcode has the same role as the <label> shortcode. Insert into the Code field a code like this:
[label name]Content[/label]
by replacing name with:
- address to link the label to the field of address
- birth-date to link the label to the field of birth date
- country to link the label to the field of country
- email-address to link the label to the field of email address
- first-name to link the label to the field of first name
- last-name to link the label to the field of last name
- login to link the label to the field of login name
- password to link the label to the field of password
- phone-number to link the label to the field of phone number
- postcode to link the label to the field of postcode
- town to link the label to the field of town
Example:
<p>[label first-name]<strong>Your first name:</strong>[/label] [input first-name]<br />[error first-name]</p>
<p>[label email-address]<strong>Your email address:</strong>[/label] [input email-address]<br />[error email-address]</p>
<div>[input submit value="Submit"]</div>
Outside the standard names listed above, you can also replace name with the name you want, provided it contains only lowercase letters, numbers and hyphens, like this:
[label your-name]Content[/label]
21.13 Attributes Of The [label] Shortcode
All attributes (except for) of the <label> HTML tag are also available for the [label] shortcode, with an identical role.
21.14 CAPTCHAs
You can use CAPTCHAs in forms. Insert into the Code field a code like this:
[captcha type=type]
by replacing type with:
- arithmetic to display a CAPTCHA of the Arithmetic operation type
- hcaptcha to display a CAPTCHA of the hCaptcha type
- question to display a CAPTCHA of the Question type
- recaptcha to display a CAPTCHA of the reCAPTCHA v2 type
- recaptcha3 to display a CAPTCHA of the reCAPTCHA v3 type
- reversed-string to display a CAPTCHA of the Reversed string type
To use a CAPTCHA of the reCAPTCHA type, you must get a site key and a secret key here and enter these keys in the CAPTCHA module of the Options page of Raising Manager.
The CAPTCHA of the reCAPTCHA v3 type is invisible. For the CAPTCHA of the reCAPTCHA v2 type, you can choose the theme you want to use, like this:
[captcha type=recaptcha theme=theme]
by replacing theme with:
- dark for the Dark theme
- light for the Light theme
To use a CAPTCHA of the hCaptcha type, you must get a site key and a secret key here and enter these keys in the CAPTCHA module of the Options page of Raising Manager.
You can choose the theme you want to use, like this:
[captcha type=hcaptcha theme=theme]
by replacing theme with:
- dark for the Dark theme
- light for the Light theme
Example 1 (CAPTCHA of the reCAPTCHA v2 type):
[captcha type=recaptcha theme=dark]
Example 2 (CAPTCHA of the reCAPTCHA v3 type, invisible):
[captcha type=recaptcha3]
Example 3 (CAPTCHA of the Arithmetic operation type):
<p>[captcha type=arithmetic] = [input captcha size=3] (enter your answer in digits)</p>
Example 4 (CAPTCHA of the Reversed string type):
<p>Type the following characters in reverse order:<br />
[captcha type=reversed-string] : [input captcha size=20]</p>
Example 5 (CAPTCHA of the Question type):
<p>[captcha type=question question="Question" answer="Correct answer"] [input captcha size=20]</p>
21.15 Attributes Of The [captcha] Shortcode
All attributes of the <span> HTML tag are also available for the [captcha] shortcode, with an identical role, only if you don't use a CAPTCHA of the reCAPTCHA type.
21.16 Double Entry
You can require the double entry of a form field (email address, password…), like this:
[input confirm-name]
by replacing name with the name of the field that the user must enter a second time.
Example:
<p><label><strong>Your email address:</strong>*<br />
[input email-address size=40 required=yes]<br />[error email-address]</label></p>
<p><label><strong>Confirm your email address:</strong><br />
[input confirm-email-address size=40]<br />[error confirm-email-address]</label></p>
21.17 Current Password
You can require that the volunteer enters her/his current password to change her/his profile or preferences, like this:
[input current-password]
Example:
<p><label><strong>Your current password:</strong>*<br />
[input current-password size=30 required=yes]<br />
[error current-password data-invalid-field-message="The password you entered is incorrect."]</label></p>
21.18
To display a button allowing the user to submit the form, insert into the Code field a code like this:
[input submit value="Text of the button"]
by replacing Text of the button with the text of your button.
If you want to use an image, insert a code like this:
[input submit type=image src="URL of the image" alt="Alternative text"]
by replacing URL of the image with the image URL of your button and Alternative text with the text displayed when the image can not be displayed.
You can also use the <button> HTML tag, like this:
<button type="submit">Text of the button</button>
21.19 The [validation-content] Shortcode
To display a content restricted to users who have submitted the form without any error, insert into the Code field a code like this:
[validation-content]Content displayed if the user has submitted the form without any error[/validation-content]
You can also define a content that will be displayed if the user has submitted the form and at least one error was generated, like this:
[validation-content]
Content displayed if the user has submitted the form without any error[other]
Content displayed if the user has submitted the form and at least one error was generated
[/validation-content]
Example:
[validation-content]
<p style="color: green;">Your profile has been changed successfully.</p>
[other]<p style="color: red;">[error unavailable-login] [error numeric-login] [error too-short-login] [error too-long-login] [error too-short-password] [error too-long-password] [error unavailable-email-address] [error unfilled-fields] [error invalid-captcha]</p>
[/validation-content]
You can also define a content that will be displayed if the user has not submitted the form, like this:
[validation-content]
Content displayed if the user has submitted the form without any error[other]
Content displayed if the user has submitted the form and at least one error was generated[other]
Content displayed if the user has not submitted the form
[/validation-content]
21.20 The [indicator] Shortcode
You can tell the user if the login name she/he chooses is available or not when she/he completes the registration form or the profile form. Insert into the Code field the code below:
[indicator login]
To indicate the availability of her/his email address, insert the code below:
[indicator email-address]
And to indicate the strength of the password she/he chose, insert the code below:
[indicator password]
You can customize the messages displayed by the indicators through the interface of Raising Manager.
21.21 Attributes Of The [indicator] Shortcode
All attributes (except id) of the <span> HTML tag are also available for the [indicator] shortcode, with an identical role.
22. Display Of The Plannings List
Insert into your posts/pages/widgets the code:
[raising-future-plannings]to display the list of future plannings that concern the volunteer[raising-past-plannings]to display the list of past plannings that concern the volunteer
For example, this code allows you to display all the plannings of the volunteer:
<div id="plannings">
[raising-future-plannings]
[raising-past-plannings]
</div>
To understand how to create your pages relating to volunteer area, refer to this section.
23. Personalization Of The Plannings List
You can customize the plannings list through the Plannings module of the Front Office page of Raising Manager. You can enter into the Code field some HTML code and all the shortcodes available on your website.
23.1 The [if] Shortcode
To display a content only if there is at least one planning, insert into the Code field a code like this:
[if planning]Content displayed only if there is at least one planning[/if]
You can also define a content that will be displayed if there is no planning, like this:
[if planning]
Content displayed only if there is at least one planning
[else]Content displayed only if there is no planning[/if]
23.2 The [foreach] Shortcode
To repeat a content for each planning of the list, insert into the Code field a code like this:
[foreach planning]Content repeated for each planning of the list[/foreach]
Example:
[foreach planning]
<tr>
<td>[date] ([Weekday])</td>
<td>[store name] - [store address] - [store postcode] [store town]</td>
<td><a href="[planning-url filter=htmlspecialchars]">View/Download</a></td>
</tr>[/foreach]
When you don't use the id attribute of a shortcode, it is automatically set to the IDs of each item of the list.
By default, the future plannings are sorted by date ascending, and the past plannings are sorted by date descending. You can sort them differently by using the orderby and order attributes that work as in the SQL language.
Example:
[foreach planning orderby=id order=asc]
<tr>
<td>[date] ([Weekday])</td>
<td>[store name] - [store address] - [store postcode] [store town]</td>
<td><a href="[planning-url filter=htmlspecialchars]">View/Download</a></td>
</tr>[/foreach]
In this example, the plannings are sorted by ID ascending. You can find all possible values of the orderby attribute in the tables.php file of Raising Manager.
24. PDF documents
You can personalize the PDF documents sent to the volunteers through the PDF documents module of the Options page of Raising Manager. Some HTML and CSS skills are required. To restore PDF documents as they were when the plugin was installed, empty the Code fields in the PDF Documents module.
25. Creation Of Your Pages Relating To Raising
This section explains with examples how to create your pages relating to raising (registration page, registration confirmation page, password reset page, login page, profile edit page…). You can create these pages with a single click through the Front Office page of Raising Manager.
To know and understand all the shortcodes used, refer to the Contents Restricted To Volunteers, Pages Restricted To Volunteers, Display Of Informations About The Volunteer, Display Of The Options and Display Of Forms sections.
The creation of pages relating to raising needs custom fields. If you don't see the module of custom fields, follow these instructions, or click on Screen Options at the top right of the page and check the Custom fields box in order to display it.
25.1 Your Registration Page
To allow users to register as volunteers, create a new page in WordPress. In the edit page of this page, create the raising custom field and enter as the value a code like this:
[raising-redirection condition=session url=URL]
by replacing URL with the URL to which you want to redirect the user if she/he's logged in as a volunteer (URL of the volunteers home page for example).
In the text area of this page, through the Text tab, enter a code like this:
<p>Registration is fast and free!</p>
[raising-registration-form]
The [raising-registration-form] shortcode displays the registration form. To know the options relating to this form, refer to this section.
25.2 Your Registration Confirmation Page
When a user registers as a volunteer, she/he's redirected to a registration confirmation page. You can customize the URL of this page through the Options page of Raising Manager.
25.3 Your Password Reset Page
Your volunteers can forget their password. To allow them to reset it, create a new page in WordPress. In the edit page of this page, create the raising custom field and enter as the value a code like this:
[raising-redirection condition=session url=URL]
by replacing URL with the URL to which you want to redirect the user if she/he's logged in as a volunteer (URL of the volunteers home page for example).
In the text area of this page, through the Text tab, enter a code like this:
<p>If you have forgotten your password, you can reset it and your new password will be sent by email.</p>
[raising-password-reset-form]
<p style="text-align: center;"><a href="URL of the registration page">Register</a> | <a href="URL of the login page">Login</a></p>
The [raising-password-reset-form] shortcode displays the password reset form.
25.4 Your Login Page
To allow your volunteers to login, create a new page in WordPress. In the edit page of this page, create the raising custom field and enter as the value a code like this:
[raising-redirection condition=session url=URL]
by replacing URL with the URL to which you want to redirect the user if she/he's logged in as a volunteer (URL of the volunteers home page for example).
In the text area of this page, through the Text tab, enter a code like this:
[raising-login-form]
<p style="text-align: center;"><a href="URL of the registration page">Register</a> | <a href="URL of the password reset page">Lost password</a></p>
The [raising-login-form] shortcode displays the login form.
25.5 Your Logout Page
You can create a logout page with a custom redirection URL. Create a new page in WordPress. In the edit page of this page, create the raising custom field and enter as the value a code like this:
[raising-redirection action=logout url=URL]
by replacing URL with the URL to which you want to redirect the user.
Access to this page will have the effect of logout the volunteer and redirect her/him to the specified URL.
25.6 Your Volunteers Home Page
When your volunteers login, you can redirect them to a page of your choice. Create a new page in WordPress. In the edit page of this page, create the raising custom field and enter as the value a code like this:
[raising-redirection condition=!session url=URL]
by replacing URL with the URL to which you want to redirect the user if she/he's not logged in as a volunteer (URL of the login page for example).
In the text area of this page, through the Text tab, enter a code like this:
<p>Welcome to the volunteer area, [volunteer first-name]!</p>
25.7 Your Profile Edit Page
To allow your volunteers to edit their personal informations, create a new page in WordPress. In the edit page of this page, create the raising custom field and enter as the value a code like this:
[raising-redirection condition=!session url=URL]
by replacing URL with the URL to which you want to redirect the user if she/he's not logged in as a volunteer (URL of the login page for example).
In the text area of this page, through the Text tab, enter a code like this:
<p style="text-align: center;">[volunteer-data-download-link text="Download your personal data"]</p>
<p>You can edit your personal informations. Fields marked with * are required.</p>
[raising-profile-form]
The [raising-profile-form] shortcode displays the profile form.
25.8 Your Availabilities Page
To allow your volunteers to indicate their availabilities for future raisings, create a new page in WordPress. In the edit page of this page, create the raising custom field and enter as the value a code like this:
[raising-redirection condition=!session url=URL]
by replacing URL with the URL to which you want to redirect the user if she/he's not logged in as a volunteer (URL of the login page for example).
In the text area of this page, through the Text tab, enter a code like this:
[raising-times-form]
[raising-stores-form]
25.9 Your Plannings Page
To allow your volunteers to view/download their plannings, create a new page in WordPress. In the edit page of this page, create the raising custom field and enter as the value a code like this:
[raising-redirection condition=!session url=URL]
by replacing URL with the URL to which you want to redirect the user if she/he's not logged in as a volunteer (URL of the login page for example).
In the text area of this page, through the Text tab, enter a code like this:
<div id="plannings">
[raising-future-plannings]
[raising-past-plannings]
</div>
25.10
To facilitate the navigation of your volunteers in the pages that are restricted to them, you can display a navigation menu into these pages. Insert this code:
[raising-pages-menu]
You can customize this navigation menu through the Menu module of the Front Office page of Raising Manager.
26. GDPR
The GDPR, which came into force on May 25, 2018, introduces the right to portability, which offers individuals the ability to receive their personal data, in a structured, commonly used and machine-readable format.
To allow your volunteers to download a CSV file containing their personal data, insert into one of the pages of your volunteer area a code like this:
[volunteer-data-download-link text="Download your personal data"]
Don't forget to include the quotes at the beginning and the end of the value of the text attribute.
26.1 Attributes Of The [volunteer-data-download-link] Shortcode
All attributes (except href) of the <a> HTML tag are also available for the [volunteer-data-download-link] shortcode, with an identical role.
27. Custom Fields
You can, through the Back Office page of Raising Manager, add an unlimited number of custom fields in the Add Store, Add Volunteer and Add Planning pages to record additional data. Enter a name and a key for each custom field.
For example, if you want to save the favorite color of the volunteer, enter Favorite color as the name and favorite-color as the key.
To display a custom information about a volunteer, insert into your posts/pages/widgets a code like this (don't forget the custom-field- prefix just before the key):
[volunteer custom-field-key]
by replacing key with the key of the custom field.
To allow the volunteer to fill this field, insert into the Code field of your forms a code like this (don't forget the custom-field- prefix just before the key):
[input custom-field-key]
by replacing key with the key of the custom field.
28. Non-WordPress Static Websites
Raising Manager is designed to work with a WordPress site, but you can also use it with a non-WordPress static website, by following the instructions below.
28.1 Installation Of WordPress
Download WordPress and install it on your website. You will not use WordPress as a CMS to manage the pages of your website, but as an interface allowing you to manage your raisings.
28.2 The Files Of Your Website
If the files of your website have the extension .htm or .html, replace it with .php. Open them with a text editor like Notepadd++, click on File, and then click on Save as…. A window opens. In the Type field, select PHP and click on Save.
You can also recreate these files with this model.
28.3 Loading Of WordPress
To load the WordPress functions in the files of your website, add on top of these files the following code:
<?php
$wordpress_directory = 'WordPress directory';
$file = $wordpress_directory.'/wp-load.php';
while (strstr($file, '//')) { $file = str_replace('//', '/', $file); }
if (substr($file, 0, 1) == '/') { $file = substr($file, 1); }
$i = 0; while ((!file_exists($file)) && ($i < 8)) { $file = '../'.$file; $i = $i + 1; }
include_once $file;
?>
Replace WordPress directory with the name of the directory where you installed WordPress. If you installed it at the root of your website, replace this line:
$wordpress_directory = 'WordPress directory';
by this one:
$wordpress_directory = '';
Insert this line of code:
<?php wp_head(); ?>
just before the </head> tag, and this line of code:
<?php wp_footer(); ?>
just before the </body> tag.
28.4 Use Of Shortcodes
The documentation of Raising Manager provides you several shortcodes. To use these shortcodes in the PHP files of your website, insert a code like this:
<?php echo do_shortcode('[your-shortcode]'); ?>
29. Advanced Customization
29.1
You can display a different navigation menu for the volunteers. Create your menu through the Menus page of the Appearance menu in WordPress (Appearance => Menus). For each item of your menu, select what you want for the Visibility field.
You can also do it like this:
Through the Menus page of the Appearance menu in WordPress (Appearance => Menus), create a menu for the volunteers and a menu for the other users.
In your WordPress theme (most often in the header.php file), you should find one or several lines containing a call to the wp_nav_menu function, like this:
wp_nav_menu(array( … ));
Immediately after array(, add this code:
'menu' => (((function_exists('raising_session')) && (raising_session())) ? M : N),
Replace M with the ID of the menu for the volunteers, and N with the ID of the menu for the other users. The ID of a menu is the number located at the end of the URL of the page allowing to edit it.
You should get a code like this:
wp_nav_menu(array('menu' => (((function_exists('raising_session')) && (raising_session())) ? M : N)… ));
29.2 Generation And Evaluation Of Passwords
Raising Manager has several functions for generating passwords and evaluating their strength. These functions are defined in the libraries/passwords-functions.php file of the plugin. You can replace them with your own functions by creating a plugin containing all of the following functions:
<?php function kleor_generate_password($length = 0) {
$length = (int) $length; if ($length <= 0) { $length = 12; }
$characters = 'bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ01234567890123456789()[]{}-+=*.!?,:@#$%&';
$minimum_strength = min(64, $length*(3 + log($length, 2)) - ($length == 1 ? 2 : 3));
$n = 0; $best_password = ''; $best_strength = 0;
while (($n < 8) && ($best_strength < $minimum_strength)) {
$password = ''; for ($i = 0; $i < $length; $i++) { $password .= substr($characters, mt_rand(0, 79), 1); }
if ((function_exists('strip_shortcodes')) && ($password != strip_shortcodes($password))) { $password = str_replace('[', '(', $password); }
$n += 1; $strength = kleor_password_strength($password);
if ($strength > $best_strength) { $best_strength = $strength; $best_password = $password; } }
return $best_password; }
function kleor_generate_password_js() { ?>
<script>
function kleor_generate_password(length) {
var length = parseInt(length); if (length <= 0) { length = 12; }
var characters = 'bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ01234567890123456789()[]{}-+=*.!?,:@#$%&';
if (length == 1) { var minimum_strength = 1; }
else { var minimum_strength = Math.min(64, length*(3 + (Math.log(length))/Math.LN2) - 3); }
var n = 0; var best_password = ''; var best_strength = 0;
while ((n < 8) && (best_strength < minimum_strength)) {
var password = ''; for (i = 0; i < length; i++) { password += characters.substr(Math.floor(80*Math.random()), 1); }
n += 1; strength = kleor_password_strength(password);
if (strength > best_strength) { best_strength = strength; best_password = password; } }
return best_password; }
</script>
<?php }
function kleor_password_strength($password) {
$password = kleor_strip_accents($password);
$length = strlen($password); $strength = 0;
if ($length > 0) {
if ((strtolower($password) != $password) && (strtoupper($password) != $password)) { $strength += 1; }
foreach (array('/[0-9]/', '/[^a-zA-Z0-9 ]/') as $pattern) {
if (preg_replace($pattern, '', $password) != $password) { $strength += 1; } }
$characters = array(); for ($i = 0; $i < $length; $i++) { $characters[] = substr($password, $i, 1); }
$strength = $length*($strength + log(count(array_unique($characters)), 2)); }
return $strength; }
function kleor_password_strength_js() { ?>
<script>
function kleor_password_strength(password) {
var password = kleor_strip_accents(password);
var length = password.length; var strength = 0;
if (length > 0) {
if ((password.toLowerCase() != password) && (password.toUpperCase() != password)) { strength += 1; }
if (password.replace(/[0-9]/g, '') != password) { strength += 1; }
if (password.replace(/[^a-zA-Z0-9 ]/g, '') != password) { strength += 1; }
var characters = []; for (i = 0; i < length; i++) {
var character = password.substr(i, 1);
if (password.substr(0, i).indexOf(character) == -1) { characters.push(character); } }
strength = length*(strength + (Math.log(characters.length))/Math.LN2); }
return strength; }
</script>
<?php }
Of course, you can change the source code of these functions, but don't change their names.
29.3 Custom Autoresponders
You can add an autoresponder that is not natively integrated with Raising Manager. To do this, create a plugin with a code like this (simple version):
function add_my_autoresponder($autoresponders) {
$autoresponders['My Autoresponder'] = array('function' => 'subscribe_to_my_autoresponder');
return $autoresponders; }
add_filter('raising_autoresponders', 'add_my_autoresponder');
function subscribe_to_my_autoresponder($list, $contact) {
…
…
}
or like this one (more elaborate version):
function add_my_autoresponder($autoresponders) {
$autoresponders['My Autoresponder'] = array(
'function' => 'subscribe_to_my_autoresponder',
'display_function' => 'display_my_autoresponder',
'update_function' => 'update_my_autoresponder');
return $autoresponders; }
add_filter('raising_autoresponders', 'add_my_autoresponder');
function subscribe_to_my_autoresponder($list, $contact) {
…
…
}
function display_my_autoresponder($options, $back_office_options) { ?>
<table class="form-table"><tbody>
<tr style="vertical-align: top;"><th scope="row" style="width: 20%;"><strong><label for="my_autoresponder_api_key"><?php _e('API key', 'raising-manager'); ?></label></strong></th>
<td><textarea style="padding: 0 0.25em; height: 1.75em; width: 50%;" name="my_autoresponder_api_key" id="my_autoresponder_api_key" rows="1" cols="50"><?php echo (isset($options['my_autoresponder_api_key']) ? $options['my_autoresponder_api_key'] : ''); ?></textarea>
<span class="description" style="vertical-align: 25%;"><a target="<?php echo $back_office_options['documentations_links_target']; ?>" href="https://www.kleor.com/raising-manager/documentation/#my-autoresponder"><?php _e('More informations', 'raising-manager'); ?></a></span></td></tr>
<tr style="vertical-align: top;"><th scope="row" style="width: 20%;"></th>
<td><input type="submit" class="button-secondary" name="submit" value="<?php _e('Update', 'raising-manager'); ?>" /></td></tr>
</tbody></table>
<?php }
function update_my_autoresponder($options) {
if (isset($_POST['my_autoresponder_api_key'])) {
$_POST['my_autoresponder_api_key'] = trim($_POST['my_autoresponder_api_key']);
$options['my_autoresponder_api_key'] = $_POST['my_autoresponder_api_key']; }
return $options; }
The subscribe_to_my_autoresponder function subscribes the user in a list of the autoresponder. The display_my_autoresponder function displays the options of the autoresponder in the Autoresponders integration module of the Options page of Raising Manager. And the update_my_autoresponder function updates these options when submitting the form of this page.
To better understand how to do this, look at the source code of this plugin.
29.4 Custom Files
You can replace all Raising Manager files (except raising-manager.php) with your own files. For this, create the raising-manager-custom-files folder in the plugins directory (the one where you installed Raising Manager) of your website.
For example, if you want to replace the includes/data.php file of Raising Manager with a file you have customized, create the includes folder in the raising-manager-custom-files folder, and upload your data.php file to this folder.
You can set yourself the directory where your custom files are stored, by inserting this line:
define('RAISING_MANAGER_CUSTOM_FILES_PATH', ABSPATH.'custom-files/raising-manager/');
just after:
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
in your wp-config.php file.
Replace custom-files/raising-manager with what you want. The value of RAISING_MANAGER_CUSTOM_FILES_PATH must end with a /.
29.5 Custom Languages
Raising Manager is developed in English and contains files that translate it in French. If you wish, you can translate it into another language.
To do this, create your custom files directory by following these guidelines. Create the languages folder inside of it, and upload your translation files to this folder.
You can create your translation files with the languages/raising-manager.pot file of the plugin, and by using the free software Poedit. Your MO and PO translation files must be named like this:
raising-manager-ll_CC.mo
raising-manager-ll_CC.po
ll_CC is the value displayed by this line of code:
echo get_locale();
when it's executed in one of the files of your WordPress website.
29.6 The filter Attribute
The shortcodes of the Kleor plugins often have a filter attribute that allows you to apply a PHP function to the content before it's displayed. For security reasons, you must specify which functions you allow by copying this code into your wp-config.php file:
/* Functions allowed in the "filter" attribute of shortcodes. Separate them with commas.
You should allow only functions that do nothing but change a string of characters. */
define('KLEOR_FILTERS', 'function1,function2,function3');
30. FAQ
30.1 Can I use shortcodes in fields of admin pages?
Yes. You can insert all the shortcodes available on your website in most fields of Raising Manager admin pages.
30.2 How can I use shortcodes in my WordPress theme?
Insert into the PHP files of your theme a code like this:
<?php echo do_shortcode('[your-shortcode]'); ?>
30.3 How can I use shortcodes in comments?
Edit the functions.php file (create it if it doesn't exist) of your WordPress theme and add this line of code:
add_filter('comment_text', 'do_shortcode');
30.4 How can I use shortcodes in attributes of shortcodes?
You can use shortcodes in most attributes of Raising Manager shortcodes, provided to replace [ by ( and ] by ), like this:
[your-shortcode attribute='(your-other-shortcode)']
Don't forget to include the quotes at the beginning and the end of the shortcode.
31. Changelog
- Version 9.1
- Removal of jQuery
- Version 9.0.1
- Improvement of the date picker
- Version 9.0
- Addition of an artificial intelligence assistance
- Version 8.6.7
- Addition of the Referent option
- Version 8.6.6
- Improvement of the algorithm with the ratios indicated in the Simulation page
- Version 8.6.5
- Addition of the ability for volunteers to indicate their availabilities for future raisings, and to view/download the plannings that concern them