Hoe het werkt
- Een Custom code block onder de checkout-knop rendert de checkbox.
- Zolang het vakje leeg is, voegt het block een class toe aan de checkout- en express-payment-knoppen van de winkelwagen via de shadow root.
- Custom CSS zorgt dat die class klikken uitschakelt.
Stap 1: het checkbox-block toevoegen
props.cart-dependency is belangrijk: hij past de class opnieuw toe nadat de winkelwagen opnieuw rendert, wat hem anders zou wissen.
Stap 2: de CSS toevoegen
pointer-events: none is wat de klik daadwerkelijk blokkeert; de opacity laat de shopper alleen zien waarom.
Stap 3: testen
- De checkout-knop bij het laden gedimd is en niet op klikken reageert.
- Het vakje aanvinken hem inschakelt; het uitvinken schakelt de knop weer uit.
- Express-payment-knoppen ook gegated zijn.
- Een item toevoegen of verwijderen de knop niet opnieuw inschakelt zolang het vakje leeg is.
props.cart in de dependency array staat.
Bijhouden wie heeft geaccepteerd
properties[...] rechtstreeks van het formulier af, dus de waarde bereikt de bestelling wie de toevoeging ook uitvoert: Aftersell, het thema of een andere app.
Een property met het voorvoegsel _ blijft buiten de regel die de koper ziet, maar bereikt Shopify wel, dus hij verschijnt op de bestelling. Dit legt vast welke voorwaardenversie live was, niet dat de shopper het vakje aanvinkte.
Dingen om goed te doen
- Richt je alleen op
cart-external-*-classes. Decart-internal-*-tegenhangers zijn het interne leidingwerk van de winkelwagen, geen aanknopingspunt voor jouw code. Zie Custom CSS. - Controleer dat
shadowRootbestaat voordat je hem gebruikt. Hij isundefinedtotdat de winkelwagen opstart. - Het block rendert niets totdat de winkelwagen laadt, dus de checkout-knop is nooit kortstondig actief voordat de gate van kracht is.
- Een React-block dat een fout gooit rendert niets en de rest van de winkelwagen gaat gewoon door, wat hier een onbeschermde checkout-knop betekent. Test in de preview vóór het publiceren.
Waar je verder kunt kijken
- Custom code blocks: React-modus en zijn props.
- Custom CSS: de publieke classconventie.
- Events: wat het
checkout-event wel en niet kan.