permalinks()->get_current_url(); break; } } /** * Filters 'redirect_to' URL for UM login forms. * * @param {string} $url Redirect URL. * * @return {string} Custom redirect URL. * * @since 1.3.x * @hook um_browser_url_redirect_to__filter * * @example Force redirect user after login to account page. * function my_browser_url_redirect_to__filter( $url ) { * $url = '{site_url}/account'; * return $url; * } * add_filter( 'um_browser_url_redirect_to__filter', 'my_browser_url_redirect_to__filter' ); */ $url = apply_filters( 'um_browser_url_redirect_to__filter', $url ); if ( ! empty( $url ) ) { echo ''; } } add_action( 'um_after_form_fields', 'um_browser_url_redirect_to' ); /** * Add a notice to UM Form after submission * * @param array $args */ function um_add_update_notice( $args ) { $output = ''; $err = ''; $success = ''; // Skip if there are errors while submission. if ( UM()->form()->errors ) { return; } // phpcs:disable WordPress.Security.NonceVerification -- used for echo and already verified here. if ( ! empty( $_REQUEST['updated'] ) ) { $updated = sanitize_key( $_REQUEST['updated'] ); switch ( $updated ) { default: /** * Filters a custom success message. * * @since 1.3.x * @since 2.6.4 Added `$args` parameter. * @hook um_custom_success_message_handler * * @param {string} $success Success message. * @param {string} $updated Updated key. * @param {array} $args UM Form shortcode arguments. * * @return {string} Message. * * @example It adds a custom message for `custom_key_on_profile` updated key. * function my_custom_success_message( $success, $updated, $args ) { * if ( 'custom_key_on_profile' === $updated ) { * $success = 'Some custom message'; * } * return $success; * } * add_filter( 'um_custom_success_message_handler', 'my_custom_success_message', 10, 3 ); */ $success = apply_filters( 'um_custom_success_message_handler', $success, $updated, $args ); break; case 'account': $success = __( 'Your account was updated successfully.', 'ultimate-member' ); break; case 'password_changed': $success = __( 'You have successfully changed your password.', 'ultimate-member' ); break; case 'account_active': $success = __( 'Your account is now active! You can login.', 'ultimate-member' ); break; } } if ( ! empty( $_REQUEST['err'] ) ) { $request_error = sanitize_key( $_REQUEST['err'] ); switch ( $request_error ) { default: /** * Filters a custom error message. * * @since 1.3.x * @since 2.6.4 Added `$args` parameter. * @hook um_custom_error_message_handler * * @param {string} $error Error message. * @param {string} $request_error Error data. * @param {array} $args UM Form shortcode arguments. * * @return {string} Error message. * * @example It adds a custom error for `custom_key_on_profile` error key. * function my_custom_error_message( $error, $request_error, $args ) { * if ( 'custom_key_on_profile' === $request_error ) { * $error = 'Some custom message'; * } * return $error; * } * add_filter( 'um_custom_error_message_handler', 'my_custom_error_message', 10, 3 ); */ $err = apply_filters( 'um_custom_error_message_handler', $err, $request_error, $args ); if ( empty( $err ) ) { $err = __( 'An error has been encountered', 'ultimate-member' ); } break; case 'registration_disabled': $err = __( 'Registration is currently disabled', 'ultimate-member' ); break; case 'blocked_email': $err = __( 'This email address has been blocked.', 'ultimate-member' ); break; case 'blocked_domain': $err = __( 'We do not accept registrations from that domain.', 'ultimate-member' ); break; case 'blocked_ip': $err = __( 'Your IP address has been blocked.', 'ultimate-member' ); break; case 'inactive': $err = __( 'Your account has been disabled.', 'ultimate-member' ); break; case 'awaiting_admin_review': $err = __( 'Your account has not been approved yet.', 'ultimate-member' ); break; case 'awaiting_email_confirmation': $err = __( 'Your account is awaiting email verification.', 'ultimate-member' ); break; case 'rejected': $err = __( 'Your membership request has been rejected.', 'ultimate-member' ); break; case 'invalid_nonce': $err = __( 'An error has been encountered. Probably page was cached. Please try again.', 'ultimate-member' ); break; case 'activation_link_used': $err = __( 'This activation link is expired or have already been used.', 'ultimate-member' ); break; case 'activation_link_expired': $err = __( 'This activation link is expired.', 'ultimate-member' ); break; } } // phpcs:enable WordPress.Security.NonceVerification -- used for echo and already verified here. add_filter( 'um_late_escaping_allowed_tags', 'um_form_notices_additional_tags', 10, 2 ); if ( ! empty( $err ) ) { $output .= '

' . $err . '

'; } if ( ! empty( $success ) ) { $output .= '

' . $success . '

'; } echo wp_kses( $output, UM()->get_allowed_html( 'templates' ) ); remove_filter( 'um_late_escaping_allowed_tags', 'um_form_notices_additional_tags' ); } add_action( 'um_before_form', 'um_add_update_notice', 500 ); /** * Extends allowed tags for displaying UM Form notices. * * @since 2.6.4 * * @param array $allowed_html * @param string $context * @return array */ function um_form_notices_additional_tags( $allowed_html, $context ) { if ( 'templates' === $context ) { $allowed_html['i']['onclick'] = true; } return $allowed_html; }