Skip to content

Instantly share code, notes, and snippets.

@tpkemme
Last active May 4, 2018 13:18

Revisions

  1. tpkemme revised this gist Jan 9, 2017. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions lifterlms-custom-profile-fields.php
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,4 @@
    <?php // don't copy this line to your functions.php file
    /**
    *
    * Create Company Industry as a custom field upon registration or checkout
  2. tpkemme revised this gist Jan 9, 2017. No changes.
  3. tpkemme revised this gist Jan 9, 2017. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion lifterlms-custom-profile-fields.php
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,3 @@

    /**
    *
    * Create Company Industry as a custom field upon registration or checkout
  4. tpkemme created this gist Jan 9, 2017.
    118 changes: 118 additions & 0 deletions lifterlms-custom-profile-fields.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,118 @@

    /**
    *
    * Create Company Industry as a custom field upon registration or checkout
    *
    * @param $fields - fields already being registered
    * @param $screen - either checkout or registration screen
    * @return $fields - array with added field
    */
    function add_company_industry_lifterlms ( $fields , $screen ) {

    if( strcmp( $screen , 'checkout' ) == 0 ||
    strcmp( $screen , 'registration' ) == 0) {

    $company_industries = array('Industry 1', 'Industry 2', 'Industry 3', 'Industry 4', 'Industry 5', 'Other');
    $company_industry = array(
    'columns' => 12,
    'id' => 'llms_company_industry',
    'default' => 'Other',
    'label' => __('Company Industry', 'lifterlms'),
    'last_column' => false,
    'options' => $company_industries,
    'required' => false,
    'type' => 'select',
    );
    array_push($fields, $company_industry);

    }

    return $fields;
    }
    add_filter( 'lifterlms_get_person_fields', 'add_company_industry_lifterlms', 10, 2);


    /**
    *
    * Create Company name as a custom field upon registration or checkout
    *
    * @param $fields - fields already being registered
    * @param $screen - either checkout or registration screen
    * @return $fields - array with added field
    */
    function add_company_name_lifterlms ( $fields , $screen ) {

    if( strcmp( $screen , 'checkout' ) == 0 ||
    strcmp( $screen , 'registration' ) == 0) {

    $company_name = array(
    'columns' => 12,
    'id' => 'llms_company_name',
    'label' => __('Company Name', 'lifterlms'),
    'last_column' => false,
    'required' => true,
    'type' => 'text'
    );
    array_push($fields, $company_name);
    }
    return $fields;
    }
    add_filter( 'lifterlms_get_person_fields', 'add_company_name_lifterlms', 10, 2);


    /**
    *
    * Validate Company Name
    *
    * Company name should be at least 2 characters long
    *
    * @param $validated - current validation status
    * @param $data - data being passed for validation
    * @param $screen - $screen should be registration or checkout
    * @return $validated - whether or not the company is valid
    */
    function validate_company_name( $validated , $data, $screen ){

    if( strcmp( $screen , 'checkout' ) == 0 ||
    strcmp( $screen , 'registration' ) == 0){

    // Make sure company name is at least characters long
    if( strlen( $data[ 'llms_company_name' ] ) < 2 ){
    return new WP_Error( 'error-code', 'Company Name needs to be at least 2 characters', 'my-text-domain' );
    }
    }

    return $validated;

    }
    add_filter( 'lifterlms_user_registration_data' , 'validate_company_name', 10 , 3 );


    /**
    *
    * Save company name to usermeta table
    *
    * @param $person_id - id of user registering or checking out
    * @param $data - data being passed through to be saved
    * @param $screen - screen is either registration or checkout
    */
    function save_custom_company_name( $person_id, $data , $screen ){

    add_user_meta( $person_id, 'llms_company_name', $data['llms_company_name'], true);
    }
    add_action( 'lifterlms_user_registered', 'save_custom_company_name', 10, 3);


    /**
    *
    * Save company industry field to usermeta table
    *
    * @param $person_id - id of user registering or checking out
    * @param $data - data being passed through to be saved
    * @param $screen - screen is either registration or checkout
    */
    function save_custom_company_industry( $person_id, $data , $screen ){

    add_user_meta( $person_id, 'llms_company_industry', $data['llms_company_industry'], true);
    }
    add_action( 'lifterlms_user_registered', 'save_custom_company_industry', 10, 3);