Вопрос или проблема
В сети WordPress Multisite, когда мы даем администратору сайта возможность добавлять новых пользователей, у администратора сайта нет “флажка” для добавления нового пользователя без отправки электронного письма с ссылкой для активации (см. скриншот)
Как мы можем добавить эту опцию для администратора сайта?
Вставьте это в ваш файл functions.php
:
function my_skip_confirmation_email() {
if ( is_multisite() && current_user_can( 'create_users' ) ) { ?>
<table class="form-table">
<tr>
<th scope="row"><?php _e( 'Пропустить подтверждение по электронной почте' ); ?></th>
<td>
<input type="checkbox" name="noconfirmation" id="noconfirmation" value="1" />
<label for="noconfirmation"><?php _e( 'Добавить пользователя без отправки письма, требующего их подтверждения.' ); ?></label>
</td>
</tr>
</table>
<?php }
}
add_action( 'user_new_form', 'my_skip_confirmation_email' );
Добавьте следующее в ваш файл functions.php
function skp_custom_user_create_fields($user){
if (!is_super_admin( $user_id )) {
?>
<table class="form-table">
<tr>
<th scope="row"><?php _e('Пропустить подтверждение по электронной почте') ?></th>
<td><input type = "checkbox" name = "noconfirmation" value = "1" <?php checked( $_POST['noconfirmation'], 1 ); ?> /> Добавить пользователя без отправки письма, требующего их подтверждения.</td>
</tr>
</table>
<?php
}
}
add_action("user_new_form", "skp_custom_user_create_fields");
function skp_auto_activate_users($user, $user_email, $key, $meta){
if(!current_user_can('manage_options'))
return false;
if (!empty($_POST['noconfirmation']) && $_POST['noconfirmation'] == 1) {
wpmu_activate_signup($key);
return false;
}
}
add_filter('wpmu_signup_user_notification', 'skp_auto_activate_users', 10, 4);
Это решит проблему.
Ответ или решение
Для решения проблемы добавления новой функциональности "Пропустить подтверждение по электронной почте" при добавлении нового пользователя в WordPress Multisite, вам необходимо внести изменения в файл functions.php
вашей темы. Следующий код добавит опцию для администраторов сайтов, позволяя им добавлять пользователей без отправки письма с подтверждением.
Шаги по добавлению опции:
-
Добавление чекбокса в форму добавления пользователя:
Вставьте следующий код в файлfunctions.php
вашей темы. Этот код добавляет чекбокс для пропуска отправки подтверждающего письма.function my_skip_confirmation_email() { if ( is_multisite() && current_user_can( 'create_users' ) ) { ?> <table class="form-table"> <tr> <th scope="row"><?php _e( 'Пропустить подтверждение по электронной почте' ); ?></th> <td> <input type="checkbox" name="noconfirmation" id="noconfirmation" value="1" /> <label for="noconfirmation"><?php _e( 'Добавить пользователя без отправки письма, требующего их подтверждения.' ); ?></label> </td> </tr> </table> <?php } } add_action( 'user_new_form', 'my_skip_confirmation_email' );
-
Обработка сохранения данных:
Добавьте следующий код для обработки и сохранения состояния чекбокса при создании нового пользователя.function skp_custom_user_create_fields($user) { if (!is_super_admin($user->ID)) { ?> <table class="form-table"> <tr> <th scope="row"><?php _e('Пропустить подтверждение по электронной почте'); ?></th> <td> <input type="checkbox" name="noconfirmation" value="1" <?php checked($_POST['noconfirmation'], 1); ?> /> Добавить пользователя без отправки письма, требующего их подтверждения. </td> </tr> </table> <?php } } add_action("user_new_form", "skp_custom_user_create_fields");
-
Автоматическая активация пользователей:
Внесите изменения в процесс создания пользователя, чтобы активировать учетные записи новых пользователей без отправки письма, если чекбокс установлен:function skp_auto_activate_users($user, $user_email, $key, $meta) { if (!current_user_can('manage_options')) { return false; } if (!empty($_POST['noconfirmation']) && $_POST['noconfirmation'] == 1) { wpmu_activate_signup($key); return false; } } add_filter('wpmu_signup_user_notification', 'skp_auto_activate_users', 10, 4);
Заключение:
Этот набор кода добавит функциональность, позволяющую администраторам сайтов в WordPress Multisite добавлять новых пользователей без отправки электронного письма для подтверждения. Таким образом, администраторы смогут более эффективно управлять пользователями, особенно в случаях, когда существует необходимость в быстрой активации учетных записей.
Убедитесь, что вы внимательно проверили код и протестировали его на тестовой версии вашего сайта перед применением на рабочем сайте.