For purchasing the FAST plugin!
We highly recommend running the latest version of WordPress. The minimum requirement is version 4.7. Make sure that your server meets the minimum requirements to run WordPress as well.
For Email Piping to work your server will need to have the PHP IMAP extension enabled
All licenses on the Envato Market sites are for a single use. If you are going to use FAST on one domain, or multiple subdomains, you will only require one License. If you are going to use FAST on multiple domains, then you will need to purchase a separate License for each domain.
The first thing you will need to do to get started will be to download the plugin zip file from CodeCanyon.
You should now have a file that looks something like this.
codecanyon-4819161-fast-support-ticket.zip
In order to get at the goodness inside you will need to unzip this file.
Once you have unzipped the FAST zip file you will find the following folders have been created.
Folder / File | Description |
---|---|
docs/ | The docs your are looking at now |
fast-plugin.zip | Copy of the FAST plugin |
fast-secure-fields-example.zip | Example PHP API & Plugin to store ticket fields securely on an external server |
The docs folder includes an offline copy of these documents for you to reference. We are mainly interested in the fast-plugin.zip file. This is the WordPress plugin that we will be installing in the next section.
After you have downloaded and unzipped your purchase from CodeCanyon you will now need to install it on your WordPress system.
We recommend that you use the Envato Market plugin to keep the plugin up-to-date.
The most important setting you need to set in the FAST plugin is your support page.
This is a regular WordPress page that you will set to be the base for your support system.
Once you have set this page in the settings, the plugin will override this page whenever you load it in your browser and display the FAST support page.
Here is how to get started:
The FAST support plugin will load itself on the page that you have selected as your support page.
It will also create a set of urls for you to use based on the support page url.
For example if your site sits on the domain
mydomain.com
If you create a support page called My Support it should be visible at the url
mydomain.com/my-support
Now if you set the Support Page in the FAST plugin options to use this new page the app will create some new urls for you to use.
URL | Description |
---|---|
mydomain.com/my-support | Main landing page for the app (view your tickets) |
mydomain.com/my-support/ticket/:id | View an individual ticket (:id replaced with ticket id) |
mydomain.com/my-support/ticket/new | Create a new ticket |
mydomain.com/my-support/register | Register a new user |
mydomain.com/my-support/login | Login to ticket system |
Your ticket agents will be the users that will be responding to tickets created by your customers.
To create a WordPress user that your ticket agent can use you will need to create a new user and assign it the Ticket Agent role.
The email that you used for your ticket agent will now recieve an email with their login details and they will now be able to log in to your WordPress system.
Now we need to create an Agent in the FAST plugin and assign it to this new WordPress user.
To make FAST as flexible as possible we have created different ticket types that can be used on their own or combined together. The ticket types allow your customers to make different kinds of enquiries in your support system.
The available ticket types are:
To change your app to use one of the above modes goto the FAST Support plugin option page and select the types you would like your ticket system to handle from the Available Ticket Types dropdown.
Depending on which ticket types you select, you can find out how to set up the different types in the next sections.
General tickets allow you to create categories for your customers to choose from when creating a ticket. A typical ticket creation will look like this.
Creating categories for your customers enquiries is easy.
Your category will now appear in the Category section of the new ticket wizard.
Product tickets work in much the same way as general tickets, but are designed to represent specific products that you sell or produce. A typical ticket creation will look like this.
To create products for your support system do the following:
Envato tickets work in much the same way as product tickets. However products in FAST are linked to your products on the Envato marketplace and customers will require a valid Envato purchase code in order for a ticket to be created.
Create products for each of your ThemeForest items, you can then link these products to your Envato items.
FAST also allows you to link your ticket products to your Envato Marketplace products. You can then verify that your customers who are creating tickets have purchased the item from Envato and their support period has not expired.
Follow the steps below to set this up:
You can now link your products in the FAST plugin to your Envato Marketplace items & verify purchases and support dates.
WooCommerce tickets are linked to an order & product that a customer purchased using the WooCommerce plugin. Customers can create these tickets when they are logged in with their regular WooCommerce login. There are a few ways that the customer can get suppport, using a link on the My Account page or by clicking the Get Support button in their Orders page.
There are 3 places that you can set up your ticket agents for WooCommerce.
When a new ticket is created, your customer will select a product that they need support for.
After that FAST will check if the product has any agents assigned to it, if so one of them will be assigned the ticket. Tickets are assigned to agents in a circular (Round-robin) fashion in order to make sure that the workload is evenly distributed and no ticket is left unassigned.
In example, if we assign 3 agents (Agent1, Agent2 and Agent3) to a product, the first ticket will be assigned to Agent1, the second to Agent2 and the third to Agent3. The fourth ticket will be assigned to Agent1 again and so on.
If the product has no assigned agents FAST will then move on to the product's category. If the product's category has agents assigned then one of those will be chosen for this ticket.
If both the product and product category have no agents assigned to them FAST will fall back to the default agents set in the FAST Plugin -> WooCommmerce options page.
The FAST plugin will use the the WordPress wp_mail function to send emails to Agents and Customers.
If your server is set up to allow the PHP mail function to work then no extra configuration will be needed.
However some hosting companies will block the PHP mail function in order to prevent spammers from abusing the mail system.
If this is the case you can follow the SMTP setup guide below to configure your WordPress to use SMTP instead.
We would recommend installing and activating the WP Mail SMTP Plugin to enable your WordPress to use SMTP to send emails.
For more information on how to configure this plugin please look at the WP Mail SMTP Plugin Page there is also a nice guide here on wpbeginner.com
If you already have one email set for your website and want FAST to use a different email address you can set an email address and name that will be used only by FAST.
For example your WordPress site may be set to send all emails from contact forms, etc from info@mysite.com but you may want ticket emails to come from support@mysite.com. Use the Ticket Email Header Options in the Email options page to do this.
You can specify the email address and sender name for all emails that are sent from FAST. The options can be found under Fast Support -> Email Options -> Ticket Email Header Options. Default name and email will be used if the options are left blank.
Values set in the above options will override respective values set by the SMTP plugin. This allows you to set email headers exclusive to your support emails sent by FAST.
If you are trying to send emails from different email addresses using the same SMTP login and you are using GMail or Google Apps. You will need to tell GMail about this.
Follow these instructions to allow one account to send from multiple addresses.
FAST can send emails to users when the following events occur
You can select the events that will trigger an Email notification in FAST Support -> Email Options. You can also customize the Subject and Content of these emails in the Email Options page of the plugin.
Both the Subject and Content options can include shortcodes that will be replaced by information from the ticket.
Shortcode | Description |
---|---|
[sender_name] | Name of the user that triggered the action |
[ticket_title] | Title of the ticket |
[ticket_author] | Ticket author name |
[comment_content] | Ticket comment content |
[product] | Ticket Product |
[order_number] | WooCommerce Order Number (if running in WooCommerce Mode) |
You can customize the look and feel of the emails FAST sends do the following:
FAST tickets can be configured to handle extra fields when a customer creates a ticket.
These extra fields can be completely customized in the plugin options.
To change the extra fields that a customer fills in when they create a ticket do the following.
All extra fields entered by a customer will be visible in the ticket details sidebar when you are viewing a ticket.
Storing all your ticket information on one server can sometimes be a bad idea, especially when you are saving sensitive user information such as usernames & passwords. That is why we have added secure fields to FAST.
Secure fields are the same as extra fields, but they will not be stored in the WordPress database. Instead a filter will be called when a ticket is created that will allow you to send the data elsewhere, like a secure API or S3 bucket.
To create or modify your secure fields do the following.
Whenever a customer creates a ticket and you have secure fields a filter will be called that will allow you to save this information externally.
The filter is named fast_filter_save_secure_fields
and recieves 2 arguments, the secure fields data (array) and the ticket (WP_Post object).
We have included an example API and plugin that will store secure fields, you can find them both in the fast-secure-fields-example.zip in your CodeCanyon download zip file.
In order to allow your agents to access this secure external data we have added an option to set a link that your agents can click on.
This can be set in the extra fields options page.
Now when your agents view a ticket with secure data stored they will see a link in the ticket details sidebar.
Customers are not allowed to view secure field data after they have created them, but they are allowed to update them in case they entered them incorrectly.
This is the view a customer will see, they will be able to click on an update link.
If they click the update link a popup will allow them to update their secure information.
In some cases you may want to auto fill extra or secure fields with some values. For example your customers may have already entered some information on registration and you don't want your customers to have to enter this information again.
To allow for this situation you can add a filter to your theme or plugin code to set the initial values of your fields when a user creates a ticket.
Here is an example that will add an initial value "test value 1" to all your extra fields.
function fast_add_values_to_fields($extra_fields)
{
foreach ($extra_fields as $field) {
$field->value = 'test value 1';
}
return $extra_fields;
}
add_filter('fast_filter_get_extra_fields', 'fast_add_values_to_fields', 10, 1);
In order to use one of the ready made color schemes that are provided with FAST do the following:
FAST allows you to create your own custom color scheme & fonts by creating your own custom skin.
A saved reply is a text snippet that an agent can add to the editor when replying to a customer. Using saved replies is a great way to save time when the issue at hand requires a standard and simple response.
An agent can create a saved reply by clicking the 'Save Reply' button in his editor's toolbar while replying to a ticket.
Once the dialog appears the agent will be prompted to type the title and the content of his saved reply. If he had alredy inserted text in the reply editor it will appear in his saved reply's content editor as well.
An agent can choose to share his saved reply with other agents, or keep it private. If he shares it, all agents will have access to that saved reply.
An agent can insert a saved reply by clicking the 'Saved Replies' button in his editor's toolbar while replying to a ticket.
Once the 'Choose A Saved Reply' dialog appears he will be presented with a list of all his saved replies, as well as the replies other agents have shared. Clicking on a saved reply will insert the reply in his ticket's reply.
FAST can also be configured to allow customers to log in using their Envato usernames and passwords.
Follow the steps below to set this up:
Finally you will need to enable the envato login button on the Login & Registration pages.
See the Envato Login Button sections of the Registration Page & Login Page
FAST requres all customers to have the Ticket Customer role assigned to them in order for them to be able to login and create tickets using FAST.
Once you have installed FAST to a WooCommerce site all your new customers will be assigned this role automatically by the plugin when they register or checkout.
However you will also want all of your existing customers to be able to use FAST as well, but don't worry you just need to click one button!
Now all your existing customers will be able to log into FAST and create support tickets about their orders.
By default a customer will be able to create using any WooCommerce order, but this is configurable. To change the supported order statuses do the following:
The order selection in the create new ticket page & the get support button in My Orders page will now only show orders of this status.
You can change the register user page content by going to FAST Plugin -> Registration Page in the admin menu,
There you will find options for changing the content of the registration page.
Some sites may want to handle registration out of the plugin, so we have added an option to turn off the user registration
You can change the title / content and background image of your registration page.
You can change the methods that customers can use to register with.
Envato Register - customers can register using their Envato account
Login to WordPress admin
FAST also allows you to make customers agree to terms and conditions before registering. This is usefull for GDPR or TOC for your customers.
To add a registration checkbox do the following.
We recommend turning on a Google reCaptcha on your Register User page to prevent bots.
If you want your users to be able to select a language when they create an account you can turn on this option.
You can change the login page content by going to FAST Plugin -> Login Page in the admin menu,
There you will find options for changing the content of the login page.
You can change the title / content and background image of your login page.
Some users may want to use another login page other than the FAST default one, for this reason we have added the option to modify the default login page.
To change the default login page do the following.
Enter the url you would like to use for your login into the Login url option
You can change the new ticket page content by going to FAST Plugin -> New Ticket Page in the admin menu,
There you will find options for changing the content of the new ticket page.
You can change the title / content and background image of your new ticket getting started tab.
One requested feature from our users was the ability to create tickets on behalf of another user.
This is now possible, just by switching on the Agents Can Create Tickets For Other Users option
There is an option in FAST that allows you to set the default level of privacy for your tickets.
The options are as follows
Option will be available to the user when creating a ticket
All tickets will be public no option will be shown when creating a ticket
All tickets will be private no option will be shown when creating a ticket
There is an option in FAST that will allow your agents to commuinicate privately on tickets in comments that the customer will not see.
To enable internal comments
Some support systems may require customers to be able to close tickets themselves. This is possible, all you need to do is add the Change Ticket Status capabillity to the customer role like this.
Sometimes your customers may want to search your support tickets to see if a solution to their problem has already been discussed and answered.
Fast allows you to enable this option.
Now your customers will see a search icon in the top right corner of their screens.
This link will take them to a page where they can search and view all public tickets
By default the create ticket button is hidden for agents & managers. However sometimes for testing this can be useful.
By default the replies on a ticket will be shown with the latest first (decending order), but this can be changed.
FAST plugin can also send messages to Slack.
You can change the events that will trigger a slack message in the FAST Plugin -> Slat Intergration options page
You can also customize how the Slack notifications will look. We provide a different content option depending on the type of notification. Each option may include shortcodes that will be replaced by information from the ticket.
Shortcode | Description |
---|---|
[sender_name] | Name of the user that triggered the action |
[ticket_title] | Title of the ticket |
[ticket_author] | Ticket author name |
[comment_content] | Ticket comment content |
[product] | Ticket Product |
[order_number] | WooCommerce Order Number (if running in WooCommerce Mode) |
[slack_link] | Slack link containing the ticket url |
Please note that Slack API messages are formatted using a simple markup language similar to Markdown. More info can be found here
FAST creates three new user roles in your WordPress system each one will have a different level of control over your support tickets.
A ticket manager has full access to all tickets, this role is to be limited to users that will be managing the support system. The role can do the following:
A ticket agent is a user that will be mainly answering Customers tickets. The role can do the following:
A ticket customer is a user that will be created by your customers. The role is very limited and can only do the following:
You can assign these roles to new / existing users from the WordPress Users admin page.
FAST plugin has been created using the WordPress Roles & Capabilities.
This was done to make the plugin as flexible as possible and we have created an option page in which you can modify the ticket Roles & Capabilities.
Some customers may be adding FAST to an existing site with existing users. Those existing users will not be allowed to access FAST and make tickets because they do not have the Ticket Customer role needed.
For this reason we have added a user convert utility that will allow you to give your users access to the plugin.
All users with the role you selected will now have an extra Ticket Customer role, this will allow them to log in to FAST support and create tickets.
If you want to not use the FAST customer registration page and use another plugin you just need to make sure you enable one option in the Advanced options page. This will ensure that all new users that register will have the ticket customer role assigned to their user. This role will allow them to create tickets.
To translate the FAST plugin into your own language you can use the pot file provided.
File | Description |
---|---|
wp-content/plugins/fast-plugin/languages/fast-plugin.pot | This is the translation file for the FAST Plugin |
You will need to edit the pot file with a po editor, we would recommend POEdit
wp-content/plugins/fast-plugin/languages
folderSome customers have asked us for the ability to translate products that are created in the plugin.
We have added this capability to the po file method detailed above. Just add the product translation to your PO file and it will be picked up by the plugin.
Add you product translation to the file
msgid "My nice product" msgstr "Mon beau produit"
Save your .po file
As of FAST version 1.10.0 all translations have been merged into one file to make translations easier to create.
Previously FAST used 2 files for translations, if you want to continue using this system you can do so by editing this file wp-content/plugins/fast-plugin/fast-plugin.php
Remove the following line
define('FAST_SINGLE_TRANSLATION_FILE', true);
FAST supports translating into multiple languages through the use of the popular WPML plugin. If you need a multilingual Wordpress website, and you desire a translated support page for each supported language, follow the steps described below:
You have to use Pretty Permalinks. In your admin panel go to Settings -> Permalinks and select the permalink structure of your choice.
The most common ones are Day and name and Month and name.
We also need to configure the way WPML displays the urls for different languages. Under WPML -> Languages set the 'Language URL format' to 'Different languages in directories'.
After you create and set the support page for your website's main language, you will have to create a translation of this page for each language you are planning to support. Each translated page has it's own ID. Write down the ID of each translated support page you create. You can see the ID of each page in your browser's address bar while editing the page. It is the number on the right of the 'post='
Having done the above, we now need to translate the 'Support Page' option that you previously set in step 1 in all the other languages. In your admin navigate to WPML -> String Translation, and In the 'Select strings within domain' option set 'admin_texts_fast_plugin_options'.
The fields that will appear below will allow you to translate the respective options into other languages. Options available for translation are:
Out of all the fields that appear here, the one we want to edit first is the one that sets the support page ID in different languages. Edit the option '[fast-plugin-options]support_page' and for each language insert the ID of the support page that you wrote down in the previous step.
Now you can add each translated support page to the respective language's menu through Appearance -> Menus.
Email piping allows you to use email to create and reply to tickets.
This is possible by setting up FAST to connect to an email account via IMAP. FAST will then periodically check this email account for any unread emails. If it finds any new emails that have not been read it will convert the contents of this email into either a new ticket or a reply to an existing ticket.
The first requirement will be to make sure you have PHP IMAP installed on your server.
You can check this by installing the PHP Info Plugin and check your PHP config in the Settings menu. You should see a IMAP section like this.
If you don't see this section you will need to install and enable PHP IMAP. Contact your hosting to find out how to do this, or if you have access to your server you can install it using command line.
For example in Ubuntu you would run
sudo apt-get install php-imap
If you aren't sure how to do this contact your hosting company.
In order to use email piping you will need an email account that supports IMAP. Using the details for your IMAP email do the following:
For some reason Office 365 emails use US-ASCII instead of UTF-8 so to get email piping to work with an office 365 email address you will need to do the following.
[ticket_id]
for this to work. See Add ticket ids section
New ticket [ticket_id] from [sender_name] for [product]
In order to test your email piping to see if it is working there is a section at the bottom of the Email Piping options page.
Now that you have configured email piping, you can create a contact form that will take advantage of it, and allow your users to submit tickets through a form. For this tutorial we will use the free and popular Contact Form 7 and we will create a form that will allow users to submit tickets.
Once the plugin is installed and activated, create a contact form. The contact form will need to look like the one pictured below:
Once your form is created, a blue bar similar to the one shown below will appear under the form's title. Copy the text that resides inside this bar and paste it in a page that you want your form to appear
Now your page should have your newly created contact form, which will look like this if you are using the default wordpress theme:
Now that the form is in our page, we just need to configure FAST to properly handle emails generated by this form:
And we are done! Now you have form that creates tickets handled by FAST.
There are a few gotchas I encountered when setting up IMAP for Google here are a few.
If you see the following errors
Can not authenticate to IMAP server: [AUTHENTICATIONFAILED] Invalid credentials (Failure)
Make sure you account is using a strong password, if you see the above error try changing your password to 50 random chars using secure password generator
Login to your gmail account
In order for WordPress to periodically check your email for new email FAST will use the WordPress cron job functionality.
Out of the box WordPress will be set up to check for any cron jobs that need to run every time the website is used.
But this could cause problems on low traffic sites, because someone has to visit the site before the job is triggered.
For example lets say you set FAST to check for emails every 10 minutes, but nobody visits your site for 1 hour. This means that FAST wont check your email for new tickets or replys for a whole hour.
But don't worry Follow this WordPress guide to setting up a cron schedule or this WooCommerce Guide if your server runs CPanel and this will make sure that emails are checked when you set them to be checked.
This feature allows Fast to periodically check for inactive tickets and close them automatically. In order to enable the auto-closing checker do the following:
Your FAST installation will now check for inactive tickets at midnight every day and close them. The periodic checks are handled using WordPress cron events.
Every time the scheduled checker runs, all tickets that
will be set to 'Closed' automatically.
Every time a check for ticket auto-closing is run, a report is generated. You can view this report in the Scheduled Maintenance --> Last Auto Close Results. The report contains information regarding the date the latest check took place, as well as the number of tickets that were closed.
'Next Scheduled Auto Close Check' describes when the next auto-close check will take place, and which tickets will be affected.
The plugin provides the option for one-off auto-closing checks. A one-off check can take place at any time and does not interfere with any scheduled checks. Schedule checks do not need to be enabled in order for the one-off check to take place. The same rules that govern scheduled checks apply here as well. To run a one-off check simply press the 'Close Old Tickets Now' labeled button in the Close old tickets now section of the Scheduled Mantenance options page.
As of FAST version 1.3.0 we have added the ability for FAST to work as your WordPress homepage. To set this up do the following:
As of FAST version 1.13.0 we have added the ability for FAST to be embeddable in any wordpress page through a shortcode. To embed FAST in your page do the following:
Using the page editor, insert the fast_embed shortcode in any part of your page's content as seen below
[fast_embed]
Fast will show a counter for the number of tickets that need your attention in the favicon.
To turn on analytics and start logging information about your support ticket activity do the following.
By default only users with a FAST Manager role will be able to see the analytics page. But this is configurable, to change the level of access do the following.
Fast will use the default avatar that you have set in the Settings -> Discussion page.
If you want something different than the default avatars provided by WordPress then we have made FAST work with the WP User Avatar Plugin.
If you want to allow customers to change their avatar from the profile page, then we have made FAST work with the WP User Avatar Plugin.
FAST is compatible with the GDPR filters that were added in WordPress 4.9.6. These allow you to handle customers requests for data and users requests for data deletion.
As of WordPress 4.9.6 there is a new option under the tools admin menu that allows you to handle any users requests for data export.
FAST will add all relevent customer ticket information to this export automatically.
As of WordPress 4.9.6 there is a new option under the tools admin menu that allows you to handle any users requests for data removal.
FAST will delete all relevent customer ticket information automatically.
You can add your own CSS rules to the frontend app in the advanced options.
Your rules will now show in your support pages.
Some users have asked if it is possible to use Categories instead of products, so we have added an option that allows you to rename products to whatever you like.
To allow developers to customize the frontend using javascript we have added some JS events that get triggered whilst your customers use the app.
Hooking into these events will allow you to make some changes to the page.
Event | Description |
---|---|
fastRouteChange | This event triggers on every url change in the app |
fastCreateTicket | This event triggers when a customer clicks the create ticket button |
Here is an example of how you can hook into these events using jQuery
jQuery(document).on('fastRouteChange', function(event, data) {
console.log('FAST changed route', event.detail);
});
Name | Arguments | Description |
---|---|---|
fast_filter_allowed_dashboard_pages | 1 | Takes an array of admin pages that fast customers are allowed to visit. Defaults to array('profile.php') |
fast_filter_dashboard_redirect_page | 1 | Sets the page that a fast customer is redirected to if they try to access an admin page. Defaults to 'profile.php' |
There is a known issue with WordFence when using FAST, to solve it do the following
Click Save Options at the bottom of the page
Thanks to CodinBit for this fix :)
FAST plugin uses the WordPress API to grab it's data from your WordPress site.
In order for this to function correctly you may need to make sure that you have your PHP error reporting set to not show notices & warnings.
Notices & warnings are a kind of message from PHP saying I don't think your code should be like that. It will work but it's not the best way.
The reason for this is that many plugins (including some of the top ones, WooCommerce I'm looking at you) sometimes ship with bad code that causes PHP to create a notice or warnings.
Here is what a notice / warning could look like
Notice: Undefined index
Warning: Invalid argument supplied for foreach()
Now the problem with these random warnings popping up is that it breaks the WordPress API and will stop you being able to log in, answer tickets, pretty much everything.
However the fix for this is very easy.
Solution 1 - Turn off notices in your php.ini file
If you have access to your php.ini file, open it up locate the error_reporting line and change it to
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING
This will turn off all warnings & notices
Or you could just turn off errors altogether (good for production sites)
display_errors = Off
Solution 2 - Turn off error_reporting in your wp-config.php file
If you don't have access to your php.ini file you can just add the following line to your wp-config.php file
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
Or turn off errors completely
error_reporting(0);
When you update to 1.2.0 follow these steps.
For all customers using FAST for Envato Support due to a new option you will need to add Envato button to your Login & Register Pages
This will add the login and register with envato buttons back to your login and register pages.
Version 1.10.0 simplifies translations by concentrating all translations into one file located in the languages folder.
If you want to continue using the old 2 file system there is a one line change you can make to do this see LegacyTranslation Mode