mirror of
https://github.com/WordPress/five-for-the-future.git
synced 2025-07-04 18:05:45 +03:00
Trigger an email on user-initiated pledge deactivation
This commit is contained in:
parent
7024cf3b2e
commit
dbe5868a41
3 changed files with 49 additions and 11 deletions
|
@ -154,3 +154,25 @@ function send_manage_pledge_link( $pledge_id ) {
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Email pledge manager to notify that the pledge has been removed.
|
||||||
|
*
|
||||||
|
* @param WP_Post $pledge The pledge object, used to add the title now that the pledge itself has been deleted.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
function send_pledge_deactivation_email( $pledge ) {
|
||||||
|
$message = sprintf(
|
||||||
|
"Your organization, %s, has been removed from the Five for the Future listing.\n\n" .
|
||||||
|
'Please reply to this email if this was a mistake.',
|
||||||
|
$pledge->post_title
|
||||||
|
);
|
||||||
|
|
||||||
|
return send_email(
|
||||||
|
$pledge->{'5ftf_org-pledge-email'},
|
||||||
|
'Pledge removed from Five for the Future',
|
||||||
|
$message,
|
||||||
|
$pledge->ID
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
@ -258,13 +258,7 @@ function process_form_remove( $pledge_id, $auth_token ) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = wp_update_post(
|
$result = Pledge\deactivate( $pledge_id, true );
|
||||||
array(
|
|
||||||
'ID' => $pledge_id,
|
|
||||||
'post_status' => Pledge\DEACTIVE_STATUS,
|
|
||||||
),
|
|
||||||
true // Return a WP_Error.
|
|
||||||
);
|
|
||||||
|
|
||||||
if ( is_wp_error( $result ) ) {
|
if ( is_wp_error( $result ) ) {
|
||||||
return $result;
|
return $result;
|
||||||
|
|
|
@ -205,10 +205,7 @@ function handle_activation_action( $post_id ) {
|
||||||
$sendback = remove_query_arg( [ 'deactivated', 'reactivated' ], $sendback );
|
$sendback = remove_query_arg( [ 'deactivated', 'reactivated' ], $sendback );
|
||||||
|
|
||||||
if ( 'deactivate' === $action ) {
|
if ( 'deactivate' === $action ) {
|
||||||
wp_update_post( array(
|
deactivate( $post_id );
|
||||||
'ID' => $post_id,
|
|
||||||
'post_status' => DEACTIVE_STATUS,
|
|
||||||
) );
|
|
||||||
wp_redirect( add_query_arg( 'deactivated', 1, $sendback ) );
|
wp_redirect( add_query_arg( 'deactivated', 1, $sendback ) );
|
||||||
exit();
|
exit();
|
||||||
} else {
|
} else {
|
||||||
|
@ -355,6 +352,31 @@ function create_new_pledge( $name ) {
|
||||||
return $pledge_id;
|
return $pledge_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove a pledge from view by setting its status to "deactivated".
|
||||||
|
*
|
||||||
|
* @param int $pledge_id The pledge to deactivate.
|
||||||
|
* @param bool $notify Whether the pledge admin should be notified of the deactivation.
|
||||||
|
*
|
||||||
|
* @return int|WP_Error Post ID on success. Otherwise WP_Error.
|
||||||
|
*/
|
||||||
|
function deactivate( $pledge_id, $notify = false ) {
|
||||||
|
$pledge = get_post( $pledge_id );
|
||||||
|
$result = wp_update_post(
|
||||||
|
array(
|
||||||
|
'ID' => $pledge_id,
|
||||||
|
'post_status' => DEACTIVE_STATUS,
|
||||||
|
),
|
||||||
|
true // Return a WP_Error.
|
||||||
|
);
|
||||||
|
|
||||||
|
if ( $notify && ! is_wp_error( $result ) ) {
|
||||||
|
Email\send_pledge_deactivation_email( $pledge );
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filter query for archive & search pages to ensure we're only showing the expected data.
|
* Filter query for archive & search pages to ensure we're only showing the expected data.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue