Skip to content

Instantly share code, notes, and snippets.

@fovoc
Forked from bappi-d-great/code.php
Created September 22, 2016 07:35
Show Gist options
  • Save fovoc/026542aa0f2a976dc1432bb63414e738 to your computer and use it in GitHub Desktop.
Save fovoc/026542aa0f2a976dc1432bb63414e738 to your computer and use it in GitHub Desktop.
WPMU Membership 2: Adding more column in billing table and sorting example
<?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