Skip to content

Ligase 2.4.10 — schema.org validator fix (shippingDetails) + returnPolicyCategory + smart type detection + OPcache auto-reset

Choose a tag to compare

@MarcinZmuda MarcinZmuda released this 01 Jun 10:24
· 43 commits to main since this release

Pięć fixów z realnej diagnozy makumi.eu po wgraniu 2.4.9. Wszystkie naprawiają konkretne błędy zgłoszone przez Rich Results Test + Schema Markup Validator + UI panel.

Krytyczne

shippingDetails na OnlineStore — Schema Markup Validator odrzucał

"Właściwość shippingDetails nie została rozpoznana przez schemat jako część obiektu typu OnlineStore."

Wcześniej Organization (w trybie store) emitowała shippingDetails na sobie. Schema.org tego NIE pozwala — property istnieje TYLKO na Offer / OfferShippingDetails.

Fix:

  • Organization przestaje emitować shippingDetails. hasMerchantReturnPolicy zostaje (jest dozwolone na OnlineStore).
  • Każdy Product Offer inline'uje site-level shipping z opcji Store/E-commerce. Cost: kilka linii JSON więcej per produkt. Benefit: self-contained Merchant Listing który Validator akceptuje.

MerchantReturnPolicy brakujące pola

Google Rich Results flag'ował:

"Brakujące pole returnPolicyCategory (opcjonalnie)"

Field_Contract nie deklarował 3 wymaganych/recommended fields dla site-level path. Dodane:

  • returnPolicyCategory → derived https://schema.org/MerchantReturnFiniteReturnWindow
  • returnMethod → derived https://schema.org/ReturnByMail
  • returnFees → derived z store_return_fees opcji z prefixem https://schema.org/

Plus 8 sub-properties dla shippingDetails w field-contract (shippingRate, destination, deliveryTime.handling/transit).

Mniejsze

Smart schema type detection w admin listingu

Pages w "Ligase → Posty" pokazywały się jako BlogPosting (hardcode-fallback). To było tylko UI prediction (front zawsze emitował WebPage), ale mylące. Teraz ligase_guess_schema_type_for_post():

  • WC produkt → Product
  • post → BlogPosting
  • Page slug/title zawiera "kontakt"/"contact" → ContactPage
  • "o-nas"/"about" → AboutPage
  • "koszyk"/"cart"/"zamowienie"/"checkout" → CheckoutPage
  • "sklep"/"shop"/"blog" → CollectionPage
  • "faq"/"pytania" → FAQPage
  • inne pages → WebPage

OPcache auto-reset

Po install + po WP "Replace current with uploaded" auto-fires opcache_reset(). Eliminuje klasę regresji "klikam checkbox, save'uje, wraca do unchecked" która hit'owała na 2.4.6→2.4.7 (org_author_mode) i 2.4.7→2.4.8 (default_schema_type, health_report_enabled). Shared-host PHP-FPM (Smarthost / cPanel) trzymał skompilowaną starą sanitize() w pamięci.

Yoast 27.x BreadcrumbList duplikat

Dodane 4 nowe filter'y dla Yoast 27.x które pozwalają BreadcrumbList przemknąć mimo wpseo_schema_graph cut'a:

  • wpseo_schema_breadcrumb
  • wpseo_schema_breadcrumb_list_show
  • wpseo_should_output_breadcrumbs_schema
  • wpseo_schema_BreadcrumbList

Co masz zrobić na makumi.eu

  1. Pobierz https://github.com/MarcinZmuda/Ligase-Schema-Markup/releases/download/v2.4.10/ligase-2.4.10.zip
  2. WP Admin → Wtyczki → Dodaj nową → Wyślij wtyczkę → ZIP → Zastąp obecnym
  3. Wypełnij Ustawienia → Store / E-commerce (jeśli jeszcze nie):
    • Waluta: PLN
    • Zwroty kraj: PL, dni: 14, opłaty: ReturnShippingFees (lub FreeReturn gdy macie darmowe)
    • Wysyłka kraj: PL, stawka: 0 lub konkretna kwota
    • Handling 1-2 dni, Transit 1-2 dni
  4. Wyczyść cache (WP Rocket / Cloudflare). OPcache zresetuje się automatycznie dzięki nowemu hookowi.
  5. Powtórz Rich Results Test dla https://makumi.eu/produkt/koldra-hera/shippingDetails powinno być inline w Offer, returnPolicyCategory powinno być wypełnione.
  6. Zaznacz "Organizacja jako autor" w Ustawieniach → powinno zostać zaznaczone po Save (dzięki auto-reset OPcache).