In meinem Thema möchte ich die Funktion erstellen, dass der Autor benachrichtigt wird, wenn ein Metabox-Wert geändert wird.
Eigentlich habe ich eine benutzerdefinierte Metabox, die eine bestimmte Ebene der Benutzerrolle (benutzerdefinierte Benutzerrolle) mit dem <option value="<the user's ID>"
durchläuft.
Ich konnte dies tun, indem ich den Autor mit dem folgenden Code änderte:
function check_values($post_ID, $post_after, $post_before){
if( $post_after->post_author !== $post_before->post_author ) {
$author = $post_after->post_author; /* Post author ID. */
$name = get_the_author_meta( 'display_name', $author );
$email = get_the_author_meta( 'user_email', $author );
$title = $post_after->post_title;
$permalink = get_permalink( $ID );
$edit = get_edit_post_link( $ID, '' );
$to[] = sprintf( '%s <%s>', $name, $email );
$subject = sprintf( 'Published: %s', $title );
$message = sprintf ('Congratulations, %s! Your article “%s” has been published.' . "\n\n", $name, $title );
$message .= sprintf( 'View: %s', $permalink );
$headers[] = '';
wp_mail( $to, $subject, $message, $headers );
}
}
add_action( 'post_updated', 'check_values', 10, 3 );
Ich habe versucht, get_post_meta( get_the_ID(), 'key_1', true );
hinzuzufügen, habe aber im Codex nach dem post_updated
gesucht. Ich konnte nicht feststellen, ob es möglich war, $post_before->$meta_key
oder $post_after->$meta_key
aufzurufen.
Gibt es eine Möglichkeit, dies zu tun? Oder ist es nur für eingebaute Werte?
Wie @SamuelElh Kommentar ist dies, wie ich es gelöst habe:
add_action('updated_post_meta', 'check_meta_change', 0, 4);
function check_meta_change($meta_id, $post_id, $meta_key, $meta_value) {
if( '<ENTER YOUR META KEY>' == $meta_key ) {
// do stuff
}
}