- Get Started
- User Guide
- How to
- ** How to use event_type category to do more
- How to Activate EventON
- How To Allow Users to Submit Events and Create an Events Listing Page
- How to apply a patch fix
- How to Bulk Update Language Translations Using the Import/Export Tool
- How to cancel addon subscription before auto renew
- How to Deactivate EventON Addon Licenses
- How To Display or Hide the Live Now Icon
- How to Enable Auto-updates for EventON
- How to find your EventON license key
- How to Fix a Broken Sidebar Caused by the EventON Widget
- How To Hide Blank Rows On the Calendar EventTop
- How To Set Up and Use the Filter Bar on Calendars
- How to Set Up Health Guidelines for EventON and Extend It
- How to Setup & Use Custom Fields for Events
- How to setup & use multi data types
- How to Setup Basic Paypal for Events
- How to show past events
- How to show your calendar on external sites using an iFrame
- How To Turn on Sort Options On Your Calendar
- How To Upgrade Your EventON Addon License
- How to Use Hashtags to Link to Event Sections
- How to Use Single Event Data Values
- How to Use the EventCard Designer
- How To Use the EventON Shortcode Executor(ESE) Widget
- How To Use The EventTop Designer
- How To Use the ICS Import Tool
- How to Use Virtual Visible Event End Time for Events with Limited Visibility but Extended Durations
- Using an SMTP Mail Plugin To Solve Email Delivery Issues in EventON
- General
- Basic System Requirements for EventON
- Best Practices Before Doing an Addon Update
- How to Delete Old Events from WordPress Trash Automatically
- How To Upgrade From Lite to Full Version
- I am confused about Event Type categories
- What is the calendar filter
- Why am I unable to proceed with the checkout for addon purchases?
- Troubleshooting
- ** What to check if eventON is not working
- How to debug for PHP code errors
- How to debug Javascript interactive issues
- How to find if an issue is coming from eventON
- How to fix font awesome icons not working on your site
- How to fix style override issues
- Increasing the WordPress Memory Limit
- Troubleshooting Using the Health Check Plugin
- Why is Location Google Map grayed out or not displayed on Event Card
- Virtual Events
- Frequently Asked Questions
- Code snippets
- CODE: To add additional healthcare guidelines
- How to add new social share icons
- How to change “events” slug & rewrites
- How to customize the eventtop date format
- How to hook into eventTop
- How to increase event type category count
- How to load EventON scripts to a page
- How to show additional custom data in the eventCard
- CODEX
- Other
- Tricks and Tips
- ** Override CSS in your calendar
- How to create events that goes past midnight
- How to customize Events archive page
- How to customize location and organizer archive page
- How to override event colors with event type colors
- How to show featured image on eventTop
- How to show various information on the eventTop
- How to translate EventON with WPML on the front-end
- One solution for /events slug not working
- Various Creative Ways to Use Multi Data Types
- APIs
- Addons
- Action User
- ActionUser Paid Feature Events
- ActionUser Plus
- Advent Calendar
- Bookings
- Countdown
- CSV Importer
- DailyView
- Dynamic Pricing
- Event API
- Event Dynamic Pricing
- Event Lists
- Event Map
- Event Photos
- Event Reviewer
- Event Search
- Event Seats
- Event Slider
- Event Tickets
- Auto Complete Ticket Order
- Auto re-stocking refunded, cancelled or failed orders
- Changelog for Event Tickets
- CODE: How to send Emails as Bcc
- How to add additional data to confirmation email
- How to add additional fields at checkout
- How to add additional fields to download attendees CSV file
- How to customize ticket email template
- How to manage capacity separately for repeat events
- How to set up Event Tickets
- How to set up variable prices for Tickets
- How To Switch From WooCommerce Blocks to Shortcode-Based Cart & Checkout Pages
- Event Wishlist
- Filters Plus
- FullCal
- ICS Importer
- Include Anything
- Lists & Items
- Moon Data
- PDFer
- Polls
- QR Code
- Reminders
- Repeat Customizer
- RSS Feed
- RSVP Events
- RSVP Events Invitees
- RSVP Events Waitlist
- RSVP Points
- Single Events
- Speakers & Schedule
- Subscriber
- Sync Events
- Variations & Options
- Virtual Plus
- Weather
- WeeklyView
- YearlyView
- Policies
- Server Related
- Shortcode
- Translation & Languages
How to add additional fields to event submission form
Last Updated: February 21, 2025
IMPORTANT: All custom codes mentioned can be placed inside functions.php file in your theme.
This tutorial will take you through the steps you need to add additional fields to the Action User event submission form. This should help you allow your event submitters to submit additional event data fields that are not supported in the default form. You will require Action User addon version 2.0 and higher for these steps to work. Let’s go!
Please follow the steps discussed below:
Include additional fields in the Action User form fields section
add_filter('evoau_form_fields', 'evoautest_fields_to_form', 10, 1);
function evoautest_fields_to_form($array){
$array['evotest']=array('Test Fields', 'evotest', 'evotest','custom','');
return $array;
}
In the array, the field name we use “evotest” will be the identifier. Values inside the array are Field name, parameter, parameter, field type. You should see the newly added field when you head over to EventON > Action User > Form Fields:

