@extends('layouts.admin') @section('content') @php($activeGroup = request('group', $settingGroups->keys()->first())) @php($hiddenSettingKeys = ['mail_last_test_status', 'mail_last_test_message', 'mail_last_test_debug'])

Site settings

Update the store configuration by section. Each section saves separately, so you can change SMTP, payments, policies, or branding without touching the rest.
Setting groups
@foreach($settingGroups as $group => $groupSettings)
@csrf

{{ $groupLabels->get($group, \Illuminate\Support\Str::headline($group)) }}

Fields in this group are loaded from the database and can be saved independently.
@if($group === 'mail')
Send test email
Use the current mail settings to send a quick test message.
@error('test_email')
{{ $message }}
@enderror
Mail diagnostics
Turn debugging on if you want the exact transport error shown after a failed test.
Mailer: {{ strtoupper($mailDiagnostics['mailer'] ?: 'smtp') }}
From: {{ $mailDiagnostics['mail_from_name'] ?: 'Not set' }} <{{ $mailDiagnostics['mail_from_address'] ?: 'Not set' }}>
@if($mailDiagnostics['mailer'] === 'smtp')
SMTP host: {{ $mailDiagnostics['smtp_host'] ?: 'Not set' }}
SMTP port: {{ $mailDiagnostics['smtp_port'] ?: 'Not set' }}
Encryption: {{ $mailDiagnostics['smtp_encryption'] ?: 'None' }}
@elseif($mailDiagnostics['mailer'] === 'sendmail')
Sendmail path: {{ $mailDiagnostics['sendmail_path'] ?: 'Not set' }}
@endif
Debugging: {{ $mailDiagnostics['debug_enabled'] ? 'Enabled' : 'Disabled' }}
@if($mailDiagnostics['status'])
Last test: {{ \Illuminate\Support\Str::headline($mailDiagnostics['status']) }}
@endif @if($mailDiagnostics['message'])
{{ $mailDiagnostics['message'] }}
@endif @if($mailDiagnostics['debug'])
Debug transcript:
{{ $mailDiagnostics['debug'] }}
@endif
@endif
@forelse($groupSettings as $setting) @continue(in_array($setting->key, $hiddenSettingKeys, true)) @php($isImage = in_array($setting->key, ['site_logo', 'site_favicon'], true)) @php($isToggle = in_array($setting->key, ['maintenance_mode', 'admin_require_mfa', 'recaptcha_enabled', 'newsletter_enabled', 'mail_debug_enabled'], true)) @php($isLong = strlen((string) $setting->value) > 80 || str_contains((string) $setting->key, 'code') || in_array($setting->key, ['live_animal_shipping_notice', 'site_meta_description', 'newsletter_footer_text'], true)) @php($isSensitive = $setting->is_encrypted) @php($fieldName = "settings.{$setting->key}")
@if($isImage) @php($storedPath = old($fieldName, $setting->value)) @if($storedPath)
{{ $setting->key }}
@endif @elseif($isToggle) @elseif($isSensitive) @elseif($setting->key === 'smtp_encryption') @elseif($setting->key === 'mail_mailer') @elseif(in_array($setting->key, ['stripe_environment', 'paypal_environment'], true)) @elseif($isLong) @else @endif
{{ $setting->is_encrypted ? 'Sensitive value is hidden and will only change if you enter a new one.' : 'Stored in the database for this settings group.' }} @if($setting->key === 'admin_require_mfa') Admin users will be prompted to complete MFA before accessing protected admin pages. @elseif($setting->key === 'public_support_email') This is the email address shown on the public contact page. @elseif($setting->key === 'tawk_widget_code') Paste the full widget embed code from Tawk.to if you want live chat enabled site-wide. @elseif($setting->key === 'live_animal_shipping_notice') This notice is shown to customers on relevant storefront pages and checkout screens. @elseif($setting->key === 'mail_mailer') Choose SMTP for authenticated mail delivery, Sendmail for server-level delivery, or Log only for debugging without sending real emails. @elseif($setting->key === 'mail_sendmail_path') Used only when the selected mailer is set to Sendmail. @elseif($setting->key === 'mail_debug_enabled') When enabled, failed test emails will show the exact transport error on this page. @elseif($setting->key === 'tracking_url_template') Use a URL with a tracking placeholder if this setting is later surfaced in shipping configuration. @endif
@error($fieldName)
{{ $message }}
@enderror
@empty
No settings were found in this group.
@endforelse
@endforeach
@csrf
@endsection