Pledge: Update copy for submitted and email confirmed messages

This commit is contained in:
Corey McKrill 2019-10-29 15:31:22 -07:00
parent 9f47f83ef4
commit f72ca12716
No known key found for this signature in database
GPG key ID: C2C0746F7BF17E38
3 changed files with 51 additions and 27 deletions

View file

@ -24,24 +24,26 @@ function render_form_new() {
$action = isset( $_GET['action'] ) ? filter_input( INPUT_GET, 'action' ) : filter_input( INPUT_POST, 'action' ); $action = isset( $_GET['action'] ) ? filter_input( INPUT_GET, 'action' ) : filter_input( INPUT_POST, 'action' );
$data = get_form_submission(); $data = get_form_submission();
$messages = []; $messages = [];
$pledge = null;
$complete = false; $complete = false;
$directory_url = get_permalink( get_page_by_path( 'pledges' ) ); $directory_url = get_permalink( get_page_by_path( 'pledges' ) );
$view = 'form-pledge-new.php'; $view = 'form-pledge-new.php';
if ( 'Submit Pledge' === $action ) { if ( 'Submit Pledge' === $action ) {
$processed = process_form_new(); $pledge_id = process_form_new();
if ( is_wp_error( $processed ) ) { if ( is_wp_error( $pledge_id ) ) {
$messages = array_merge( $messages, $processed->get_error_messages() ); $messages = array_merge( $messages, $pledge_id->get_error_messages() );
} elseif ( 'success' === $processed ) { } elseif ( is_int( $pledge_id ) ) {
$complete = true; $complete = true;
} }
} else if ( 'confirm_pledge_email' === $action ) { } elseif ( 'confirm_pledge_email' === $action ) {
$view = 'form-pledge-confirm-email.php'; $view = 'form-pledge-confirm-email.php';
$pledge_id = filter_input( INPUT_GET, 'pledge_id', FILTER_VALIDATE_INT ); $pledge_id = filter_input( INPUT_GET, 'pledge_id', FILTER_VALIDATE_INT );
$pledge = get_post( $pledge_id );
$unverified_token = filter_input( INPUT_GET, 'auth_token', FILTER_SANITIZE_STRING ); $unverified_token = filter_input( INPUT_GET, 'auth_token', FILTER_SANITIZE_STRING );
$email_confirmed = process_pledge_confirmation_email( $pledge_id, $action, $unverified_token ); $email_confirmed = process_pledge_confirmation_email( $pledge_id, $action, $unverified_token );
} else if ( filter_input( INPUT_GET, 'resend_pledge_confirmation' ) ) { } elseif ( filter_input( INPUT_GET, 'resend_pledge_confirmation' ) ) {
$pledge_id = filter_input( INPUT_GET, 'pledge_id', FILTER_VALIDATE_INT ); $pledge_id = filter_input( INPUT_GET, 'pledge_id', FILTER_VALIDATE_INT );
$complete = true; $complete = true;
@ -58,11 +60,11 @@ function render_form_new() {
/** /**
* Process a submission from the New Pledge form. * Process a submission from the New Pledge form.
* *
* @return string|WP_Error String "success" if the form processed correctly. Otherwise WP_Error. * @return int|WP_Error The post ID of the new pledge if the form processed correctly. Otherwise WP_Error.
*/ */
function process_form_new() { function process_form_new() {
$submission = get_form_submission(); $submission = get_form_submission();
$has_error = check_invalid_submission( $submission ); $has_error = check_invalid_submission( $submission );
if ( $has_error ) { if ( $has_error ) {
return $has_error; return $has_error;
} }
@ -99,7 +101,7 @@ function process_form_new() {
) ); ) );
set_post_thumbnail( $new_pledge_id, $logo_attachment_id ); set_post_thumbnail( $new_pledge_id, $logo_attachment_id );
return 'success'; return $new_pledge_id;
} }
/** /**

View file

@ -1,21 +1,41 @@
<?php <?php
namespace WordPressDotOrg\FiveForTheFuture\View; namespace WordPressDotOrg\FiveForTheFuture\View;
/** use WP_Post;
* @var bool $email_confirmed
* @var string $directory_url
* @var int $pledge_id
*/
/**
* @var bool $email_confirmed
* @var string $directory_url
* @var int $pledge_id
* @var WP_Post|null $pledge
*/
?> ?>
<?php if ( true === $email_confirmed ) : ?> <?php if ( true === $email_confirmed ) : ?>
<div class="notice notice-success notice-alt"> <div class="notice notice-success notice-alt">
<p> <p>
Thank you for confirming your address! We've emailed confirmation links to your contributors, and your pledge will show up in <a href="<?php echo esc_url( $directory_url ); ?>">the directory</a> once one of them confirms their participation. <?php
printf(
wp_kses_post( __( "Thank you for confirming your address! We've emailed confirmation links to the contributors you mentioned, and your pledge will show up in <a href=\"%s\">the directory</a> once one contributor confirms their participation.", 'wporg' ) ),
esc_url( $directory_url )
);
?>
</p> </p>
<?php if ( $pledge instanceof WP_Post ) : ?>
<p>
<?php echo wp_kses_post( sprintf(
__( 'In the meantime, your pledge will be visible here: %s', 'wporg' ),
sprintf(
'<a href="%1$s">%1$s</a>',
esc_url( get_permalink( $pledge ) )
)
) ); ?>
</p>
<?php endif; ?>
<?php esc_html_e( "Thanks again for pledging your organization's resources to contribute to WordPress! We can do great things together!", 'wporg' ); ?>
</div> </div>
<?php else : ?> <?php else : ?>

View file

@ -1,14 +1,14 @@
<?php <?php
namespace WordPressDotOrg\FiveForTheFuture\View; namespace WordPressDotOrg\FiveForTheFuture\View;
use function WordPressDotOrg\FiveForTheFuture\get_views_path; use function WordPressDotOrg\FiveForTheFuture\get_views_path;
use WP_Post;
/** /**
* @var array $messages * @var array $messages
* @var bool $complete * @var bool $complete
* @var string $directory_url * @var string $directory_url
*/ */
?> ?>
<!-- TODO Reveal this once managing an existing pledge is actually possible. <!-- TODO Reveal this once managing an existing pledge is actually possible.
@ -30,21 +30,23 @@ use function WordPressDotOrg\FiveForTheFuture\get_views_path;
<?php if ( true === $complete ) : ?> <?php if ( true === $complete ) : ?>
<div class="notice notice-success notice-alt"> <div class="notice notice-success notice-alt">
<p><?php esc_html_e( "Thanks for pledging to Five for the Future! Your new pledge profile has been created, and weve emailed you a link to confirm your address. Once that's done, we'll also email confirmation links to your contributors.", 'wporg' ); ?></p> <p>
<?php esc_html_e( "Thanks for pledging to Five for the Future! Your new pledge profile has been created, and we've emailed you a link to confirm your address. Once that's done, we'll also email confirmation links to the contributors you named in your pledge.", 'wporg' ); ?>
</p>
<p> <p>
<?php echo wp_kses_post( sprintf( <?php echo wp_kses_post( sprintf(
__( 'After those steps are completed, your pledge will appear in <a href="%s">the directory</a>.', 'wporg' ), __( "After those steps are completed (and at least one contributor confirms), your pledge will appear in <a href=\"%s\">the directory</a>. Once each contributor has confirmed, they'll appear on your pledge as well.", 'wporg' ),
esc_url( $directory_url ) esc_url( $directory_url )
) ); ?> ) ); ?>
</p> </p>
<p> <p>
<?php echo wp_kses_post( <?php echo wp_kses_post(
__( 'Do you want to hire additional employees to contribute to WordPress? <a href="https://jobs.wordpress.net">Post a job listing on jobs.wordpress.net</a>.', 'wporg' ) sprintf(
// todo ask mel about moving this outside the `notice-success`, since it's not really part of the success notification, and distracts from it. __( 'Do you want to hire additional employees to contribute to WordPress? <a href="%s">Consider posting a job listing on jobs.wordpress.net</a>.', 'wporg' ),
// many users have notification fatigue and no longer trust them or pay attention to them, because they're so often misused for non-critical information, 'https://jobs.wordpress.net'
// and the jobs thing is more of an "ad" in this context than something directly related to the process the user wants to complete )
); ?> ); ?>
</p> </p>
</div> </div>