WooCommerce-prissynk i WhatsApp-förhandsvisningen

En WooCommerce-prissynk i WhatsApp-förhandsvisningen innebär att siffran på kortet hämtas från din katalog i det ögonblick kortet genereras — inte inbakad i en bild som någon skapade en gång. När det väl gäller är den enda återstående frågan när WhatsApp läser om länken, och det är det enda en butik inte kan styra.

Det korta svaret

Ett pris kan bara visas i en förhandsvisning om bilden byggs från livedata för produkten. En statisk utvald bild har inget pris att visa, någonsin; ett kort som designats en gång har det pris det hade den dagen. WooCommerce tillhandahåller ingen pris taggad bild som standard, så klagomålet "gammalt pris i förhandsvisningen" är egentligen två frågor:

  1. Känner kortet till det aktuella priset? — ett designbeslut, och det du kan åtgärda.
  2. Har plattformen läst om sidan sedan priset ändrades? — WhatsApps klocka, inte din.

Varför priset blir inaktuellt

Orsak Vad du ser Varför det händer
Taggen pekar på utvald bild Inget pris alls Ett produktfoto innehåller inget pris
Kortet skapades en gång Priset från designdagen Inget genererar om det
En rea tog slut En genomstrykning för en rabatt som är över Bilden bär fortfarande den gamla brickan
Sidcachen serverar gammal HTML Det gamla kortet, igen Crawlern ser aldrig den nya og:image-URL:en

Endast de tre första handlar om kortet. Den fjärde handlar om ditt cachelager, och det ser identiskt ut utifrån — vilket är varför kontrollordningen i Instant WhatsApp Image Update for WooCommerce spelar roll.

Vad ett synkat kort faktiskt läser

FastOG signerar en omslags-URL per förfrågan, och propsen kommer från den live-produkten:

Kortelement Källa Notering
Pris get_price() På en rabatterad produkt är detta reapriset
Jämförpris ("var") ordinarie pris Skickas endast när produkten faktiskt är på rea — ett "var" som är lika med aktuellt pris är en genomstrykning ingen förtjänat
Rea-badge produktens reastatus Visas och försvinner med rean
Lager lagerstatus Speglar katalogen vid renderingstillfället
Foto utvald bild först, sedan galleriet Komponeras inuti kortet, beskärs inte av plattformen

Det är skillnaden mellan "dynamisk" och faktiskt dynamisk: värdena är inte platshållare som en designer fyllt i, de läses från din butik varje gång ett kort byggs.

Hur "sync" fungerar i båda riktningarna

Katalog → kort. Varje värde ovan läses vid renderingstillfället. Ändra ett pris och nästa rendering visar det nya; det finns inget exportsteg och ingen fil att ladda upp igen.

Kort → cache. Varje värde färdas också inuti den signerade cover-URL:en. En prisändring ändrar alltså URL:en — vilket innebär att den gamla bilden inte längre är adresserbar, CDN:en har inget inaktuellt att servera och ingen cache-busting behövs. Inget annat i den här kategorin fungerar på det här sättet, eftersom ett självhostat plugin nycklar sin bild på ett filnamn som aldrig ändras.

Kort → Facebook. När en produkt sparas utlöses WooCommerces inbyggda product.updated-webhook, och FastOG köar en Meta-omskrapning för produktens permalink, så att Facebook ersätter det cachade kortet i stället för att vänta i veckor. Se Force a Facebook Open Graph Cache Refresh.

Kort → WhatsApp. Inget kan pushas. Det korrekta kortet väntar på nästa läsning.

Kantfallet med tidsinställd rea

En rea som börjar vid midnatt utan att någon rör produkten utlöser ingen webhook alls — en detalj som bryter varje design av typen "vi uppdaterar vid sparning", inklusive vår Facebook-ping.

