mirror of
https://github.com/WordPress/five-for-the-future.git
synced 2025-04-22 02:53:43 +03:00
Manage Pledge: Notify removed contributors (#109)
If a contributor is removed from a pledge, they should be notified of the change. This will send an email to any confirmed contributors letting them know.
This commit is contained in:
parent
b1cbcdb01b
commit
183f7a95bc
|
@ -2,7 +2,7 @@
|
||||||
namespace WordPressDotOrg\FiveForTheFuture\Contributor;
|
namespace WordPressDotOrg\FiveForTheFuture\Contributor;
|
||||||
|
|
||||||
use WordPressDotOrg\FiveForTheFuture;
|
use WordPressDotOrg\FiveForTheFuture;
|
||||||
use WordPressDotOrg\FiveForTheFuture\{ Pledge, XProfile };
|
use WordPressDotOrg\FiveForTheFuture\{ Email, Pledge, XProfile };
|
||||||
use WP_Error, WP_Post, WP_User;
|
use WP_Error, WP_Post, WP_User;
|
||||||
|
|
||||||
defined( 'WPINC' ) || die();
|
defined( 'WPINC' ) || die();
|
||||||
|
@ -177,8 +177,13 @@ function add_pledge_contributors( $pledge_id, $contributors ) {
|
||||||
* @return false|WP_Post|null
|
* @return false|WP_Post|null
|
||||||
*/
|
*/
|
||||||
function remove_contributor( $contributor_post_id ) {
|
function remove_contributor( $contributor_post_id ) {
|
||||||
$pledge_id = get_post( $contributor_post_id )->post_parent;
|
$contributor = get_post( $contributor_post_id );
|
||||||
$result = wp_trash_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.
|
* Action: Fires when a contributor is removed from a pledge.
|
||||||
|
@ -326,6 +331,7 @@ function get_contributor_user_ids( $contributor_posts ) {
|
||||||
";
|
";
|
||||||
|
|
||||||
$user_ids = $wpdb->get_col(
|
$user_ids = $wpdb->get_col(
|
||||||
|
// phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- phpcs is confused by the variable, but it does correctly prepare.
|
||||||
$wpdb->prepare( $query, $usernames )
|
$wpdb->prepare( $query, $usernames )
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -115,11 +115,29 @@ 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.";
|
"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_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} Five for the Future pledge";
|
||||||
|
$message = "Howdy {$contributor->post_title},\n\n";
|
||||||
|
$message .= sprintf(
|
||||||
|
'This email is to notify you that your WordPress.org contributor profile is no longer linked to %1$s’s Five for the Future pledge. If this is unexpected news, it’s best to reach out directly to %1$s with questions. Have a great day!',
|
||||||
|
$pledge->post_title
|
||||||
|
);
|
||||||
|
|
||||||
|
$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.
|
* Email the pledge admin a temporary link they can use to manage their pledge.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue