From dd528d13ecf5978ada2ecd8c486cef4652a9a910 Mon Sep 17 00:00:00 2001 From: David Cavins Date: Fri, 10 Dec 2021 16:15:05 +0000 Subject: [PATCH] Membership Requests: Change labels on register page. We are using the standard "register" form to collect membership requests, so we need to change the labels in many cases to avoid confusion. Also ensure that users can access the registration page when membership requests are enabled. See #8582. git-svn-id: https://buddypress.svn.wordpress.org/trunk@13170 cdf35c40-ae34-48e0-9cc9-0c9da1808c22 --- src/bp-core/bp-core-template.php | 6 ++- src/bp-members/bp-members-functions.php | 52 +++++++++++++------ .../bp-members-membership-requests.php | 15 ++++++ .../class-bp-registration-theme-compat.php | 12 ++++- src/bp-members/screens/register.php | 6 ++- .../bp-legacy/buddypress/members/register.php | 15 ++++-- .../bp-nouveau/includes/functions.php | 4 +- 7 files changed, 86 insertions(+), 24 deletions(-) diff --git a/src/bp-core/bp-core-template.php b/src/bp-core/bp-core-template.php index a88cd6800e..9ef914ed99 100644 --- a/src/bp-core/bp-core-template.php +++ b/src/bp-core/bp-core-template.php @@ -3192,7 +3192,11 @@ function bp_get_title_parts( $seplocation = 'right' ) { // Sign up page. } elseif ( bp_is_register_page() ) { - $bp_title_parts = array( __( 'Create an Account', 'buddypress' ) ); + if ( bp_get_membership_requests_required() ) { + $bp_title_parts = array( __( 'Request Membership', 'buddypress' ) ); + } else { + $bp_title_parts = array( __( 'Create an Account', 'buddypress' ) ); + } // Activation page. } elseif ( bp_is_activation_page() ) { diff --git a/src/bp-members/bp-members-functions.php b/src/bp-members/bp-members-functions.php index 73bfa5685f..e3f60e2203 100644 --- a/src/bp-members/bp-members-functions.php +++ b/src/bp-members/bp-members-functions.php @@ -2444,25 +2444,47 @@ function bp_core_signup_disable_inactive( $user = null, $username = '', $passwor } // Unactivated user account found! - // Set up the feedback message. - $signup_id = $signup['signups'][0]->signup_id; - - $resend_url_params = array( - 'action' => 'bp-resend-activation', - 'id' => $signup_id, - ); + /* + * Don't allow users to resend their own activation email + * when membership requests are enabled. + */ + if ( bp_get_membership_requests_required() ) { + $error_message = sprintf( + '%1$s %2$s', + esc_html_x( 'Error:', 'Warning displayed on the WP Login screen', 'buddypress' ), + esc_html_x( 'Your membership request has not yet been approved.', 'Error message displayed on the WP Login screen', 'buddypress' ) + ); + } else { + // Set up the feedback message. + $signup_id = $signup['signups'][0]->signup_id; - $resend_url = wp_nonce_url( - add_query_arg( $resend_url_params, wp_login_url() ), - 'bp-resend-activation' - ); + $resend_url_params = array( + 'action' => 'bp-resend-activation', + 'id' => $signup_id, + ); - $resend_string = '

'; + $resend_url = wp_nonce_url( + add_query_arg( $resend_url_params, wp_login_url() ), + 'bp-resend-activation' + ); - /* translators: %s: the activation url */ - $resend_string .= sprintf( __( 'If you have not received an email yet, click here to resend it.', 'buddypress' ), esc_url( $resend_url ) ); + $error_message = sprintf( + '%1$s %2$s

%3$s', + esc_html_x( 'Error:', 'Warning displayed on the WP Login screen', 'buddypress' ), + esc_html_x( 'Your account has not been activated. Check your email for the activation link.', 'Error message displayed on the WP Login screen', 'buddypress' ), + sprintf( + /* translators: %s: the link to resend the activation email. */ + esc_html_x( 'If you have not received an email yet, %s.', 'WP Login screen message', 'buddypress' ), + sprintf( + '%2$s', + esc_url( $resend_url ), + esc_html_x( 'click here to resend it', 'Text of the link to resend the activation email', 'buddypress' ) + ) + ) + ); + } - return new WP_Error( 'bp_account_not_activated', __( 'Error: Your account has not been activated. Check your email for the activation link.', 'buddypress' ) . $resend_string ); + return new WP_Error( 'bp_account_not_activated', $error_message ); } add_filter( 'authenticate', 'bp_core_signup_disable_inactive', 30, 3 ); diff --git a/src/bp-members/bp-members-membership-requests.php b/src/bp-members/bp-members-membership-requests.php index 466c25ab4c..8e6319512c 100644 --- a/src/bp-members/bp-members-membership-requests.php +++ b/src/bp-members/bp-members-membership-requests.php @@ -258,6 +258,21 @@ function bp_members_membership_requests_delete_notifications_on_change( $signup_ add_action( 'bp_core_signup_after_activate', 'bp_members_membership_requests_delete_notifications_on_change' ); add_action( 'bp_core_signup_after_delete', 'bp_members_membership_requests_delete_notifications_on_change' ); +/** + * In the Nouveau template pack, when membership requests are required, + * change registration form submit button label to "Submit Request". + * + * @since 10.0.0 + * + * @return string $retval the HTML for the request membership link. + */ +function bp_members_membership_requests_filter_complete_signup_button( $buttons ) { + + $buttons['register']['attributes']['value'] = __( 'Submit Request', 'buddypress' ); + return $buttons; +} +add_filter( 'bp_nouveau_get_submit_button', 'bp_members_membership_requests_filter_complete_signup_button' ); + /** * Administration: Change certain behavior and labels * on the WP Admin > Users > Manage Signups screen. diff --git a/src/bp-members/classes/class-bp-registration-theme-compat.php b/src/bp-members/classes/class-bp-registration-theme-compat.php index 6a942a58b1..f4e3e68552 100644 --- a/src/bp-members/classes/class-bp-registration-theme-compat.php +++ b/src/bp-members/classes/class-bp-registration-theme-compat.php @@ -97,10 +97,18 @@ public function template_hierarchy( $templates ) { public function dummy_post() { // Registration page. if ( bp_is_register_page() ) { - $title = __( 'Create an Account', 'buddypress' ); + if ( bp_get_membership_requests_required() ) { + $title = __( 'Request Membership', 'buddypress' ); + } else { + $title = __( 'Create an Account', 'buddypress' ); + } if ( 'completed-confirmation' == bp_get_current_signup_step() ) { - $title = __( 'Check Your Email To Activate Your Account!', 'buddypress' ); + if ( bp_get_membership_requests_required() ) { + $title = __( 'Your Membership Request has been submitted.', 'buddypress' ); + } else { + $title = __( 'Check Your Email To Activate Your Account!', 'buddypress' ); + } } // Activation page. diff --git a/src/bp-members/screens/register.php b/src/bp-members/screens/register.php index 77929c4426..2f3f1da1ba 100644 --- a/src/bp-members/screens/register.php +++ b/src/bp-members/screens/register.php @@ -61,7 +61,9 @@ function bp_core_screen_signup() { } } - if ( ! bp_get_signup_allowed() && ! $active_invite ) { + $requests_enabled = bp_get_membership_requests_required(); + + if ( ! bp_get_signup_allowed() && ! $active_invite && ! $requests_enabled ) { $bp->signup->step = 'registration-disabled'; // If the signup page is submitted, validate and save. } elseif ( isset( $_POST['signup_submit'] ) && bp_verify_nonce_request( 'bp_new_signup' ) ) { @@ -197,7 +199,7 @@ function bp_core_screen_signup() { // No errors! Let's register those deets. $active_signup = bp_core_get_root_option( 'registration' ); - if ( 'none' != $active_signup ) { + if ( 'none' != $active_signup || $requests_enabled ) { // Make sure the extended profiles module is enabled. if ( bp_is_active( 'xprofile' ) ) { diff --git a/src/bp-templates/bp-legacy/buddypress/members/register.php b/src/bp-templates/bp-legacy/buddypress/members/register.php index d263470f2a..dd6365b45a 100644 --- a/src/bp-templates/bp-legacy/buddypress/members/register.php +++ b/src/bp-templates/bp-legacy/buddypress/members/register.php @@ -351,10 +351,17 @@ * * @since 1.1.0 */ - do_action( 'bp_before_registration_submit_buttons' ); ?> + do_action( 'bp_before_registration_submit_buttons' ); + + if ( bp_get_membership_requests_required() ) { + $button_text = __( 'Submit Request', 'buddypress' ); + } else { + $button_text = __( 'Complete Sign Up', 'buddypress' ); + } + ?>
- +