fixing setup form

This commit is contained in:
Flatlogic Bot 2026-04-21 02:50:35 +00:00
parent be707683ba
commit 9f8d42862c
2 changed files with 105 additions and 28 deletions

View File

@ -0,0 +1,45 @@
-- Seed default WhatsApp / Wablas order templates for existing installs.
-- Safe to import in phpMyAdmin multiple times; existing non-empty values are preserved.
INSERT IGNORE INTO settings (setting_key, setting_value) VALUES
('wablas_template_created', ''),
('wablas_template_pending', ''),
('wablas_template_accepted', ''),
('wablas_template_completed', ''),
('wablas_template_rejected', '');
UPDATE settings
SET setting_value = 'مرحباً {customer_name}، تم استلام طلبك رقم #{order_id}.
الحالة: {status_label}
الإجمالي: {total_amount}
العنوان: {customer_address}
شكراً لتسوقك معنا.'
WHERE setting_key = 'wablas_template_created'
AND (setting_value IS NULL OR TRIM(setting_value) = '');
UPDATE settings
SET setting_value = 'مرحباً {customer_name}، طلبك رقم #{order_id} ما زال {status_label}.
الإجمالي: {total_amount}
سنوافيك بأي تحديث جديد.'
WHERE setting_key = 'wablas_template_pending'
AND (setting_value IS NULL OR TRIM(setting_value) = '');
UPDATE settings
SET setting_value = 'مرحباً {customer_name}، تم قبول طلبك رقم #{order_id}.
الإجمالي: {total_amount}
سنبدأ التجهيز الآن.'
WHERE setting_key = 'wablas_template_accepted'
AND (setting_value IS NULL OR TRIM(setting_value) = '');
UPDATE settings
SET setting_value = 'مرحباً {customer_name}، طلبك رقم #{order_id} أصبح {status_label}.
الإجمالي: {total_amount}
شكراً لك.'
WHERE setting_key = 'wablas_template_completed'
AND (setting_value IS NULL OR TRIM(setting_value) = '');
UPDATE settings
SET setting_value = 'مرحباً {customer_name}، نعتذر، تم تحديث طلبك رقم #{order_id} إلى {status_label}.
إذا رغبت بالمساعدة تواصل معنا.'
WHERE setting_key = 'wablas_template_rejected'
AND (setting_value IS NULL OR TRIM(setting_value) = '');

View File

