表單藏太深?一招讓 Elementor 聯絡表單直接出現在後台

用 Elementor Pro 做網站表單的時候,很多人會覺得有點不方便——雖然表單送出都會記錄下來,但它藏在後台的「Elementor → Submissions」裡,不但位置不明顯,也很容易被遺忘。

常常有使用者明明已經填了表單,結果管理者幾天後才發現,實在很容易錯失重要訊息。

所以這篇就要來分享一個簡單又實用的小技巧:我們可以把「聯絡表單」這個選項加到 WordPress 的主選單中,並且在旁邊加上未讀數量的紅色徽章。

這樣一來,打開後台馬上就能看到「有幾封還沒處理」,不用再進去一層層找。

後台 Elementor 收集表單後的列表位置
加入代碼之前後台側邊欄介面

功能簡介

這段程式的目的是:
讓你在後台側邊欄,直接看到一個「聯絡表單」選項,如果有新訊息還沒讀,旁邊就會出現紅色小圈圈(數字徽章)。

這個選單點下去,會直接帶你到 Elementor 的送出紀錄頁面(也就是 Submissions),操作起來跟 WordPress 其他原生通知一樣順手。

整體流程是這樣的:

  1. 代碼會自動偵測 Elementor 的表單資料表是否存在
  2. 抓出還沒被標記為已讀的筆數
  3. 依照這個數量顯示一個小徽章
  4. 加入一個自訂選單項目,指向 Elementor 的表單列表頁面

程式碼怎麼用?

只要把這段程式貼到主題的 functions.php 裡(或做成小外掛),儲存之後重新整理後台,就會看到效果囉:

/**
 * ----------------------------------------------------------
 * Elementor 表單後台整合:在主選單新增「聯絡表單」與未讀提示
 * ----------------------------------------------------------
 * 功能說明:
 * 1. 自動偵測 Elementor Pro 的表單送出資料表(wp_e_submissions)。
 * 2. 計算尚未閱讀的表單筆數(is_read = 0)。
 * 3. 在 WordPress 後台主選單中新增「聯絡表單」項目,並在標題旁顯示紅色徽章提示未讀數量。
 * 4. 點擊後可直接前往 Elementor 內建的送出紀錄頁面(slug: e-form-submissions)。
 *
 * 使用情境:
 * - 適合需要即時掌握表單送出狀況的網站管理者。
 * - 不需修改 Elementor 核心,只透過 WordPress API 新增選單項目。
 */

// 在後台選單中新增「聯絡表單」並顯示未讀數量
add_action('admin_menu', 'add_custom_contact_form_menu_with_count');

function add_custom_contact_form_menu_with_count() {
    // 若未啟用 Elementor Pro,直接略過
    if ( ! is_plugin_active('elementor-pro/elementor-pro.php') ) {
        return;
    }

    global $wpdb;

    $unread_count = get_unread_form_submission_count();

    // 建立選單文字(加上 badge)
    $menu_title = '聯絡表單';
    if ($unread_count > 0) {
        $menu_title .= ' <span class="update-plugins count-' . intval($unread_count) . '"><span class="plugin-count">' . intval($unread_count) . '</span></span>';
    }

    add_menu_page(
        '',
        $menu_title,
        'manage_options',
        'e-form-submissions',
        '',
        'dashicons-email',
        30 // 可依數值調整選單位置
    );
}

