Promo: order page + red banner + contact form; fix admin login rehash
- /order page: single tag $5.50 / 10-pack $22.00 (GST-incl), qty via Stripe Payment Links (single 1-25, pack 1-2), thanks state - Red 'Protect & recover your valuables — ORDER NOW' banner in base layout (every page incl. found-dog tag page) + footer promo links - Contact page: form -> Gmail SMTP (env SMTP_*), hello@where-woof.com - Fix admin login 500: User.getAuthPasswordName() = password_hash so Laravel 13 rehash-on-login writes the correct column (was trying UPDATE users SET password = ...)
This commit is contained in:
@@ -40,9 +40,25 @@
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<!-- Promo banner: consistent across every page -> order page -->
|
||||
<div class="bg-red-600 text-white">
|
||||
<a href="/order" class="mx-auto flex max-w-4xl items-center justify-center gap-2 px-4 py-2.5 text-center text-sm font-bold tracking-wide hover:bg-red-500">
|
||||
<span>🛡️ Protect & recover your valuables</span>
|
||||
<span class="rounded bg-white px-2 py-0.5 text-xs font-extrabold text-red-600">ORDER NOW — tags from $5</span>
|
||||
</a>
|
||||
</div>
|
||||
<main class="mx-auto max-w-4xl px-4 py-8">
|
||||
{{template "content" .}}
|
||||
</main>
|
||||
<footer class="border-t border-stone-200 py-6">
|
||||
<div class="mx-auto flex max-w-4xl flex-wrap items-center justify-center gap-x-6 gap-y-2 px-4 text-sm text-stone-500">
|
||||
<a href="/order" class="font-semibold text-red-600 hover:underline">🛡️ Order tags — from $5</a>
|
||||
<a href="/about" class="hover:underline">About</a>
|
||||
<a href="/what-is-this" class="hover:underline">What is this?</a>
|
||||
<a href="/contact" class="hover:underline">Get in touch</a>
|
||||
<span>🐕 Where Woof — every item deserves a way home</span>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
|
||||
@@ -2,10 +2,47 @@
|
||||
<div class="mx-auto max-w-2xl">
|
||||
<h1 class="text-3xl font-extrabold tracking-tight">Get in touch</h1>
|
||||
<p class="mt-4 text-stone-700">Questions, lost-tag help, or bulk orders? We'd love to hear from you.</p>
|
||||
|
||||
{{if .Data.Sent}}
|
||||
<div class="mt-6 rounded-xl border border-green-200 bg-green-50 p-6 text-center shadow-sm">
|
||||
<div class="text-4xl">📨</div>
|
||||
<h2 class="mt-2 text-lg font-bold text-green-800">Message sent!</h2>
|
||||
<p class="mt-1 text-green-700">Thanks for reaching out — we'll get back to you shortly (usually within a day).</p>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="mt-6 rounded-xl border border-stone-200 bg-white p-6 shadow-sm">
|
||||
{{if .Data.Error}}
|
||||
<p class="mb-4 rounded border border-red-200 bg-red-50 px-4 py-2 text-sm text-red-700">{{.Data.Error}}</p>
|
||||
{{end}}
|
||||
<form method="post" action="/contact" class="space-y-4">
|
||||
<div class="grid gap-4 sm:grid-cols-2">
|
||||
<div>
|
||||
<label class="block text-sm font-semibold text-stone-700" for="name">Your name</label>
|
||||
<input id="name" name="name" required class="mt-1 w-full rounded-lg border border-stone-300 px-3 py-2 text-sm focus:border-amber-500 focus:outline-none" placeholder="Jane Smith">
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-semibold text-stone-700" for="email">Your email</label>
|
||||
<input id="email" name="email" type="email" required class="mt-1 w-full rounded-lg border border-stone-300 px-3 py-2 text-sm focus:border-amber-500 focus:outline-none" placeholder="you@example.com">
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-semibold text-stone-700" for="subject">Subject</label>
|
||||
<input id="subject" name="subject" class="mt-1 w-full rounded-lg border border-stone-300 px-3 py-2 text-sm focus:border-amber-500 focus:outline-none" placeholder="Bulk order for a park / trail">
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-semibold text-stone-700" for="message">Message</label>
|
||||
<textarea id="message" name="message" required rows="5" class="mt-1 w-full rounded-lg border border-stone-300 px-3 py-2 text-sm focus:border-amber-500 focus:outline-none" placeholder="Tell us what you need…"></textarea>
|
||||
</div>
|
||||
<button type="submit" class="rounded-full bg-stone-900 px-6 py-2.5 text-sm font-bold text-white hover:bg-stone-700">Send message</button>
|
||||
</form>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<div class="mt-6 space-y-3 rounded-xl border border-stone-200 bg-white p-6 text-sm shadow-sm">
|
||||
<p><strong>Email:</strong> <a href="mailto:info@where-woof.com" class="text-amber-600 hover:underline">info@where-woof.com</a></p>
|
||||
<p><strong>Email:</strong> <a href="mailto:hello@where-woof.com" class="text-amber-600 hover:underline">hello@where-woof.com</a></p>
|
||||
<p><strong>Website:</strong> <a href="/" class="text-amber-600 hover:underline">where-woof.com</a></p>
|
||||
<p><strong>Order tags:</strong> <a href="/order" class="text-amber-600 hover:underline">yeah, take my money</a> — from $5 + GST.</p>
|
||||
<p class="text-stone-500">For bulk tags (parks, trails, campgrounds) mention your use case and volume.</p>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}
|
||||
60
frontend/templates/order.html
Normal file
60
frontend/templates/order.html
Normal file
@@ -0,0 +1,60 @@
|
||||
{{define "content"}}
|
||||
<div class="mx-auto max-w-3xl">
|
||||
{{if .Data.Thanks}}
|
||||
<div class="mb-6 rounded-xl border border-green-200 bg-green-50 p-6 text-center shadow-sm">
|
||||
<div class="text-4xl">✅</div>
|
||||
<h2 class="mt-2 text-xl font-bold text-green-800">Thanks for your order!</h2>
|
||||
<p class="mt-1 text-green-700">We've received your payment and will ship your tags soon. Watch your inbox for the email from <strong>hello@where-woof.com</strong> with activation details.</p>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
<h1 class="text-3xl font-extrabold tracking-tight">Order tags</h1>
|
||||
<p class="mt-2 text-stone-700">Stick a Where Woof tag on anything you don't want to lose — a dog collar, a school bag, ski gear, a toolbox. If it's found, whoever finds it scans the tag and you get an SMS with its location, instantly.</p>
|
||||
|
||||
<div class="mt-8 grid gap-6 sm:grid-cols-2">
|
||||
<!-- Single tag -->
|
||||
<div class="flex flex-col rounded-2xl border border-stone-200 bg-white p-6 shadow-sm">
|
||||
<div class="text-4xl">🏷️</div>
|
||||
<h2 class="mt-3 text-xl font-bold">Single tag</h2>
|
||||
<p class="mt-1 text-sm text-stone-600">One tag for one item. Plastic laminate, QR + NFC.</p>
|
||||
<p class="mt-4 text-2xl font-extrabold">$5.00 <span class="text-sm font-normal text-stone-500">+ GST ($5.50)</span></p>
|
||||
<p class="mt-1 text-xs text-stone-500">+ $10/yr subscription (50 SMS alerts included)</p>
|
||||
<div class="mt-auto pt-5">
|
||||
<a href="{{.Data.SingleLink}}" class="block rounded-full bg-stone-900 px-5 py-3 text-center font-bold text-white hover:bg-stone-700">
|
||||
Order now
|
||||
</a>
|
||||
<p class="mt-2 text-center text-xs text-stone-500">Need 2, 3 … 7? Pick the quantity at checkout (up to 25).</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 10-pack -->
|
||||
<div class="flex flex-col rounded-2xl border-2 border-red-600 bg-white p-6 shadow-sm">
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="text-4xl">🎒🐾</div>
|
||||
<span class="rounded-full bg-red-600 px-2.5 py-1 text-xs font-extrabold text-white">BEST VALUE</span>
|
||||
</div>
|
||||
<h2 class="mt-3 text-xl font-bold">10-pack</h2>
|
||||
<p class="mt-1 text-sm text-stone-600">Tag the whole family — collars, bags, keys, skis.</p>
|
||||
<p class="mt-4 text-2xl font-extrabold">$20.00 <span class="text-sm font-normal text-stone-500">+ GST ($22.00)</span></p>
|
||||
<p class="mt-1 text-xs text-stone-500">$2 per tag · + $10/yr subscription (50 SMS alerts included)</p>
|
||||
<div class="mt-auto pt-5">
|
||||
<a href="{{.Data.PackLink}}" class="block rounded-full bg-red-600 px-5 py-3 text-center font-bold text-white hover:bg-red-500">
|
||||
Order the 10-pack
|
||||
</a>
|
||||
<p class="mt-2 text-center text-xs text-stone-500">Up to 2 packs per account (20 tags, fits the 25-tag limit).</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-8 rounded-xl border border-stone-200 bg-white p-6 text-sm shadow-sm">
|
||||
<h3 class="font-bold">How it works</h3>
|
||||
<ol class="mt-2 list-decimal space-y-1 pl-5 text-stone-700">
|
||||
<li>Order your tags — they arrive ready to scan (QR + NFC).</li>
|
||||
<li>When they arrive, create a free account and add each tag.</li>
|
||||
<li>Set the item's name and your phone number.</li>
|
||||
<li>If it's ever lost and found, you get an SMS with a map link — instantly.</li>
|
||||
</ol>
|
||||
<p class="mt-3 text-stone-500">Questions? <a href="/contact" class="text-amber-600 hover:underline">Get in touch</a> — hello@where-woof.com</p>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
Reference in New Issue
Block a user