<html lang="ja-jp" dir="ltr"><head></head><body>### [ユーザーのアクティベーションリンクメールを自動再送信する方法](https://wpforms.com/developers/how-to-automatically-resend-user-activation-link-emails/)

**公開日:** 2021年12月21日
**著者:** エディトリアルチーム

**抜粋:** このスニペットは、ユーザーがまだアカウントをアクティブ化していない場合に、ユーザーのアクティベーションリンクを自動的に再送信するスニペットを追加する方法を示します。

**コンテンツ:**

## 概要

ユーザーがまだアカウントをアクティブ化していない場合に、ユーザーのアクティベーションメールを自動的に再送信したいと思いますか？ PHPでこれを行う方法を説明します。[WPForms User Registrationアドオン](https://wpforms.com/docs/how-to-install-and-use-user-registration-addon-with-wpforms/ "WPFormsでのUser Registrationアドオンのインストールとセットアップ方法")を使用すると、ユーザーアクティベーションメールを送信するように登録フォームを有効にできます。小さなスニペットを使用して、これらのユーザーにアクティベーションリンクを再送信する関数を簡単にセットアップできます。関数をセットアップするだけで、あとは何もする必要はありません。

## セットアップ

まず、フォームをセットアップし、[User Registration]タブでユーザーアクティベーションを有効にする必要があります。セットアップに問題がある場合は、[こちらのドキュメントをご覧ください](https://wpforms.com/docs/how-to-install-and-use-user-registration-addon-with-wpforms/ "WPFormsでのUser Registrationアドオンのインストールとセットアップ方法")。

![フォーム設定のUser Registrationタブからユーザーアクティベーション設定を有効にする](https://wpforms.com/wp-content/uploads/2021/12/wpforms-user-activation.jpg)

フォームをセットアップしてフィールドを追加したら、フォームの**設定**の下にある**User Registration**タブをクリックします。次に、**ユーザーアクティベーションを有効にする**オプションをクリックします。

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

```

/**
 * 登録されたがアカウントをアクティブ化していないユーザーを取得します
 *
 * @link   https://wpforms.com/developers/how-to-automatically-resend-user-activation-link-emails/
 */

function user_registration_resend_activation() {

   $unapproved_users = get_users(
      [
         'meta_key'   =&gt; 'wpforms-pending',
         'meta_value' =&gt; true,
      ]
   );

   foreach ( $unapproved_users as $user ) {

      \WPFormsUserRegistration\SmartTags\Helpers\Helper::set_user( $user );

      wpforms_user_registration()-&gt;get( 'email_notifications' )-&gt;resend_activation( $user-&gt;ID );
   }
}

add_action( 'user_registration_resend_activation_action', 'user_registration_resend_activation', 10 );

/**
 * アカウントをアクティブ化していないユーザーにメールを自動再送信します
 *
 * @link   https://wpforms.com/developers/how-to-automatically-resend-user-activation-link-emails/
 */

function user_registration_resend_activation_as_task() {

   if ( ! function_exists( 'as_schedule_recurring_action' ) ) {
      return null;
   }

   if ( as_next_scheduled_action( 'user_registration_resend_activation_action' ) ) {
      return null;
   }

   as_schedule_recurring_action( strtotime( 'midnight tonight' ), WEEK_IN_SECONDS, 'user_registration_resend_activation_action' );
}

add_action( 'admin_init', 'user_registration_resend_activation_as_task', 10 );
```

まだアカウントをアクティブ化していないフォームから登録されたユーザーには**wpforms-pending**のステータスが付与されるため、最初の関数はそのステータスを検索してそれらのユーザーアカウントを取得し、2番目の関数はスケジュールされた時間として**WEEK\_IN\_SECONDS**を使用してメールを自動的に再送信します。

**WEEK\_IN\_SECONDS**は、このタスクを毎週チェックするために使用できるWordPress定数です。これをすぐに（またはそれ以降に）変更したい場合は、関数のこの部分を次のいずれかに変更できます。

- MINUTE\_IN\_SECONDS
- HOUR\_IN\_SECONDS
- DAY\_IN\_SECONDS
- MONTH\_IN\_SECONDS
- YEAR\_IN\_SECONDS

WordPressが時間間隔に提供する定数に関する詳細は、[WordPress独自のドキュメントをご覧ください](https://codex.wordpress.org/Easier_Expression_of_Time_Constants "WordPressの時間定数の簡単な表現")。

これで完了です！他のフォームで使用するユーザーのスマートタグを作成したいと思いますか？ [より多くのユーザーのスマートタグを作成する方法](https://wpforms.com/developers/how-to-create-more-user-smart-tags/ "より多くのユーザーのスマートタグを作成する方法")のチュートリアルをご覧ください。

**カテゴリー:** スニペット

**タグ:** PHP, User Registration Addon

---</body></html>