false, 'message' => __( "Sorry, you don't have permissions to do that.", 'wporg-5ftf' ), ) ) ); } switch ( $action ) { case 'resend-contributor-confirmation': $contribution = get_post( $contributor_id ); Email\send_contributor_confirmation_emails( $pledge_id, $contributor_id ); wp_die( wp_json_encode( array( 'success' => true, 'message' => sprintf( __( 'Confirmation email sent to %s.', 'wporg-5ftf' ), $contribution->post_title ), ) ) ); break; case 'remove-contributor': // Trash contributor. Contributor\remove_contributor( $contributor_id ); wp_die( wp_json_encode( array( 'success' => true, 'contributors' => Contributor\get_pledge_contributors_data( $pledge_id ), ) ) ); break; case 'add-contributor': $pledge = get_post( $pledge_id ); $new_contributors = Contributor\parse_contributors( $_POST['contributors'], $pledge->ID ); if ( is_wp_error( $new_contributors ) ) { wp_die( wp_json_encode( array( 'success' => false, 'message' => $new_contributors->get_error_message(), ) ) ); } $contributor_ids = Contributor\add_pledge_contributors( $pledge_id, $new_contributors ); if ( 'publish' === $pledge->post_status ) { foreach ( $contributor_ids as $contributor_id ) { Email\send_contributor_confirmation_emails( $pledge_id, $contributor_id ); } } // Fetch all contributors, now that the new ones have been added. $contributors = Contributor\get_pledge_contributors_data( $pledge_id ); wp_die( wp_json_encode( array( 'success' => true, 'contributors' => $contributors, ) ) ); break; } // No matching action, we can just exit. wp_die(); } /** * Handle the AJAX request for managing a pledge. * This responds to a request for a pledge manage link. */ function send_manage_email_handler() { check_ajax_referer( 'send-manage-email', '_ajax_nonce' ); $pledge_id = filter_input( INPUT_POST, 'pledge_id', FILTER_VALIDATE_INT ); $email = strtolower( filter_input( INPUT_POST, 'email', FILTER_VALIDATE_EMAIL ) ); $valid_email = strtolower( get_post( $pledge_id )->{ META_PREFIX . 'org-pledge-email' } ); if ( $valid_email && $valid_email === $email ) { $message_sent = Email\send_manage_pledge_link( $pledge_id ); if ( $message_sent ) { $result = array( 'success' => true, 'message' => __( 'Thanks! We’ve emailed you a link you can open in order to update your pledge.', 'wporg-5ftf' ), ); } else { $result = array( 'success' => false, 'message' => __( 'There was an error while trying to send the email.', 'wporg-5ftf' ), ); } } else { $error_message = sprintf( __( 'That’s not the address that we have for this pledge. If you don’t know the email associated with this pledge, please contact us for help.', 'wporg-5ftf' ), get_permalink( get_page_by_path( 'report' ) ) ); $result = array( 'success' => false, 'message' => $error_message, ); } wp_die( wp_json_encode( $result ) ); }