### [すでにフォームを送信したユーザーの入力内容を上書きする](https://wpforms.com/developers/how-to-overwrite-entries-from-users-who-have-already-submitted-a-form/)

**公開日:** 2021年1月7日
**著者:** David Ozokoye

**概要:** この記事では、ログイン済みのユーザーが以前に送信したすべてのエントリをスニペットで削除し、サイト上のすべてのフォームに対してユーザーが1つのエントリしか送信できないようにする方法をご紹介します。

**本文:**

## 概要

すでにフォームを送信したユーザーの入力内容を上書きしたいとお考えですか？場合によっては、ユーザーが各フォームにつき1件のみ送信できるように、入力内容を上書きしたいこともあるでしょう。簡単なPHPスニペットを使用すれば、サイト内の特定の1つのフォームだけでなく、すべてのフォームに対してこの機能を実装できます。

## 設定

デフォルトでは、[Form Locker アドオン](https://wpforms.com/docs/how-to-install-and-use-the-form-locker-addon-in-wpforms/ "WPFormsでのForm Lockerアドオンのインストールと使用方法")を使用していない限り、すべてのユーザーがすべてのフォームに対して好きなだけエントリーを送信できます。

![ユーザーはフォームの設定に基づいて、何度でも送信できます](https://wpforms.com/wp-content/uploads/2021/01/wpforms-overwrite-entries-from-same-user.jpg)以下のスニペットを使用すると、このコードはユーザーIDに基づいてこのフォームへの過去のエントリーを検索し、最新のエントリーで上書きします。これにより、作成した各フォームに対して、各メンバーのエントリーは1件のみとなります。

サイトへのコードスニペットの追加についてサポートが必要な場合は、[こちらのチュートリアル](https://wpforms.com/developers/how-to-add-custom-php-or-javascript-for-wpforms/ "WPFormsにカスタムPHPまたはJavaScriptを追加する方法")をご参照ください。

**注意：** ユーザーがログインしていない場合、このコードスニペットは実行されません。このコードスニペットは、ユーザーがログインした状態でフォームを送信した場合にのみ実行されます。

このユーザーが新しいエントリーを送信すると、そのエントリーによってこのフォームの以前のエントリーがすべて上書きされます。

![このコードスニペットを使用すると、同じユーザーが以前に送信したエントリを上書きできるようになります](https://wpforms.com/wp-content/uploads/2021/01/wpforms-overwrite-entries-after.jpg)以上です！これで、特定のユーザーIDによって以前に送信されたエントリを上書きする方法がわかりました。

次に、訪問者がすでにログインしている場合にメッセージを表示する方法について学びませんか？ [ユーザーがすでにログインしている場合にメッセージを表示する方法](https://wpforms.com/developers/how-to-display-a-message-when-the-user-is-already-logged-in/ "ユーザーがすでにログインしている場合にメッセージを表示する方法")に関するチュートリアルをご覧ください。

## 関連情報

アクションリファレンス：[wpforms\_process\_entry\_save](https://wpforms.com/developers/wpforms_process_entry_save/ "wpforms_process_entry_save アクションの使用方法")

**カテゴリ：** スニペット

**タグ：** PHP

---

