Support

Home Forums Event Espresso Premium Duplicate Event including ACF?

Duplicate Event including ACF?

Posted: May 21, 2020 at 10:07 pm


web@the-collaborative.net

May 21, 2020 at 10:07 pm

Hey there! I’m trying to duplicate an event with ACF fields.

I found this: https://eventespresso.com/topic/hooking-into-the-private-function-_duplicate_event/

And generated this code:

function duplicate_custom_field($new_event, $orig_event) {
//duplicate custom field
$guest = get_post_meta($orig_event->ID(), ‘guest’, true);
if ($guest) {
update_post_meta($new_event->ID(), ‘guest’, $guest);
}

$class_information = get_post_meta($orig_event->ID(), ‘class_information’, true);
if ($class_information) {
update_post_meta($new_event->ID(), ‘class_information’, $class_information);
}

$previous_projects = get_post_meta($orig_event->ID(), ‘previous_projects’, true);
if ($previous_projects) {
update_post_meta($new_event->ID(), ‘previous_projects’, $previous_projects);
}

$additional_information = get_post_meta($orig_event->ID(), ‘additional_information’, true);
if ($additional_information) {
update_post_meta($new_event->ID(), ‘additional_information’, $additional_information);
}

$actor_call_time = get_post_meta($orig_event->ID(), ‘actor_call_time’, true);
if ($actor_call_time) {
update_post_meta($new_event->ID(), ‘actor_call_time’, $actor_call_time);
}

$scene_options = get_post_meta($orig_event->ID(), ‘scene_options’, true);
if ($scene_options) {
update_post_meta($new_event->ID(), ‘scene_options’, $scene_options);
}

}
add_action( 'AHEE__Extend_Events_Admin_Page___duplicate_event__after', 'duplicate_custom_field', 10, 2 );

But it doesn’t seem to work. Can you help me figure out what I’m missing please?

Thank you!


Tony

  • Support Staff

May 22, 2020 at 4:28 am

Hi there,

The forums are not ideal for posting blocks of code, small snippets of a few lines are ok, but the above has multiple formated ' and and , I have no idea if that’s from your code or the forum formatting so we recommend posting blocks of code to something like PasteBin and then posting the link here for us to view.

Other than the formatted quotes, the above code looks fine.

However, something to note is our models have a wrapper for get/update/add_post_meta which saves you haveing to pass the ID around makes it a little easier to follow.

For example:

$guest = get_post_meta($orig_event->ID(), 'guest', true);
if ($guest) {
    update_post_meta($new_event->ID(), 'guest', $guest);
}

Can be swapped out for:

$guest = $orig_event->get_post_meta('guest', true);
if ($guest) {
    $new_event->update_post_meta('guest', $guest);
}

The relevant ID’s are passed internally.

Have you tried adding something like:

var_dump($orig_event);
var_dump($new_event));

To the beginning of that callback to confirm you have both objects when duplicating?

You must be logged in to reply to this support post. Sign In or Register for an Account

Support forum for Event Espresso 3 and Event Espresso 4.
Documentation for EE3 and EE4
Documentation for Event Espresso 3 Documentation for Event Espresso 4

Status: publish

Updated by  Tony 5 months ago ago

Topic Tags

Notifications

This topic is: not resolved
Do NOT follow this link or you will be banned from the site!
[gravityform id=80 title=false description=false ajax=false]
<div class='gf_browser_unknown gform_wrapper' id='gform_wrapper_80' ><form method='post' enctype='multipart/form-data' id='gform_80' action='/topic/duplicate-event-including-acf/'> <div class='gform_body'><ul id='gform_fields_80' class='gform_fields top_label form_sublabel_below description_below'><li id='field_80_1' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_1' >First name<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_80_1' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li><li id='field_80_2' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_2' >Email address<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_2' id='input_80_2' type='email' value='' class='medium' aria-required="true" aria-invalid="false" /> </div></li><li id='field_80_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' >GDPR Agreement<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_80_3'><li class='gchoice_80_3_1'> <input name='input_3.1' type='checkbox' value='I consent to have this website store my submitted information so they can respond to my inquiry.' id='choice_80_3_1' /> <label for='choice_80_3_1' id='label_80_3_1'>I consent to have this website store my submitted information so they can respond to my inquiry.</label> </li></ul></div></li><li id='field_80_4' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_4' >Comments</label><div class='ginput_container'><input name='input_4' id='input_80_4' type='text' value='' autocomplete='off'/></div><div class='gfield_description' id='gfield_description_80_4'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_80' class='gform_button button' value='Download Now' onclick='if(window["gf_submitting_80"]){return false;} if( !jQuery("#gform_80")[0].checkValidity || jQuery("#gform_80")[0].checkValidity()){window["gf_submitting_80"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_80"]){return false;} if( !jQuery("#gform_80")[0].checkValidity || jQuery("#gform_80")[0].checkValidity()){window["gf_submitting_80"]=true;} jQuery("#gform_80").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_80' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='80' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_80' value='WyJbXSIsIjBiNjdjZjkyMDUzOWUxOWY5Y2NiZjIwMzM4YjA1Mjk4Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_80' id='gform_target_page_number_80' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_80' id='gform_source_page_number_80' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div><script type='text/javascript'> jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 80) {} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [80, 1]) } ); </script>
[i]
[i]