Created
September 21, 2016 20:42
-
-
Save bappi-d-great/0b7ebdab96e67668f6aed99ab5ae2824 to your computer and use it in GitHub Desktop.
WPMU Membership 2: Adding more column in billing table and sorting example
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 | |
/** | |
* Example: Member first name and last name and sorting ASC and DESC | |
*/ | |
add_filter( 'ms_helper_listtable_billing_get_columns', function( $columns, $currency ) { | |
$columns['first_name'] = 'First Name'; | |
$columns['last_name'] = 'Last Name'; | |
return $columns; | |
}, 10, 2 ); | |
add_filter( 'ms_helper_listtable_billing_default_column', function( $html, $item, $column_name, $this ) { | |
$member = MS_Factory::load( 'MS_Model_Member', $item->user_id ); | |
switch( $column_name ) | |
{ | |
case 'first_name': | |
return $member->first_name; | |
break; | |
case 'last_name': | |
return $member->last_name; | |
break; | |
default: | |
return $html; | |
} | |
}, 10, 4 ); | |
add_filter( 'ms_helper_listtable_billing_sortable_columns', function( $columns ) { | |
$columns['first_name'] = array( 'first_name', false ); | |
$columns['last_name'] = array( 'last_name', false ); | |
return $columns; | |
}, 10, 1); | |
add_filter( 'ms_model_invoice_get_invoices', function( $invoices, $args ) { | |
if( $args['orderby'] == 'first_name' || $args['orderby'] == 'last_name' ) | |
{ | |
foreach( $invoices as $key => $invoice ) | |
{ | |
$user_id = $invoice->user_id; | |
$member = MS_Factory::load( 'MS_Model_Member', $user_id ); | |
$invoices[$key]->_saved_data['first_name'] = $member->first_name; | |
$invoices[$key]->_saved_data['last_name'] = $member->last_name; | |
} | |
usort($invoices, "cmp_" . $args['orderby'] . '_' . $args['order']); | |
} | |
return $invoices; | |
}, 10, 2 ); | |
function cmp_first_name_asc($a, $b) | |
{ | |
return strcmp($a->_saved_data['first_name'], $b->_saved_data['first_name']); | |
} | |
function cmp_first_name_desc($a, $b) | |
{ | |
return strcmp($b->_saved_data['first_name'], $a->_saved_data['first_name']); | |
} | |
function cmp_last_name_asc($a, $b) | |
{ | |
return strcmp($a->_saved_data['last_name'], $b->_saved_data['last_name']); | |
} | |
function cmp_last_name_desc($a, $b) | |
{ | |
return strcmp($b->_saved_data['last_name'], $a->_saved_data['last_name']); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment