Update pledge UI and email copy (#64)

Fixes #61
This commit is contained in:
Corey McKrill 2019-10-29 16:37:14 -07:00 committed by GitHub
parent 9f47f83ef4
commit 83125dd8b2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 67 additions and 42 deletions

View file

@ -295,13 +295,13 @@ function process_my_pledges_form() {
wp_verify_nonce( $nonce, 'join_decline_organization' ) || wp_nonce_ays( 'join_decline_organization' );
$status = 'trash';
$message = "Your have declined the invitation from {$pledge->post_title}.";
$message = "You have declined the pledge invitation from {$pledge->post_title}.";
} elseif ( filter_input( INPUT_POST, 'leave_organization' ) ) {
wp_verify_nonce( $nonce, 'leave_organization' ) || wp_nonce_ays( 'leave_organization' );
$status = 'trash';
$message = "Your have left the {$pledge->post_title} pledge.";
$message = "You have left the {$pledge->post_title} pledge.";
}
if ( 'publish' === $status ) {

View file

@ -24,24 +24,26 @@ function render_form_new() {
$action = isset( $_GET['action'] ) ? filter_input( INPUT_GET, 'action' ) : filter_input( INPUT_POST, 'action' );
$data = get_form_submission();
$messages = [];
$pledge = null;
$complete = false;
$directory_url = get_permalink( get_page_by_path( 'pledges' ) );
$view = 'form-pledge-new.php';
if ( 'Submit Pledge' === $action ) {
$processed = process_form_new();
$pledge_id = process_form_new();
if ( is_wp_error( $processed ) ) {
$messages = array_merge( $messages, $processed->get_error_messages() );
} elseif ( 'success' === $processed ) {
if ( is_wp_error( $pledge_id ) ) {
$messages = array_merge( $messages, $pledge_id->get_error_messages() );
} elseif ( is_int( $pledge_id ) ) {
$complete = true;
}
} else if ( 'confirm_pledge_email' === $action ) {
} elseif ( 'confirm_pledge_email' === $action ) {
$view = 'form-pledge-confirm-email.php';
$pledge_id = filter_input( INPUT_GET, 'pledge_id', FILTER_VALIDATE_INT );
$unverified_token = filter_input( INPUT_GET, 'auth_token', FILTER_SANITIZE_STRING );
$email_confirmed = process_pledge_confirmation_email( $pledge_id, $action, $unverified_token );
} else if ( filter_input( INPUT_GET, 'resend_pledge_confirmation' ) ) {
$pledge = get_post( $pledge_id );
} elseif ( filter_input( INPUT_GET, 'resend_pledge_confirmation' ) ) {
$pledge_id = filter_input( INPUT_GET, 'pledge_id', FILTER_VALIDATE_INT );
$complete = true;
@ -58,7 +60,7 @@ function render_form_new() {
/**
* 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() {
$submission = get_form_submission();
@ -74,7 +76,7 @@ function process_form_new() {
$logo_attachment_id = upload_image( $_FILES['org-logo'] );
if ( is_wp_error( $logo_attachment_id ) ) {
return $logo_attachment_id;
//return $logo_attachment_id;
}
$name = sanitize_meta(
@ -93,13 +95,13 @@ function process_form_new() {
Contributor\add_pledge_contributors( $new_pledge_id, $contributors );
// Attach logo to the pledge.
wp_update_post( array(
/*wp_update_post( array(
'ID' => $logo_attachment_id,
'post_parent' => $new_pledge_id,
) );
set_post_thumbnail( $new_pledge_id, $logo_attachment_id );
set_post_thumbnail( $new_pledge_id, $logo_attachment_id );*/
return 'success';
return $new_pledge_id;
}
/**
@ -168,16 +170,15 @@ function send_contributor_confirmation_emails( $pledge_id, $contributor_id = nul
* because there's no expiration.
*/
$message =
"Hi $name, {$pledge->post_title} has created a Five for the Future pledge on WordPress.org and listed you as one of " .
"the contributors that they pay to contribute back to WordPress. You can view their pledge at: " . "\n\n" .
get_permalink( $pledge_id ) . "\n\n" .
// todo ^ page not found? probably just because https://github.com/WordPress/five-for-the-future/issues/9 isn't ready yet
"Howdy $name, {$pledge->post_title} has created a Five for the Future pledge on WordPress.org and listed you as one of the contributors that they sponsor to contribute to the WordPress open source project. You can view their pledge at:" . "\n\n" .
get_permalink( $pledge_id ) . "\n\n" .
"To confirm that they're sponsoring your contributions, please review your pledges at:" . "\n\n" .
"To confirm that they're paying you to contribute, please review your pledges at:" . "\n\n" .
get_permalink( get_page_by_path( 'my-pledges' ) ) . "\n\n" .
"If they aren't paying you to contribute, then you can ignore this email and you won't be listed as one " .
'of their contributors.'
"If they aren'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 );

View file

@ -155,8 +155,8 @@ function send_pledge_confirmation_email( $pledge_id, $action_page_id ) {
$pledge = get_post( $pledge_id );
$message =
'Thanks for committing to help keep WordPress sustainable! Please confirm this email address ' .
'in order to publish your pledge:' . "\n\n" .
'Thanks for pledging your time to contribute to WordPress! Please confirm this email address in order to publish your pledge:' . "\n\n" .
Email\get_authentication_url( $pledge_id, 'confirm_pledge_email', $action_page_id )
;

View file

@ -1,20 +1,42 @@
<?php
namespace WordPressDotOrg\FiveForTheFuture\View;
use WP_Post;
/**
* @var bool $email_confirmed
* @var string $directory_url
* @var int $pledge_id
* @var WP_Post|null $pledge
*/
?>
<?php if ( true === $email_confirmed ) : ?>
<div class="notice notice-success notice-alt">
<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>
<?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; ?>
<p>
<?php esc_html_e( "Thanks again for pledging your organization's resources to contribute to WordPress! We can do great things together!", 'wporg' ); ?>
</p>
</div>

View file

@ -1,14 +1,14 @@
<?php
namespace WordPressDotOrg\FiveForTheFuture\View;
use function WordPressDotOrg\FiveForTheFuture\get_views_path;
use WP_Post;
/**
* @var array $messages
* @var bool $complete
* @var string $directory_url
*/
?>
<!-- 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 ) : ?>
<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>
<?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 )
) ); ?>
</p>
<p>
<?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' )
// todo ask mel about moving this outside the `notice-success`, since it's not really part of the success notification, and distracts from it.
// 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,
// and the jobs thing is more of an "ad" in this context than something directly related to the process the user wants to complete
sprintf(
__( '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' ),
'https://jobs.wordpress.net'
)
); ?>
</p>
</div>