Det som räddar kortet är att det inte genereras i förväg: omslagsbilden byggs på begäran från aktuell katalogdata, så den första hämtningen efter midnatt visar redan reapriset och märket. Det inaktuella numret kan bara överleva i en plattforms förhandsvisningscache, där det ersätts enligt plattformens eget schema. Ett kort som renderas i stället för att exporteras är den enda sorten som överlever en rea som ingen har sparat.

Verifiera att numret är synkroniserat

Priset syns i själva omslags-URL:en, vilket gör det kontrollerbart utan en debugger:

bash
# What the page is serving right now
curl -s https://your-store.com/product/example | grep -o 'og:image[^>]*' | head -1

# Open that cover URL in a browser and compare the number against the product page.

Om URL:ens parametrar och det renderade kortet båda innehåller det aktuella priset, och produktsidan visar samma sak, är butikssidan synkroniserad och eventuell kvarvarande inaktuell data beror på en plattformscache. Om URL:en fortfarande innehåller det gamla priset serverar sidcachen HTML från före redigeringen — rensa den.

För att se det hela från början till slut, klistra in en produkt-URL i See Your Links The Way Buyers Do: den läser de live-taggarna och renderar ett omslag från samma produktdata, sida vid sida med vad plattformarna skulle visa idag.

Vanliga frågor

Servera en og:image som innehåller priset — vilket innebär en bild genererad från din katalog, inte ett statiskt foto. WhatsApp renderar vilken bild som helst som taggen pekar på, i 1200×630; priset visas bara om det har ritats in i den bilden.

Varför visar förhandsgranskningen fortfarande det gamla priset efter att jag avslutat rean?

Två troliga orsaker: bilden som sidan serverar har inte ändrats (sidcache, eller en statisk bild), eller så visar WhatsApp en cachad förhandsgranskning från före ändringen. Kontrollera den aktuella og:image-URL:en först — om dess pris också är gammalt är det butiken som är problemet; om det är aktuellt är det WhatsApp.

Visar kortet reapriset eller ordinarie pris?

Reapriset — det är vad WooCommerce rapporterar som aktuellt pris — med ordinarie pris bredvid som jämförelsepris, och endast när produkten verkligen är på rea.

Ritar alla planer priset och reabadgen?

Ja. Mallfält är inte låsta till en nivå på FastOG: pris, jämförelsepris och lagerbadges är tillgängliga i alla planer. Planerna skiljer sig åt i sidtyper, antal objekt och mallbredd, inte i vad ett omslag kan säga.

För Facebook begär FastOG en ny skrapning efter produktuppdateringen. För WhatsApp, LinkedIn och X sker nästa läsning enligt respektive plattforms eget schema; ingen offentlig tidsgaranti eller programmatiskt uppdaterings-API utlovas för dessa plattformar.

Vad händer om jag ändrar priset men inte mallen?

Det är det normala fallet och det fungerar: mallen definierar layouten, katalogen levererar värdena. Inget behöver designas om och ingen bild behöver exporteras om.

Endast så länge en plattforms cachade förhandsgranskning finns kvar. Omslags-URL:en ändras med katalogen, så den första färska läsningen får kortet för tiden efter rean.

Finns det en gratisplan?

Ja. Den kostnadsfria Community-nivån omfattar upp till 100 objekt över produkt-, kategori-, butiks- och blogginläggssidor med fem basmallar plus produktmallarna Black Friday och Seasonal Offer. Dess omslag är rena — ingen plan har vattenstämpel, Community inkluderat. Community renderas på den delade Community-servern och begränsas av hastighetsgränser per butik/IP snarare än av varumärkning. Betalda planer använder en dedikerad server separat från Community, höjer objektgränsen och låser upp ytterligare mallar och funktioner (betygsbadges från Starter, metafield-mappning från Pro, avgränsade regler och prioriterad rendering från Scale). Betalda planer inkluderar en 14-dagars provperiod utan krav på kreditkort.

Prova gratis – ingen registrering krävs

Förhandsgranska och testa dynamiska OG-bilder på några sekunder.

Öppna gratis OG-bildtestaren

From Us

A BeCaSimulations site