Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/jimmy-is-me/finance/archive/refs/heads/main.zipv1.5.3
- 新收據改為 JPG,最長邊 2200px,優先壓縮至 1 MB 內(硬上限 5 MB)
- 透明圖片使用白底,既有 JPG/PNG/WebP 收據保持原樣
- 保留私人儲存、加密與家庭權限檢查
v1.5.2
- 訂閱新增選填美金原價(最多兩位小數),於備註欄及新產生收支備註顯示
- 原價只做備註,統計仍使用新台幣入帳金額,不自動換匯
- 強化操作按鈕獨立間距,保持訂閱八欄排列與共用風格
- 貸款預設由所選月份顯示三期,可展開全部
v1.5.1
- 訂閱列表依指定八欄排列,顯示備註與付款工具
- 操作按鈕以獨立框線與間距排列
- 貸款預設顯示三期,支援展開與收合
- 統一訂閱與貸款頁首、表格、操作及狀態樣式
v1.5.0
- 已停止訂閱可刪除設定,歷史收支保留;訂閱可複製後修改,副本預設由今天起算
- 貸款到期自動新增未繳費收支,每貸款每期唯一;家庭管理員可在兩個頁面同步標示/取消已繳
- 未繳費不計入實際支出;貸款分類自動建立,付款工具可在收支編輯補上
- 貸款會依首次日期補登已到期月份(每批 24 期),更新前已有手動記帳者請核對避免重複
- 信用卡付款工具新增「登記清償」,使用轉帳沖減未清償金額,不重複列支
- 每筆清償可記錄實際出帳日、繳款期限;固定每月日期可在付款工具編輯
- 修正編輯標題排版
v1.4.0 更新
- Bauhaus 幾何介面:紅藍黃、粗邊框、硬陰影;保留響應式、鍵盤焦點與減少動態效果
- 記帳順序:帳本、類型、日期、整數金額、備註、分類、付款方式、付款/收款工具、收據
- 紀錄順序:日期、分類、備註、金額、類型、記帳人/帳戶、操作
- 修正貸款與逐期繳款表單未攔截送出的錯誤
- 新增訂閱管理:項目、整數金額、首次到期日、結束日期、每日/每週/每月/每年及間隔、帳本、分類、付款方式、工具、備註、停止續記
- 到期建立未繳費支出,家庭管理員可在收支紀錄標記/取消已繳;備註和實際金額可透過編輯收支修改。未繳費不計入總覽、圖表或信用卡未償金額;一般記帳與既有資料預設已繳
- 每小時 WP-Cron 與開啟收支頁補登;以網站時區為準,沒有網站流量時可能延後。每輪最多 100 項訂閱、每項最多補登 24 期,長期歷史逐輪補齊;每家庭管理畫面最多列 500 項
- 每期資料庫唯一索引及資料庫鎖防重;修改金額或付款設定只影響未來新紀錄。已產生紀錄獨立保存,停用不刪歷史,重新啟用會補登停用期間到期的紀錄
- 起日與週期建立後固定,若要更改,停止舊訂閱後建立新訂閱,並注意交接日期,避免兩筆不同訂閱重疊記帳
- 訂閱是本機人工管理,不會向銀行或服務商扣款、取消方案、取得付款結果或寄送提醒
- 舊的小數金額保留,不會在升級時四捨五入;新記帳使用整數輸入。收據加密與權限維持原設計
更新前請備份資料庫與收據檔案,更新後先在測試站確認。以下為歷史版本說明。
WUMETAX Finance|家庭財務管理
繁體中文 WordPress 家庭財務 Web App,預設採 Minimalist Monochrome(黑白極簡) 視覺設計。無第三方訂閱服務,交易及設定儲存在 WordPress 資料庫,收據圖片存放於網站公開根目錄外的主機私人目錄。
特色
- 家庭空間:成員登入、邀請、擁有者/編輯者/檢視者權限;每位成員可共同查閱家庭和公司收支
- 雙帳本:家庭和公司分開統計,整體總覽可一次檢視
- 記帳:收入、支出、轉帳;分類、帳戶、日期、備註、成員操作紀錄
- 信用卡:信用卡消費當時記支出,償還帳單以轉帳記錄,避免重複支出
- 分析:月度統計、支出分類、六個月走勢、近期交易
- 資料:CSV 匯入/匯出(含 Google Sheet A–M 欄位版面匯入支援),所有財務資料僅存在 WordPress
- 介面:手機優先 RWD、黑白單色系、襯線字體、清晰線條、零陰影、桌面側邊欄與手機底部導覽、免付費 SaaS 訂閱
v1.3.1 iPhone 記帳與今日紀錄
- iPhone 日期欄位:採用仍可操作的原生日期輸入元件,外層固定顯示居中的繁體日期文字,不再依賴 iOS 對 date input 文字與框線的原生排版
- 不強制縮放:所有手機表單文字至少 16px,避免 Safari 因小字自動放大;仍保留使用者自行雙指縮放(沒有設定
user-scalable=no)。彈窗具有內部捲動、固定頂部 X 和足夠觸控範圍 - 欄位排序:「分類」安排在「備註」之前,切換付款方式時局部更新,不跳回表單頂端
- 收據 WebP 壓縮:手機選擇照片時先在瀏覽器 Canvas 去除原始 EXIF 並轉 WebP,長邊先縮至最多 2400px,依序降低品質直到 5MB 以內(原始照片最多 40MB)。若 Safari 無法解碼 HEIC 或轉 WebP,明確提示先轉 JPG
- 服務端 5MB:WordPress 私人收據儲存上限同步從 3MB 提升到 5MB,仍驗證影像真實格式、私人路徑與家庭權限;舊收據與媒體庫紀錄保留
- 存檔自動關閉:記帳成功就關閉編輯視窗;照片上傳若單獨失敗,不重複建立交易,顯示通知可稍後編輯補傳
- 今日記帳:總覽在統計卡下方、圖表之前顯示今天最新 20 筆交易、筆數與收入/支出金額,依 WordPress 網站時區,不受目前選擇月份影響
注意:實際 iPhone 日期選擇器/相機選取行為需在目標手機與 Safari 上進行最後驗收。照片轉檔在手機本機完成,因裝置 RAM 或 HEIC 相容性可能失敗;失敗不會把未轉檔的大型原圖直接上傳。
v1.3.2 免設定收據加密儲存(適用無法建立站外資料夾的 Nginx 主機)
- 自動判斷模式:優先使用舊版已建立的主機私人資料夾;如果目前主機無法寫入網站公開根目錄外的資料夾,則自動切換成 AES-256-GCM 加密收據儲存。一般不需要修改
wp-config.php、不必開放 777 權限 - 加密模式不是將圖片原圖公開:每張圖片先加密,實際存放 WordPress 媒體目錄內的隨機
.enc檔案;不產生公開原圖、縮圖或可直接開啟的 JPG/PNG/WebP。媒體庫只有安全的附件索引,Finance 經登入、Nonce 和家庭權限驗證後才解密顯示 - 安全界限要知道:某些 Nginx 設定可能允許直接下載
.enc檔案,但下載到的是經認證加密的密文,無法不持有金鑰就還原照片。若業務要求連密文本身都不能透過網站下載,須由主機管理員另外提供完全站外的私人資料夾,不可只靠.htaccess - 金鑰與備份:網站首次使用加密模式時自動生成獨立 256-bit 金鑰並寫入 WordPress 資料庫 option
wff_receipt_aes256_key,不隨一般 WordPress salts 變動。務必同時備份 WordPress 資料庫(包含金鑰) 和 收據目錄。若資料庫金鑰遺失,系統偵測到仍有加密檔案時會拒絕偷偷產生新金鑰;遺失原金鑰無法還原原照片 - 與舊版相容:原有 v1.2.8 Base64 與 v1.2.9/v1.3.0 的站外私人 JPG 檔案不會自動刪除;舊資料庫收據僅在新檔寫入及驗證成功後清空 Base64。既有站外照片維持原路徑讀取,新版加密照片使用
.enc辨識 - 儲存狀態:WordPress「家庭財務 → 網站與登入設定」會顯示目前使用的是站外私人資料夾、AES 加密模式或儲存無法使用。若兩種模式都無法安全運作則拒絕照片上傳,不會保存明文到公開
uploads
v1.3.0 收據整合 WordPress 媒體庫(私人影像)
- 在 Finance 記帳時直接拍照、選擇圖片或替換收據,並建立 WordPress 媒體附件索引,管理員可在 WordPress「媒體」查看收據;操作方式與一般媒體項目類似
- 圖片實體檔案絕不存進公開的 wp-content/uploads,也不產生可公開直接存取的原圖/縮圖。媒體附件是資料索引;實際圖片存放於私人目錄,透過
admin-ajax.php?action=wff_receipt_image、有效登入 Cookie、Nonce 和家庭成員權限驗證後提供 - 一般訪客、其他家庭成員即使知道附件 ID 或圖片預覽 API,也不能查看收據。每次取圖都驗證目前登入者的家庭成員身分,避免只封鎖 REST API 卻洩露原始媒體 URL
- 首次使用會自動尋找 WordPress/DOCUMENT_ROOT 之外可寫入的私人路徑,不需要使用者先編輯 wp-config.php。若主機權限/目錄結構無法建立安全目錄,拒絕照片上傳,不會改存公開媒體庫
- 之前教學用的
/home/account/private/finance-receipts與/home/example/private/finance-receipts兩個範例路徑會自動忽略,避免誤貼後持續失敗。如你自行設定了實際專屬路徑,仍以該設定為準 - 原有的 v1.2.8 Base64 收據、v1.2.9 私人檔案與收支紀錄均保留;背景排程會分批遷移、補齊媒體附件索引
- 圖片上傳須符合 JPG、PNG、WebP、單張最多 5MB(v1.3.1 起由 Finance 表單轉 WebP),家庭權限及不公開原圖的限制依舊。縮圖預覽仍透過登入驗證路由讀取原圖,不會另在公開資料夾產生縮圖
- 勿直接使用 WordPress 一般「新增媒體檔案」上傳私人收據:一般 WordPress 媒體上傳會放到公開 uploads,只有由 Finance 記帳上傳的圖片才有上述私人保護
- 備份提醒:必須同時備份 WordPress 資料庫和私人收據實體目錄。主機若有 Nginx Alias 或其他網域映射到私人路徑,管理員仍需確認所有虛擬主機設定
v1.2.9 安全收據檔案(資料庫不再儲存圖片)
-
新收據存於實際網站公開根目錄之外的私人主機目錄;資料庫只記錄隨機檔名、SHA-256、檔案長度、MIME 與相關資訊
-
PHP 會驗證私人路徑不在 WordPress 根目錄、實際伺服器 DOCUMENT_ROOT、wp-content、uploads 內,不依賴 Apache .htaccess(Nginx 不會讀取 .htaccess)
-
檔案以 48 位十六進位隨機名稱、0600 權限寫入,資料不提供直接圖片公開 URL;查看經 WordPress 家庭成員 API 授權,上傳/刪除需家庭編輯權限
-
安全失敗:找不到能驗證的私人儲存路徑,就拒絕新圖片上傳,不會將照片放進公開目錄。舊版資料庫收據仍可經登入授權查看
-
主機特殊路徑:在 wp-config.php 的結束註解前加入下列設定,改為主機上真正位於所有 Nginx/Apache 虛擬主機公開根目錄及 Alias 之外的路徑
define('WFF_PRIVATE_RECEIPTS_DIR', '/home/example/private/finance-receipts');
-
若此路徑不存在,請先由主機管理員建立父目錄並確認 PHP 有寫入權限。不要選 public_html、htdocs、www 或任何 WP uploads 內的路徑。預設會嘗試使用 WordPress 安裝根目錄上一層的私人資料夾
-
舊照片安全搬遷:排程每小時搬移最多 3 張,也能在 WordPress 後台「家庭財務 → 網站與登入設定」手動搬移。確認檔案寫入及 SHA-256 驗證後,才把舊 Base64 清空;失敗不會刪除原照片,後台會顯示錯誤
-
備份必須同時包含資料庫與私人收據目錄:只備份 SQL 不會備份新照片。換主機/更改目錄時請同步搬移檔案和更新設定
-
以前 MySQL 實體檔案大小不一定因清空 Base64 立即減少。請等待待搬移數歸零、備份驗證完成後,再由主機管理員評估資料表空間整理;不要直接刪除舊欄位或無備份操作資料庫
-
請排除 Finance REST API 的 Cloudflare/主機快取,避免私人收據資料被快取。若同一台主機還有其他網站映射到此目錄,務必自行確認路徑沒有被 Nginx alias / Apache Alias 對外公開
v1.2.8 收據照片與 iPhone 日期欄位
- 新增或編輯收支紀錄時,可使用手機拍攝收據或選擇相簿圖片,先預覽,再與該筆交易一起儲存;列表會顯示收據圖示,亦可查閱或移除
- 允許 JPEG、PNG、WebP,單張限制 3 MB,並校驗實際影像內容及最大解析度
- 收據照片以 base64 儲存在 WordPress 私有資料表,不使用公開媒體庫網址;查看需要登入並具有該家庭成員身分,上傳/刪除需要編輯權限;刪除交易時會移除收據
- 收據保存在 WordPress 資料庫備份中,請評估磁碟/資料庫容量、主機 PHP 上傳大小限制並將資料庫備份妥善加密
- 修正 Safari / iOS 日期欄位的直向排列、行高、內距與原生日期顯示,表單在手機下改用全寬排列
- 不支援 HEIC 直接上傳,請由相機或相簿提供 JPG、PNG、WebP;必要時先在裝置上轉成 JPG
v1.2.7 簡易每月繳款備忘
- 只記錄有沒有繳:新增時只需名稱、固定繳款日期;每月預計金額可留白,所屬帳本預設家庭,機構與備註選填。不再要求本金、年利率或貸款總期數
- 循環月曆:依第一次繳款日每月循環(例如 10/5、11/5、12/5);若原日為 31 日而當月沒有 31 日,自動採當月最後一天,次月仍恢復 31 日
- 快速標記已繳:每期可一鍵標記已繳/取消,或進入詳細視窗補充實際日期、金額和備註,沒有預設金額也可以記錄
- 查閱過去及未來:只產生畫面附近最多 18 個月份,使用「較早月份」「較晚月份」查看,不依賴固定期數、不預先產生無限筆資料
- 舊資料保留:原本 1.2.6 記錄的本金、利率與期數仍留在資料庫且維持原有試算;新的簡易紀錄使用
tracking_mode=simple,由 WordPress dbDelta 增加欄位,兩類資料都能查看及登錄繳款 - 非自動扣款:不會讀取銀行、不會自動扣款或自動新增「收支紀錄」交易,避免帳目重複
用途提醒: 這裡只作為人工繳款提醒與備忘,未標記已繳會顯示待確認/逾期,並不代表銀行真的沒有扣款。更新 WordPress 外掛前先備份資料庫。
v1.2.6 每月貸款紀錄與防誤關閉
- 新增「貸款紀錄」選單:在「收支紀錄」下方,家庭與公司貸款可分開管理。可登錄車貸、房貸、信貸等,填入貸款名稱、機構、開始追蹤本金、年利率、剩餘期數、首次扣款日期,月繳金額可自行指定或用等額本息公式預估
- 自動推算每月扣款日:例如 10/5 → 11/5 → 12/5。若每月 31 日扣款,遇到 2 月則按月末日期(28/29 日),3 月再恢復 31 日。無須排程工作、cron 或預先寫入整年的未繳交易
- 繳款管理:逐期顯示預定扣款日、預估利息/本金、應繳金額、已繳/部分繳款/未繳/逾期。可登錄實際繳款日、金額、額外還本及備註;重複保存同一期只會更新一筆,亦可取消誤登錄的付款
- 概況:可查看下一期應繳日期與金額、已繳/總期數、已登錄繳款合計、未償本金粗估,並可展開完整歷史期數
- 不重複計帳:貸款「預計應繳」與「登錄已繳」皆儲存在獨立的 wff_loans、wff_loan_payments 資料表,不會自動新增任何一般收支紀錄。若使用者已在收支紀錄手動登記銀行扣款,貸款頁面仍可確認其繳款狀態,且不會重複加總
- 安全限制:資料按 household_id 做隔離,僅 owner/editor 可新增編輯及登錄付款;viewer 可查看。已經記錄繳款的貸款不可擅自改動本金、利率、期數、月繳金額及首次扣款日,以免歷史排程遭到追溯變更
- 彈窗防誤關閉:點擊灰色遮罩或 Esc 均不會關閉有編輯內容的彈窗,只能按右上角 X 或順利儲存後關閉
- 升級:只新增資料表,不會修改或刪除既有家庭、付款工具、收支紀錄。部署前請先備份 WordPress 資料庫,更新後清除快取
本金與利息僅為估算,不是銀行正式還款明細。 本版本以固定年利率與每月扣款估算,沒有自動處理浮動利率、違約金、保險費、銀行實際攤還規則與提前還款後重新計期。如實際扣款或剩餘本金與銀行不同,以銀行資料為準。本工具不會替銀行發動扣款或主動寄送到期通知。
v1.2.5 記帳效率與家庭名額
- 複製記帳:收支列表每筆新增「⧉ 複製」操作,帶入原日期、金額、分類、帳戶和付款資訊,使用者可修改後新增一筆,原交易 ID 與資料不變
- 付款方式不跳頂:付款方式、支付通路、帳本或收支類型變更時,僅在前端局部更新相關分類與付款工具選項,不再重繪整個頁面;已填日期、金額、備註及彈窗捲動位置保留
- 分類顏色同步:記帳列表、最近交易、分類清單、記帳下拉邊線、分類甜甜圈與排行長條都顯示分類設定的顏色,仍維持黑白 UI 基礎
- 尺寸一致:調整電腦與手機版表單高度、模組卡片、按鈕、側欄項目與表格操作欄位,改善不同螢幕下的擠壓
- 每個家庭預設五人:含擁有者及所有角色,邀請名額也會納入尚有效未接受的邀請;伺服器在接受邀請時重新檢查且以家庭鎖避免同時加入超額
- 管理員開通名額:WordPress 後台 → 家庭財務 → 家庭與成員,可為每個家庭分別調整人數上限。既有超額成員保留,不會自動刪除
- 頁尾:Finance 前台頁尾僅顯示 © WUMETAX FINANCE
升級前建議先備份網站資料庫;本版使用 dbDelta 新增 member_limit 欄位,既有家庭預設值為 5。WP 管理員可以自行調整名額,不涉及訂閱或第三方金流。
v1.2.4 分類排序與瀏覽器圖示
- 分類自訂排序:家庭支出、家庭收入、公司收入、公司支出各自保存排列順序。桌面可拖曳分類卡片;手機及鍵盤可使用 ↑、↓ 按鈕操作。
- 同步記帳選單:排序會儲存在
wff_categories.sort_order,分類管理清單與新增/編輯記帳下拉選單採相同順序。 - 完整性與權限:只有該家庭 owner/editor 能排序;API 驗證分類 ID 是否完整且全屬同一家庭與收入/支出群組,避免不慎移動其他家庭的資料。唯讀成員只會看到結果。
- 無損升級:透過 dbDelta 新增排序欄位(預設 0),已存在的分類依原 ID 順序顯示,不會變更分類 ID 或歷史記帳。
- Finance Favicon:新增黑底白色 F 的獨立 SVG 瀏覽器圖示,登入頁、忘記密碼與 Finance 主頁均會載入。圖示 URL 帶版本參數避免瀏覽器快取。
- 更新後:清除 Cloudflare/WordPress 快取,若分頁仍顯示舊圖示,可關閉再開啟分頁或清除瀏覽器網站圖示快取。
v1.2.3 付款工具與財務分析改版
- 付款工具:現金、信用卡、行動支付、銀行。可建立多張信用卡及多個支付品牌,設定機構、備註、排序、啟用狀態、結帳日與繳款日
- 不重複支出:行動支付通路與真正扣款來源分開保存,支付通路對應 payment_channel_id,扣款卡片/帳戶對應 account_id,一筆消費不因兩者同時存在而計算兩次
- 信用卡還款:kind=transfer,既有還款不影響收入與支出合計
- 總覽:近六個月四系列收支折線、近 30 天支出折線、家庭雷達圖、家庭與公司甜甜圈圖、支付工具占比、前十大分類、信用卡與行動支付排行
- 互動 RWD:原生 SVG、CSS、滑鼠 Hover、鍵盤 Focus 和手機 Touch 查看金額;不使用外部圖表服務
- 舊資料相容:dbDelta 僅增加原有 wff_accounts 和 wff_transactions 的欄位,保留原交易 ID、分類、帳戶及成員權限;未被指定的支付通路保持空白
- CSV:相容舊版 Google Sheet/標準 CSV,另在尾端增加「付款通路」欄位;歷史交易不強制修改
- 停用:付款工具停用不刪除歷史記錄;已被交易使用的付款工具不能改成不同類型
重要:信用卡未清償淨額是依站內交易估算,非銀行正式帳單,可能不包括前期未匯入交易、分期、循環利息、手續費或真實帳單週期。更新前先備份 WordPress 資料庫;請在測試站驗證付款工具、信用卡還款與 CSV 數據。
v1.2.2 登入、密碼重設與家庭邀請
- 修正登入無反應:原全域 submit 監聽器攔截所有表單(包括登入表單),卻未處理其送出;新版只攔截有處理流程的表單,並以專用 REST 驗證登入。
- 明確登入提示:登入中狀態、帳密錯誤、逾期、嘗試次數過多及 Cookie/HTTPS 相關排查;保留 admin-post 作為同站備援登入。
- 專屬密碼流程:在 Finance 申請重設,接收 Finance 樣式郵件,於 Finance 輸入新密碼;使用 WordPress 核心的安全重設金鑰與驗證機制。
- 家庭邀請:使用 HTML 信件(黑白極簡、家庭名稱、權限、到期資訊和按鈕);登入與加入家庭頁面統一版型,若登入的 Email 不符會提醒切換帳號。
- 免費新會員:透過 Finance 註冊後收到同風格的設定密碼郵件,不再寄送跳至 WordPress 藍色頁面的預設註冊信。
- 不含訂閱:保留家庭+公司共享帳目、成員權限、免費自助註冊,無付費方案或第三方訂閱服務。
部署/測試:需要 HTTPS、啟用 WordPress REST API 及正常的 SMTP/WordPress 寄信服務。請排除網站首頁(啟用首頁模式時)及 `/wp-json/wff/v1/*` 的 Cloudflare、主機與外掛快取。上線前在測試網站驗證:登入、登出、忘記密碼寄信與重設、受邀 Email 建立帳號、已存在帳號加入及 Email 不符提示。本次自動化測試涵蓋語法與流程規則,並不等同實際網站或 SMTP 整合驗收。
v1.2.0 網站模式(參考寵物管理 2.25.0)
Finance 現在是完整的 WordPress 網站入口,不需要額外部署 Cloudflare Pages 或掛載短碼才能進入:
- 預設首頁模式:啟用外掛後,訪問 WordPress 網站首頁
/即顯示 Finance(包含訪客登入/免費註冊)。 - 後台管理:WordPress 控制台新增「家庭財務」主選單,下設「控制台、網站與登入設定、家庭與成員、收支紀錄查詢、最近操作紀錄」。
- 可調整首頁模式:後台「家庭財務 → 網站與登入設定」,取消勾選「網站首頁直接顯示 Finance」即可恢復原有 WordPress 首頁;外掛改在已指定的財務頁面顯示。
- 一般會員:可以在 Finance 前台登入,首次登入建立家庭;一般會員預設不需要進入 WordPress 後台。
- 免費註冊:可在後台開關,透過 WordPress 寄送設定密碼的郵件,註冊後建立自己的家庭。受邀加入家庭的用戶也能透過邀請連結註冊。
- 無訂閱功能:沒有方案限制、付款閘道、訂閱授權或付費帳單管理。
- 隱私:每個家庭獨立的資料授權;WordPress 網站管理員可在後台稽核所有家庭的資料,請只信任必要的站點管理員。
⚠️ 此外掛預設接管目前 WordPress 網站的首頁。如果你要保留原有品牌官網,應安裝在 Finance 專用的 WordPress 子網域,或在後台關閉首頁模式。
安裝
- 下載本儲存庫原始碼 ZIP,或由 GitHub Actions 的 Build Plugin 工作流程下載
wumetax-finance.zip - WordPress → 外掛 → 安裝外掛 → 上傳 ZIP 並啟用(透過 GitHub Source ZIP 安裝時可能需要先確保 ZIP 頂層為單一外掛目錄)
- 啟用後自動建立 家庭財務管理 頁面(預設路徑
/family-finance/),並預設由外掛接管網站首頁/ - 直接開啟網站首頁,即進入 Finance 登入或註冊介面;已有帳號可直接登入
- 進入 WordPress 後台 家庭財務 → 網站與登入設定,可調整首頁呈現與開放註冊
- 首次登入建立家庭、開始記帳;在「家庭成員」產生邀請連結,讓家人共同管理
安全與備份
- REST API 使用 WordPress 登入、REST nonce、家庭成員 ACL、欄位驗證及預備陳述式
- 財務資料不會自動傳到此公開 GitHub 儲存庫
- 建議在導入真實資料前先備份 WordPress 資料庫,並先用測試網站驗證;站點務必啟用 HTTPS
- 禁止共享站點管理員帳號;成員應各自登入
CSV 匯入
支援一般標準化欄位:日期,範圍,類型,分類,金額,備註,付款方式,帳戶,轉入帳戶,以及目前 Google Sheet 每月工作表常見的 A–M 欄位版型,匯入時須指定西元年份。E–G 每日合計欄位不重複計入,信用卡還款匯入為轉帳。先預覽再確認匯入,避免重覆匯入。
日期格式可為 YYYY-MM-DD 或 M/D,僅有月/日的日期使用所選年份。
技術架構
WordPress 6.2+、PHP 7.4+、MySQL / MariaDB(InnoDB)、原生 JavaScript、CSS、WordPress REST API、自訂資料表。無前端編譯需求。
主要檔案:
wumetax-finance.php:外掛入口與前台路由includes/class-wff-storage.php:資料表及預設分類includes/class-wff-api.php:權限、REST API、報表與匯入assets/css/app.css:Neo-brutalism 設計assets/js/app.js:RWD 前台互動templates/app.php:獨立網站入口includes/class-wff-frontend.php:首頁模式、獨立登入和免費註冊includes/class-wff-admin.php:WordPress 管理控制台與設定includes/class-wff-mail.php:統一風格 HTML 邀請信、密碼重設、新用戶設定密碼郵件assets/css/admin.css:後台管理介面
版本
v1.3.1 — iPhone 日期文字固定位置、避免 Safari 輸入自動放大、分類調到備註上方、收據手機轉 WebP 並允許 5MB、記帳成功自動關閉視窗、總覽新增今日記帳。
v1.2.9 — 收據移至網站公開根目錄外的私有資料夾;新資料庫只保留檔案索引,舊 Base64 每批三張安全搬移,後台可檢視進度。
v1.2.4 — 分類可拖曳與按鈕排序,排序永久保存於資料庫並同步記帳下拉選單;新增 Finance SVG 瀏覽器圖示。
v1.2.3 — 付款工具分類、行動支付與扣款來源分開記錄、資料表安全遷移、圖表與 CSV 更新。
v1.2.2 — 修正前台登入表單被 JavaScript 無條件攔截,加入 REST 登入/Cookie 排錯,整合 Finance 忘記密碼、重設頁與 HTML 邀請信及新使用者郵件。
v1.2.1 — 修正新增記帳/編輯記帳表單的左右欄位高度與起始線不一致:標籤固定 22px,輸入/日期/金額/下拉選單固定 52px,移除欄位預設 margin,手機單欄保持相同高度,僅修改表單介面不變動資料庫。
v1.2.0 — 比照寵物管理的獨立網站首頁架構;新增首頁模式(預設開啟)、WP 後台控制台、網站設定、家庭查詢、交易稽核、操作紀錄、前台會員登入及可關閉的免費註冊;原有共用記帳和 CSV 功能保留,無訂閱。
v1.1.0 — 以使用者提供的 Minimalist Monochrome 規範作為預設外觀,參考 pet-management 2.25.0 的獨立前台、側欄與手機導覽方式;修正超大標題、卡片橫向溢出、窄螢幕多欄和文字擁擠;加上金融管理頁面 no-cache 標頭。保留 v1.0.0 全部記帳與共同家庭功能。
v1.0.0 — 初版。正式資料導入前請先在測試環境完成權限、資料匯入及帳單核對。
排版與部署
- Desktop: 232px 側欄(中等螢幕 210px),財務數字卡自動依可用寬度換欄。
- 手機(800px 以下): 隱藏常駐側欄,顯示底部五個入口與可關閉的側邊抽屜。
- 520px 以下: 2 欄統計卡,表格可單獨橫向捲動,不影響頁面整體寬度。
- 只使用黑、白與輔助灰,不使用彩色面板或陰影,重點以黑底反白、字級和粗線表示。
- WordPress 若使用 LiteSpeed、Cloudflare 或其他快取,請將
/family-finance/和/wp-json/wff/v1/*排除快取,並檢查防護與登入 Cookie 正常;任何真實站點都應先在測試環境確認記帳權限、手機排版及 CSV 匯入。 - pet-management ZIP 僅作為介面結構參考,未複製其付費模組、字型、私人資料或綑綁依賴。
License
GPL-2.0-or-later.