Files
shopify-ai-backup/chat/public/contact.html

487 lines
15 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Contact Us - Plugin Compass</title>
<link rel="icon" type="image/png" href="/assets/Plugin.png">
<link rel="stylesheet" href="styles.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Space+Grotesk:wght@500;700&display=swap"
rel="stylesheet">
<style>
body {
background-color: #f6f6f7;
color: #202223;
font-family: 'Inter', sans-serif;
margin: 0;
display: flex;
flex-direction: column;
min-height: 100vh;
}
.header {
background: white;
padding: 1rem 2rem;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #e1e3e5;
}
.logo {
display: flex;
align-items: center;
gap: 0.5rem;
text-decoration: none;
color: #008060;
font-family: 'Space Grotesk', sans-serif;
font-weight: 700;
font-size: 1.25rem;
}
.logo img {
height: 32px;
width: auto;
}
.container {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
padding: 2rem;
}
.contact-card {
background: white;
padding: 3rem;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
max-width: 500px;
width: 100%;
text-align: center;
}
h1 {
font-family: 'Space Grotesk', sans-serif;
font-size: 2rem;
margin-bottom: 1.5rem;
color: #004c3f;
}
p {
line-height: 1.6;
color: #6d7175;
margin-bottom: 2rem;
}
.email-link {
display: inline-block;
background: linear-gradient(135deg, #008060 0%, #004c3f 100%);
color: white;
text-decoration: none;
padding: 1rem 2rem;
border-radius: 8px;
font-weight: 600;
transition: opacity 0.2s;
}
.email-link:hover {
opacity: 0.9;
}
.footer {
background: white;
padding: 2rem;
text-align: center;
border-top: 1px solid #e1e3e5;
color: #6d7175;
font-size: 0.875rem;
}
.footer a {
color: #008060;
text-decoration: none;
margin: 0 0.5rem;
}
.footer-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 2rem;
max-width: 1200px;
margin: 0 auto;
text-align: left;
}
.footer-brand {
grid-column: span 2;
max-width: 280px;
}
.footer-brand .logo-text {
display: flex;
align-items: center;
gap: 0.5rem;
margin-bottom: 1rem;
font-weight: 700;
font-size: 1.25rem;
color: #1a1a1a;
}
.footer-brand .logo-text img {
height: 32px;
width: auto;
}
.footer-brand p {
color: #6b7280;
font-size: 0.875rem;
line-height: 1.6;
margin-bottom: 0;
}
.footer h4 {
font-weight: 600;
color: #1a1a1a;
margin-bottom: 1rem;
font-size: 0.875rem;
}
.footer ul {
list-style: none;
padding: 0;
margin: 0;
}
.footer li {
margin-bottom: 0.75rem;
}
.footer li a {
color: #6b7280;
font-size: 0.875rem;
transition: color 0.2s;
}
.footer li a:hover {
color: #008060;
}
.footer-newsletter {
max-width: 280px;
}
.footer-newsletter p {
color: #6b7280;
font-size: 0.875rem;
margin-bottom: 1rem;
}
.footer-newsletter form {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.footer-newsletter input[type="email"] {
padding: 0.75rem 1rem;
border: 1px solid #e5e7eb;
border-radius: 8px;
font-size: 0.875rem;
width: 100%;
}
.footer-newsletter button {
background: #008060;
color: white;
border: none;
padding: 0.75rem 1rem;
border-radius: 8px;
font-weight: 600;
font-size: 0.875rem;
cursor: pointer;
transition: background 0.2s;
}
.footer-newsletter button:hover {
background: #006B3D;
}
.footer-bottom {
border-top: 1px solid #e5e7eb;
margin-top: 2rem;
padding-top: 1.5rem;
text-align: center;
}
.footer-bottom p {
color: #9ca3af;
font-size: 0.75rem;
margin: 0;
}
.contact-form {
text-align: left;
margin-top: 1.5rem;
}
.contact-form .form-group {
margin-bottom: 1rem;
}
.contact-form label {
display: block;
font-weight: 500;
margin-bottom: 0.5rem;
color: #374151;
font-size: 0.875rem;
}
.contact-form input,
.contact-form textarea {
width: 100%;
padding: 0.75rem 1rem;
border: 1px solid #e5e7eb;
border-radius: 8px;
font-size: 0.875rem;
font-family: inherit;
transition: border-color 0.2s, box-shadow 0.2s;
}
.contact-form input:focus,
.contact-form textarea:focus {
outline: none;
border-color: #008060;
box-shadow: 0 0 0 3px rgba(0, 128, 96, 0.1);
}
.contact-form textarea {
min-height: 120px;
resize: vertical;
}
.contact-form button {
background: linear-gradient(135deg, #008060 0%, #004c3f 100%);
color: white;
border: none;
padding: 1rem 2rem;
border-radius: 8px;
font-weight: 600;
cursor: pointer;
transition: opacity 0.2s;
width: 100%;
}
.contact-form button:hover {
opacity: 0.9;
}
.contact-form button:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.form-message {
padding: 0.75rem 1rem;
border-radius: 8px;
margin-top: 1rem;
font-size: 0.875rem;
display: none;
}
.form-message.success {
background: #d1fae5;
color: #065f46;
display: block;
}
.form-message.error {
background: #fee2e2;
color: #991b1b;
display: block;
}
</style>
<!-- PostHog Analytics -->
<script src="/posthog.js"></script>
</head>
<body>
<header class="header">
<a href="/" class="logo">
<img src="/assets/Plugin.png" alt="Plugin Compass Logo">
<span>Plugin Compass</span>
</a>
</header>
<main class="container">
<div class="contact-card">
<h1>Get in Touch</h1>
<p>Have questions or need support? We're here to help you build the perfect WordPress Plugin.</p>
<p>Please fill out the form below and we'll get back to you as soon as possible.</p>
<form id="contact-form" class="contact-form">
<div class="form-group">
<label for="contact-name">Your Name</label>
<input type="text" id="contact-name" name="name" placeholder="John Doe" required>
</div>
<div class="form-group">
<label for="contact-email">Email Address</label>
<input type="email" id="contact-email" name="email" placeholder="john@example.com" required>
</div>
<div class="form-group">
<label for="contact-subject">Subject</label>
<input type="text" id="contact-subject" name="subject" placeholder="How can we help?" required>
</div>
<div class="form-group">
<label for="contact-message">Message</label>
<textarea id="contact-message" name="message" placeholder="Tell us more about your project..." required></textarea>
</div>
<button type="submit" id="contact-submit">Send Message</button>
<div id="contact-message-display" class="form-message"></div>
</form>
</div>
</main>
<footer class="footer">
<div class="footer-grid">
<div class="footer-brand">
<div class="logo-text">
<img src="/assets/Plugin.png" alt="Plugin Compass">
<span>Plugin Compass</span>
</div>
<p>The smart way for WordPress site owners to replace expensive plugin subscriptions with custom solutions. Save thousands monthly.</p>
</div>
<div>
<h4>Product</h4>
<ul>
<li><a href="/features">Features</a></li>
<li><a href="/pricing">Pricing</a></li>
<li><a href="#">Templates</a></li>
</ul>
</div>
<div>
<h4>Resources</h4>
<ul>
<li><a href="/docs">Documentation</a></li>
<li><a href="/faq">FAQ</a></li>
</ul>
</div>
<div>
<h4>Legal</h4>
<ul>
<li><a href="/privacy.html">Privacy Policy</a></li>
<li><a href="/terms">Terms of Service</a></li>
<li><a href="/contact">Contact Us</a></li>
</ul>
</div>
<div class="footer-newsletter">
<h4>Stay Updated</h4>
<p>Get the latest updates and WordPress tips.</p>
<form id="footer-signup-form">
<input type="email" name="email" placeholder="Your email" required>
<button type="submit">Subscribe</button>
</form>
<div id="signup-message" class="form-message"></div>
</div>
</div>
<div class="footer-bottom">
<p>&copy; 2026 Plugin Compass. All rights reserved.</p>
</div>
</footer>
<script>
const contactForm = document.getElementById('contact-form');
const contactSubmit = document.getElementById('contact-submit');
const contactMessage = document.getElementById('contact-message-display');
if (contactForm) {
contactForm.addEventListener('submit', async (e) => {
e.preventDefault();
contactSubmit.disabled = true;
contactSubmit.textContent = 'Sending...';
const formData = {
name: document.getElementById('contact-name').value,
email: document.getElementById('contact-email').value,
subject: document.getElementById('contact-subject').value,
message: document.getElementById('contact-message').value
};
try {
const response = await fetch('/api/contact', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(formData)
});
const result = await response.json();
if (response.ok) {
contactMessage.textContent = 'Thank you for your message! We\'ll get back to you soon.';
contactMessage.className = 'form-message success';
contactForm.reset();
} else {
throw new Error(result.error || 'Failed to send message');
}
} catch (error) {
contactMessage.textContent = error.message || 'Failed to send message. Please try again.';
contactMessage.className = 'form-message error';
} finally {
contactSubmit.disabled = false;
contactSubmit.textContent = 'Send Message';
}
});
}
const signupForm = document.getElementById('footer-signup-form');
const signupMessage = document.getElementById('signup-message');
if (signupForm) {
signupForm.addEventListener('submit', async (e) => {
e.preventDefault();
const email = signupForm.querySelector('input[name="email"]').value;
const button = signupForm.querySelector('button');
button.disabled = true;
button.textContent = 'Subscribing...';
try {
const response = await fetch('https://emailmarketing.modelrailway3d.co.uk/api/webhooks/incoming/wh_0Z49zi_DGj4-lKJMOPO8-g', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: email,
source: 'plugin_compass_footer',
timestamp: new Date().toISOString()
})
});
if (response.ok) {
signupMessage.textContent = 'Successfully subscribed!';
signupMessage.className = 'form-message success';
signupForm.reset();
} else {
throw new Error('Failed to subscribe');
}
} catch (error) {
signupMessage.textContent = 'Failed to subscribe. Please try again.';
signupMessage.className = 'form-message error';
} finally {
button.disabled = false;
button.textContent = 'Subscribe';
}
});
}
</script>
</body>
</html>