Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save actual-saurabh/b5df17a9350cb6a47ac595700ecedb07 to your computer and use it in GitHub Desktop.
Save actual-saurabh/b5df17a9350cb6a47ac595700ecedb07 to your computer and use it in GitHub Desktop.
Custom Fields added to LifterLMS Registration/Checkout
<?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);
<?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