Documentatie · Technische documentatie

Technische opmerkingen over PDF-generatie

Dit document beschrijft hoe de ADP Car Market Hub plugin print-geoptimaliseerde voertuigdatasheets ("exposés") genereert die bezoekers kunnen opslaan als PDF met behulp van het printvenster van hun browser.

Wanneer u dit document moet gebruiken

Lees dit document als u het volgende wilt doen:

  • Aanpassen welke velden op de afdrukbare datasheet verschijnen.
  • De standaard QR-code afbeeldingsbron vervangen door een zelf-gehoste generator.
  • Een link naar de afdrukbare datasheet van een voertuig insluiten vanaf een andere pagina of systeem.
  • Ontbrekende of onjuiste gegevens op de afdrukbare pagina diagnosticeren.

Overzicht

De PDF-datasheet is geïmplementeerd in AS24CI\Pdf_Datasheet. Deze genereert geen binaire PDF op de server. In plaats daarvan rendert het een op zichzelf staande HTML-pagina (zonder de header/footer van het WordPress-thema) die is geoptimaliseerd voor de Afdrukken → Opslaan als PDF-functie van de browser.

Deze aanpak heeft twee praktische gevolgen:

  • De uitvoer ziet er identiek uit, ongeacht het actieve thema, omdat het thema wordt omzeild.
  • De browser stuurt de daadwerkelijke PDF-rendering aan. De bezoeker (of het dealerteam) maakt de PDF lokaal aan; de server levert alleen HTML.

Trigger en routering

  • De klasse registreert de openbare query-variabele as24ci_pdf.
  • Een template_redirect-actie luistert naar de variabele. Wanneer deze aanwezig is en verwijst naar een gepubliceerde as24ci_car-post, rendert de plugin de datasheet en roept exit aan.
  • De URL-helper Pdf_Datasheet::get_datasheet_url( $post_id ) retourneert home_url( '/?as24ci_pdf=<post_id>' ). Gebruik deze helper in plaats van de URL handmatig op te bouwen.

Validatieregels:

  • Niet-numerieke of nul-ID's retourneren HTTP 400 met een vertaalde melding "Ongeldig voertuig-ID".
  • Een ontbrekende post, een onjuist post-type of een niet-gepubliceerde status retourneert HTTP 404 met een vertaalde melding "Voertuig niet gevonden of niet gepubliceerd".

Veldselectie

Pdf_Datasheet::get_allowed_fields() is de leidende whitelist van velden die op de datasheet mogen verschijnen. Elk veld dat niet in de lijst staat, wordt genegeerd, zodat beheerders geen niet-ondersteunde gegevens kunnen tonen door de opgeslagen instellingen te manipuleren.

Momenteel toegestane velden:

  • title, price, mileage, first_reg, fuel_type, transmission, power, body_type, exterior_color, doors, seats, emission_class, co2, consumption, equipment, description, location, contact.

Standaardwaarden worden beschikbaar gesteld door get_default_settings() en overschrijven de opgeslagen PDF Manager-instellingen van de gebruiker, zodat nieuw toegevoegde velden een logische standaardwaarde krijgen.

QR-code

Pdf_Datasheet::get_qr_image_url( $target_url ) retourneert een QR-afbeeldings-URL voor insluiting in de datasheet. De standaardimplementatie vraagt een PNG van 180×180 op bij de openbare goqr.me-dienst (https://api.qrserver.com/v1/create-qr-code/).

Operationele details:

  • Een defensieve controle retourneert een lege string als de doel-URL autoscout24. bevat, zodat de QR-code nooit per ongeluk naar de detailpagina van de bronadvertentie linkt.
  • De standaard-URL is filterbaar via as24ci_pdf_qr_image_url. Retourneer een lege string om de QR-afbeelding volledig te onderdrukken, of retourneer uw eigen (zelf-gehoste) URL.

Stapsgewijze instructies

Om een voorbeeld van een afdrukbare datasheet voor een voertuig te bekijken:

  1. Zoek het voertuig in de WordPress-beheeromgeving of op de frontend.
  2. Open de URL https://example.com/?as24ci_pdf=<post_id> in een browser.
  3. Gebruik het printvenster van de browser (Ctrl/Cmd + P) om de pagina als PDF op te slaan of naar een printer te sturen.

Om de zichtbare velden aan te passen:

  1. Open het tabblad PDF Manager in het beheerpaneel.
  2. Schakel de velden en branding-opties in of uit (logo, bedrijf, adres, telefoon, etc.).
  3. Sla de wijzigingen op. De instellingen worden opgeslagen in de WordPress-opties en tijdens het renderen samengevoegd met de standaardwaarden.

Om de QR-provider te vervangen door een zelf-gehoste generator:

  1. Voeg een kleine mu-plugin of thema-snippet toe die inhaakt op as24ci_pdf_qr_image_url, de standaardwaarde negeert en uw eigen URL retourneert.
  2. Controleer het resultaat in een browser voordat u dit naar de productieomgeving uitrolt.

Configuratiereferentie

Whitelist van velden: zie get_allowed_fields() hierboven. Standaardwaarden: zie get_default_settings(). De exacte lijst met branding- en lay-outopties die in het tabblad PDF Manager worden getoond, wordt aan de serverzijde beheerd. Controleer de huidige opties in het PDF Manager-scherm voordat u documentatie voor klanten publiceert.

Operationele opmerkingen

  • De renderer voert volledige HTML uit (inclusief <!DOCTYPE>, <head>, inline stijlen) en roept exit aan om te voorkomen dat WordPress zijn thema verzendt. Plugins die laat inhaken op template_redirect en na dit punt naar de respons schrijven, zullen niet worden uitgevoerd.
  • Omdat de PDF aan de clientzijde door de browser wordt gegenereerd, zijn paginanummering, kopteksten/voetteksten en papierformaat afhankelijk van de printinstellingen van de bezoeker, niet van de plugin.
  • De QR-afbeelding wordt opgehaald door de browser van de bezoeker (of door de print-engine), niet door de WordPress-server. Als uw privacybeleid verzoeken van derden in afdrukbare documenten verbiedt, overschrijf dan de QR-URL of onderdruk deze volledig via het filter.
  • Het eindpunt retourneert een openbare HTML-pagina; sluit geen vertrouwelijke gegevens in binnen de configureerbare velden.

Probleemoplossing

  • 404-pagina in plaats van de datasheet — de post bestaat niet, is niet van het post-type as24ci_car, of is niet publish. Controleer het ID en de post-status.
  • 400 "Ongeldig voertuig-ID" — de waarde die is doorgegeven in ?as24ci_pdf= was geen positief geheel getal.
  • Themastijlen lopen over in de afdrukbare pagina — de renderer omzeilt het thema; als u thema-markup ziet, onderschept een andere plugin template_redirect vóór deze plugin of is de URL niet gedetecteerd. Controleer de URL-parameter opnieuw en wis de paginacaches.
  • QR-code ontbreekt of is defect — de doel-URL bevatte autoscout24. (onderdrukt vanwege veiligheidsredenen) of een aangepast filter retourneerde een lege string. Controleer de doel-URL en de filterimplementatie.
  • PDF verschilt per browser — de printweergave varieert per browser en besturingssysteem. Standaardiseer op één browser/besturingssysteem voor exports naar klanten als een nauwkeurige lay-out belangrijk is.

Gerelateerde documenten