• I’ll take this in Swedish. Hope that is ok.

    Först: Detta är knäppt, och jag skulle trott att jag själv har strulat till något, men problemet finns på tre wp-installationer. Sist på en väldigt ren och ohackad site, så jag tror att problemet finns även för andra. Jag trodde ett tag det var en renderingsbugg i Chrome, men får samma fel i Firefox. Jag har även installerat flera tidigare utgåvor av modulen, samt flera tidigare utgåvor av Woo, men jag får samma fel hela tiden. Jag har mest kört med temat Astra, men fick samma fel med GeneratePress. Har ej testat att backa release av WP dock.

    Problemet finns när jag aktiverar möjligheten att logga in på sidan för “kassa”. När man expanderar “Återkommande kund? Klicka här för att logga in” (“Returning customer? Click here to login”) så ska inloggningsfält och knappar dyka upp.

    Problemet är att checkbox för “Kom ihåg mig” (“Remember me”) samt knappen “Logga in” (“Login”) visas hela tiden, och dessutom under ordersammanställningen, så det blir väldigt förvirrande för stackars kunder.

    Det ser ut så här på en test-site: https://imgur.com/a/zjENmGA

    Jag är inte alls säker på att problemet ligger i denna Plugin, men det blir ett problem ändå för detta modul. Andra betalmoduler jag testat ger inte detta problem. Det finns antagligen några samverkande faktorer som ställer till något skumt problem.

    Jag skriver av mig lite, för när jag försökte felsöka hittade jag en för mig obegriplig hantering av problemet. Det kanske är begripligt för någon annan, och det kanske kan leda till root-cause:

    • I /wp-content/plugins/woocommerce/templates/global/form-login.php finns ett anrop till wp_nonce_field( ‘woocommerce-login’, ‘woocommerce-login-nonce’ )
    • Detta genererar två “input type=hidden”-taggar.
    • Specifikt är det denna som ställer till problem: <input type=”hidden” name=”_wp_http_referer” value=”/butik/kassan/”>
    • Det är för mig obegripligt hur detta hidden-fält kan göra att Login-knappen flyttas, men så är det. Tar man bort taggen så hamnar loginknappen rätt i det expanderbara fältet. Sjukt! Jag ser inte problemet…
    • Man kan även flytta wp_nonce_field() i till längst ner i templates/global/form-login.php före avslutande &lt/form>. Detta tycker jag inte ska ha någon semantisk skillnad, men det fixar problemet.

    Jag är förbryllad, och lär väl grotta vidare i denna under helgen. (Jag inser när jag skriver detta att jag borde kolla upp CSS, för det är så klart inblandat på något sätt när loginfälten ska tas fram.)

    Tänker att det kanske är fler med samma problem som råkar ut för detta och hittar hit, så kanske vi kan lösa problemet tillsammans.

Viewing 2 replies - 1 through 2 (of 2 total)
  • Thread Starter Walter Thyselius

    (@walthy)

    Det måste vara magi… Har rotat lite mer i koden. Inloggningsformuläret som skapas av woocommerce/templates/global/form-login.php definierar 4 st P-sektioner. Den 3:e som innehåller login-knappen flyttas till ett felaktigt ställe när webbsidan renderas om man använder “PCO”. Åtminstone i alla mina tester. Detta händer av någon anledning om ett hinput-fält med namnet _wp_http_referer har definierats inom P-taggen. Detta gör även att display:none deaktiveras för aktuell P, så login-knapparna syns när de inte ska synas. Jag hittar ingen javascript eller css som styr just detta, men jag måste ha missat. Måste leta mer på det spåret.

    Trodde ett tag att funktionen add_wc_form() i class-paysoncheckout-for-woocommerce-templates.php hade med saken att göra eftersom PCO fipplar med login-knappen, men jag har inte gått till botten med hur. Tror dock detta är ett villospår.

    Jag hävdar inte att det är någon bugg i PCO, men det finns något som inte längre tycks lira som det ska ihop med Woo/WP, och jag tror det går att lösa med en ändring av PCO. Bara jag förstod hur problemet uppstår. Letar vidare… 🙂

    Thread Starter Walter Thyselius

    (@walthy)

    Jag ska lugna ner mig nu, men om någon har samma problem så går det att rätta login-knappens position genom att i woocommerce/templates/global/form-login.php flytta raden med wp_nonce_field() till precis före end-form-taggen.

    Jag testade även att backa till WP 5.7.2, PaysonCheckOut 3.2.0 & 3.0.4 samt WooCommerce 5.5.2 utan att problemet försvann. Jag börjar mer och mer tro att jag ställ till något på egen hand, men förstår inte vad. Borde ha backat Astra till gammal version också, men glömde.

    Finns några fler trådar att dra i, men det finns väl även en gräns hur mycket tid som är rimligt att spendera på PHP en lördagskväll.

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Wrong placement of Login button’ is closed to new replies.