Utilizator Fără Email?

12 iul. 2011, 21:02:14
Vizualizări: 48.2K
Voturi: 9

La crearea unui utilizator în WordPress este necesară o adresă de email pentru acel utilizator. Site-ul web la care lucrez necesită ca utilizatorii să rămână anonimi (face parte dintr-un studiu de cercetare) și consider că emailul este o informație de identificare. Utilizatorii vor fi adăugați manual, deci emailul nu este necesar pentru confirmarea conturilor sau pentru prevenirea înregistrărilor spam.

Va trebui să furnizez o adresă de email falsă pentru fiecare cont sau există o modalitate de a lăsa acest câmp gol?

0
Toate răspunsurile la întrebare 6
1
10

Este posibil, dar nu atât de ușor prin pagina de Utilizatori fără unele modificări.

Funcția WordPress wp_create_user vă permite să inserați utilizatori fără adrese de email, așa că un mic plugin personalizat pentru a accepta un nume de utilizator și o parolă, și un apel la wp_insert_user sau wp_update_user ar trebui să funcționeze pentru dumneavoastră. Din păcate, nu am timp să-l codez pentru dumneavoastră, dar poate acest lucru vă va indica o direcție.

$userdata = array ('user_login' => 'someuser', 'user_pass' => 'swordfish');
$new_user_id = wp_update_user( $userdata );

Actualizare pentru persoanele care caută o soluție cu REST-API: Din păcate, acest lucru nu este posibil prin rest-api. email-ul este obligatoriu acolo. vezi: https://developer.wordpress.org/rest-api/reference/users/#create-a-user

12 iul. 2011 22:47:32
Comentarii

Mulțumesc! Creăm utilizatori cu wp_insert_user() și, după ce am văzut că coloana de email este setată să refuze valori nule în baza de date, am presupus că problema era cu nefurnizarea unei adrese de email. După ce ai menționat că un email nu este obligatoriu conform API-ului WordPress, am descoperit adevărata sursă a problemei.

Mike Wheaton Mike Wheaton
13 iul. 2011 19:34:58
0

Folosind WordPress 4.7.2, am rezolvat această problemă cu următoarele hook-uri:

// Acest cod va suprima erorile de email gol la trimiterea formularului de utilizator
add_action('user_profile_update_errors', 'my_user_profile_update_errors', 10, 3 );
function my_user_profile_update_errors($errors, $update, $user) {
    $errors->remove('empty_email');
}

// Acest cod va elimina validarea JavaScript obligatorie pentru câmpul email
// De asemenea, va elimina textul '(obligatoriu)' din etichetă
// Funcționează atât pentru formularul de utilizator nou, cât și pentru editarea profilului
add_action('user_new_form', 'my_user_new_form', 10, 1);
add_action('show_user_profile', 'my_user_new_form', 10, 1);
add_action('edit_user_profile', 'my_user_new_form', 10, 1);
function my_user_new_form($form_type) {
    ?>
    <script type="text/javascript">
        jQuery('#email').closest('tr').removeClass('form-required').find('.description').remove();
        // Dezactivează opțiunea de trimitere email de notificare implicit
        <?php if (isset($form_type) && $form_type === 'add-new-user') : ?>
            jQuery('#send_user_notification').removeAttr('checked');
        <?php endif; ?>
    </script>
    <?php
}
27 feb. 2017 17:13:49
0

Conform documentației WordPress, funcția wp_create_user permite și inserarea utilizatorilor fără adresă de e-mail, deoarece acesta este un parametru opțional. Tot ce trebuie să faci este să furnizezi un nume de utilizator unic și o parolă.

16 dec. 2011 17:43:27
0

Aceasta este o întrebare destul de veche, dar încă relevantă.

În orice caz, @Milo a avut cu siguranță ideea corectă.

