-
-
Save fovoc/026542aa0f2a976dc1432bb63414e738 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