Kassabonnen in uw onlinewinkel
Uw WCPOS-kassabonsjablonen zijn niet beperkt tot de kassa. Klanten in de onlinewinkel kunnen hun kassabon of factuur voor een bestelling bekijken en downloaden via Mijn account of de orderbevestigingspagina, weergegeven met een aangepast sjabloon uit WP Admin → POS → Sjablonen.
Toegang tot kassabonnen in de onlinewinkel — de knop Mijn account en de shortcode [wcpos_receipt] — wordt geleverd met WCPOS 1.9.11. De hieronder beschreven instelling Klanten kassabonnen laten downloaden en keuzelijst Kassabonsjabloon voor klanten zijn toegevoegd in 1.9.12; in 1.9.11 is de knop standaard ingeschakeld en is er geen instelling om deze te beheren. Eerdere versies geven kassabonnen alleen weer binnen de POS.
Kassamedewerkers en personeel hebben dit niet nodig — het scherm Bestellingen in de POS bevat al elke WooCommerce-bestelling, waaronder online bestellingen, en kan de kassabon bekijken, afdrukken of per e-mail versturen via het menu met drie puntjes. Deze pagina behandelt de andere richting: klanten zelf de kassabon laten downloaden vanaf uw website.
Downloadknop in Mijn account
De knop Kassabon is standaard uitgeschakeld. Schakel deze in via POS > Instellingen > Algemeen, in de sectie Klanten: activeer Klanten kassabonnen laten downloaden. Na inschakeling zien ingelogde klanten een knop Kassabon naast in aanmerking komende bestellingen in Mijn account → Bestellingen. Als zij erop klikken, wordt een PDF (receipt-1234.pdf) gedownload die met uw kassabonsjabloon is weergegeven.
De knop verschijnt voor bestellingen met de status In behandeling, Voltooid en Terugbetaald — statussen waarbij de bestelling is betaald. Voor bestellingen met de status In afwachting, Geannuleerd en Mislukt wordt deze niet weergegeven. (Een ontwikkelaar kan wijzigen voor welke statussen deze wordt weergegeven.)
Er is ook een Actief ontvangstbewijssjabloon nodig — als er geen sjabloon actief is, valt er niets te genereren; daarom blijft de knop verborgen, zelfs wanneer de instelling is ingeschakeld.
De onderstaande [wcpos_receipt] shortcode werkt ongeacht of deze instelling is ingeschakeld — de schakelaar regelt alleen de automatische knop Mijn account.
De shortcode [wcpos_receipt]
Gebruik het volgende om een link naar het ontvangstbewijs toe te voegen aan de orderbevestigingspagina ("bedankt") of de pagina Mijn account → bestelling bekijken:
[wcpos_receipt]
Zonder attributen detecteert de shortcode op beide pagina's automatisch de huidige bestelling en wordt een link Download receipt (PDF) weergegeven. Op andere pagina's wordt niets uitgevoerd. Een expliciete order_id werkt alleen voor een ingelogde klant die eigenaar is van die bestelling.
Attributen
| Attribuut | Standaard | Functie |
|---|---|---|
order_id | (automatisch gedetecteerd) | Link naar een specifieke bestelling. Werkt alleen voor ingelogde klanten die eigenaar zijn van de bestelling. |
link_text | Download receipt (PDF) | De linktekst. |
format | pdf | pdf downloadt een PDF; html opent in plaats daarvan de afdrukbare bonweergave. |
template | (standaard voor storefront) | Weergeven met een specifieke sjabloon-ID in plaats van de standaardwaarde voor de storefront. |
class | wcpos-receipt-link | CSS-klasse voor de link. |
id | (geen) | HTML-id voor de link. |
Voorbeelden
Een downloadlink op de orderbevestigingspagina:
[wcpos_receipt link_text="Download your invoice"]
Een link naar de bon op het scherm (afdrukbaar) in plaats van naar een PDF:
[wcpos_receipt format="html" link_text="View your receipt"]
Weergeven met een specifieke sjabloon — bijvoorbeeld een A4-factuursjabloon in plaats van een kassabon van 80mm:
[wcpos_receipt template="123" link_text="Download invoice (PDF)"]
De sjabloon-ID is het nummer in de URL van het bewerkingsscherm van de sjabloon (post=123) in WP Admin → POS → Sjablonen.
Welke sjabloon ontvangen klanten?
Direct onder de schakelaar bepaalt Bon-sjabloon voor klanten welke sjabloon voor de download wordt gebruikt. Standaard is Actief bonsjabloon gebruiken ingesteld, zodat klanten dezelfde sjabloon ontvangen als de POS gebruikt — wijzig de actieve sjabloon en hun bonnen worden automatisch bijgewerkt.
Kies in plaats daarvan een specifieke sjabloon in de keuzelijst om online bestellingen een andere uitstraling te geven. De klantdownload gebruikt dan altijd die sjabloon, onafhankelijk van de sjabloon die een kassamedewerker in de keuzelijst op de kassa selecteert. Als de klantsjabloon een smalle thermische bon is, is de PDF ook smal — voor online bestellingen heeft een document op volledig formaat wellicht de voorkeur; de sjabloon Factuur in de galerij is ontworpen voor A4/Letter.
Deze instelling bepaalt de knop Mijn account. Voor een eenmalige link op een specifieke pagina kunt u de sjabloon nog steeds overschrijven met het template-attribuut van de shortcode, of deze voor de hele site wijzigen (inclusief voor de knop) met het onderstaande ontwikkelaarsfilter.
Sjablonen worden weergegeven met dezelfde bongegevenspayload als de POS, zodat uw logo, winkelidentiteit, belastinginstellingen en aanpassingen allemaal worden overgenomen.
Beveiliging
Bonlinks bevatten de unieke sleutel van de bestelling — hetzelfde mechanisme dat WooCommerce gebruikt voor de bestelbevestigingspagina's — zodat gasten die zonder account hebben afgerekend de link vanaf de bevestigingspagina kunnen blijven gebruiken. Wie de link niet heeft, moet ingelogd zijn als klant van de bestelling. Shortcodes met een expliciete order_id worden alleen weergegeven voor de ingelogde eigenaar van die bestelling.
Zoals alle WCPOS-afrekenpagina's gebruikt de bon-URL de herschrijfregels van WordPress. Sites die Standaard-permalinks gebruiken (Instellingen → Permalinks), moeten overstappen op een andere permalinkstructuur.
Voor ontwikkelaars
Drie filters bepalen de winkeloppervlakken. Ze vormen een aanvulling op de bovenstaande instellingen — handig voor voorwaardelijke logica die de instellingen niet kunnen uitdrukken (per bestelling, per klant enzovoort):
// Force the My Account Receipt button on or off, overriding the setting.
// The filter's default value is the "Let customers download receipts" setting,
// so you only need this to override it — e.g. show the button for one user role.
add_filter( 'woocommerce_pos_storefront_receipt_my_account_button', '__return_true' );
// Change which order statuses show the button (default: processing, completed, refunded).
add_filter( 'woocommerce_pos_storefront_receipt_order_statuses', function ( $statuses, $order ) {
$statuses[] = 'on-hold';
return $statuses;
}, 10, 2 );
// Use a different template for storefront PDF downloads, overriding the
// "Receipt template for customers" setting. Receives and returns the full
// template array (null when none is configured).
add_filter( 'woocommerce_pos_storefront_receipt_template', function ( $template, $order ) {
return \WCPOS\WooCommercePOS\Templates::get_template( 123 );
}, 10, 2 );
De PDF-route zelf is /wcpos-checkout/wcpos-receipt/{order_id}?key={order_key}&format=pdf — hetzelfde endpoint met toegang op basis van de bestelsleutel dat de POS voor bonnen gebruikt, waarbij format=pdf de weergegeven PDF retourneert in plaats van de weergave op het scherm.