@ -8,7 +8,7 @@
<h5 class="modal-title"><?= h(tr('إعدادات الشركة', 'Company Settings')) ?></h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="modal-body pb-2">
<ul class="nav nav-tabs mb-4" id="settingsTabs" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="settings-company-tab" data-bs-toggle="tab" data-bs-target="#settings-company-pane" type="button" role="tab" aria-controls="settings-company-pane" aria-selected="true">
@ -92,7 +92,7 @@
<div class="tab-pane fade" id="settings-wablas-pane" role="tabpanel" aria-labelledby="settings-wablas-tab" tabindex="0">
<div class="row g-3">
<div class="col-md-12">
<div class="col-12">
<div class="d-flex flex-column flex-lg-row justify-content-between align-items-lg-center gap-3 border rounded-4 px-4 py-3 bg-light">
<div>
<h6 class="mb-1 fw-bold"><?= h(tr('إعدادات واتساب Wablas', 'Wablas WhatsApp Settings')) ?></h6>
@ -106,15 +106,25 @@
</div>
</div>
</div>
<div class="col-md-6">
<label class="form-label"><?= h(tr('Wablas Token', 'Wablas Token')) ?></label>
<input type="text" class="form-control" name="wablas_token" value="<?= h(get_setting('wablas_token')) ?>">
<div class="col-12">
<div class="card border-0 shadow-sm">
<div class="card-body">
<div class="row g-3">
<div class="col-md-6">
<label class="form-label"><?= h(tr('Wablas Token', 'Wablas Token')) ?></label>
<input type="text" class="form-control" name="wablas_token" value="<?= h(get_setting('wablas_token')) ?>">
</div>
<div class="col-md-6">
<label class="form-label"><?= h(tr('Wablas Secret Key', 'Wablas Secret Key')) ?></label>
<input type="password" class="form-control" name="wablas_secret_key" value="<?= h(get_setting('wablas_secret_key')) ?>">
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<label class="form-label"><?= h(tr('Wablas Secret Key', 'Wablas Secret Key')) ?></label>
<input type="password" class="form-control" name="wablas_secret_key" value="<?= h(get_setting('wablas_secret_key')) ?>">
</div>
<div class="col-md-12">
<div class="col-12">
<div class="card border-0 shadow-sm bg-light-subtle">
<div class="card-body">
<div class="d-flex flex-column flex-md-row justify-content-between align-items-md-center gap-2 mb-3">
@ -142,25 +152,47 @@
</div>
</div>
</div>
<div class="col-md-12">
<label class="form-label"><?= h(tr('قالب رسالة إنشاء الطلب', 'Order Created Template')) ?></label>
<textarea class="form-control" name="wablas_template_created" rows="3"><?= h(get_setting('wablas_template_created', wablas_default_order_template('created'))) ?></textarea>
<div class="col-12">
<div class="card border-0 shadow-sm">
<div class="card-body">
<div class="d-flex flex-column flex-lg-row justify-content-between align-items-lg-center gap-2 mb-3">
<div>
<h6 class="fw-bold mb-1"><?= h(tr('قوالب إشعارات الطلبات', 'Order Notification Templates')) ?></h6>
<p class="text-muted small mb-0"><?= h(tr('اترك أي حقل فارغاً وسيستخدم النظام القالب الافتراضي له تلقائياً.', 'Leave any field empty and the app will automatically use its built-in default template.')) ?></p>
</div>
</div>
<div class="row g-3">
<div class="col-12">
<label class="form-label"><?= h(tr('قالب رسالة إنشاء الطلب', 'Order Created Template')) ?></label>
<textarea class="form-control" name="wablas_template_created" rows="4"><?= h(get_setting('wablas_template_created', wablas_default_order_template('created'))) ?></textarea>
</div>
<div class="col-md-6">
<label class="form-label"><?= h(tr('قالب قيد الانتظار', 'Pending Template')) ?></label>
<textarea class="form-control" name="wablas_template_pending" rows="4"><?= h(get_setting('wablas_template_pending', wablas_default_order_template('pending'))) ?></textarea>
</div>
<div class="col-md-6">
<label class="form-label"><?= h(tr('قالب مقبول', 'Accepted Template')) ?></label>
<textarea class="form-control" name="wablas_template_accepted" rows="4"><?= h(get_setting('wablas_template_accepted', wablas_default_order_template('accepted'))) ?></textarea>
</div>
<div class="col-md-6">
<label class="form-label"><?= h(tr('قالب مكتمل', 'Completed Template')) ?></label>
<textarea class="form-control" name="wablas_template_completed" rows="4"><?= h(get_setting('wablas_template_completed', wablas_default_order_template('completed'))) ?></textarea>
</div>
<div class="col-md-6">
<label class="form-label"><?= h(tr('قالب مرفوض', 'Rejected Template')) ?></label>
<textarea class="form-control" name="wablas_template_rejected" rows="4"><?= h(get_setting('wablas_template_rejected', wablas_default_order_template('rejected'))) ?></textarea>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<label class="form-label"><?= h(tr('قالب قيد الانتظار', 'Pending Template')) ?></label>
<textarea class="form-control" name="wablas_template_pending" rows="3"><?= h(get_setting('wablas_template_pending', wablas_default_order_template('pending'))) ?></textarea>
</div>
<div class="col-md-6">
<label class="form-label"><?= h(tr('قالب مقبول', 'Accepted Template')) ?></label>
<textarea class="form-control" name="wablas_template_accepted" rows="3"><?= h(get_setting('wablas_template_accepted', wablas_default_order_template('accepted'))) ?></textarea>
</div>
<div class="col-md-6">
<label class="form-label"><?= h(tr('قالب مكتمل', 'Completed Template')) ?></label>
<textarea class="form-control" name="wablas_template_completed" rows="3"><?= h(get_setting('wablas_template_completed', wablas_default_order_template('completed'))) ?></textarea>
</div>
<div class="col-md-6">
<label class="form-label"><?= h(tr('قالب مرفوض', 'Rejected Template')) ?></label>
<textarea class="form-control" name="wablas_template_rejected" rows="3"><?= h(get_setting('wablas_template_rejected', wablas_default_order_template('rejected'))) ?></textarea>
<div class="col-12">
<div class="position-sticky bottom-0 bg-white border-top rounded-3 px-3 py-3 d-flex justify-content-end gap-2" style="z-index: 2;">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal"><?= h(tr('إلغاء', 'Cancel')) ?></button>
<button type="submit" class="btn btn-primary"><?= h(tr('حفظ التغييرات', 'Save Changes')) ?></button>
</div>
</div>
</div>
</div>