feat(admin): Settings 分區即時儲存(backport A v3.0.2)

7 個設定分區各自加「儲存此區塊」按鈕,經 wp_ajax_wpdo_save_settings_section
以 AJAX 存檔,不再需要整頁 reload。

- 新增 ajax_save_settings_section() + 7 個 private save_section_*()
- 新增 admin/assets/wpdo-settings.js(106 行)與 4 條 CSS 規則
- render_settings() 的 7 個 h3 各包上 .wpdo-settings-section[data-section]
- 全頁送出按鈕改標「儲存全部設定」,原本的 POST handler 保持不變(漸進增強)

hp-transient / wc-term-count 兩個分區的 toggle 仍由核心 admin 呈現(實作在
AddOn),只寫 wp_options,故不需 class_exists 守衛。
This commit is contained in:
2026-07-31 10:01:20 +08:00
parent fa356a63b1
commit 2203bc471c
3 changed files with 319 additions and 1 deletions
+28
View File
@@ -513,3 +513,31 @@
animation: none;
}
}
/* ── Settings per-section instant save (v3.0.2 backport) ────────────── */
.wpdo-settings-section {
background: var(--color-surface-card, #fbf7f0);
border: 1px solid var(--color-border-soft, #e5dccd);
border-radius: var(--radius-md, 12px);
padding: var(--space-4, 16px) var(--space-6, 24px);
margin-bottom: var(--space-5, 20px);
}
.wpdo-section-save-row {
display: flex;
align-items: center;
gap: var(--space-3, 12px);
padding-top: var(--space-3, 12px);
}
.wpdo-section-save-status {
font-size: 0.9rem;
color: var(--color-success, #5a8c5a);
opacity: 0;
transition: opacity var(--duration-normal, 200ms) var(--ease-default, ease);
}
.wpdo-section-save-status.visible {
opacity: 1;
}