Forked from thomasplevy/lifterlms-custom-profile-fields-add.php
Last active
March 30, 2020 19:05
-
-
Save actual-saurabh/b5df17a9350cb6a47ac595700ecedb07 to your computer and use it in GitHub Desktop.
Custom Fields added to LifterLMS Registration/Checkout
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php // don't copy this line to your functions.php file | |
/** | |
* | |
* 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 || | |
strcmp( $screen , 'account' ) == 0 ) ) { | |
$company_industries = array( | |
'industry_1' => 'Industry 1', | |
'industry_2' => 'Industry 2', | |
'industry_3' => 'Industry 3', | |
'industry_4' => 'Industry 4', | |
'industry_5' => 'Industry 5', | |
'other' => '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 || | |
strcmp( $screen , 'account' ) == 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 || | |
strcmp( $screen , 'account' ) == 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 ); | |
add_filter( 'lifterlms_user_update_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 ){ | |
update_user_meta( $person_id, 'llms_company_name', $data['llms_company_name']); | |
} | |
add_action( 'lifterlms_user_registered', 'save_custom_company_name', 10, 3); | |
add_action( 'lifterlms_user_updated', '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 ){ | |
update_user_meta( $person_id, 'llms_company_industry', $data['llms_company_industry']); | |
} | |
add_action( 'lifterlms_user_registered', 'save_custom_company_industry', 10, 3); | |
add_action( 'lifterlms_user_updated', 'save_custom_company_industry', 10, 3); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php // don't copy this line to your functions.php file | |
add_action( 'llms_reporting_student_tab_info_stab_after_content', 'my_output_custom_field_data' ); | |
function my_output_custom_field_data() { | |
$student = isset( $_GET['student_id'] ) ? $_GET['student_id'] : null; | |
if ( ! $student ) { | |
return; | |
} | |
?> | |
<div class="d-1of4"> | |
<ul> | |
<li><strong><?php _e( 'Industry', 'lifterlms' ); ?></strong></li> | |
<li><?php echo get_user_meta( $student, 'llms_company_industry', true ); ?></li> | |
</ul> | |
</div> | |
<?php | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment