U wilt dat klanten na het inloggen op een specifieke pagina terechtkomen, of u moet een link of een script toevoegen aan de inlogpagina. Custom Login for WooCommerce biedt u hooks voor beide, zodat u de pluginbestanden niet hoeft te bewerken. Het heeft ook een REST API-eindpunt dat de instellingen van de plugin vanuit code leest en bijwerkt.
Dit artikel behandelt de clwc_login_redirect filter, de clwc_after_login_form en clwc_login_footer acties, en het /settings REST API-eindpunt. Het bevat ook een korte tabel met drie kleinere hooks. Het instellen van de inlogpagina zelf wordt behandeld in Aan de slag met Custom Login for WooCommerce.
Vereisten
| Vereiste | Details |
|---|---|
| Plugin | Custom Login for WooCommerce 1.0.3 of hoger, geïnstalleerd en actief |
| WooCommerce | Versie 6.0 of hoger, geïnstalleerd en actief |
| Toegang | Een manier om PHP-code toe te voegen, zoals een aangepaste plugin of een child theme |
| REST API-toegang | Een account met de manage_woocommerce machtiging voor het REST API-eindpunt |
Hoe de hooks passen in de inlogpagina
De plugin serveert uw /login pagina vanuit zijn eigen zelfstandige template. Dat template laadt niet de header of footer van uw thema en roept wp_head() of wp_footer() niet aan. Dus een callback die is toegevoegd aan wp_head of wp_footer wordt nooit op deze pagina uitgevoerd. Gebruik in plaats daarvan de eigen hooks van de plugin hieronder.
Houd er rekening mee dat de redirect filter wordt uitgevoerd bij het indienen van het formulier, terwijl de twee acties worden uitgevoerd wanneer de inlogpagina wordt weergegeven.
Filter: clwc_login_redirect
Deze filter wijzigt waar een klant naartoe gaat direct na een succesvolle login. Het wordt niet uitgevoerd wanneer een login mislukt.
apply_filters( 'clwc_login_redirect', $redirect_to, $user );
| Parameter | Type | Beschrijving |
|---|---|---|
$redirect_to | string | De URL waar de klant naartoe wordt gestuurd |
$user | WP_User | Het account dat zojuist is ingelogd |
Retourneer de gewenste URL. De beginwaarde van $redirect_to is de redirect_to waarde die aan de inlogpagina is doorgegeven, bijvoorbeeld uwwinkel.com/login/?redirect_to=.... Als er geen is, is het de URL van de accountpagina van uw WooCommerce.
Dit is wat er gebeurt nadat uw callback retourneert:
- WooCommerce's eigen
woocommerce_login_redirectfilter wordt hierna uitgevoerd. Elke callback op die filter ziet uw resultaat en kan het opnieuw wijzigen. - De plugin controleert de uiteindelijke URL. Als deze verwijst naar een ander domein dat WordPress niet toestaat, stuurt de plugin de klant naar Mijn account.
- De plugin stuurt de klant door.
Voorbeeld: stuur winkelbeheerders naar het 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 );
De 10 is de prioriteit van de callback, en de 2 vertelt WordPress dat je callback twee parameters accepteert. Zonder de 2 ontvang je $user niet.
Acties: clwc_after_login_form en clwc_login_footer
Beide acties laten je je eigen HTML op de inlogpagina afdrukken. Geen van beide geeft parameters door, dus je callback heeft geen argumenten nodig. Geef je inhoud weer met echo.
| Actie | Waar het wordt uitgevoerd |
|---|---|
clwc_after_login_form | Direct na de sluitende </form> tag, nog steeds binnen het inlogformulierpaneel. Inhoud verschijnt onder het formulier. |
clwc_login_footer | Na de hele indeling met twee panelen, nabij het einde van de pagina. Inhoud is niet binnen een van de panelen. |
Voorbeeld: voeg een link toe onder het inlogformulier
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>';
} );
Voorbeeld: voeg een tekstregel toe aan de paginavoettekst
add_action( 'clwc_login_footer', function () {
echo '<p style="text-align:center;">Need help? Call us on 1300 000 000.</p>';
} );
Andere hooks op de inlogpagina
Deze hooks zijn kleiner en minder gebruikelijk. Ze werken op dezelfde manier als de bovenstaande acties en filters.
| Hook | Type | Wat het doet |
|---|---|---|
clwc_logout_redirect | Filter | Wijzigt waar klanten naartoe gaan nadat ze zijn uitgelogd. Ontvangt de standaard-URL, die /login/ is met ?logged_out=true toegevoegd, en retourneert de gewenste URL. |
clwc_login_head | Actie | Wordt uitgevoerd binnen de <head> tag van de pagina, na de stijlen van de plugin. Gebruik het om een stylesheet of metatag toe te voegen. |
clwc_login_enqueue_scripts | Actie | Wordt uitgevoerd nabij het einde van de pagina. Gebruik het om scripts voor de inlogpagina te enqueuen. |
Het inlogformulier voert ook de standaard inlog-hooks van WooCommerce uit: woocommerce_login_form_start, woocommerce_login_form en woocommerce_login_form_end. Daarom werken de meeste CAPTCHA- en beveiligingsplugins die op het WooCommerce-inlogformulier werken hier ook.
REST API: instellingen-eindpunt
De plugin heeft één REST API-eindpunt voor zijn instellingen. Hiermee kun je de huidige instellingen lezen of ze vanuit code bijwerken, bijvoorbeeld wanneer je veel winkels vanuit één script instelt.
/wp-json/clwc/v1/settings
| Methode | Wat het doet |
|---|---|
GET | Retourneert alle instellingen, plus de lijst met rotation_items |
POST | Werkt de instellingen bij die je verzendt en retourneert alle instellingen |
Wie kan het gebruiken
Beide methoden vereisen een ingelogd account met de manage_woocommerce-mogelijkheid. Dat omvat beheerders en winkelbeheerders. Iedereen anders krijgt een 401- of 403-antwoord.
Voor een verzoek vanuit de browser terwijl je bent ingelogd, stuur de X-WP-Nonce-header met een wp_rest-nonce. Gebruik voor een verzoek van buiten WordPress een toepassingswachtwoord met basisauthenticatie.
Lees de instellingen
curl -u "admin:APPLICATION_PASSWORD" https://yourstore.com/wp-json/clwc/v1/settings
Het antwoord is een JSON-object. Elke instelling die u nog niet hebt opgeslagen, wordt teruggestuurd met de standaardwaarde, behalve logo_url, die ontbreekt in het antwoord totdat u een logo-URL opslaat.
Werk de instellingen bij
Verstuur een JSON-body met alleen de velden die u wilt wijzigen. Velden die u weglaat, blijven zoals ze zijn.
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
Vanuit de browser kunt u wp.apiFetch op dezelfde manier gebruiken:
wp.apiFetch( {
path: '/clwc/v1/settings',
method: 'POST',
data: { login_button_text: 'Sign in' },
} );
De plugin reinigt elke waarde voordat deze wordt opgeslagen. Een waarde van het verkeerde type wordt overgeslagen of leeg opgeslagen, en het verzoek slaagt nog steeds.
| Velden | Geaccepteerde waarden en verwerking |
|---|---|
Kleurvelden: 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 | Een hexadecimale kleur zoals #3b82f6. Al het andere wordt leeg opgeslagen. |
URL-velden: logo_url, promo_button_url | Een geldige URL. De plugin reinigt deze als een URL voordat deze wordt opgeslagen. |
template | Een van template-1, template-2, template-3, template-4, template-5. Andere waarden worden genegeerd. |
promo_enabled, enable_rotation | yes of no. Andere waarden worden genegeerd. |
mobile_promo_display | hide of stack. Andere waarden worden genegeerd. |
Tekstvelden: login_heading, email_label, password_label, remember_label, login_button_text, lost_password_text, promo_heading, promo_button_text | Platte tekst. HTML-tags worden verwijderd. |
promo_content | Tekst met basis-HTML, zoals <br>, <p>, en <strong>. Onveilige HTML wordt verwijderd. |
rotation_items | Een lijst met items. Elk item kan heading, content, button_text, button_url, en image_url bevatten. Het verzenden van dit veld vervangt de hele opgeslagen lijst. |
Probleemoplossing
manage_woocommerce-mogelijkheid. Controleer of uw applicatie-wachtwoord toebehoort aan een beheerder of winkelmanager. Controleer voor verzoeken vanuit de browser of u een geldige X-WP-Nonce-header verzendt.woocommerce_login_redirect wijzigt de URL na de uwe. Controleer ook of de URL naar uw eigen site verwijst. De plugin stuurt klanten naar Mijn account wanneer de uiteindelijke URL verwijst naar een domein dat WordPress niet toestaat.add_filter() aanroep heeft 10, 2 aan het einde nodig, zodat WordPress beide parameters doorgeeft aan je functie.#3b82f6 of #fff. Kleurnamen zoals red en waarden zoals rgb(0,0,0) worden opgeslagen als leeg.clwc_login_head voor de <head> tag, en clwc_login_footer of clwc_login_enqueue_scripts voor het einde van de pagina.Veelgestelde vragen
woocommerce_login_redirect.manage_woocommerce-mogelijkheid, en shopmanagers hebben deze standaard.functions.php-bestand van je child theme. Voeg het niet toe aan de eigen bestanden van de plugin, omdat plugin-updates deze overschrijven.Hulp nodig?
Custom Login for WooCommerce is een premium plugin, dus als je hulp nodig hebt met een specifieke aanpassing, open een supportticket en ons team kan je wijzen op de juiste hook voor jouw use case.