// actionUser integration
add_action('evoau_frontform_evotest', 'evoautest_fields', 10, 6);
// Frontend showing fields and saving values
function evoautest_fields($field, $event_id, $default_val, $EPMV, $opt2, $lang){
$helper = new evo_helper();
echo "<div class='row evotest'><p>";
$evoau_test_value = ($EPMV && !empty($EPMV['evoau_test_value']) && $EPMV['evoau_test_value'][0]=='yes')? true: false;
echo $helper->html_yesnobtn(array(
'id'=>'evoau_test_value',
'input'=>true,
'label'=>evo_lang_get('evoAULtest_1', 'Test Input Field', $lang, $opt2),
'var'=> ($evoau_test_value?'yes':'no'),
'lang'=>$lang,
'afterstatement'=>'evoau_test_value_section'
));
echo "</p></div>";
}
// save the values to event post meta
add_action('evoau_save_formfields', 'evoautest_save_values', 10, 3);
function evoautest_save_values($field, $fn, $created_event_id){
if( $field =='evotest'){
// for each above fields
foreach(array(
'evoau_test_value',
) as $field){
if(!empty($_POST[$field]))
add_post_meta($created_event_id, $field, $_POST[$field]);
}
}
}
First action hook we echo the HTML fields for the additional field we created evotest. So we are going to collect yes or no value for “Test Input Field” which has a parameter name evoau_test_value I am using the evo_helper() class and using the html_yesnobtn() function to output a neatly styles yes/no field on event submission form. You can type your own custom HTML in here instead. Moreover you can add more than one fields inside evoautest_fields() function.
Next is where we save the values — from evoautest_save_values() function. You can see our input field evoau_test_value is inside the foreach array. If you decide to show more than one fields on event submission form be sure to add all the field parameter names inside this array so each of those values can be saved.
Also for the label text for our additional data field we are using evo_lang_get() function with a parameter name that is associated with that text string in EventON Language — which is explained below.
The above codes will show new yes no field in the event submission form.

Alternative File Upload Field
The below code snippet allows you to add an upload file field to the Action User submission field.

In this example, we are making it possible for users to upload PDF files with the event submission form. During the submission process, we upload the file into the WordPress system and save the attachment ID into event post meta (var name: pdf_file)
// actionUser intergration
add_action('evoau_frontform_evotest', 'evoautest_fields', 10, 6);
// Frontend showing fields and saving values
function evoautest_fields($field, $event_id, $default_val, $EPMV, $opt2, $lang){
?>
<div class='row evotest'><p>
<input type="file" name='evoau_pdf_file' accept="application/pdf"/>
<label for="">PDF File</label>
</p></div>
<?php
}
add_action('evoau_save_formfields', 'evoautest_save_values', 10, 3);
function evoautest_save_values($field, $fn, $created_event_id){
if( $field =='evotest'){
$__var_name = 'evoau_pdf_file';
if( !empty( $_FILES ) && !empty($_FILES[$__var_name]) && 'POST' == $_SERVER['REQUEST_METHOD'] ){
if ($_FILES[$__var_name]['error'] !== UPLOAD_ERR_OK) __return_false();
require_once (ABSPATH.'/wp-admin/includes/media.php');
require_once (ABSPATH.'/wp-admin/includes/file.php');
require_once (ABSPATH.'/wp-admin/includes/image.php');
$attachmentId = media_handle_upload($__var_name, $created_event_id);
unset($_FILES);
if($attachmentId)
update_post_meta($created_event_id, 'pdf_file', $attachmentId);
}
}
}
Optional Translation
This next part is optional. It is for including the label text we used in our additional field to show in EventON > Language settings so it can be translated easily.
add_filter('eventonau_language_fields', 'evoautest_language', 10, 1);
// language
function evoautest_language($array){
$newarray = array(
array('label'=>'ActionUser Test Fields','type'=>'subheader'),
array('label'=>'Test Input Field','name'=>'evoAULtest_1'),
array('type'=>'togend'),
);
return array_merge($array, $newarray);
}
Displaying the Field value in Event Edit Page
Below code shows you how to show the submitted value in backend event edit page.
add_filter('eventon_event_metaboxs', 'evoau_metabox', 10, 1);
function evoau_metabox($array){
// get the event post meta using field name
$content = get_post_meta( get_the_ID(), 'evoau_test_value', true);
// condition the value
$content = $content ? $content : __('No value','eventon');
// fill in the array values
$array[]=array(
'id'=>'evoau_test_value',
'name'=>__('Text Input Field','eventon'),
'variation'=>'customfield',
'hiddenVal'=>'',
'iconURL'=>'fa-pencil',
'iconPOS'=>'',
'type'=>'code',
'content'=> $content,
'slug'=>'evoau_test_value'
);
return $array;
}
This code should either show the submitted value or the default text if no value is submitted on the event edit page as below.

Did this article help you?