Я везде искал плагин, который генерировал бы уникальный последовательный номер участника при регистрации в WordPress без какой-либо радости. Будем надеяться, что другие люди захотят такую же функциональность, поэтому, проведя небольшое исследование и скопировав фрагменты кода, которые я нашел в Интернете, составили следующее решение.
Это почти там, но я хотел бы расширить функциональность немного больше, и мне было интересно, если кто-нибудь может указать мне в правильном направлении.
Я хотел бы отобразить идентификационный номер (номер участника) на странице WooCommerce my_account, а также в некоторых электронных письмах WooCommerce, таких как письма о новом заказе и новой учетной записи.
Я также хотел бы включить префикс к 4-значному номеру, который генерируется, такой как AU-0001 (AU может оставаться тем же самым перед каждым последовательным номером). Могу ли я просто добавить? …
<?php echo "AU-"$unique_number; ?>
Приведенный ниже код работает нормально. Он генерирует и показывает номер участника в списке профилей пользователя и на странице профиля пользователя после создания учетной записи.
Если возможно, я просто хотел бы добавить код ниже, чтобы не изменять какие-либо файлы ядра, которые будут переопределены при обновлении. Приведенный ниже код находится в моем файле functions.php моей дочерней темы.
Кроме того, // отправить электронное письмо ниже отправляет электронное письмо с выводом текста, но не
strip_tags($user_id['my_unique_id'])
новый номер участника. (Это не существенно, так как я бы не хотел отправлять отдельное электронное письмо, а должен показывать номер участника и отправлять его по электронной почте в WooCommerce).
Спасибо всем заранее!
//create unique id on new user creation
add_action( 'user_register', 'my_on_user_register' );
function my_on_user_register( $user_id ) {
$unique_id = + 1000 + $user_id;
update_user_meta( $user_id, 'my_unique_id', $unique_id );
}
//display Membership Number on profile
add_action('show_user_profile', 'my_extra_user_profile_fields');
add_action('edit_user_profile', 'my_extra_user_profile_fields');
function my_extra_user_profile_fields($user){
$unique_number = get_the_author_meta('my_unique_id', $user->ID);
?>
<h3><?php _e('Membership Number'); ?></h3>
<table class="form-table">
<tr>
<th><label for="address"><?php _e('Member Number:'); ?></label></th>
<td><?php echo "AU-"$unique_number; ?></td>
</tr>
</table>
<?php
}
//send email with Membership Number to admin on new user registration
function registration_email_alert($user_id) {
$message = strip_tags($_POST['user_login']). ' - ' . strip_tags($_POST['user_email']) . ' SMWS Membership Number: ' . strip_tags($user_id['my_unique_id']) . ' Has registered to the SMWS';
wp_mail( '[email protected]', 'New member has just registered', $message );
}
add_action('user_register', 'registration_email_alert');
//add Membership Number to user list
function new_modify_user_table( $column ) {
$column['my_unique_id'] = 'Membership Number';
return $column;
}
add_filter( 'manage_users_columns', 'new_modify_user_table' );
function new_modify_user_table_row( $val, $column_name, $user_id ) {
$user = get_userdata( $user_id );
switch ($column_name) {
case 'my_unique_id' :
return get_the_author_meta( 'my_unique_id', $user_id );
break;
default:
}
return $return;
}
add_filter( 'manage_users_custom_column', 'new_modify_user_table_row', 10, 3 );
Задача ещё не решена.
Других решений пока нет …