Vuoi che i clienti atterrino su una pagina specifica dopo aver effettuato l'accesso, o hai bisogno di aggiungere un link o uno script alla pagina di login. Custom Login for WooCommerce ti fornisce hook per entrambi, così non dovrai modificare i file del plugin. Ha anche un endpoint REST API che legge e aggiorna le impostazioni del plugin dal codice.
Questo articolo copre il filtro clwc_login_redirect, le action clwc_after_login_form e clwc_login_footer, e l'endpoint REST API /settings. Elenca anche tre hook più piccoli in una breve tabella. La configurazione della pagina di login stessa è trattata in Introduzione a Custom Login for WooCommerce.
Prerequisiti
| Requisito | Dettagli |
|---|---|
| Plugin | Custom Login for WooCommerce 1.0.3 o versioni successive, installato e attivo |
| WooCommerce | Versione 6.0 o successiva, installata e attiva |
| Accesso | Un modo per aggiungere codice PHP, come un plugin personalizzato o un child theme |
| Accesso alla REST API | Un account con la capacità manage_woocommerce per l'endpoint REST API |
Come gli hook si inseriscono nella pagina di login
Il plugin serve la tua pagina /login dal suo template standalone. Quel template non carica l'header o il footer del tuo tema, e non chiama wp_head() o wp_footer(). Quindi una callback aggiunta a wp_head o wp_footer non viene mai eseguita su questa pagina. Usa invece gli hook del plugin qui sotto.
Tieni presente che il filtro di reindirizzamento viene eseguito alla sottomissione del modulo, mentre le due action vengono eseguite quando la pagina di login viene visualizzata.
Filtro: clwc_login_redirect
Questo filtro cambia la destinazione di un cliente subito dopo un login riuscito. Non viene eseguito quando un login fallisce.
apply_filters( 'clwc_login_redirect', $redirect_to, $user );
| Parametro | Tipo | Descrizione |
|---|---|---|
$redirect_to | stringa | L'URL verso cui il cliente sta per essere inviato |
$user | WP_User | L'account che ha appena effettuato l'accesso |
Restituisci l'URL desiderato. Il valore iniziale di $redirect_to è il valore redirect_to passato alla pagina di login, ad esempio tuonegozioweb.com/login/?redirect_to=.... Se non ce n'è uno, è l'URL della pagina Il mio account di WooCommerce.
Ecco cosa succede dopo che la tua callback restituisce:
- Il filtro
woocommerce_login_redirectdi WooCommerce viene eseguito successivamente. Qualsiasi callback su quel filtro vede il tuo risultato e può modificarlo di nuovo. - Il plugin controlla l'URL finale. Se punta a un dominio diverso che WordPress non consente, il plugin invia il cliente a Il mio account invece.
- Il plugin reindirizza il cliente.
Esempio: invia i gestori del negozio alla dashboard
add_filter( 'clwc_login_redirect', function ( $redirect_to, $user ) {
if ( in_array( 'shop_manager', (array) $user->roles, true ) ) {
return admin_url();
}
return $redirect_to;
}, 10, 2 );
Il 10 è la priorità della callback e il 2 indica a WordPress che la tua callback accetta due parametri. Senza il 2, non ricevi $user.
Azioni: clwc_after_login_form e clwc_login_footer
Entrambe le azioni ti consentono di inserire il tuo HTML nella pagina di accesso. Nessuna delle due passa parametri, quindi la tua callback non necessita di argomenti. Esegui l'output del tuo contenuto con echo.
| Azione | Dove viene attivata |
|---|---|
clwc_after_login_form | Subito dopo il tag </form> di chiusura, ancora all'interno del pannello del modulo di accesso. Il contenuto appare sotto il modulo. |
clwc_login_footer | Dopo l'intero layout a due pannelli, verso la fine della pagina. Il contenuto non si trova all'interno di nessuno dei due pannelli. |
Esempio: aggiungi un link sotto il modulo di accesso
add_action( 'clwc_after_login_form', function () {
echo '<p><a href="' . esc_url( home_url( '/become-a-customer/' ) ) . '">Need an account? Apply here.</a></p>';
} );
Esempio: aggiungi una riga di testo al piè di pagina
add_action( 'clwc_login_footer', function () {
echo '<p style="text-align:center;">Need help? Call us on 1300 000 000.</p>';
} );
Altri hook nella pagina di accesso
Questi hook sono più piccoli e meno comuni. Funzionano allo stesso modo delle azioni e dei filtri sopra.
| Hook | Tipo | Cosa fa |
|---|---|---|
clwc_logout_redirect | Filtro | Modifica dove i clienti vanno dopo aver effettuato il logout. Riceve l'URL predefinito, che è /login/ con l'aggiunta di ?logged_out=true, e restituisce l'URL desiderato. |
clwc_login_head | Azione | Viene attivato all'interno del tag <head> della pagina, dopo gli stili del plugin. Usalo per aggiungere un foglio di stile o un meta tag. |
clwc_login_enqueue_scripts | Azione | Viene attivato verso la fine della pagina. Usalo per accodare script per la pagina di accesso. |
Il modulo di accesso attiva anche gli hook di accesso standard di WooCommerce: woocommerce_login_form_start, woocommerce_login_form e woocommerce_login_form_end. Ecco perché la maggior parte dei plugin CAPTCHA e di sicurezza che funzionano sul modulo di accesso di WooCommerce funzionano anche qui.
REST API: endpoint delle impostazioni
Il plugin ha un endpoint REST API per le sue impostazioni. Ti consente di leggere le impostazioni correnti o di aggiornarle dal codice, ad esempio quando imposti molti negozi da un unico script.
/wp-json/clwc/v1/settings
| Metodo | Cosa fa |
|---|---|
GET | Restituisce tutte le impostazioni, più l'elenco di rotation_items |
POST | Aggiorna le impostazioni che invii e restituisce tutte le impostazioni |
Chi può usarlo
Entrambi i metodi richiedono un account connesso con la capacità manage_woocommerce. Ciò include amministratori e gestori del negozio. Chiunque altro riceve una risposta 401 o 403.
Per una richiesta dal browser mentre sei connesso, invia l'intestazione X-WP-Nonce con un nonce wp_rest. Per una richiesta da fuori WordPress, usa una password per applicazioni con autenticazione di base.
Leggi le impostazioni
curl -u "admin:APPLICATION_PASSWORD" https://yourstore.com/wp-json/clwc/v1/settings
La risposta è un oggetto JSON. Qualsiasi impostazione non ancora salvata viene restituita con il suo valore predefinito, eccetto logo_url, che viene omesso dalla risposta finché non salvi un URL del logo.
Aggiorna le impostazioni
Invia un corpo JSON con solo i campi che desideri modificare. I campi che ometti rimangono invariati.
curl -X POST -u "admin:APPLICATION_PASSWORD" \
-H "Content-Type: application/json" \
-d '{"template":"template-2","button_bg":"#e11d48","login_heading":"Welcome back"}' \
https://yourstore.com/wp-json/clwc/v1/settings
Dal browser, puoi usare wp.apiFetch nello stesso modo:
wp.apiFetch( {
path: '/clwc/v1/settings',
method: 'POST',
data: { login_button_text: 'Sign in' },
} );
Il plugin pulisce ogni valore prima di salvarlo. Un valore del tipo sbagliato viene saltato o salvato come vuoto, e la richiesta ha comunque successo.
| Campi | Valori accettati e gestione |
|---|---|
Campi colore: left_panel_bg, left_panel_text, right_panel_bg, right_panel_text, button_bg, button_text, button_hover_bg, link_color, link_hover_color, input_border, input_focus, promo_button_bg, promo_button_text_color, promo_button_hover_bg, promo_button_border | Un colore esadecimale come #3b82f6. Qualsiasi altra cosa viene salvata come vuoto. |
Campi URL: logo_url, promo_button_url | Un URL valido. Il plugin lo pulisce come URL prima di salvarlo. |
modello | Uno tra template-1, template-2, template-3, template-4, template-5. Altri valori vengono ignorati. |
promo_enabled, enable_rotation | yes o no. Altri valori vengono ignorati. |
mobile_promo_display | hide o stack. Altri valori vengono ignorati. |
Campi di testo: login_heading, email_label, password_label, remember_label, login_button_text, lost_password_text, promo_heading, promo_button_text | Testo normale. I tag HTML vengono rimossi. |
promo_content | Testo con HTML di base, come <br>, <p> e <strong>. L'HTML non sicuro viene rimosso. |
rotation_items | Un elenco di elementi. Ogni elemento può avere heading, content, button_text, button_url e image_url. L'invio di questo campo sostituisce l'intero elenco salvato. |
Risoluzione dei problemi
manage_woocommerce. Verifica che la tua password dell'applicazione appartenga a un amministratore o a un responsabile del negozio. Per le richieste dal browser, verifica di inviare un'intestazione X-WP-Nonce valida.woocommerce_login_redirect sta modificando l'URL dopo il tuo. Verifica anche che l'URL appartenga al tuo sito. Il plugin invia i clienti a "Il mio account" quando l'URL finale punta a un dominio che WordPress non consente.add_filter() necessita di 10, 2 alla fine, in modo che WordPress passi entrambi i parametri alla tua funzione.#3b82f6 o #fff. Nomi di colori come red e valori come rgb(0,0,0) vengono salvati come vuoti.clwc_login_head per il tag <head> e clwc_login_footer o clwc_login_enqueue_scripts per la fine della pagina.Domande frequenti
woocommerce_login_redirect.manage_woocommerce e i responsabili del negozio ce l'hanno per impostazione predefinita.functions.php del tuo child theme. Non aggiungerlo ai file del plugin stesso, perché gli aggiornamenti del plugin li sovrascrivono.Serve aiuto?
Custom Login for WooCommerce è un plugin premium, quindi se hai bisogno di aiuto con una personalizzazione specifica, apri un ticket di supporto e il nostro team potrà indicarti l'hook giusto per il tuo caso d'uso.

