get_post_meta всегда пуст, когда я использую wp_mail

Я сделал этот крючок действия, который будет отправлять электронное письмо пользователям каждый раз, когда будет создано новое сообщение в настраиваемых типах сообщений.

function email_members($post_id) { global $wpdb; $usersarray = $wpdb->get_col("SELECT user_email FROM wp_users"); $users = implode(",", $usersarray); if( ( $_POST['post_status'] == 'publish' ) && ( $_POST['original_post_status'] != 'publish' ) ) { $subject = 'Event Reminder'; $post_url = get_permalink($post_id); $post_title = get_the_title($post_id); $event_date = get_post_meta( $post_id, 'ch_event_date', true ); $message = "APAC Ministries Event Reminder for: ".$post_title."\n\n"; $message .= "Date: ".$event_date; wp_mail($users, $subject, $message ); } } add_action('publish_th_events', 'email_members'); 

Однако $event_date всегда пуст. Я попытался запустить этот код в другом файле, и он работает:

 global $post; $test = get_post_meta($post->ID, 'ch_event_date', true); echo $test; 

Я не могу использовать get_post_meta в wp_mail.

Любые альтернативные решения приветствуются. Благодаря!