Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save greathmaster/2db56bf059c06759b4056eff3a6e109e to your computer and use it in GitHub Desktop.
Save greathmaster/2db56bf059c06759b4056eff3a6e109e to your computer and use it in GitHub Desktop.
PMPro Sequential Member Numbers 3: Member numbers are automatically increased from the value set for $starting_member_number after each member registration
/*
Sequential Member Numbers
* Member numbers are automatically increased from the value set for $starting_member_number after each member registration
* Existing members already in the system will not receive a membership number
*/
//Generate member_number when a user is registered.
function generate_member_number($user_id)
{
$starting_member_number = 100000;
$current_member_number = get_option('pmpro_seq_current_member_num');
if(empty($current_member_number))
{
$current_member_number = $starting_member_number;
}
update_user_meta($user_id, 'member_number', $current_member_number);
update_option('pmpro_seq_current_member_num', $current_member_number + 1);
}
add_action('user_register', 'generate_member_number');
//Show it on the membership account page.
function pmpromn_pmpro_account_bullets_bottom()
{
if(is_user_logged_in())
{
global $current_user;
//get member number
$member_number = get_user_meta($current_user->ID, "member_number", true);
//show it
if(!empty($member_number))
{
?>
<li><strong><?php _e("Member Number", "pmpro");?>:</strong> <?php echo $member_number?></li>
<?php
}
}
}
add_action('pmpro_account_bullets_bottom', 'pmpromn_pmpro_account_bullets_bottom');
add_action('pmpro_invoice_bullets_bottom', 'pmpromn_pmpro_account_bullets_bottom');
//show member_number in confirmation emails
function pmpromn_pmpro_email_filter($email)
{
global $wpdb;
//only update admin confirmation emails
if(strpos($email->template, "checkout") !== false)
{
if(!empty($email->data) && !empty($email->data['user_login']))
{
$user = get_user_by("login", $email->data['user_login']);
if(!empty($user) && !empty($user->ID))
{
$member_number = get_user_meta($user->ID, "member_number", true);
if(!empty($member_number))
$email->body = str_replace("<p>Membership Level", "<p>Member Number:" . $member_number . "</p><p>Membership Level", $email->body);
}
}
}
return $email;
}
add_filter("pmpro_email_filter", "pmpromn_pmpro_email_filter", 30, 2);
//Show member number in Members List and Members List CSV export
//Requires PMPro Member Number Gist:
//https://gist.github.com/strangerstudios/3d2824b8caf56734a54a#file-generate_member_number-php
function my_pmpro_members_list_csv_extra_columns($columns)
{
$columns["member_number"] = "my_extra_column_member_number";
return $columns;
}
add_filter("pmpro_members_list_csv_extra_columns", "my_pmpro_members_list_csv_extra_columns", 10);
function my_extra_column_member_number($user)
{
if(!empty($user->metavalues->member_number))
{
return $user->metavalues->member_number;
}
else
{
return "";
}
}
function my_pmpro_memberslist_extra_cols_header()
{?>
<th><?php _e('Member Number', 'pmpro');?></th><?php
}
add_action("pmpro_memberslist_extra_cols_header", "my_pmpro_memberslist_extra_cols_header");
//columns
function my_pmpro_memberslist_extra_cols_body($theuser)
{?>
<td><?php
if(!empty($theuser->member_number))
{
echo $theuser->member_number;
}?>
</td><?php
}
add_action("pmpro_memberslist_extra_cols_body", "my_pmpro_memberslist_extra_cols_body");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment