In Loving Memory

Personalised Memorial Plaques

Custom-engraved acrylic plaques, hand-made to order in our Yorkshire workshop since 2003. Compose your inscription below, preview it instantly, and order securely with card or PayPal. Free UK delivery on every order.

1

Choose your plaque

Select the size and finish that suits your tribute.

2

Compose the words

Type up to five lines and see them appear instantly.

3

Order securely

Pay by card or PayPal — confirm spelling, then check out in seconds.

4

Made & delivered

Hand-engraved and posted to you, ready to mount.

Create your plaque

Every plaque is 1.5mm laser-engraved acrylic laminate with black lettering. Outdoor grade is UV-stable, moisture- and fingerprint-resistant. Choose your size, finish, corner style and fixing below.

Example wording shown — start typing to replace
In Loving Memory Of
Simon George Green
30th September 1966 - 30th September 2025
Gone But Not Forgotten
Always In Our Hearts xxx
Live preview · 2.5" × 1.25" · Matt White
Price £10.75 includes free UK delivery
Product SKU MP-2.5X1.25-WHITE-NOHOLES-SQUARE-SYLFAEN

Important: The live preview is for layout guidance only. The finished plaque may differ in exact font weight, spacing, brushing texture, colour shade and screen rendering. Please review your inscription carefully before checkout — engraving is permanent.

2.5" × 1.25" 65 × 32mm
Change size
2.5" × 1.25"65 × 32mm
3" × 1.5"76.2 × 38.1mm
4" × 2"101.6 × 50.8mm
4" × 3"101.6 × 76.2mm
5" × 2"127 × 50.8mm
5" × 3"127 × 76.2mm
6" × 2"152.4 × 50.8mm
6" × 3"152.4 × 76.2mm
Brushed Silver +£1.00
Brushed Gold +£1.50
Matt White
Square
Rounded
4 holes +£2.00
Self-adhesive +£1.00
No holes
Sylfaen elegant serif
Times New Roman classic serif

All engraving is in black. Any language and any script is welcome (English, Hebrew, Arabic, Cyrillic, Chinese, etc.). Emojis, symbols and graphics can’t be engraved and will be removed automatically.

Important: Engraving is permanent. Please double-check spelling, dates and layout above — plaques are made-to-order and cannot be refunded for typos. The live preview is a guide only; final font weight, spacing, colour and brushing texture may vary slightly from the on-screen rendering.

or
Secure payment · Card, Apple Pay, Google Pay or PayPal · Free UK delivery included

Sizes & options

All available sizes, corner styles and fixings at a glance. If you need a bespoke size, get in touch.

Wootton Industries plaque sizes, corner styles and fixing options chart

8 sizes

2.5"×1.25" · 3"×1.5" · 4"×2" · 4"×3" · 5"×2" · 5"×3" · 6"×2" · 6"×3"

2 corner styles

Square · Rounded

3 fixings

Self-adhesive · 4 holes · No holes

3 finishes

Brushed Silver · Brushed Gold · Matt White

Secure checkout

Pay safely by card, Apple Pay, Google Pay or PayPal. Engraved and posted from our own Yorkshire workshop.

Made in Yorkshire

Hand-made to order in our own workshop since 2003. Outdoor-grade acrylic with four fixing holes, ready to mount.

Here to help

Unsure of the wording or layout? Email darrell@dwootton.co.uk and we'll gladly guide you.

// 3. Replace the mockup redirect below with paypal.Buttons({...}).render('#pay-paypal-container') // 4. Add server-side order verification (otherwise customers can spoof ?paid=REF) // 5. Test with a real £10.75 order on your own card before going live // // The Client ID above is the LIVE one (confirmed by Darrell, May 2026). // For Stripe: separate integration, see https://stripe.com/docs/payments/payment-links // ============================================================ // MOCKUP: in production this would redirect to Stripe Checkout / PayPal Checkout, // which would then redirect back here with ?paid=REF after successful payment. // For now we go straight back to this page in paid-mode. window.location.href = "memorial-plaques.html?paid="+encodeURIComponent(orderRef); } document.getElementById("pay-stripe").addEventListener("click", function(){ attemptCheckout("Card"); }); document.getElementById("pay-paypal").addEventListener("click", function(){ attemptCheckout("PayPal"); }); document.getElementById("copy-btn").addEventListener("click", function(){ var txt = document.getElementById("summary").textContent; var btn = this; function done(){ btn.innerHTML = ' Copied'; setTimeout(function(){ btn.innerHTML = ' Copy summary'; },1800); } if(navigator.clipboard && navigator.clipboard.writeText){ navigator.clipboard.writeText(txt).then(done, done); } else { var ta=document.createElement("textarea"); ta.value=txt; document.body.appendChild(ta); ta.select(); try{document.execCommand("copy");}catch(e){} document.body.removeChild(ta); done(); } }); // ==================================================================== // PAID MODE — bootstrap, paid-side controls, send-to-engrave handler // ==================================================================== function switchToMode(modeName){ var modes = document.querySelectorAll(".mem-mode"); for(var i=0;i=LINES) return; var raw = inp.value; var clean = sanitiseInscription(raw); if(clean !== raw){ var cur = inp.selectionStart; inp.value = clean; try { inp.setSelectionRange(Math.min(cur, clean.length), Math.min(cur, clean.length)); } catch(err){} } state.lines[idx] = inp.value; var c = document.querySelector('[data-c-paid="'+idx+'"]'); if(c){ c.textContent = inp.value.length+"/"+MAX; c.classList.toggle("warn", inp.value.length>=MAX); } renderPreview(); persistPaidChanges(); }); } // Save edits to the order in sessionStorage so refresh keeps them function persistPaidChanges(){ try { var raw = sessionStorage.getItem("mp_order"); if(!raw) return; var order = JSON.parse(raw); order.lines = state.lines.slice(); order.font = state.fontName; order.sku = buildSku(); sessionStorage.setItem("mp_order", JSON.stringify(order)); } catch(e){} } // Build the engraving-details email body (sent after they click Send to engrave) function buildEngravingEmail(order){ var s = "MEMORIAL PLAQUE — ENGRAVING DETAILS (paid order)\n"; s += "================================================\n\n"; s += "Order reference: " + order.ref + "\n"; s += "Paid via: " + order.method + "\n"; s += "Order time: " + new Date(order.ts).toUTCString() + "\n\n"; s += "Product SKU: " + buildSku() + "\n\n"; s += "Plaque size: " + state.dims.replace(/"/g,'"') + " (" + state.mm + ")\n"; s += "Finish: " + state.colourName + "\n"; s += "Corners: " + state.cornerName + "\n"; s += "Fixing: " + state.fixingName + "\n"; s += "Font: " + state.fontName + "\n"; s += "Material: 1.5mm acrylic laminate, laser engraved, black lettering, outdoor grade\n"; s += "Quantity: " + order.qty + "\n"; s += "Price each: £" + order.pricePerItem.toFixed(2) + "\n"; s += "Order total (paid): £" + order.total.toFixed(2) + " (includes free UK delivery)\n\n"; s += "INSCRIPTION:\n"; state.lines.forEach(function(l, i){ s += " Line " + (i+1) + ": " + (l.trim() || "(blank)") + "\n"; }); s += "\nDELIVERY ADDRESS:\n"; s += " Name: " + order.customer.name + "\n"; s += " Email: " + order.customer.email + "\n"; s += " Address line 1: " + order.customer.addr1 + "\n"; if(order.customer.addr2) s += " Address line 2: " + order.customer.addr2 + "\n"; s += " City: " + order.customer.city + "\n"; s += " Postcode: " + order.customer.postcode + "\n"; if(order.customer.notes) s += " Notes: " + order.customer.notes + "\n"; s += "\nSPELLING CONFIRMED at payment. Customer reviewed inscription post-payment before clicking Send.\n"; return s; } function showPaidSummary(order){ var html = "Paid via "+order.method+" · "+ ""+state.dims.replace(/"/g,'"')+" · "+ ""+state.colourName+" · "+ ""+state.cornerName.replace(" corners","").toLowerCase()+" corners · "+ ""+state.fixingName.replace(" (no adhesive)","")+" · "+ "Total £"+order.total.toFixed(2)+""; document.getElementById("paid-summary").innerHTML = html; } function initPaidMode(order){ // Make sure the page knows the order's variant before showing paid mode applyOrderToState(order); setupPaidFontPicker(); setupPaidInscriptionInputs(); showPaidSummary(order); document.getElementById("paid-ref").textContent = order.ref; // Send to engrave handler document.getElementById("send-engrave").addEventListener("click", function(){ var raw = sessionStorage.getItem("mp_order"); var order = raw ? JSON.parse(raw) : null; if(!order){ alert("Sorry, we couldn't find your order details. Please email darrell@dwootton.co.uk."); return; } // Refresh order with latest edits order.lines = state.lines.slice(); order.font = state.fontName; order.sku = buildSku(); try { sessionStorage.setItem("mp_order", JSON.stringify(order)); } catch(e){} // Build and trigger email var subj = (order.customer.name||"")+" — Engraving details (PAID) — "+order.ref; var body = buildEngravingEmail(order); var mailto = "mailto:darrell@dwootton.co.uk?subject="+encodeURIComponent(subj)+"&body="+encodeURIComponent(body); window.location.href = mailto; // Switch to sent mode (slight delay so mailto fires first) setTimeout(function(){ document.getElementById("sent-ref").textContent = order.ref; switchToMode("sent"); window.scrollTo({top: 0, behavior: "smooth"}); }, 300); }); switchToMode("paid"); window.scrollTo({top: 0, behavior: "smooth"}); } // Bootstrap mode on page load var paidRef = getPaidRef(); var savedState = null; try { savedState = sessionStorage.getItem("mp_paid_state"); } catch(e){} var orderRaw = null; try { orderRaw = sessionStorage.getItem("mp_order"); } catch(e){} if((paidRef || savedState === "paid") && orderRaw){ try { var order = JSON.parse(orderRaw); // Defer one tick to make sure all design-mode initialisation has happened first setTimeout(function(){ initPaidMode(order); }, 0); } catch(e){ /* fall through to design mode */ } } else if(savedState === "sent" && orderRaw){ try { var order = JSON.parse(orderRaw); setTimeout(function(){ applyOrderToState(order); document.getElementById("sent-ref").textContent = order.ref; switchToMode("sent"); }, 0); } catch(e){} } // Pre-select size from ?size=XX query param (set when arriving from sizes category page) // Only applies in design mode (not in paid/sent restored states) if(!paidRef && savedState !== "paid" && savedState !== "sent"){ var sizeMatch = (window.location.search||"").match(/[?&]size=([^&]+)/); if(sizeMatch){ var requestedSize = decodeURIComponent(sizeMatch[1]).toLowerCase(); // Find the matching size option (data-size like "6x3", "5x2", etc.) var sizeBtn = document.querySelector('#size-opts [data-size="' + requestedSize + '"]'); if(sizeBtn){ // Trigger a click on this button to apply the size selection naturally sizeBtn.click(); // Pin the size: hide the other options and show a confirmation badge with a "change" link var sizeField = document.getElementById("size-field"); var pinnedDims = document.getElementById("pinned-dims"); var pinnedMm = document.getElementById("pinned-mm"); if(sizeField && pinnedDims && pinnedMm){ // Read the selected option's dims and mm from its data attributes // (these decode " → " automatically when read via getAttribute) pinnedDims.textContent = sizeBtn.getAttribute("data-dims"); pinnedMm.textContent = sizeBtn.getAttribute("data-mm"); sizeField.classList.add("size-pinned"); } } } } renderPreview(); updatePrice(false); })();