I have a method connected to save_post action, WPML is being used as a translation plugin, I am trying to find a way that once a translation is added, and published is clicked and save_post method is triggered to know the ID of the original Post.
So far I have found that this can only be done when the post is already published and an Update is triggered. For this the method icl_object_id($translated_post_id, 'post', false, 'en' -> English is the language the original post will always be created in);
See comment MSG to see the above in context.
function my_project_updated_send_email( $post_id, $post, $update ){
if ( 'publish' == get_post_status( $post_id ) && 'events' == get_post_type($post)) {
if(ICL_LANGUAGE_CODE == 'en'){
// Shortened - Everything works fine
}elseif (ICL_LANGUAGE_CODE == 'it'){
//Get English Language Post ID
$id = icl_object_id($post_id,'post',false,'en');
//MSG: $id returns empty on publish, but returns fine on update
$event_id = get_field('event_id', $id);
if($event_id == ""){
// Shortened - Everything works fine
}
}
}
}
add_action( 'save_post', 'my_project_updated_send_email', 10, 3);