added on local at 2026-07-01 13:48:01
| 1 | <!DOCTYPE html> | |
| 2 | <html lang="en"> | |
| 3 | <head> | |
| 4 | <meta charset="UTF-8"> | |
| 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| 6 | <title>Order #$order_id · $store_name</title> | |
| 7 | <link rel="stylesheet" href="/assets/css/site.css"> | |
| 8 | <style>:root { $theme_css_vars }</style> | |
| 9 | <style> | |
| 10 | body { background: var(--col-bg); color: var(--col-text); font-family: var(--font-ui, sans-serif); margin: 0; } | |
| 11 | .cc-page { max-width: 720px; margin: 0 auto; padding: 60px 24px 100px; } | |
| 12 | .cc-card { background: var(--col-surface-1); border:1px solid var(--col-border-2); border-radius:16px; padding:36px 32px; } | |
| 13 | .cc-card h1 { margin:0 0 12px; font-size:28px; color: var(--col-text); } | |
| 14 | .cc-line { display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--col-border); font-size:14px; align-items:center; gap:14px; } | |
| 15 | .cc-line:last-child { border-bottom:0; } | |
| 16 | .cc-line .qty { color:var(--col-text-3); font-size:12px; margin-left:6px; } | |
| 17 | .cc-total-row { display:flex; justify-content:space-between; margin-top:16px; padding-top:14px; border-top:2px solid var(--col-border-2); font-weight:700; font-size:18px; color:var(--col-text); } | |
| 18 | .cc-btn { display:inline-block; padding:8px 14px; border-radius:8px; background:linear-gradient(130deg, var(--col-accent), var(--col-accent-bright)); border:0; color:#fff; font-size:13px; font-weight:700; text-decoration:none; } | |
| 19 | .cc-btn.secondary { background:var(--col-surface-2); border:1px solid var(--col-border); color:var(--col-text); } | |
| 20 | .cc-status { display:inline-block; padding:6px 12px; border-radius:99px; font-size:12px; font-weight:600; letter-spacing:0.4px; text-transform:uppercase; } | |
| 21 | .cc-status.paid { background:rgba(34,197,94,0.15); color:#86efac; border:1px solid rgba(34,197,94,0.35); } | |
| 22 | .cc-status.pending { background:rgba(234,179,8,0.15); color:#fcd34d; border:1px solid rgba(234,179,8,0.35); } | |
| 23 | .cc-status.failed { background:rgba(239,68,68,0.15); color:#fca5a5; border:1px solid rgba(239,68,68,0.35); } | |
| 24 | .cc-foot { margin-top: 28px; display:flex; gap:10px; justify-content:center; flex-wrap:wrap; } | |
| 25 | </style> | |
| 26 | [if:$is_pending] | |
| 27 | <meta http-equiv="refresh" content="6"> | |
| 28 | [/if] | |
| 29 | </head> | |
| 30 | <body> | |
| 31 | $store_chrome_html | |
| 32 | <main class="cc-page"> | |
| 33 | ||
| 34 | <div class="cc-card"> | |
| 35 | [if:$is_paid] | |
| 36 | <span class="cc-status paid">Paid</span> | |
| 37 | <h1 style="margin-top:14px">Thanks for your order.</h1> | |
| 38 | <p>Order <strong>#$order_id</strong> · receipt sent to <strong>$buyer_email</strong>. Your downloads are ready.</p> | |
| 39 | [/if] | |
| 40 | ||
| 41 | [if:$is_pending] | |
| 42 | <span class="cc-status pending">Processing</span> | |
| 43 | <h1 style="margin-top:14px">Almost done.</h1> | |
| 44 | <p>Your payment is settling with Stripe. This page refreshes automatically; downloads unlock the moment payment confirms (usually a few seconds).</p> | |
| 45 | [/if] | |
| 46 | ||
| 47 | [if:$is_failed] | |
| 48 | <span class="cc-status failed">Failed</span> | |
| 49 | <h1 style="margin-top:14px">Payment didn't go through.</h1> | |
| 50 | <p>Your card was declined or the payment was cancelled. Nothing was charged. You can retry from the cart.</p> | |
| 51 | [/if] | |
| 52 | ||
| 53 | [if:$has_items] | |
| 54 | <div style="margin-top:22px"> | |
| 55 | [loop:@items] | |
| 56 | <div class="cc-line"> | |
| 57 | <span>$loop1.title<span class="qty">x$loop1.qty</span></span> | |
| 58 | <span style="display:flex;gap:10px;align-items:center"> | |
| 59 | <span class="font-mono">$loop1.line_total</span> | |
| 60 | [if:$loop1.download_url]<a href="$loop1.download_url" class="cc-btn">Download</a>[/if] | |
| 61 | </span> | |
| 62 | </div> | |
| 63 | [/loop] | |
| 64 | [if:$has_tax] | |
| 65 | <div class="cc-line"><span>Subtotal</span><span class="font-mono">$subtotal_display</span></div> | |
| 66 | [loop:@tax_lines] | |
| 67 | <div class="cc-line" style="color:var(--col-text-2)"><span>$loop1.label ($loop1.rate%)</span><span class="font-mono">$loop1.cents</span></div> | |
| 68 | [/loop] | |
| 69 | [/if] | |
| 70 | <div class="cc-total-row"><span>Total</span><span class="font-mono">$total_display</span></div> | |
| 71 | </div> | |
| 72 | [/if] | |
| 73 | ||
| 74 | <div class="cc-foot"> | |
| 75 | [if:$is_paid]<a href="$orders_href" class="cc-btn secondary">All my orders</a>[/if] | |
| 76 | [if:$is_failed]<a href="$back_href" class="cc-btn">Back to $store_name</a>[/if] | |
| 77 | [if:!$is_failed]<a href="$back_href" class="cc-btn secondary">Back to $store_name</a>[/if] | |
| 78 | </div> | |
| 79 | </div> | |
| 80 | ||
| 81 | </main> | |
| 82 | </body> | |
| 83 | </html> |