Iată ce folosesc eu și funcționează excelent. Acest lucru este foarte util atunci când doriți să creați utilizatori, dar preferați să păstrați backend-ul WordPress blocat. De exemplu, dacă aveți un blog și preferați ca autorii de conținut să vă trimită lucrările, acest lucru vă permite să creați un utilizator pentru ei fără a le oferi acces. Sau dacă preferați să bloguiți sub un pseudonim. Sau este util chiar și în scopuri de testare sau pentru acei oameni "suspecți" care doresc să creeze o grămadă de utilizatori falși pentru site-ul lor (știți cine sunteți).

Adăugați acest cod în functions.php temporar sau folosiți-l cu un plugin util precum Code Snippets.

function wpse_22754_insert_new_user() {

    $user_data = array(
    'ID' => '', // creat automat
    'user_pass' => 'parola',
    'user_login' => 'utilizator',
    'user_nicename' => 'Utilizator Exemplu',
    'user_email' => '',
    'display_name' => 'Ion',
    'nickname' => 'ipopescu',
    'first_name' => 'Ion',
    'last_name' => 'Popescu',
    'user_url' => '',
    'user_registered' => '2015-06-26 10:55:55', // lăsați gol pentru auto
    'role' => get_option('default_role') // administrator, editor, subscriber, author etc.
    );

    $user_id = wp_insert_user( $user_data );

    }
add_action( 'admin_init', 'wpse_22754_insert_new_user' );

Dacă doriți să actualizați utilizatorii din backend după ce i-ați creat, adăugați acest cod și veți evita mesajul de eroare/avertisment.

function wpse_22754_empty_email_error( $arg ) {
    if ( !empty( $arg->errors['empty_email'] ) ) unset( $arg->errors['empty_email'] );
}
add_action( 'user_profile_update_errors', 'wpse_22754_empty_email_error' );

Dacă preferați să folosiți un plugin, acesta va face treaba cel mai probabil:

https://wordpress.org/plugins/allow-multiple-accounts/

27 iun. 2015 07:30:58
0

Plugin-ul "Import Users from CSV" vă va permite să creați utilizatori fără adresă de email. I-am adăugat cu...

last_name,first_name,display_name,user_login
Gamble,Bill,Bill Gamble,BillGamble

Clubul nostru utilizează baza de date wp_users din Wordpress, dar avem nevoie să avem înregistrați chiar și acei membri care nu au adresă de email

14 dec. 2016 03:20:16
0

Am găsit o metodă pe YouTube când am căutat "cum să creez utilizatori fără email în WordPress"!

  1. instalează plugin-ul "code snippets"
  2. selectează "add new" în acest plugin
  3. alege un nume pentru snippet. de exemplu "Cod fără email obligatoriu"

4. Introdu acest cod:

// Această funcție va suprima erorile de email gol la trimiterea formularului de utilizator
add_action('user_profile_update_errors', 'my_user_profile_update_errors', 10, 3);
function my_user_profile_update_errors($errors, $update, $user){
    $errors->remove('empty_email');
}

// Aceasta va elimina validarea JavaScript obligatorie pentru câmpul email
// Va elimina textul '(required)' din etichetă
// Funcționează pentru formularul de utilizator nou, profil utilizator și editare utilizator
add_action('user_new_form', 'my_user_new_form', 10, 1);
add_action('show_user_profile', 'my_user_new_form', 10, 1);
add_action('edit_user_profile', 'my_user_new_form', 10, 1);
function my_user_new_form($form_type) {
?>
<script type="text/javascript">
    jQuery('#email').closest('tr').removeClass('form-required').find('.description').remove();
    // Va debifa opțiunea de trimitere email de notificare implicit
    <?php if (isset($form_type) && $form_type === 'add-new-user') : ?>
        jQuery('#send_user_notification').removeAttr('checked');
    <?php endif; ?>
</script>
<?php
}
  1. selectează "only run in administration area" și alege "save changes and activate"
  2. acum verifică, funcționează!
6 apr. 2020 16:58:09