Hintergründe zum EventInvitePage Layout Customizer hinzugefügt. Badge und CTA entfernt, Textfelder zu Textareas gemacht. Geschenkgutscheine verbessert, E-Mail-Versand ergänzt + Resend + Confirmationseite mit Code-Copy und Link zur Package-Seite, die den Code als URL-Parameter enthält.

This commit is contained in:
Codex Agent
2025-12-08 16:20:04 +01:00
parent 046e2fe3ec
commit 4784c23e70
35 changed files with 1503 additions and 136 deletions

View File

@@ -197,4 +197,27 @@ return [
'footer' => 'Please review and follow up if needed.',
],
],
'gift_voucher' => [
'purchaser' => [
'subject' => 'Your gift voucher (:amount :currency)',
'greeting' => 'Thank you for your purchase!',
'body' => 'Here is your Fotospiel gift voucher worth :amount :currency. You can share the code with your recipient: :recipient.',
'recipient_fallback' => 'your recipient',
],
'recipient' => [
'subject' => 'You received a Fotospiel gift voucher (:amount :currency)',
'greeting' => 'You have a gift!',
'body' => ':purchaser sent you a Fotospiel gift voucher worth :amount :currency. Redeem it with the code below.',
],
'code_label' => 'Voucher code',
'redeem_hint' => 'Redeem this code during checkout for any end customer package.',
'expiry' => 'Valid until :date.',
'message_title' => 'Personal message',
'withdrawal' => 'Withdrawal policy: <a href=":url">View details</a> (14 days; expires upon redemption).',
'footer' => 'Best regards,<br>The Fotospiel Team',
'printable' => 'Printable version (with QR)',
'reminder' => 'Reminder: You still have an unused voucher.',
'expiry_soon' => 'Heads up: Your voucher will expire soon.',
],
];

View File

@@ -215,7 +215,37 @@
"purchase_complete_title": "Complete Purchase",
"purchase_complete_desc": "Log in to continue.",
"login": "Login",
"no_account": "No Account? Register"
"no_account": "No Account? Register",
"gift_code_title": "Your gift voucher code",
"gift_code_label": "Voucher code",
"gift_loading": "Loading your voucher…",
"gift_lookup_failed": "We could not load the voucher. Please check your confirmation email.",
"gift_copy": "Copy code",
"gift_copied": "Copied!",
"gift_copy_failed": "Copying failed. Please try again.",
"gift_share": "Share",
"gift_value": "Value: :amount :currency",
"gift_expires": "Valid until :date",
"gift_share_text": "Here is your Fotospiel gift voucher. Code: :code (value :amount :currency)."
},
"gift": {
"lookup_title": "Check voucher status",
"lookup_subtitle": "Already have a code? See value, validity, and status.",
"lookup_label": "Voucher code",
"lookup_cta": "Check code",
"lookup_not_found": "Voucher not found or no longer valid.",
"lookup_result_code": "Code: :code",
"lookup_result_value": "Value: :amount :currency",
"lookup_result_expires": "Valid until :date",
"lookup_status": {
"issued": "Status: Issued (ready to redeem)",
"redeemed": "Status: Redeemed",
"refunded": "Status: Refunded",
"expired": "Status: Expired",
"reminder": "Reminder scheduled",
"expiry": "Expiry reminder scheduled"
},
"too_many_attempts": "Too many attempts. Please wait a moment and try again."
},
"blog_show": {
"title_suffix": " - Fotospiel Blog",

View File

@@ -262,6 +262,7 @@ return [
'discount' => 'Discount',
'tax' => 'Tax',
'total' => 'Total after discount',
'expires' => 'Expires',
],
'errors' => [
'required' => 'Please enter a coupon code.',
@@ -274,7 +275,10 @@ return [
'not_synced' => 'This coupon is not ready yet. Please try again later.',
'package_not_configured' => 'This package is not available for coupon redemptions.',
'login_required' => 'Please log in to use this coupon.',
'too_many_attempts' => 'Too many attempts. Please wait a moment and try again.',
'generic' => 'We could not apply this coupon. Please try another one.',
],
'legal_note' => 'Gift vouchers: 14-day withdrawal right until redemption; see withdrawal policy.',
'legal_link' => 'Open withdrawal policy',
],
];