// 取得 Elementor 表單「未讀」送出數量(排除回收桶)
function get_unread_form_submission_count() {
    global $wpdb;
    $table = $wpdb->prefix . 'e_submissions';

    // 確認資料表存在
    if ($wpdb->get_var("SHOW TABLES LIKE '$table'") != $table) {
        return 0;
    }

    // 查詢未讀(is_read = 0)且未被丟入回收桶(status != 'trash')
    $count = $wpdb->get_var("
        SELECT COUNT(*)
        FROM {$table}
        WHERE is_read = 0
        AND (status IS NULL OR status != 'trash')
    ");

    return intval($count);
}
Code language: PHP (php)

記得!!最好的方式是使用子佈景主題來放函數喔,避免主要的佈景主題更新後加入的代碼也一併被移除了。

效果長什麼樣子?

加好代碼後WordPress 後台左邊的選單會出現一個新項目叫「聯絡表單」並伴隨著未讀表單提醒,非常直覺。

加入代碼後後台菜單會增加一欄聯絡表單,並帶有未讀數量
加入代碼後左側菜單會新增一個 聯絡表單 選項,並有未讀表單數量提示

點下 聯絡表單 就直接跳到 Elementor 的表單列表頁,讓你馬上知道有哪些表單還沒回覆。

其他補充說明

  • 就算網站還沒開啟 Elementor 表單功能,這段程式也不會出錯,因為會先檢查資料表存不存在。
  • 加入的選單只有管理員(manage_options 權限)看得到,其他使用者角色不會受到影響。
  • 使用的是 WordPress 官方提供的選單與樣式,整體外觀跟系統很一致。

小結

這段代碼雖然簡單但效果非常實用,尤其對有客戶詢價、合作聯絡需求的網站來說更是必備;不需要改 Elementor 的核心,也不需要改資料庫,只是加上一個貼心的小選單,馬上就能提升表單管理的效率。

如果你也覺得原本的表單紀錄藏得太深,那就趕快加上這段程式,讓你的網站後台更順手、更好用!

常見問答

本區問答由 AI 依文章內容自動整理,僅供快速參考,正式內容仍以全文為準。

為什麼要把 Elementor 聯絡表單拉到後台主選單?

Elementor Pro 的表單送出紀錄預設藏在「Elementor → Submissions」裡,位置不明顯也容易被遺忘,常常使用者填完表單,管理者過幾天才發現,重要訊息因此漏掉。
透過這段程式碼,你可以在 WordPress 後台主選單直接看到「聯絡表單」選項,旁邊還會出現紅色徽章顯示未讀筆數,登入後一眼就知道有幾封沒處理,不用再進到 Elementor 一層層找,對有詢價或合作聯絡需求的網站特別實用。

這段程式碼實際在做什麼事?

整體流程很單純。
它會自動偵測 Elementor Pro 的表單資料表(wp_e_submissions)是否存在,避免在沒安裝時出錯。
接著查詢 is_read = 0 且未進回收桶(status != trash)的筆數,作為未讀數量。
再透過 add_menu_page() 在後台主選單新增「聯絡表單」項目,標題後面附上和 WordPress 原生 update-plugins 樣式一致的紅色徽章。
點下去會直接導向 Elementor 內建的送出紀錄頁(slug: e-form-submissions)。

程式碼要貼在哪裡?要注意什麼?

把整段程式貼到主題的 functions.php,儲存後重新整理後台就會看到效果。
但強烈建議使用子佈景主題(child theme),這樣主佈景主題日後更新才不會把你加的程式碼一起覆蓋掉。
如果你不熟子主題,也可以把這段包成一個小外掛掛載,效果一樣。
記得保留註解,方便日後維護或交接時別人能快速看懂用途。

如果網站沒裝 Elementor Pro,加了這段程式會出錯嗎?

不會。
程式碼一開始就用 is_plugin_active() 檢查 Elementor Pro 是否啟用,沒啟用會直接 return 不繼續執行。
另外查詢未讀筆數前也會用 SHOW TABLES LIKE 確認 wp_e_submissions 資料表是否存在,不存在就回傳 0。
所以即使你還沒建立任何 Elementor 表單,或暫時停用 Elementor Pro,後台都不會跳錯,是相對安全的寫法。

這個自訂選單的權限與外觀有什麼限制?

選單權限設定為 manage_options,也就是只有管理員角色看得到,其他編輯、作者或訂閱者不會受到影響,可避免一般使用者誤入或看到不該看的資料。
徽章樣式直接套用 WordPress 官方的 update-plugins 與 plugin-count 類別,外觀和系統原生通知(例如外掛更新提示)一致,不會有突兀的視覺差異。
選單位置參數設為 30,你可以依習慣調整數值來改變排序。