Wordpress Event Organiser plugin


Event Organiser
https://wordpress.org/plugins/event-organiser/
for documentation here
Get event extra data
 $event_data = eo_get_by_postid($event_post->ID);
How to add a new field click


Step 1:
write field html in around line 130
wp-content\plugins\event-organiser\event-organiser-edit.php

Example
<tr>
<td class="eo-label">Price</td>
<td>
$<input type="text" name="eo_input[EventPrice]" value="<?php echo $EventPrice; ?>">
</td>
</tr>

In function eventorganiser_details_save(){
$event_data = array(
'start' => $start,
'end' => $end,
'EventPrice' => $raw_data['EventPrice'],
'all_day' => $all_day,
'schedule' => $schedule,
'frequency' => (int) $raw_data['event_frequency'],
'schedule_last' => $schedule_last,
'schedule_meta' => $schedule_meta,
'occurs_by' => $occurs_by,
'include' => $in_ex['include'],
'exclude' => $in_ex['exclude'],
);

}
update the $event_data variable before $response = eo_update_event( $post_id, $event_data );

step 2:
wp-content\plugins\event-organiser\includes\event.php

update the function
function eo_update_event( $post_id, $event_data = array(), $post_data = array() ){

$event_keys = array_flip( array( 'start', 'end', 'EventPrice', 'schedule', 'schedule_meta', 'frequency',
'all_day', 'schedule_last', 'include', 'exclude', 'occurs_by', 'number_occurrences' ) );
}

function eo_insert_event( $post_data = array(), $event_data = array() ){

$event_keys = array_flip( array( 'start', 'end', 'EventPrice', 'schedule', 'schedule_meta', 'frequency',
'all_day', 'schedule_last', 'include', 'exclude', 'occurs_by', 'number_occurrences' ) );

}

Go to function and update $event_defaults and $_event_data
function _eventorganiser_generate_occurrences( $event_data=array() ){

$event_defaults = array(
'start'=>'',
'end'=>'',
'EventPrice'=>0,
'all_day'=>0,
'schedule'=>'once',
'schedule_meta'=>'',
'frequency'=>1,
'schedule_last'=>'',
'number_occurrences' => 0,
'exclude'=>array(),
'include'=>array(),
);

$_event_data = array(
'start'=>$start,
'end'=>$end,
'EventPrice'=>$event_data['EventPrice'],
'all_day'=>$all_day,
'schedule'=>$schedule,
'schedule_meta'=>$schedule_meta,
'frequency'=>$frequency,
'schedule_start'=>$schedule_start,
'schedule_last'=>$schedule_last,
'exclude'=>$exclude,
'include'=>$include,
'occurrences'=>$occurrences
);
}

after that go to function and update $occurrence_input variable for insert and update also

function  _eventorganiser_insert_occurrences( $post_id, $event_data ){

$occurrence_input =array(
'post_id'          => $post_id,
'StartDate'        => $occurrence->format('Y-m-d'),
'StartTime'        => $occurrence->format('H:i:s'),
'EndDate'          => $occurrence_end->format('Y-m-d'),
'FinishTime'       => $end->format('H:i:s'),
                'EventPrice'       => $event_data['EventPrice'],
'event_occurrence' => $counter,
);

}

Column Display in listing 
wp-content\plugins\event-organiser\event-organiser-manage.php