Send contributors the confirmation email when created by the ajax endpoint

This will only send the email for published pledges.
This commit is contained in:
Kelly Dwan 2019-11-14 14:16:39 -05:00
parent f7a253027c
commit d0dc2f0a14
No known key found for this signature in database
GPG key ID: 8BA5575F3D11575D
2 changed files with 10 additions and 2 deletions

View file

@ -135,7 +135,7 @@ function populate_list_table_columns( $column, $post_id ) {
* @param int $pledge_id The post ID of the pledge. * @param int $pledge_id The post ID of the pledge.
* @param array $contributors Array of contributor wporg usernames. * @param array $contributors Array of contributor wporg usernames.
* *
* @return void * @return array List of the new contributor post IDs, mapped from username => ID.
*/ */
function add_pledge_contributors( $pledge_id, $contributors ) { function add_pledge_contributors( $pledge_id, $contributors ) {
$results = array(); $results = array();
@ -162,6 +162,8 @@ function add_pledge_contributors( $pledge_id, $contributors ) {
* or an error code on failure. * or an error code on failure.
*/ */
do_action( FiveForTheFuture\PREFIX . '_add_pledge_contributors', $pledge_id, $contributors, $results ); do_action( FiveForTheFuture\PREFIX . '_add_pledge_contributors', $pledge_id, $contributors, $results );
return $results;
} }
/** /**

View file

@ -39,6 +39,7 @@ function handler() {
break; break;
case 'add-contributor': case 'add-contributor':
$pledge = get_post( $pledge_id );
$new_contributors = PledgeForm\parse_contributors( $_POST['contributors'] ); $new_contributors = PledgeForm\parse_contributors( $_POST['contributors'] );
if ( is_wp_error( $new_contributors ) ) { if ( is_wp_error( $new_contributors ) ) {
wp_die( wp_json_encode( [ wp_die( wp_json_encode( [
@ -46,7 +47,12 @@ function handler() {
'message' => $new_contributors->get_error_message(), 'message' => $new_contributors->get_error_message(),
] ) ); ] ) );
} }
Contributor\add_pledge_contributors( $pledge_id, $new_contributors ); $contributor_ids = Contributor\add_pledge_contributors( $pledge_id, $new_contributors );
if ( 'publish' === $pledge->post_status ) {
foreach ( $contributor_ids as $contributor_id ) {
PledgeForm\send_contributor_confirmation_emails( $pledge_id, $contributor_id );
}
}
// Fetch all contributors, now that the new ones have been added. // Fetch all contributors, now that the new ones have been added.
$contributors = Contributor\get_pledge_contributors_data( $pledge_id ); $contributors = Contributor\get_pledge_contributors_data( $pledge_id );