Custom fields
Last updated
Last updated
Using AcyMailing Enterprise (this feature has been added to AcyMailing 1.2.0), you can add extra fields to your subscription form, to the user profile on the front-end and on the back-end.
You will then be able to filter your users based on these fields or include these fields in a Newsletter.
You will also be able to import users with those fields and export the extra fields as well.
This system should meet most of your needs and enable you to create personal subscription form.
If you want to personalize more your subscription form, you can still integrate AcyMailing with a Form component using the subscription via URL.
Log in on the back-end and access the AcyMailing Component
Click on the menu Configuration -> Custom Fields to manage your fields
You will be redirected to the custom fields area where you should see three fields by default : name, email and html (which are the fields used to display the name, email and receive html/text option)
Extra fields
Click on the button "New" to add a new field
New field
We will create a phone number field so that users may enter their phone number to be contacted
Field phone
This field is a "Phone number" input so we selected the Field type "Phone".
We don't want this field to be required, users may subscribe without entering their phone number
We want to publish this field and display it on the front-end profile and on the back-end profile
Click on the button "Apply", the field will be saved and you will now see how the field will be displayed on the preview area.
Once saved, you won't be able to change the column name of your field. You can still change its Label or any other information.
Phone preview
We will now add a Gender field as our goal is to include in our Newsletter "Hello Mr John..."
Title field
The Gender field is a single Drop-down.
We will make it a require field so if the user didn't select any value, an error message will be displayed
We add a series of values (the first option has a title but no value so that if this option is selected, which is the case by default, the form won't be submitted as it's a required field)
We click on the "Apply" button to check how the field looks like.
Title field preview
We will now create an information field. We will nevertheless make sure this field is published but only displayed on the back-end as our goal is simply to add information about the user if we contact him.
Extra fields Info
You should now see your three new fields on the Fields interface and you can change the ordering of your fields to meet your needs.
All extra fields
We didn't want to display the default field receive Text/HTML on our front-end interface so we unpublished it as you can not delete a core field.
Since Acymailing 4.9.0, you can create a new kind of field: Category. This field type allows you to regroup other fields in a category.
You need first to create your category field, then you will have to assign it in each field you want to put inside this category.
Category choice
You will see the category regrouping the fields you chose. This category appear in the subscriber profile front and back-end, in the subscription form and in the Acymailing module if in tableless mode. The category will be displayed according to its order for the same level of fields.
Display of a category
You can choose where to display your fields, either in the field edition or directly in the field listing.
Display location
Front-end:
Form: display your field on the Acymailing subscription form on the front-end (created via the menu type "Subscribe/Modify your subscription")
Profile: display your field on the Acymailing user profile accessible from the front-end user management
Listing: display your field on the user listing on front-end
J! Registration: display your field on the Joomla user registration form
J! User profile: display your field on the Joomla user profile
Display Filter: display this field as a filter in the front-end user management
Back-end:
Profile: display your field on the Acymailing user profile
Listing: display your field on the user listing
J! User Profile: display your field on the Joomla user profile
Display Filter: display this field as a filter in the user listing on back-end
Our fields are now added and the published fields will be displayed on the User back-end profile if you selected so.
The Core fields will be always displayed on the back-end profile even if they are unpublished.
There is no check on the fields on the back-end so you can really add any value you want and even leave the required fields empty.
Backend profile
Based on the options you selected, the fields will be added or not to the user profile on the front-end.
This profile can be accessible when the user clicks on the link "Modify your subscription" in the Newsletter or if you display this page to subscribe your users.
If you only use this page to modify the subscription of the user, you can even remove the e-mail field to not give the possibility to your users to modify their e-mail address.
Custom Fields front-end
The same way, you can also modify your Back-end User listing to display the information you want.
The published fields with the option "Back-end Listing" enabled will be displayed on the AcyMailing User listing.
You will be able to search in the fields and order them the way you want.
user listing
You probably realized that there is no option on the field interface to add the field on the AcyMailing module. We didn't add it to our interface as you can duplicate the AcyMailing module and each module will be independent so we took the decision to add the field selection on the module parameters themselves.
Log in on the back-end and access the Joomla Module manager
Module Manager
Edit your AcyMailing module
AcyMailing module
You will find a parameter "Displayed fields".
Field selection module
Click on the button "Select" to display all your of available fields and select the ones you want to include in your module
Fields selection
Select the fields you want to add to your module and then click on the "Apply" button.
Save your module to see the new fields on your module.
Module display
You can off course add any other field and display them the way you want (text outside the field, inside the field...)
You can display the extra fields you created on your Joomla registration page but also on the Virtuemart, Hikashop, CCUsers, AlphaRegistration, Tienda, redShop, ExtendedReg...
You can select which field to display on your registration form directly on the Custom fields listing by enabling the "J! Registration" parameter.
Custom fields listing
You can also do this while editing the custom field.
Edit a custom field
Go back on your registration form to see the fields.
If you want to add some CSS, access the AcyMailing configuration page, tab plugins and edit the AcyMailing : (auto)Subscribe during Joomla registration plugin. Then you can add some CSS on the Custom CSS area if needed.
Registration field example
You can display some of your extra fields as filters on your subscribers listing page, either on the Front-end or on the Back-end.
This functionality is only available for fields of type "Radio", "Checkbox", "Simple Dropdown", "Multiple Dropdown", "Date" and "Birthday". Note that if there are a lot of possibilities for the "Date" and "Birthday" fields, Acy will display only the 100 first possible values.
Custom fields as filter
Here is an example of field filtering the subscribers in the Back-end subscribers listing:
Filter field Back-end
The filter will be displayed the same way in the Front-end.
Since Acymailing 4.9.0, you can display a field depending on the value of one or several other fields. You can only check the value of text, textarea, radio, single dropdown, phone and birthday type fields.
You can add as many conditions as you want choosing the relation (And / Or) to make another condition appear.
Conditional display
When a field is used in a conditional display, the field using it will be listed so you can easily know where it is used. You can directly go edit the field by clicking on its name. You won't be able to delete the field either if it is used in a conditional display. A warning message will remind you of the related fields.
Conditional display used in
You can choose whether you want a field to be editable or not on user creation and user modification on the front end.
Limiting edition
Since Acymailing 4.9.0, you can set which Joomla group is allowed to access a field on the front-end.
ACL
If you create a custom field using the type Radio, CheckBoxes or Dropdown, you can see some statistics about it if access your custom field.
Custom Fields Statistics
To create a country field, first create a new field in AcyMailing.
Then access your database (using phpMyAdmin for example), select the table "#__acymailing_fields" and edit the field you just created.
In the textarea "value", copy paste the following code:
To create a US States field, first create a new field in AcyMailing.
Then access your database (using phpMyAdmin for example), select the table "#__acymailing_fields" and edit the field you just created.
In the textarea "value", copy paste the following code:
We wanted to thanks Jonathan for the list of countries and states.
To create a provinces field, first create a new field in AcyMailing.
Then access your database (using phpMyAdmin for example), select the table "#__acymailing_fields" and edit the field you just created.
In the textarea "value", copy paste the following code:
Thank you Mr BlackBoot !
To create a states field, first create a new field in AcyMailing.
Then access your database (using phpMyAdmin for example), select the table "#__acymailing_fields" and edit the field you just created.
In the textarea "value", copy paste the following code:
Thanks to Bento for providing us with this list.
To create a states field, first create a new field in AcyMailing.
Then access your database (using phpMyAdmin for example), select the table "#__acymailing_fields" and edit the field you just created.
In the textarea "value", copy paste the following code:
Thank you Geoff !
You can create as many custom fields as you want. You can delete some of them or create new ones when you want...
If the label of the field is in upper-case, then AcyMailing will look for a translation in the language files.
Our language files already contain some translations so you can directly use:
FIRSTNAMECAPTION (First Name)
LASTNAMECAPTION (Last Name)
CITYCAPTION (City)
COUNTRYCAPTION (Country)
PHONECAPTION (Phone Number)
ADDRESSCAPTION (Address)
BIRTHDAYCAPTION (Birthday)
To translate your own fields, you should:
Write the label of your field as uppercase (otherwise Acy won't look at your language file to translated it)
Add your translation in the AcyMailing language file that you can edit from the Acy configuration page. There is a special area there to add your custom translations so they won't be deleted if you update/upgrade.
The same way you can translate each option of your dropdown/radio/checkboxes fields:
For example a "gender" field with the values: Value / Title / GENDER_SELECT male / GENDER_MALE female / GENDER FEMALE
Write these translations in your AcyMailing language file via the Acy configuration page: GENDER="Gender" GENDER_SELECT="Please select..." GENDER_MALE="Mr" GENDER_FEMALE="Ms" CONFIRM_MSG_HELLO_MALE="Dear Mr" CONFIRM_MSG_HELLO_FEMALE="Dear Ms" CONFIRM_MSG_HELLO_SELECT="Dear"
And then in your email you can use the following if-condition-syntax: {if:gender=male}{trans:CONFIRM_MSG_HELLO_MALE} {subtag:title} {subtag:nachname}{/if} {if:gender=female}{trans:CONFIRM_MSG_HELLO_FEMALE} {subtag:title} {subtag:nachname}{/if} {if:gender=select}{trans:CONFIRM_MSG_HELLO_SELECT} {subtag:title} {subtag:nachname}{/if}
By default, the notification message contains the user name, its e-mail address and its IP. You can add other fields to that message by editing it via the AcyMailing configuration page and add the tag:
{user:COLUMN_NAME}
So for example if you created a custom field called "country", you should insert the tag {user:country} in the notification message.
Do not use {subtag:country} otherwise the receiver information will be displayed, not the one from your newly created user.