Cum să dezactivezi câmpul de email în detaliile contului client WooCommerce

31 mar. 2017, 08:13:01
Vizualizări: 15.1K
Voturi: 2

Există vreo posibilitate de a dezactiva câmpul de email în detaliile contului client WooCommerce? Sau există vreun hook sau acțiune disponibilă pentru a face asta? Folosesc un theme pre-făcut și nu sunt prea experimentat în PHP. Am încercat acest plugin numit "Prevent Email Change" de la Happy Plugins, dar nu a funcționat.

Aș aprecia orice ajutor în legătură cu asta.

Mulțumesc,

0
Toate răspunsurile la întrebare 3
4

Puteți face acest lucru adăugând următorul cod în functions.php:

function custom_override_checkout_fields( $fields ) {
    unset($fields['billing']['billing_email']);    
    return $fields;
}
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields', 1000, 1 );

Dar aceasta nu este o abordare corectă, deoarece WooCommerce folosește email-ul pentru a notifica utilizatorul despre starea comenzii.

31 mar. 2017 21:19:56
Comentarii

Bună, mulțumesc pentru asta. Da, știam deja acest lucru. Dar ceea ce doream este ca ei să își poată înregistra adresa de email în timpul finalizării comenzii, iar odată ce contul lor a fost creat complet, să nu mai poată schimba adresa de email pe pagina Detalii Cont. Este posibil acest lucru?

Bry Ledesma Bry Ledesma
3 apr. 2017 03:05:21

WordPress nu are un filtru sau un hook pentru a preveni schimbarea adresei de email. Happy Plugin doar dezactivează câmpul de email pe pagina de administrare, așa că nu poate preveni acțiunile de pe pagina Detalii Cont în WooCommerce. Dar care este motivul pentru interzicere? Utilizatorii sunt identificați prin ID-uri.

KAGG Design KAGG Design
3 apr. 2017 03:46:25

Am un motiv valid pentru asta. Dezvolt un site de eLearning cu acces restricționat. Doar utilizatorii din domenii permise se pot înscrie. Validarea adresei de email se face la înregistrare, dar utilizatorii pot încă să își schimbe adresa de email prin această pagină, ceea ce nu ar trebui să se întâmple.

pmdci pmdci
18 aug. 2017 20:43:20

acest lucru doar șterge câmpul din afișare. Nu îl dezactivează.

Debbie Kurth Debbie Kurth
12 apr. 2022 23:46:13
0

Asta este ceea ce folosesc. Am avut și probleme cu email-uri greșite pe conturile înregistrate. Așa că am dezactivat pur și simplu câmpul și l-am setat la 'required' => false dacă utilizatorul este autentificat.

if ( is_user_logged_in() ) {
    $fields['billing']['billing_email'] = [
        'label' => 'Adresă de email',
        'required'  => false,
        'custom_attributes' => [
            'disabled' => 'disabled',
        ]
    ];
} else {
    $fields['billing']['billing_email'] = [
        'label' => 'Adresă de email',
        'required'  => true,

    ];
}

Sper că acest lucru ajută pe cineva!

7 apr. 2020 10:36:59
2

Am găsit în acest fișier: wp-content\plugins\woocommerce\includes\class-wc-countries.php:

public function get_address_fields( $country = '', $type = 'billing_' )

Setează required pe false și email-ul va fi opțional.

13 iul. 2020 05:10:24
Comentarii

Salut Manuel, bine ai venit pe wordpress.stackexchange. Deși răspunsul tău este tehnic corect, trebuie să îl votez negativ pentru că editarea unui plugin în acest fel nu este recomandată. Ce s-ar întâmpla dacă pluginul ar fi actualizat și modificările ar fi șterse? Este mai bine să folosești un hook sau o funcție de filtrare pentru a atinge scopul inițial. Mulțumesc că te-ai alăturat, sper că acesta este primul din multe răspunsuri utile pe care le vei oferi :)

admcfajn admcfajn
13 iul. 2020 07:07:33

L-am votat pozitiv, pentru că este o modalitate creativă de a rezolva o problemă. Nu neapărat cea corectă, dar ai găsit-o și poate fi singura soluție pentru unii. Nu este corect sau drept să descurajezi soluția, deoarece s-ar fi putut folosi un child theme sau orice altă metodă de suprascriere protejată de actualizările pluginului. Modul mai bun este să schimbi câmpul [required] la 0. Folosind add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' ); valori: [billing_email] => Array ( [label] => Adresă de email [required] => 1

Debbie Kurth Debbie Kurth
12 apr. 2022 23:50:01