init'
This commit is contained in:
166
views/settings-page.php
Normal file
166
views/settings-page.php
Normal file
@@ -0,0 +1,166 @@
|
||||
<?php if (!defined('ABSPATH')) exit; ?>
|
||||
<div class="wrap" id="wzhf">
|
||||
<h1>WooZoho Fulfillment</h1>
|
||||
<p class="muted">Автосоздание Sales Orders в Zoho. Версия <?php echo esc_html(WZHF_VER); ?></p>
|
||||
|
||||
<div class="card">
|
||||
<strong>Статус подключения:</strong>
|
||||
<?php $z = new WZHF_Zoho(); if ($z->is_connected()): ?><span class="status-pill status-ok">Connected</span><?php else: ?><span class="status-pill status-bad">Not connected</span><?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class="tabs">
|
||||
<a href="#" data-tab="general" class="active">Общее</a>
|
||||
<a href="#" data-tab="oauth">OAuth</a>
|
||||
<a href="#" data-tab="orders">Заказы</a>
|
||||
<a href="#" data-tab="tools">Тесты / Инструменты</a>
|
||||
<a href="#" data-tab="logs">Логи</a>
|
||||
</div>
|
||||
|
||||
<form method="post" action="<?php echo esc_url(admin_url('admin-post.php')); ?>">
|
||||
<input type="hidden" name="action" value="wzhf_save"><?php wzhf_nonce_field(); ?>
|
||||
|
||||
<div class="tab" data-tab="general">
|
||||
<div class="grid">
|
||||
<div class="card">
|
||||
<h2>Zoho датацентр и организация</h2>
|
||||
<label>Датацентр</label>
|
||||
<select name="dc">
|
||||
<?php $dc=esc_attr(isset($opt['dc'])?$opt['dc']:'.eu'); ?>
|
||||
<option value=".eu" <?php wzhf_selected($dc,'.eu');?>>.eu</option>
|
||||
<option value=".com" <?php wzhf_selected($dc,'.com');?>>.com</option>
|
||||
<option value=".in" <?php wzhf_selected($dc,'.in');?>>.in</option>
|
||||
<option value=".com.au" <?php wzhf_selected($dc,'.com.au');?>>.com.au</option>
|
||||
</select>
|
||||
<label>Organization ID</label>
|
||||
<input type="text" name="org" value="<?php echo esc_attr(isset($opt['org'])?$opt['org']:''); ?>" />
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h2>Патч адреса в SO (без JS)</h2>
|
||||
<form method="post" action="<?php echo esc_url(admin_url('admin-post.php')); ?>">
|
||||
<input type="hidden" name="action" value="wzhf_patch_so" />
|
||||
<?php wzhf_nonce_field(); ?>
|
||||
<label>Order ID (для серверного действия)</label>
|
||||
<input type="number" name="order_id_patch" min="1" placeholder="например, 20441" />
|
||||
<p><button type="submit" class="button">Обновить адрес в существующем SO</button></p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab" data-tab="oauth" style="display:none">
|
||||
<div class="grid">
|
||||
<div class="card">
|
||||
<h2>OAuth Клиент</h2>
|
||||
<label>Client ID</label><input type="text" name="cid" value="<?php echo esc_attr(isset($opt['cid'])?$opt['cid']:''); ?>" />
|
||||
<label>Client Secret</label><input type="password" name="sec" value="<?php echo esc_attr(isset($opt['sec'])?$opt['sec']:''); ?>" />
|
||||
<label>Scopes</label><input type="text" name="scopes" value="<?php echo esc_attr(isset($opt['scopes'])?$opt['scopes']:'ZohoInventory.FullAccess.all'); ?>" />
|
||||
<p class="muted">Redirect URI: <code class="mono"><?php echo esc_html(rest_url(WZHF_NS.'/oauth/callback')); ?></code></p>
|
||||
<?php if(!$connected): ?>
|
||||
<?php if(!empty($auth)): ?><p><a class="button button-primary" href="<?php echo esc_url($auth); ?>">Подключить Zoho (OAuth)</a></p>
|
||||
<?php else: ?><p class="muted">Заполните Client ID/Secret и Scopes, сохраните — появится кнопка подключения.</p><?php endif; ?>
|
||||
<?php else: ?><p><span class="status-pill status-ok">Соединение установлено</span></p><?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h2>Патч адреса в SO (без JS)</h2>
|
||||
<form method="post" action="<?php echo esc_url(admin_url('admin-post.php')); ?>">
|
||||
<input type="hidden" name="action" value="wzhf_patch_so" />
|
||||
<?php wzhf_nonce_field(); ?>
|
||||
<label>Order ID (для серверного действия)</label>
|
||||
<input type="number" name="order_id_patch" min="1" placeholder="например, 20441" />
|
||||
<p><button type="submit" class="button">Обновить адрес в существующем SO</button></p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab" data-tab="orders" style="display:none">
|
||||
<div class="grid">
|
||||
<div class="card">
|
||||
<h2>Когда отправлять заказ в Zoho</h2>
|
||||
<?php $tr=esc_attr(isset($opt['trigger_mode'])?$opt['trigger_mode']:'processed'); ?>
|
||||
<label>Триггер</label>
|
||||
<select name="trigger_mode">
|
||||
<option value="processed" <?php wzhf_selected($tr,'processed');?>>Сразу после оформления</option>
|
||||
<option value="paid" <?php wzhf_selected($tr,'paid');?>>После оплаты</option>
|
||||
</select>
|
||||
<label><input type="checkbox" name="create_missing" <?php wzhf_checked(!empty($opt['create_missing'])); ?> /> Создавать отсутствующие товары в Zoho по SKU</label>
|
||||
<label><input type="checkbox" name="set_status_after_so" <?php wzhf_checked(!empty($opt['set_status_after_so'])); ?> /> Менять статус заказа после создания SO</label>
|
||||
<?php $sa=esc_attr(isset($opt['status_after_so'])?$opt['status_after_so']:'processing'); ?>
|
||||
<select name="status_after_so">
|
||||
<option value="processing" <?php wzhf_selected($sa,'processing');?>>processing</option>
|
||||
<option value="on-hold" <?php wzhf_selected($sa,'on-hold');?>>on-hold</option>
|
||||
<option value="completed" <?php wzhf_selected($sa,'completed');?>>completed</option>
|
||||
</select>
|
||||
<label>Синхронизация адресов контакта</label>
|
||||
<?php $cas = esc_attr(isset($opt['contact_addr_sync'])?$opt['contact_addr_sync']:'always'); ?>
|
||||
<select name="contact_addr_sync">
|
||||
<option value="always" <?php wzhf_selected($cas,'always');?>>Всегда из заказа</option>
|
||||
<option value="if_empty" <?php wzhf_selected($cas,'if_empty');?>>Только если пусто в Zoho</option>
|
||||
<option value="never" <?php wzhf_selected($cas,'never');?>>Не синхронизировать</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h2>Патч адреса в SO (без JS)</h2>
|
||||
<form method="post" action="<?php echo esc_url(admin_url('admin-post.php')); ?>">
|
||||
<input type="hidden" name="action" value="wzhf_patch_so" />
|
||||
<?php wzhf_nonce_field(); ?>
|
||||
<label>Order ID (для серверного действия)</label>
|
||||
<input type="number" name="order_id_patch" min="1" placeholder="например, 20441" />
|
||||
<p><button type="submit" class="button">Обновить адрес в существующем SO</button></p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab" data-tab="tools" style="display:none">
|
||||
<div class="tools-grid">
|
||||
<div class="card">
|
||||
<h2>С конкретным заказом</h2>
|
||||
<label>Order ID</label>
|
||||
<input type="number" id="tool-order-id" min="1" placeholder="например, 20372" />
|
||||
<p>
|
||||
<a href="#" class="button" id="btn-reset-map">Сбросить mapping и трек</a>
|
||||
<span class="result" id="res-reset-map"></span>
|
||||
</p>
|
||||
<p>
|
||||
<a href="#" class="button" id="btn-resend-so">Отправить заказ в Zoho заново (создать SO)</a>
|
||||
<span class="result" id="res-resend-so"></span>
|
||||
</p>
|
||||
<p>
|
||||
<a href="#" class="button" id="btn-patch-so-address">Обновить адрес в существующем SO (из заказа)</a>
|
||||
<span class="result" id="res-patch-so"></span>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h2>Патч адреса в SO (без JS)</h2>
|
||||
<form method="post" action="<?php echo esc_url(admin_url('admin-post.php')); ?>">
|
||||
<input type="hidden" name="action" value="wzhf_patch_so" />
|
||||
<?php wzhf_nonce_field(); ?>
|
||||
<label>Order ID (для серверного действия)</label>
|
||||
<input type="number" name="order_id_patch" min="1" placeholder="например, 20441" />
|
||||
<p><button type="submit" class="button">Обновить адрес в существующем SO</button></p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="tab" data-tab="logs" style="display:none">
|
||||
<div class="card">
|
||||
<h2>Последние логи</h2>
|
||||
<?php $logs=WZHF_Logger::latest_logs(); if(empty($logs)): ?>
|
||||
<p class="muted">Логи пока пусты.</p>
|
||||
<?php else: foreach($logs as $file=>$content): ?>
|
||||
<h3><?php echo esc_html($file); ?></h3>
|
||||
<pre class="mono" style="max-height:300px;overflow:auto;background:#0b1020;color:#cde3ff;padding:12px;border-radius:8px;"><?php echo esc_html($content); ?></pre>
|
||||
<?php endforeach; endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p><button type="submit" class="button button-primary">Сохранить настройки</button></p>
|
||||
</form>
|
||||
</div>
|
||||
Reference in New Issue
Block a user