Well, as it seems there is no easy way to do it, I have finally modified a couple of files. In case of others interest, here it is what I have done:
1) Let’s assume you have created an event attribute through EM settings. Let’s call it “attribute1”.
2) Open classes/em-event.php.
3) Add the following line below Field names area (around line 60). This will declare the attribute as a property for event class.
var $event_attribute1;
4) Add the following line inside get_post() function (around line 320). You will find a similar line for “event_name”. Just put them together. This will request the value provided in the public form.
$this->event_attribute1 = !empty($_POST['em_attributes']['attribute1'] ) ? wp_kses($_POST['em_attributes']['attribute1'], array()):'';
5) Add the following code inside validate() function (around line 450). As mentioned, you will find a similar piece of code for “event_name”. This will check if the value is non-empty.
if( empty($this->event_attribute1) ){
$validate_post = false;
$this->add_error( __('attribute1').__(" is required.", "dbem") );
}
6) Open templates/forms/event-editor.php.
7) Add the following code beside the input field in the event attributes section (around line 165). This will place the asterisk sign, showing to the user it is a required field.
<?php echo $name == 'attribute1' ? $required : ''; ?>
8) You’re done.
I feel this might not be the better way of achivieng this goal, so I will listen to your suggestions.
Jaume