Buggar & fix

Cookies are blocked

Ett fel som verkar dyka upp allt oftare är cookies som inte finns, fast de finns eller blockeras fast de inte blockeras… Såhär brukar det stå:

Error: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.

Detta behövs i functions.php för att lösa det:

<?php
setcookie(TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN);
if ( SITECOOKIEPATH != COOKIEPATH ) setcookie(TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN);

Wordfence, recaptcha och ”extern” login

Wordfence och Googles Recaptcha fungerar bra, men när du vill ha ett alternativt formulär förutom via wp-login.php eller Woocommerce så behövs lite hjälp på traven för att det ska fungera.

VERIFICATION REQUIRED: Additional verification is required for login. Please check the email address associated with the account for a verification link.

När inloggningen inte sker via någon av ovanstående formulär blir inte Recaptcha verifierad och inloggningen misslyckas. Försöker du lägga Recaptcha manuellt på formuläret verifieras den dubbelt och går inte heller igenom.

Här är vad du behöver tänka på:

Lägg till följande i functions.php, glöm inte byta ut if ( is_page( ’test’ ) till något mer lämpligt:

<?php
add_action( 'wp_enqueue_scripts', function () {
  if ( is_page( 'test' ) && class_exists( '\WordfenceLS\Controller_WordfenceLS' ))
      \WordfenceLS\Controller_WordfenceLS::shared()->_login_enqueue_scripts();
} );

Formuläret måste ha samma innehåll som ordinarie inloggningen, dvs.

  1. Fältet för användarnamn måste ha <input name="log" />
  2. Fältet för lösenord måste ha <input name="pwd" />
  3. Inloggningsknappen (submit) måste ha <input id="wp-submit" type="submit" />

Precis som vanligt får dessa ID:n inte förekomma på fler platser på samma sida.

I vissa fall har jag även sett att du behöver använda <?php wp_nonce_field( 'my-login' ); ?> inom formulärets taggar.