Contact Us Page Content Customization
Contact Us Page Management
Overview
The Contact Us Page Management module provides a comprehensive interface for customizing your organization's contact page. This module allows you to manage all contact-related content including hero section text, contact information (address, phone, email), business hours, location map, and contact form settings through a single, organized interface.
The Contact Us page serves as the primary channel for visitors to reach out to your organization. It displays contact information, a submission form, and an embedded map showing your location. All content is fully customizable and changes are reflected immediately on the live page.
Use this module to ensure visitors can easily find your contact details and submit inquiries through a user-friendly form with built-in validation and spam protection.
Accessing Contact Us Page Management
Navigation path: Dashboard > Appearance > Contact Us Page
Required permission: landing-page.view
Key Features
- Hero Section Customization: Edit page heading and introductory text
- Contact Information Management: Update address, phone numbers, and email addresses
- Business Hours Configuration: Display operating hours with up to three lines
- Google Maps Integration: Embed interactive location map using iframe code
- Contact Form Settings: Customize form heading and email notification settings
- Real-time Preview: View changes on the live Contact Us page instantly
- Organized Interface: Content grouped into logical sections with color-coded cards
- Form Validation: Built-in validation for name, email, phone, subject, and message fields
- Spam Protection: Integrated captcha system to prevent automated submissions
- Email Notifications: Automatic email delivery of contact form submissions
- Responsive Design: All content adapts seamlessly to mobile and desktop devices
- Dark Mode Support: Full compatibility with light and dark themes
Main Interface
Page Editor View
The Contact Us page editor is organized into five main sections, each presented in a distinct card with color-coded headers:
-
Hero Section (Blue gradient with envelope icon)
- Page heading and introductory text
-
Contact Information (Blue gradient with info icon)
- Address, phone numbers, and email addresses
-
Business Hours (Green gradient with clock icon)
- Operating hours and availability information
-
Location Map (Purple gradient with map icon)
- Google Maps embed iframe code with instructions
-
Contact Form (Amber gradient with form icon)
- Form heading and email configuration
Each section includes:
- Clear section headers with descriptive icons
- Organized input fields with labels
- Helpful placeholder text and examples
- Save and cancel buttons at the bottom
Actions Available
- Edit Content: Modify text fields for any section
- Update Contact Details: Change address, phone, and email information
- Configure Business Hours: Set operating hours across three lines
- Embed Map: Add or update Google Maps iframe code
- Customize Form: Edit form heading and email settings
- Preview Page: View the live Contact Us page in a new tab
- Save Changes: Update all modifications at once
- Cancel: Discard changes and return to dashboard
Common Tasks
Task 1: Editing the Hero Section
The hero section is the first thing visitors see on your Contact Us page. To update it:
- Navigate to Dashboard > Appearance > Contact Us Page
- Locate the Hero Section card (blue gradient header with envelope icon)
- Edit the following fields:
- Contact Heading: Main page title (e.g., "Contact Us", "Get In Touch")
- Contact Text: Introductory paragraph explaining how visitors can reach you
- Click "Save Changes" at the bottom of the page
Result: The hero section displays your updated heading and text with a gradient background.
Example values:
- Heading: "Contact Our Team"
- Text: "We're here to help. Reach out to us with any questions or inquiries."
Task 2: Updating Contact Information
Provide visitors with multiple ways to reach your organization:
- Go to Dashboard > Appearance > Contact Us Page
- Find the Contact Information section card
- Update the following fields:
- Contact Info Heading: Section title (e.g., "Get In Touch", "Contact Details")
- Contact Address: Full physical address
- Contact Phone: Primary phone number
- Contact Email: Primary email address
- Contact Email 2: Secondary/alternate email address (optional)
- Click "Save Changes"
Result: Contact information displays in an organized card with icons for address, phone, and email.
Tips:
- Include complete address with postal code
- Use international format for phone numbers (e.g., +91 9834754391)
- Provide working email addresses that are monitored regularly
- Add a secondary email for different departments if needed
Task 3: Configuring Business Hours
Let visitors know when your organization is available:
- Navigate to Dashboard > Appearance > Contact Us Page
- Locate the Business Hours section card (green gradient header)
- Fill in up to three lines of business hours:
- Contact Business Hours 1: First line (e.g., "Monday - Friday: 9:00 AM - 5:00 PM")
- Contact Business Hours 2: Second line (e.g., "Saturday: 10:00 AM - 2:00 PM")
- Contact Business Hours 3: Third line (e.g., "Sunday: Closed")
- Click "Save Changes"
Result: Business hours display in a card with a clock icon, showing your availability.
Best practices:
- Use consistent time format (12-hour or 24-hour)
- Clearly indicate closed days
- Include timezone if serving multiple regions
- Update for holidays or special hours
Task 4: Embedding a Location Map
Add an interactive Google Maps embed to help visitors find your location:
- Go to Dashboard > Appearance > Contact Us Page
- Find the Location Map section card (purple gradient header)
- Follow the instructions provided in the blue info box:
- Go to Google Maps
- Search for your location
- Click the "Share" button
- Select "Embed a map" tab
- Copy the iframe HTML code
- Paste it in the Contact Map Iframe field
- Click "Save Changes"
Result: An interactive Google Map appears on the Contact Us page showing your location.
Important notes:
- Paste the complete iframe code including
<iframe>tags - The map will automatically resize to fit the page width
- Default height is 450 pixels
- Visitors can zoom, pan, and get directions directly from the embedded map
Task 5: Customizing the Contact Form
Configure the contact form heading and email settings:
- Navigate to Dashboard > Appearance > Contact Us Page
- Locate the Contact Form section card (amber gradient header)
- Edit the following fields:
- Contact Form Heading: Form section title (e.g., "Send Us a Message")
- Contact Form Subject: Email subject line for form submissions
- Click "Save Changes"
Result: The contact form displays with your custom heading, and submissions are sent with your specified subject line.
Form features:
- Required fields: Name, Email, Subject, Message
- Optional field: Phone number
- Subject dropdown with predefined options:
- General Inquiry
- Customer Support
- Sales Inquiry
- Partnership
- Feedback
- Other
- Message minimum length: 10 characters
- Built-in email validation
- Captcha protection against spam
- Success/error message display
Settings and Options
Hero Section Fields
Contact Heading (contact_heading)
- Type: Text
- Required: No
- Max Length: 255 characters
- Description: Main page title displayed at the top
- Default: "Contact Us"
- Example: "Contact Our Team", "Get In Touch", "Reach Out to Us"
Contact Text (contact_text)
- Type: Textarea
- Required: No
- Description: Introductory paragraph below the heading
- Default: "Get in touch with us. We are here to help and answer any questions you may have."
- Example: "We're here to help. Reach out to us with any questions or inquiries."
Contact Information Fields
Contact Info Heading (contact_info_heading)
- Type: Text
- Required: No
- Max Length: 255 characters
- Description: Section title for contact information
- Default: "Get In Touch"
- Example: "Contact Details", "How to Reach Us"
Contact Address (contact_address)
- Type: Text
- Required: No
- Max Length: 500 characters
- Description: Full physical address of your organization
- Example: "Panchshil Square, Shedepar Road, Deori, Gondia, Maharashtra - 441901"
- Display: Shows with a location pin icon
Contact Phone (contact_phone)
- Type: Text
- Required: No
- Max Length: 50 characters
- Description: Primary phone number
- Example: "+91 9834754391", "+1 (555) 123-4567"
- Display: Shows with a phone icon and clickable tel: link
- Tip: Use international format for clarity
Contact Email (contact_email)
- Type: Email
- Required: No
- Max Length: 255 characters
- Description: Primary email address
- Example: "contact@example.com"
- Display: Shows with an envelope icon and clickable mailto: link
Contact Email 2 (contact_email_2)
- Type: Email
- Required: No
- Max Length: 255 characters
- Description: Secondary or alternate email address
- Example: "support@example.com", "info@example.com"
- Display: Shows below primary email if provided
Business Hours Fields
Contact Business Hours 1 (contact_business_hours_1)
- Type: Text
- Required: No
- Max Length: 255 characters
- Description: First line of business hours
- Example: "Monday - Friday: 9:00 AM - 5:00 PM"
- Display: Shows with a clock icon
Contact Business Hours 2 (contact_business_hours_2)
- Type: Text
- Required: No
- Max Length: 255 characters
- Description: Second line of business hours
- Example: "Saturday: 10:00 AM - 2:00 PM"
Contact Business Hours 3 (contact_business_hours_3)
- Type: Text
- Required: No
- Max Length: 255 characters
- Description: Third line of business hours
- Example: "Sunday: Closed"
Location Map Fields
Contact Map Iframe (contact_map_iframe)
- Type: Textarea (HTML)
- Required: No
- Description: Google Maps embed iframe code
- Format: Complete iframe HTML including opening and closing tags
- Example:
<iframe src="https://www.google.com/maps/embed?pb=..." width="100%" height="450" style="border:0;" allowfullscreen="" loading="lazy"></iframe> - Display: Renders as an interactive map in an aspect-video container
- Note: The iframe is rendered using
{!! !!}to allow HTML
Contact Form Fields
Contact Form Heading (contact_form_heading)
- Type: Text
- Required: No
- Max Length: 255 characters
- Description: Heading displayed above the contact form
- Default: "Send Us a Message"
- Example: "Contact Form", "Get In Touch", "Send Your Inquiry"
Contact Form Subject (contact_form_subject)
- Type: Text
- Required: No
- Max Length: 255 characters
- Description: Email subject line for form submissions
- Example: "New Contact Form Submission", "Website Inquiry"
- Note: This subject line is used when sending email notifications
Form Field Configuration
The contact form includes the following fields (not editable through settings):
Name Field:
- Required field
- Validates for non-empty input
- Placeholder: "John Doe"
Email Field:
- Required field
- Validates email format using regex
- Placeholder: "john@example.com"
Phone Field:
- Optional field
- No specific format validation
- Placeholder: "+1 (555) 123-4567"
Subject Field:
- Required dropdown field
- Predefined options:
- General Inquiry
- Customer Support
- Sales Inquiry
- Partnership
- Feedback
- Other
Message Field:
- Required textarea
- Minimum length: 10 characters
- Rows: 5
- Placeholder: "Tell us how we can help you..."
Captcha:
- Integrated using
<x-captcha />component - Prevents automated spam submissions
- Required for form submission
Permissions
The Contact Us Page module uses the following permission:
landing-page.view: Can view and edit the Contact Us page settings
Note: This permission is shared with the Landing Page and About Us Page modules. Users with this permission can access all special page management interfaces.
Email Notifications
When a visitor submits the contact form:
- Form data is validated on both client and server side
- Captcha is verified to prevent spam
- Contact message is saved to the database
- Email notification is sent to configured email address(es)
- Success message is displayed to the visitor
- Admin can view submissions in Dashboard > Contact Messages
Email includes:
- Sender name and email
- Phone number (if provided)
- Selected subject
- Message content
- Submission timestamp
Tips and Best Practices
- Keep Information Current: Regularly update contact details, especially if phone numbers or addresses change
- Test Contact Form: Periodically submit test messages to ensure email delivery is working
- Monitor Business Hours: Update hours for holidays, special events, or seasonal changes
- Verify Map Location: Ensure the embedded map shows the correct location and is easily visible
- Use Professional Email: Provide business email addresses rather than personal ones
- Respond Promptly: Check contact form submissions regularly and respond in a timely manner
- Clear Communication: Write clear, welcoming text that encourages visitors to reach out
- Multiple Contact Methods: Provide various ways to contact you (phone, email, form)
- Accessibility: Ensure all contact information is readable and accessible
- Mobile Testing: Verify the contact page displays correctly on mobile devices
- Spam Protection: Keep captcha enabled to prevent automated spam submissions
- Privacy Consideration: Add a privacy policy link near the contact form if collecting personal data
- Time Zone Clarity: Include timezone in business hours if serving multiple regions
- Emergency Contact: Consider adding an emergency contact number if applicable
- Social Media: Link to social media profiles in the footer for additional contact options
Troubleshooting
Problem: Changes not appearing on the Contact Us page
Solution:
- Verify you clicked "Save Changes" and saw a success message
- Clear your browser cache and hard refresh (Ctrl+F5 or Cmd+Shift+R)
- Check that you're viewing the correct URL (
/pages/contact-us) - Verify the page is not cached by your server or CDN
- Check browser console for JavaScript errors
- Try viewing in an incognito/private browser window
Problem: Contact form submissions not being received
Solution:
- Check email configuration in
.envfile (MAIL_* settings) - Verify SMTP credentials are correct
- Test email functionality using Laravel's mail testing tools
- Check spam/junk folders for form submission emails
- Review server logs for email sending errors
- Ensure the recipient email address is valid
- Check that the mail queue is running if using queued emails
- Verify firewall isn't blocking outgoing SMTP connections
Problem: Google Maps not displaying
Solution:
- Verify you pasted the complete iframe code including
<iframe>tags - Check that the iframe src URL is valid and accessible
- Ensure the map embed URL hasn't expired
- Try generating a new embed code from Google Maps
- Check browser console for iframe loading errors
- Verify your site's Content Security Policy allows Google Maps iframes
- Test the iframe code in a simple HTML file to isolate the issue
Problem: Captcha not working or blocking legitimate submissions
Solution:
- Verify captcha service (reCAPTCHA, hCaptcha, etc.) is properly configured
- Check API keys in
.envfile are correct - Ensure captcha service is not blocked by browser extensions
- Test in a different browser or incognito mode
- Review captcha service dashboard for error logs
- Check that JavaScript is enabled in the browser
- Verify the captcha component is properly rendered in the form
Problem: Form validation errors not displaying correctly
Solution:
- Check browser console for JavaScript errors
- Verify validation messages are defined in language files
- Ensure CSS for error styling is loaded
- Test with different input to trigger specific validation rules
- Check that Laravel validation rules match frontend validation
- Clear browser cache and reload the page
- Review the form submission response in browser developer tools
Problem: Business hours or contact info not showing on page
Solution:
- Verify the fields are not empty in the settings
- Check that the frontend template uses the correct setting keys
- Ensure
get_setting()helper function is working correctly - Review the public contact page blade template
- Check for conditional rendering that might hide empty fields
- Verify settings are marked as
is_public => truein database - Clear application cache:
php artisan cache:clear
Problem: Permission denied when accessing Contact Us page settings
Solution:
- Contact your administrator to request
landing-page.viewpermission - Verify your user role has the necessary permissions assigned
- Check that you're logged in with the correct account
- Review the roles and permissions module for your access level
- Ensure your account is active and not suspended
- Check if permission middleware is correctly applied to the route
Problem: Map iframe code gets stripped or sanitized
Solution:
- Verify the field is configured to accept HTML content
- Check that the controller doesn't sanitize iframe tags
- Ensure the blade template uses
{!! !!}instead of{{ }}for rendering - Review any HTML purifier or sanitization middleware
- Test with a simple iframe first to isolate the issue
- Check Content Security Policy headers aren't blocking iframes
Problem: Email addresses or phone numbers not clickable
Solution:
- Verify the frontend template wraps emails in
<a href="mailto:...">tags - Check that phone numbers use
<a href="tel:...">tags - Ensure the template is rendering the contact information correctly
- Review the public contact page blade file for proper link formatting
- Test on different devices (some mobile browsers auto-detect contact info)
- Clear browser cache and reload the page
Problem: Form submissions saved but email not sent
Solution:
- Check that email notification is enabled in the controller
- Verify the
contact_emailsetting has a valid email address - Review mail configuration in
.envfile - Check Laravel logs for email sending errors (
storage/logs/laravel.log) - Test email functionality with
php artisan tinkerandMail::raw() - Ensure mail queue worker is running if using queued emails
- Verify SMTP server is accessible and credentials are correct
- Check for rate limiting on your email service provider
Problem: Contact page returns 404 error
Solution:
- Verify the route is defined in
routes/web.php - Check that the
SiteController@contactmethod exists - Ensure the contact page blade template exists at
resources/views/public/pages/contact-us.blade.php - Clear route cache:
php artisan route:clear - Run
php artisan route:listto verify the route is registered - Check for any middleware that might be blocking access
- Verify web server configuration allows the route
Quick Links
Need More Help?
Our comprehensive documentation covers everything from basic setup to advanced configurations. Check out these additional resources: