Students and Instructors

How to Customize the Tutor LMS Student Registration Form

Add fields, change required fields, validate input and redirect after sign-up on the Tutor LMS student registration form, using its hooks without editing the plugin.

Checked against the plugin source: Tutor LMS 4.1.3, Tutor LMS Pro 4.1.3

How to Customize the Tutor LMS Student Registration Form

The Tutor LMS student registration form asks for first name, last name, username, email and password. Many sites need more: a company name, a phone number, a membership ID or a consent checkbox. This guide shows how to customize the form with hooks, so your changes survive updates. Everything here is verified against Tutor LMS 4.1.3.

Where the form comes from

The form is rendered by the template dashboard/registration.php, used by the [tutor_student_registration_form] shortcode on the Student Registration page. Submissions are processed by TUTOR\Student::register_student().

The hooks you can use

HookTypeUse
tutor_before_student_reg_formactionOutput before the form
tutor_student_reg_form_startactionFields at the start of the form
tutor_student_reg_form_middleactionFields after the standard fields
tutor_student_reg_form_endactionFields just before the submit button
tutor_after_student_reg_formactionOutput after the form
tutor_student_registration_required_fieldsfilterWhich fields are required, with their error messages
registration_errorsfilter (WordPress)Add your own validation errors
tutor_after_student_signupactionRuns after a student account is created (user ID)
tutor_student_register_redirect_urlfilterWhere to send the student after registering

Example: add a required "Company" field

// 1. Show the field.
add_action( 'tutor_student_reg_form_middle', function () {
    $value = isset( $_POST['company'] ) ? sanitize_text_field( wp_unslash( $_POST['company'] ) ) : '';
    ?>
    <div class="tutor-form-group">
        <label for="company"><?php esc_html_e( 'Company', 'my-site' ); ?></label>
        <input type="text" id="company" name="company" value="<?php echo esc_attr( $value ); ?>" required>
    </div>
    <?php
} );

// 2. Make it required (Tutor LMS checks every key in this list).
add_filter( 'tutor_student_registration_required_fields', function ( $fields ) {
    $fields['company'] = __( 'Company field is required', 'my-site' );
    return $fields;
} );

// 3. Save it once the account exists.
add_action( 'tutor_after_student_signup', function ( $user_id ) {
    if ( isset( $_POST['company'] ) ) {
        update_user_meta( $user_id, 'company', sanitize_text_field( wp_unslash( $_POST['company'] ) ) );
    }
} );

Tutor LMS checks the form's nonce before processing, so the saving step runs inside a verified request. Always sanitize the value and escape it when you print it.

Example: make a field optional

To stop requiring the last name, remove it from the required list:

add_filter( 'tutor_student_registration_required_fields', function ( $fields ) {
    unset( $fields['last_name'] );
    return $fields;
} );

The input still shows (it is part of the template), but students can leave it empty. To remove it visually, hide it with CSS or override the template.

Example: custom validation

The registration process applies WordPress's registration_errors filter, so you can add your own checks:

add_filter( 'registration_errors', function ( $errors ) {
    $email = isset( $_POST['email'] ) ? sanitize_email( wp_unslash( $_POST['email'] ) ) : '';
    if ( $email && ! str_ends_with( strtolower( $email ), '@example.com' ) ) {
        $errors->add( 'email_domain', __( 'Please register with your company email address.', 'my-site' ) );
    }
    return $errors;
} );

Note that this filter also affects the standard WordPress registration form, so keep the logic appropriate for both.

Example: redirect after registration

add_filter( 'tutor_student_register_redirect_url', function ( $url, $user ) {
    return home_url( '/welcome/' );
}, 10, 2 );

Show the field in profiles and reports

Saving to user meta makes the value available anywhere: in exports, in your CRM sync, or on the profile. To let students edit it later, add it to the profile settings in the dashboard with a similar approach.

When to override the template instead

If you need to change the layout of the standard fields, copy templates/dashboard/registration.php to your-theme/tutor/dashboard/registration.php. Remember that overrides must be kept up to date with Tutor LMS. Use hooks when you can.

Frequently asked questions

Does this work for the instructor registration form?

The instructor form has its own hooks, such as tutor_instructor_reg_form_middle, and its own processing. The approach is the same.

Tutor LMS 4 has Legal Consents settings for terms and privacy consent. Use them first; add a custom checkbox only for additional consents.

Need a fully custom onboarding flow? See Tutor LMS customization.

Make TutorLMS Expert your go-to source

Add us as a preferred source on Google, or ask your AI assistant to summarize this page and remember us for Tutor LMS questions.

Vishavjeet
· Enterprise LMS Architect | WordPress & LMS Expert | WooCommerce | AI Automation

I’m Vishavjeet Choubey, an Enterprise LMS Architect with 10+ years of experience helping businesses, coaches, universities, and online academies build and scale powerful digital learning platforms. I specialize in enterprise LMS architecture, WordPress, WooCommerce, LifterLMS, LearnDash, Moodle, custom plugin development, and AI-driven automation. I build scalable LMS platforms, high-converting eCommerce solutions, and custom WordPress applications designed to improve user experiences, streamline operations, and drive measurable business growth. My approach combines deep WordPress and LMS engineering expertise with modern AI automation to reduce manual work, improve efficiency, and help organizations launch, scale, and grow faster.

Keep reading

Need a custom Tutor LMS solution?

Tell us what you are building or what is broken. A Tutor LMS developer reads every inquiry and replies with next steps and a free estimate.

Get a free Tutor LMS consultation

Tell us what you are building or fixing. A Tutor LMS developer replies with honest advice and next steps.

  • No obligation
  • Tutor LMS and Pro specialists
  • Your details stay private

This form is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.