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 gepubliceerdeas24ci_car-post, rendert de plugin de datasheet en roeptexitaan. - De URL-helper
Pdf_Datasheet::get_datasheet_url( $post_id )retourneerthome_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
400met een vertaalde melding "Ongeldig voertuig-ID". - Een ontbrekende post, een onjuist post-type of een niet-gepubliceerde status retourneert HTTP
404met 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:
- Zoek het voertuig in de WordPress-beheeromgeving of op de frontend.
- Open de URL
https://example.com/?as24ci_pdf=<post_id>in een browser. - 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:
- Open het tabblad PDF Manager in het beheerpaneel.
- Schakel de velden en branding-opties in of uit (logo, bedrijf, adres, telefoon, etc.).
- 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:
- 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. - 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 roeptexitaan om te voorkomen dat WordPress zijn thema verzendt. Plugins die laat inhaken optemplate_redirecten 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 nietpublish. 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_redirectvóó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.