¿Hay alguna manera de que Wordpress me envíe un correo electrónico cada vez que se publique una página o publicación?
fuente
¿Hay alguna manera de que Wordpress me envíe un correo electrónico cada vez que se publique una página o publicación?
Hay algunos complementos que manejan las notificaciones por correo electrónico , pero todos parecen actuar como un servicio de suscripción para (todos) los usuarios de WordPress.
Para notificar solo a usted cuando se publica una publicación o página:
/**
* Send an email notification to the administrator when a post is published.
*
* @param string $new_status
* @param string $old_status
* @param object $post
*/
function wpse_19040_notify_admin_on_publish( $new_status, $old_status, $post ) {
if ( $new_status !== 'publish' || $old_status === 'publish' )
return;
if ( ! $post_type = get_post_type_object( $post->post_type ) )
return;
// Recipient, in this case the administrator email
$emailto = get_option( 'admin_email' );
// Email subject, "New {post_type_label}"
$subject = 'New ' . $post_type->labels->singular_name;
// Email body
$message = 'View it: ' . get_permalink( $post->ID ) . "\nEdit it: " . get_edit_post_link( $post->ID );
wp_mail( $emailto, $subject, $message );
}
add_action( 'transition_post_status', 'wpse_19040_notify_admin_on_publish', 10, 3 );
Puede colocar esto en su tema functions.php
o guardarlo como un complemento (que podría ser más apropiado, ya que no está exactamente relacionado con el "tema").
sha: responde a la pregunta aportando el conocimiento de que la solución publicada no funciona en todos los casos.
Después de 24 horas, puedo actualizar el conocimiento que aporté. La solución en esta ubicación (¿ Notificar al administrador cuando se edita la página? ) Funciona en el servidor donde no funciona la solución publicada anteriormente. Para citar del hilo con la solución que funciona mejor en los dos contextos que probé:
El script original de wpcodex funciona bien:
add_action( 'save_post', 'my_project_updated_send_email' );
function my_project_updated_send_email( $post_id ) {
//verify post is not a revision
if ( !wp_is_post_revision( $post_id ) ) {
$post_title = get_the_title( $post_id );
$post_url = get_permalink( $post_id );
$subject = 'A post has been updated';
$message = "A post has been updated on your website:\n\n";
$message .= "<a href='". $post_url. "'>" .$post_title. "</a>\n\n";
//send email to admin
wp_mail( get_option( 'admin_email' ), $subject, $message );
}
}
Claro, necesitará usar el gancho o ganchos de transición de estado de publicación apropiados y wp_mail()
.
Hay un complemento muy flexible llamado " Notificador de estado de publicación " disponible en el directorio de complementos de WordPress.
Puede definir sus propias reglas, cuando se debe enviar una notificación. Puede elegir el estado del destinatario, CC, CCO, antes y después. Y puede personalizar completamente el texto del cuerpo y el asunto (con marcadores de posición).
¡Funciona perfectamente para mí!
Si no desea hackear el archivo de funciones de su tema, utilice un complemento como este. Envía notificaciones al administrador cuando el colaborador envía una publicación para su revisión, y una notificación por correo electrónico al colaborador cuando se publica la publicación.
https://wordpress.org/plugins/wpsite-post-status-notifications/
fuente