From 7260c9b766b29a043171c29d10d098e0e54009dd Mon Sep 17 00:00:00 2001 From: Kelly Dwan Date: Fri, 22 Nov 2019 16:31:36 -0500 Subject: [PATCH] Manage Pledge: Notify removed contributors --- plugins/wporg-5ftf/includes/contributor.php | 11 ++++++++--- plugins/wporg-5ftf/includes/email.php | 16 +++++++++++++++- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/plugins/wporg-5ftf/includes/contributor.php b/plugins/wporg-5ftf/includes/contributor.php index 22c893d..74faccf 100644 --- a/plugins/wporg-5ftf/includes/contributor.php +++ b/plugins/wporg-5ftf/includes/contributor.php @@ -2,7 +2,7 @@ namespace WordPressDotOrg\FiveForTheFuture\Contributor; use WordPressDotOrg\FiveForTheFuture; -use WordPressDotOrg\FiveForTheFuture\{ Pledge, XProfile }; +use WordPressDotOrg\FiveForTheFuture\{ Email, Pledge, XProfile }; use WP_Error, WP_Post, WP_User; defined( 'WPINC' ) || die(); @@ -177,8 +177,13 @@ function add_pledge_contributors( $pledge_id, $contributors ) { * @return false|WP_Post|null */ function remove_contributor( $contributor_post_id ) { - $pledge_id = get_post( $contributor_post_id )->post_parent; - $result = wp_trash_post( $contributor_post_id ); + $contributor = get_post( $contributor_post_id ); + $pledge_id = $contributor->post_parent; + $result = wp_trash_post( $contributor_post_id ); + + if ( $result && 'publish' === $contributor->post_status ) { + Email\send_contributor_removed_email( $pledge_id, $contributor ); + } /** * Action: Fires when a contributor is removed from a pledge. diff --git a/plugins/wporg-5ftf/includes/email.php b/plugins/wporg-5ftf/includes/email.php index 1988a59..0e45fbe 100644 --- a/plugins/wporg-5ftf/includes/email.php +++ b/plugins/wporg-5ftf/includes/email.php @@ -115,11 +115,25 @@ function send_contributor_confirmation_emails( $pledge_id, $contributor_id = nul "If {$pledge->post_title} isn't sponsoring your contributions, then you can ignore this email, and you won't be listed on their pledge."; - $user = get_user_by( 'login', $contributor->post_title ); send_email( $user->user_email, $subject, $message, $pledge_id ); } } +/** + * Send the removed contributor an email to notify them after removal. + * + * @param int $pledge_id + * @param WP_Post $contributor + */ +function send_contributor_removed_email( $pledge_id, $contributor ) { + $pledge = get_post( $pledge_id ); + $subject = "Removed from {$pledge->post_title} sponsorship"; + $message = "Howdy\n\n{$pledge->post_title} has removed you from their pledge."; + + $user = get_user_by( 'login', $contributor->post_title ); + send_email( $user->user_email, $subject, $message, $pledge_id ); +} + /** * Email the pledge admin a temporary link they can use to manage their pledge. *