• Resolved Lumostin

    (@lumostin)


    Hi,

    I followed the Adding Extra Registration Fields page to add First Name, Last Name and my new field Member Number to the registration form. Those show up fine in the registration form.

    I also followed Adding Extra Profile Fields page to add my new field Member Number to the user profile. However when someone signs up and fills out the member number, there’s nothing shown in their user profile page in the WP backend. The first and last name went there fine. There’s not even a blank Member Number section. There’s literally nothing.

    I also tried some of the suggestions here but that didn’t work either.

    Not sure what I’m doing wrong or if I’m not understanding the the use of the extra profile fields.

    My theme-my-login-custom.php is below.

    
    <?php
    
    function add_tml_registration_form_fields() {
    	tml_add_form_field( 'register', 'first_name', array(
    		'type'     => 'text',
    		'label'    => 'First Name',
    		'value'    => tml_get_request_value( 'first_name', 'post' ),
    		'id'       => 'first_name',
    		'priority' => 15,
    	) );
    	tml_add_form_field( 'register', 'last_name', array(
    		'type'     => 'text',
    		'label'    => 'Last Name',
    		'value'    => tml_get_request_value( 'last_name', 'post' ),
    		'id'       => 'last_name',
    		'priority' => 15,
    	) );
    	tml_add_form_field( 'register', 'member_number', array(
    		'type'     => 'text',
    		'label'    => 'Member Number',
    		'value'    => tml_get_request_value( 'member_number', 'post' ),
    		'id'       => 'member_number',
    		'priority' => 15,
    	) );
    }
    add_action( 'init', 'add_tml_registration_form_fields' );
    
    function validate_tml_registration_form_fields( $errors ) {
    	if ( empty( $_POST['first_name'] ) ) {
    		$errors->add( 'empty_first_name', '<strong>ERROR</strong>: Please enter your first name.' );
    	}
    	if ( empty( $_POST['last_name'] ) ) {
    		$errors->add( 'empty_last_name', '<strong>ERROR</strong>: Please enter your last name.' );
    	}
    	if ( empty( $_POST['member_number'] ) ) {
    		$errors->add( 'empty_member_number', '<strong>ERROR</strong>: Please enter your Member Number.' );
    	}
    	return $errors;
    }
    add_filter( 'registration_errors', 'validate_tml_registration_form_fields' );
    
    function save_tml_registration_form_fields( $user_id ) {
    	if ( ! empty( $_POST['first_name'] ) ) {
    		update_user_meta( $user_id, 'first_name', sanitize_text_field( $_POST['first_name'] ) );
    	}
    	if ( ! empty( $_POST['last_name'] ) ) {
    		update_user_meta( $user_id, 'last_name', sanitize_text_field( $_POST['last_name'] ) );
    	}
    	if ( ! empty( $_POST['member_number'] ) ) {
    		update_user_meta( $user_id, 'member_number', sanitize_text_field( $_POST['member_number'] ) );
    	}
    }
    add_action( 'user_register', 'save_tml_registration_form_fields' );
    
    function add_tml_profile_form_fields() {
    	tml_add_form_field( 'profile', 'member_number', array(
    		'type'     => 'text',
    		'label'    => 'Member Number',
    		'value'    => tml_get_request_value( 'member_number', 'post' ),
    		'id'       => 'member_number',
    		'priority' => 65,
    	) );
    }
    add_action( 'init', 'add_tml_profile_form_fields' );
    
    function validate_tml_profile_form_fields( $errors ) {
    	if ( empty( $_POST['member_number'] ) ) {
    		$errors->add( 'empty_member_number', '<strong>ERROR</strong>: Please enter your Member Number.' );
    	}
    	return $errors;
    }
    add_filter( 'user_profile_update_errors', 'validate_tml_profile_form_fields' );
    
    function save_tml_profile_form_fields( $user_id ) {
    	if ( ! empty( $_POST['member_number'] ) ) {
    		update_user_meta( $user_id, 'member_number', sanitize_text_field( $_POST['member_number'] ) );
    	}
    }
    add_action( 'profile_update', 'save_tml_profile_form_fields' );
    

    Thank you!

    • This topic was modified 6 years, 3 months ago by Lumostin.
    • This topic was modified 6 years, 3 months ago by Lumostin.
Viewing 1 replies (of 1 total)
  • Plugin Author Jeff Farthing

    (@jfarthing84)

    Change the function to add the profile fields to this:

    
    function add_tml_profile_form_fields() {
    	tml_add_form_field( 'profile', 'member_number', array(
    		'type'     => 'text',
    		'label'    => 'Member Number',
    		'value'    => get_user_meta( get_current_user_id(), 'member_number', true ),
    		'id'       => 'member_number',
    		'priority' => 65,
    	) );
    }
    add_action( 'init', 'add_tml_profile_form_fields' );
    
Viewing 1 replies (of 1 total)

The topic ‘Profile Extra Fields Doesn’t Show Up In Profile’ is closed to new replies.