wp_mail sendet alten Inhalt aus dem Post

Ich habe eine wp_mail-function, die jedes Mal, wenn ein Beitrag gepostet oder aktualisiert wird, E-Mails versendet, der Inhalt, der gesendet wird, ist jedoch immer ein Post dahinter. Wenn ich also den Inhalt aktualisiere, sendet die E-Mail den vorherigen Inhalt vor dem Update. Ich bin mir nicht sicher, wie ich das beheben soll. Ich schätze jede Hilfe, die Sie geben können, danke.

function send_media_emails($post_id){ if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return; if(get_post_status($post_id) == 'draft' or get_post_status($post_id) == 'pending' or get_post_status($post_id) == 'trash') return; $to = 'email@email.com'; $subject = 'My Email Subject'; $post = get_post(); $body = '

'.$post->post_title.'

'; if(is_category){ $category = get_the_category(); $body .= '

Reason for Closure: '.$category[0]->cat_name .'

'; } $body .= '

This Cancellation/Delay was posted on '.$post->post_date.'

'; $body .= '

'.$post->post_content.'

'; $body .= '

View this posting at ' . get_permalink($post_id) . ' or

'; if(did_action('post_updated') == 1){ wp_mail($to, $subject, $body); } } add_action('post_updated', 'send_media_emails');

Solutions Collecting From Web of "wp_mail sendet alten Inhalt aus dem Post"

Es gibt ein paar Dinge, die Sie hier tun müssen, Sie müssen Ihre add_action ändern, um add_action zu akzeptieren, und Sie müssen außerdem angeben, ob die Daten vor dem Update oder die Daten nach dem Update verwendet werden sollen

Versuchen Sie etwas wie folgt:

 function send_media_emails($post_id, $post_after){ if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return; if(get_post_status($post_id) == 'draft' or get_post_status($post_id) == 'pending' or get_post_status($post_id) == 'trash') return; $to = 'email@email.com'; $subject = 'My Email Subject'; $post = $post_after; // NOTE We're using the after post update data here $body = '

'.$post->post_title.'

'; if(is_category){ $category = get_the_category(); $body .= '

Reason for Closure: '.$category[0]->cat_name .'

'; } $body .= '

This Cancellation/Delay was posted on '.$post->post_date.'

'; $body .= '

'.$post->post_content.'

'; $body .= '

View this posting at ' . get_permalink($post_id) . ' or

'; if(did_action('post_updated') == 1){ wp_mail($to, $subject, $body); } } add_action('post_updated', 'send_media_emails', 10, 2); // NOTE we've added 2 arguments to be accepted and also a priority of 10

Weitere Informationen zu den add_action Argumenten finden Sie hier, und Sie können hier ein Beispiel für die post_updated und post_updated Aktion post_updated sehen