A simple CRM system that will collect customer data and build their profiles.
Here is a list of the plugin features.
- Collect customer data via the frontend form
- Form can be added anywhere via shortcode
[et-simple-crm-form]
- You can use multiple forms per page
- This form, when submitted, will save the submission as a private post as part of a custom post type called “Customer.”
- These posts can then be viewed, managed, tagged and categorized by the admin in the WordPress Dashboard.
- You can use two form styles: No styles to fit any theme design and styled form with the plugin default style.
- Form is optimized for the mobile usage
- Override form labels/titles/attributes via shortcode attributes
- Grunt commands to build and deploy the plugin (create the plugin .zip file for the production)
- Client side and server side check for the required fields values
- Check if the submitted email already exists in the DB, so we don't have doubled records for the same user
- Automatically fetch the user current time by the user IP and use it as a form submitted time
- Form ajax submit
- Customer records are viewable by the Administrator role only
- Edit Customer fields in the admin using the WP custom fields
- Plugin is translation ready. Already prepared .pot file
- If
WP_DEBUG_LOG
is enabled, then all errors will be logged to the file:wp-content/uploads/et-simple-crm/log.log
- Custom post type is added to record all form sumissions
- Custom taxonomies for tags and categories are added only for this post type. You can use them to tag and categorize the post type records.
- Name (required)
- Phone number (required)
- Email address (required)
- Desired budget (required)
- Message
You can override multiple form functionalities by adding the attributes into the shortcode. That will apply only to the form that this shortcode render, not all forms.
[et-simple-crm-form]
[et-simple-crm-form name="Name value" phone="0123456789" email="[email protected]" budget="10000" label_name="Name label override" message="Message text override" label_phone="Phone label override" label_email="Email label override" label_budget="Budget label override" label_message="Message label override" message_rows="20" message_cols="10" label_button="Button text override" maxlength_name="20" maxlength_phone="20" maxlength_email="20" maxlength_budget="20" maxlength_message="20" styled_form="1"]Message real value[/et-simple-crm-form]
Just add any of these attributes to the shortcode and pass the value you want to use instead of the default one:
name
- Override name value fieldphone
- Override phone value fieldemail
- Override email value fieldbudget
- Override budget value field (Numbers only without dot or comma)message
- Override textarea value. You can also use the shortcode$content
value between shortcodes opening and cosing tagslabel_name
- Override name field labellabel_phone
- Override phone field labellabel_email
- Override email field labellabel_budget
- Override budget field labellabel_message
- Override message field labelmessage_rows
- Set textarearows
attribute. May not be visible because of the element css rulesmessage_cols
- Set textareacols
attribute. May not be visible because of the element css ruleslabel_button
- Override submit button textmaxlength_name
- Set maximum number of characters for the name fieldmaxlength_phone
- Set maximum number of characters for the phone fieldmaxlength_email
- Set maximum number of characters for the email fieldmaxlength_budget
- Set maximum number of characters for the budget fieldmaxlength_message
- Set maximum number of characters for the message fieldstyled_form
- Set value here to 1 or 0. 1 to use the plugin form styles. 0 To leave form unstyled, so it can fit to the theme styles.
Just upload the file et-simple-crm.zip
from the plugin root to the WordPress website.
If you changed something in the codebase, please use the described process below to build the plugin et-simple-crm.zip
file.
You will need to have composer
installed on your system. Also, in order to build and test plugin,
you'll need to install its dev dependencies. We will assume node ($ npm install
) is
installed and npm
is added to system path.
composer install
Install this globally, and you'll have access to the grunt
command anywhere on your system.
You can also use the local grunt
installation
npm install -g grunt-cli
This command installs a package, and any packages that it depends on in the local node_modules
folder.
The package has a package-lock.json and the installation of
dependencies will be driven by that.
npm install
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt
Below is an overview of the available Grunt tasks that'll be useful in development.
Use those two commands to deploy and build the plugin .zip file the installation via WP plugins screen. The .zip file will be located in the plugin root folder.
grunt deploy
grunt build
Run this command to start the watch process. When you change any JS or SCSS file, it will automatically recompile the needed files.
grunt watch
Run this command to minify, compile, optimize and make all resources covered by grunt
production ready
grunt watch
To update plugin version, please modify these files:
package.json
et-simple-crm.php
Here you have version defined in the file WP header (PHP comment)
You have a few dynamic crated filters in src/Helpers/Config.php
to override some config values.
The PSM Fields library is licensed under the GPL v2 or later.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- 0.0.1 - 25.07.2020.
- initial version
- Write unit tests