Untitled
unknown
plain_text
a year ago
2.3 kB
8
Indexable
/**
* Generate a Unique Member Number for each user.
*
* Change the generate_member_number function if your member number needs to be in a certain format.
*
* Member numbers are generated when users are registered or when the membership account page is
* accessed for the first time. This code will only generate one member number per user (not per membership).
*
* title: Generate a Unique Member Number for Each User
* layout: snippet
* collection: misc
* category: membership-number
*
*/
function generate_member_number( $user_id ) {
// Get member number.
$member_number = get_user_meta( $user_id, 'member_number', true );
// If no member number, create one.
if ( empty( $member_number ) ) {
global $wpdb;
// This code generates a string that's 10 characters long of numbers and letters.
while ( empty( $member_number ) ) {
$scramble = md5( AUTH_KEY . current_time('timestamp') . $user_id . SECURE_AUTH_KEY) ;
$member_number = substr( $scramble, 0, 5 );
$check = $wpdb->get_var( "SELECT meta_value FROM $wpdb->usermeta WHERE meta_value = '" . esc_sql( $member_number ) . "' LIMIT 1" );
if ( $check || is_numeric( $member_number ) ) {
$member_number = NULL;
}
}
// Save to user meta.
update_user_meta( $user_id, 'member_number', $member_number );
return $member_number;
}
}
add_action( 'user_register', 'generate_member_number' );
/**
* Show the user's Membership Number on the Membership Account page.
*/
function my_pmpro_member_number_account_bullets() {
// If the generate number function doesn't exist, return.
if ( ! function_exists( 'generate_member_number' ) ) {
return;
}
// Only run for logged in users.
if ( ! is_user_logged_in() ) {
return;
}
// Get member number.
global $current_user;
$member_number = get_user_meta( $current_user->ID, 'member_number', true );
// If no member number, create one.
if ( empty( $member_number ) )
$member_number = generate_member_number( $current_user->ID );
// Show the member number.
if ( ! empty( $member_number ) ) { ?>
<li><strong><?php esc_html_e( 'Member Number', 'paid-memberships-pro' ); ?>:</strong> <?php echo $member_number; ?></li>
<?php
}
}
add_action( 'pmpro_account_bullets_bottom', 'my_pmpro_member_number_account_bullets' );
Editor is loading...
Leave a Comment