Thanks Mail for Stripe : Stripe Payment Linksの決済完了メールを自動送信

Thanks Mail for Stripe
  1. PLUGIN : Thanks Mail for Stripe
  2. DEMO : 決済完了からメール送信までの流れ
  3. INSTALLATION : 設置方法
    1. 動作要件
    2. Stripe Dashboard 側の設定
    3. サーバー側の注意事項
    4. セットアップ手順
  4. FEATURES : 機能一覧
    1. 1. Stripe Webhook による自動メール送信
    2. 2. 動的なテンプレート管理(最大 100 件)
    3. 3. テンプレートの自動選択
    4. 4. プレースホルダー対応のテンプレート
    5. 5. カスタム送信元設定
    6. 6. 重複送信防止(冪等性)
    7. 7. Webhook 署名検証(HMAC-SHA256)
    8. 8. 署名エラーのレート制限
    9. 9. テスト送信機能
    10. 10. メール送信ログ
    11. 11. 無料の購入への送信(オプション)
    12. 12. 個人データのエクスポート・消去
  5. SETTINGS : プラグイン設定画面
    1. ステータス
    2. Stripe 設定
    3. 一般設定
    4. カテゴリ
    5. メールテンプレート
    6. テストメール送信
    7. 設定のリセット
    8. 最近の送信履歴
  6. TEMPLATE : テンプレート例
    1. 日本語のサンキューメール例
    2. 英語のサンキューメール例
  7. FAQ : よくある質問
    1. Webhook で 403 エラーが出る場合は?
    2. Webhook で 429 エラーが出る場合は?
    3. Webhook は 200 を返しているのにメールが届かない場合は?
    4. お客様の言語をどう検出しますか?
    5. WooCommerce で使えますか?
    6. Webhook のテスト方法は?
    7. 言語ごとに別 Payment Link を作る理由は?
    8. メールテンプレートで使えるプレースホルダーは?
    9. テストモードでもメールが送信されますか?
    10. wp_mail() が失敗した場合は?
    11. 「sent: true」なのに届かない場合は?
    12. お客様データは保存されますか?
    13. GDPR に準拠していますか?
  8. ADVANCED FILTERS : フィルターフック
    1. メール本文を送信前に加工
    2. メール件名を送信前に加工
    3. CC / BCC ヘッダーの追加
    4. テンプレート選択のカスタマイズ
  9. CHANGE LOG : バージョン履歴
  10. RELATED PAGES : 関連ページ

PLUGIN : Thanks Mail for Stripe

Thanks Mail for Stripe wordpress.org から最新版をダウンロード

WordPress.org 公式リポジトリで公開しているプラグインの技術リファレンスページです。Stripe Payment Links で決済が完了したとき、お客様に自動でサンキューメールを送信します。Webhook を直接受信して wp_mail() で送信するシンプルな構成で、Zapier・Make・IFTTT などの外部自動化サービスを使わずに WordPress 内で完結します。

ソースコード:GitHub – rapls/thanks-mail-for-stripe

実装の詳細は、このページ内の「FEATURES」「ADVANCED FILTERS」「CHANGE LOG」にまとめています。

DEMO : 決済完了からメール送信までの流れ

動作フロー図(お客さん→Stripe→WordPress→メール送信)

お客様が Stripe Payment Links で決済を完了すると、Stripe から WordPress サイトの Webhook エンドポイントに通知が送信されます。プラグインは署名(HMAC-SHA256)を検証して正規のリクエストかチェックし、wp_mail() でサンキューメールを送信します。

決済からメール送信まで通常 2〜5 秒以内に完結します。外部サービス(Zapier、Make、IFTTT 等)は不要です。

INSTALLATION : 設置方法

動作要件

  • WordPress 5.0 以上
  • PHP 7.4 以上
  • Stripe アカウント(Payment Links 機能を使用)
  • SSL 証明書(HTTPS 必須。Webhook は HTTPS でのみ動作)
  • SMTP プラグイン推奨(メール到達率向上のため)

Stripe Dashboard 側の設定

  1. Stripe Dashboard > Developers > Webhooks で「Add endpoint」を選択
  2. Endpoint URL にプラグインの「Webhook URL」を入力
  3. 受信するイベントに checkout.session.completed と checkout.session.async_payment_succeeded の 2 つを選択(後者はコンビニ決済など、支払いが後から確定する決済方法用)
  4. 表示された Signing Secret(whsec_xxxxx 形式)をプラグイン設定にコピー

サーバー側の注意事項

サーバー側のセキュリティ設定で Stripe からのリクエストがブロックされていないか確認してください。Xserver の WAF(特に「REST API アクセス制限」)や Wordfence、Cloudflare のファイアウォールルールが Stripe IP を遮断することがあります。

セットアップ手順

  1. プラグインをインストール・有効化
  2. 「設定 > Thanks Mail for Stripe」を開く
  3. 「ステータス」欄の Webhook URL をコピー
  4. Stripe Dashboard でエンドポイント登録
  5. Signing Secret を「Stripe 設定」欄に貼り付け
  6. 「一般設定」で送信元メールアドレス・送信者名・ブランド名を設定
  7. 「メールテンプレート」で Payment Link ID・件名・本文を設定して保存
  8. 「テストメール送信」で動作確認

FEATURES : 機能一覧

1. Stripe Webhook による自動メール送信

Stripe Payment Links で決済が完了すると、プラグインが自動的にサンキューメールを送信します。Webhook を直接受信して wp_mail() で送信するシンプルな構成です。外部サービスは不要なので、月額の SaaS コストが発生しません。

コンビニ決済のように支払いが後から確定する決済方法では、入金が確定した時点(checkout.session.async_payment_succeeded)でメールを送ります。

2. 動的なテンプレート管理(最大 100 件)

メールテンプレートを最大 100 件まで追加・削除できます。各テンプレートには以下を個別に設定できます:

  • テンプレート名(管理用)
  • カテゴリ
  • locale 設定(JA / EN)
  • Payment Link ID(マッチング用、1 テンプレートに 1 つ)
  • 件名(プレースホルダー使用可)
  • 本文(プレースホルダー使用可)

テンプレートが増えても目的のものをすぐ探せるように、次の機能があります:

  • カテゴリ:カテゴリ一覧を作って各テンプレートに割り当て。カテゴリ名を変更すると、割り当て済みの全テンプレートに反映
  • 検索:名前・カテゴリ・ロケール・Payment Link ID・件名・本文から検索
  • 絞り込みとページ送り:カテゴリでの絞り込み、1 ページ 10 件のページネーション
  • 折りたたみ/展開:テンプレートごと、または「すべて展開」「すべて折りたたむ」
  • 並べ替え・複製:「↑/↓」ボタンでの並べ替え、ワンクリックでの複製
  • デフォルトに戻す:件名と本文だけを、テンプレートの locale に合った初期文面に戻す(名前・カテゴリ・Payment Link ID はそのまま)
カテゴリー欄、検索・絞り込みツールバー、折りたたみと展開したテンプレートカードが並ぶテンプレート管理画面

3. テンプレートの自動選択

Webhook の内容から、お客様に送るテンプレートを次の順で選びます:

  1. Payment Link ID:購入に使われた Payment Link の ID と一致するテンプレート
  2. locale:一致がなければ、Checkout Session の locale と言語が一致する最初のテンプレート(日本語以外は EN として扱います)
  3. 先頭のテンプレート:それもなければ一番上のテンプレート

Payment Links では決済画面の言語が「自動(auto)」のままのことが多く、locale による判定はほとんど効きません。言語や商品ごとに出し分けたい場合は、Payment Link ごとにテンプレートを用意して ID を登録してください。

4. プレースホルダー対応のテンプレート

メールテンプレートには以下のプレースホルダーが使えます:

  • {brand} – 設定したブランド名
  • {session_id} – Stripe Checkout Session ID
  • {email} – お客様のメールアドレス

フィルターフック tmfs_email_body、tmfs_email_subject でさらにカスタマイズも可能です(「ADVANCED FILTERS」参照)。

5. カスタム送信元設定

「From Email」「From Name」「Reply-To」を独立して設定できます。

  • 送信元:自社ドメイン(SPF/DKIM/DMARC 通過のため)
  • 返信先:個人の Gmail アドレス(個人で対応する場合)

6. 重複送信防止(冪等性)

Stripe Webhook は同じイベントを複数回送信してくることがあります(リトライ仕様)。プラグインはメールを送る前に session_id を専用テーブルに登録し、同じ session_id への 2 回目以降の送信をスキップします。登録はデータベースの一意制約で行うため、同じイベントがほぼ同時に 2 回届いても送られるのは 1 通だけです。

メール送信に失敗した場合は登録を取り消すので、Stripe Dashboard からイベントを再送すれば送り直せます。

7. Webhook 署名検証(HMAC-SHA256)

Stripe からの Webhook リクエストは、Signing Secret を使って HMAC-SHA256 で署名検証されます。署名が一致しないリクエストや、タイムスタンプが 5 分以上ずれているリクエストは拒否されます。

8. 署名エラーのレート制限

署名の検証に失敗したリクエストが、同じ IP アドレスから 60 秒間に 10 回を超えると 429(Too Many Requests)を返します。数えるのは失敗したリクエストだけなので、1 回の購入で複数のイベントが届く場合や、プロキシ経由で全リクエストが同じ IP になる環境でも、Stripe からの正規の通知が制限されることはありません。

9. テスト送信機能

設定画面の「テストメール送信」から、任意のメールアドレス・任意のテンプレートで実際にメールを送信して動作確認できます。テスト決済は不要です。

テストメールには、画面に表示中のテンプレートの件名と本文がそのまま使われます。保存前の編集内容や、追加したばかりのテンプレートも確認できます(ブランド名・送信元・返信先は保存済みの設定を使用)。

「テストメールを送信」と「設定をリセット」の画面

10. メール送信ログ

送信したメールの履歴を管理画面で確認できます。送信日時、お客様のメールアドレス、使用したテンプレート(番号と名前)、Checkout Session ID が新しい順に表示されます。記録されるのは送信に成功したメールだけです。

「最近の送信履歴」一覧(日時・メールアドレス・テンプレート・セッション ID)

11. 無料の購入への送信(オプション)

100% 割引のクーポンコードや無料トライアルのように、支払いが発生しなかった購入(Stripe 上は no_payment_required)にもメールを送るかどうかを選べます。初期設定はオフです。

12. 個人データのエクスポート・消去

送信ログに保存されたお客様のデータは、WordPress 標準の「ツール > 個人データのエクスポート」「個人データの消去」で扱えます。

SETTINGS : プラグイン設定画面

WordPress の管理画面「設定 > Thanks Mail for Stripe」から設定します。

設定画面上部(クイックセットアップガイド・ステータス・Stripe 設定・一般設定)

設定は 1 ページにまとまっており、上から次の順に並んでいます。

ステータス

  • 有効化:サンキューメールの送信を有効にします。オフの間、Webhook は 503 を返し、Stripe は各購入の通知を最大 3 日間再送し続けます。再送期間中に有効へ戻すと、その時点でメールが送られます
  • 無料の購入(Free purchases):支払いが発生しなかった購入(100% 割引クーポン、無料トライアルなど)にもメールを送ります。初期設定はオフ。テンプレートが「お支払いいただき…」のような文面ならオフのままにしてください
  • Webhook URL:Stripe Dashboard に登録する URL(コピーボタン付き)
  • 送信数:これまでに送信したメールの件数

Stripe 設定

  • Webhook 署名シークレット:Stripe Dashboard の Webhook 詳細から取得した whsec_xxxxx 値。テストモードと本番モードでは値が異なるので、切り替え時に入れ替えてください
Add endpoint でURL入力+イベント選択している画面のスクリーンショット

一般設定

  • ブランド名:{brand} プレースホルダーに展開される文字列
  • 送信元メールアドレス(From Email):自社ドメインのアドレスを推奨
  • 送信者名(From Name):メールソフトに表示される送信者名
  • 返信先メールアドレス(Reply-To):お客様の返信が届くアドレス(Gmail なども可)

「From Email」に Gmail を設定すると、SPF/DKIM の問題で受信側で迷惑メール扱いされやすくなります。必ず自社ドメインのアドレスを使ってください。

カテゴリ

テンプレートに割り当てるカテゴリを追加・名前変更・削除します。削除したカテゴリが割り当てられていたテンプレートは「カテゴリなし」になります。

メールテンプレート

最大 100 件のテンプレートを編集できます。上部のツールバーで検索・カテゴリ絞り込み・すべて展開/折りたたみができます。各テンプレートの項目は「FEATURES」の 2 を参照してください。

名前・Payment Link ID・件名・本文がすべて空のテンプレートは、保存時に削除されます。保存せずにページを離れようとすると警告が表示されます。

テストメール送信

送信先メールアドレスとテンプレートを選んで、実際にメールを送信できます。

設定のリセット

すべての設定を初期値に戻します。Webhook 署名シークレットとすべてのテンプレートも消えるため、再設定するまで Stripe からの通知はエラーになります。送信ログは残ります。

最近の送信履歴

直近 20 件の送信履歴を表示します。

  • 送信日時
  • お客様メールアドレス
  • 使用テンプレート(番号と名前)
  • Checkout Session ID(全文)

TEMPLATE : テンプレート例

日本語のサンキューメール例

件名:【{brand}】ご購入ありがとうございます

{email} 様

このたびは {brand} の商品をご購入いただき、
誠にありがとうございます。

ご注文の確認は、Stripe から別途送られる領収書メールをご確認ください。

商品のダウンロード URL・ライセンスキーは、
本日中に別途メールでお送りいたします。

ご質問があれば、このメールに直接ご返信ください。

参考情報:
* Session ID:{session_id}

{brand}
 https://yoursite.com/

英語のサンキューメール例

Subject: Thank you for your purchase from {brand}

Hello,

Thank you for purchasing from {brand}.

Please check the receipt email from Stripe for your order details.

We will send the download URL and license key in a separate email today.

If you have any questions, please reply to this email.

Reference:
* Session ID: {session_id}

{brand}
 https://yoursite.com/

FAQ : よくある質問

Webhook で 403 エラーが出る場合は?

サーバーのセキュリティ設定が Stripe のリクエストをブロックしている可能性があります:

  • Wordfence:Firewall > Allowlisted URLs に Webhook URL を追加
  • Xserver WAF:「REST API アクセス制限」をオフ(海外 IP ブロックが Stripe を遮断)
  • Cloudflare:Stripe IP を許可するファイアウォールルールを作成
  • その他のセキュリティプラグイン:Webhook エンドポイントをホワイトリスト登録

Webhook で 429 エラーが出る場合は?

署名の検証に失敗したリクエストが、同じ IP アドレスから 1 分間に 10 回を超えています。プラグインに設定した Webhook 署名シークレットが正しいか(テスト用と本番用を取り違えていないか)を確認してください。

Webhook は 200 を返しているのにメールが届かない場合は?

「最近の送信履歴」を確認してください。Session ID が記録されている場合、プラグインは「すでに送信済み」と判定して 2 回目をスキップしています(重複防止機能)。これは意図した動作です。

Stripe Dashboard の Webhook ログで応答が no_payment_required_skipped の場合は、無料の購入(100% 割引クーポンや無料トライアル)です。送りたい場合は設定の「無料の購入」をオンにしてください。

応答が "sent": false の場合は、wp_mail() の送信失敗です。SMTP プラグイン(WP Mail SMTP 等)の導入をご検討ください。

お客様の言語をどう検出しますか?

次の順にテンプレートを選びます:

  1. Payment Link ID:日本語用と英語用の Payment Link を別々に作って、それぞれの ID をテンプレートに登録すると確実に出し分けられます
  2. locale:一致する Payment Link ID がなければ、Checkout Session の locale で判定(日本語以外は EN 扱い)
  3. 先頭のテンプレート:それでも決まらなければ一番上のテンプレート

Payment Links は決済画面の言語が「auto」のままのことが多く、2 の locale 判定はほとんど効きません。

WooCommerce で使えますか?

このプラグインは Stripe Payment Links(単独チェックアウト)専用です。WooCommerce で Stripe を使っている場合は、WooCommerce 標準のメール送信機能を使ってください。

Webhook のテスト方法は?

  1. Stripe をテストモードに切り替え
  2. テストモードの Signing Secret をプラグインに設定
  3. テストカード 4242 4242 4242 4242 で擬似決済
  4. Stripe Dashboard の Webhook ログで 200 応答を確認
  5. プラグインの「最近の送信履歴」で送信記録を確認

言語ごとに別 Payment Link を作る理由は?

Payment Link ID は Webhook イベントに必ず含まれるので、ID で判定すれば確実です。locale による判定は、Payment Links が決済画面の言語を「auto」のままにしていることが多いため、ほとんど当てになりません。

メールテンプレートで使えるプレースホルダーは?

  • {brand} – 設定したブランド名
  • {session_id} – Stripe Checkout Session ID(参照用)
  • {email} – お客様のメールアドレス

テストモードでもメールが送信されますか?

はい。テストモードの Signing Secret を設定していれば送信されます。本番運用前の動作確認に活用してください。

wp_mail() が失敗した場合は?

Webhook は 200 と "sent": false を返し、送信ログには記録しません。Stripe は 200 を受け取ると自動では再送しないので、原因を直したあと Stripe Dashboard > Developers > Webhooks から該当イベントを再送してください。SMTP プラグイン(WP Mail SMTP、Post SMTP、FluentSMTP 等)の導入で到達率を上げることをおすすめします。

「sent: true」なのに届かない場合は?

メール認証の問題が原因のことが多いです。「From Email」の設定を確認してください。

重要:From Email は自社ドメインのアドレスを使う

  • 良い例:info@yoursite.com、support@yoursite.com
  • 悪い例:yourname@gmail.com、yourname@yahoo.com

サーバーが「@gmail.com から送信」と主張すると、受信側のサーバーは「なりすまし」と判定します(SPF / DKIM / DMARC のいずれかで失敗)。「Reply-To」には自由なアドレスを使えますが、「From」は必ず自社ドメインに。

お客様データは保存されますか?

はい。重複送信防止のためにメールアドレス・Session ID・金額・送信日時が独自テーブル(wp_tmfs_sent_emails)に保存されます。プライバシーポリシーへの記載が必要です。プラグインアンインストール時にデータは自動削除されます。

GDPR に準拠していますか?

プラグインはお客様のメールアドレスを「重複メール防止のため」「送信履歴のため」という正当な業務目的で保存します。プライバシーポリシーに「決済データを保存していること」を明示する必要があります。データは WordPress データベース内のみに保存され、第三者と共有されることはありません。

お客様から開示や削除を求められた場合は、WordPress 標準の「ツール > 個人データのエクスポート」「個人データの消去」で対応できます。消去するとその購入の重複送信防止も外れるため、Stripe からイベントを再送するとメールがもう一度送られます。

ADVANCED FILTERS : フィルターフック

functions.php にフィルターを設定してメールの送信内容や挙動をカスタマイズできます。tmfs_email_subject・tmfs_email_body・tmfs_email_headers は、値のほかに送信先メールアドレス $to、テンプレートインデックス $lang、Checkout Session ID $session_id を受け取ります。

メール本文を送信前に加工

add_filter( 'tmfs_email_body', function( $body, $to, $lang, $session_id ) {
    $body .= "\n\n---\n株式会社サンプル\nhttps://example.com/";
    return $body;
}, 10, 4 );

メール件名を送信前に加工

add_filter( 'tmfs_email_subject', function( $subject, $to, $lang, $session_id ) {
    // 2 番目のテンプレート(インデックス '1')の件名にだけ付ける
    if ( '1' === $lang ) {
        $subject = '[English]' . $subject;
    }
    return $subject;
}, 10, 4 );

CC / BCC ヘッダーの追加

add_filter( 'tmfs_email_headers', function( $headers, $to, $lang, $session_id ) {
    $headers[] = 'Bcc: backup@yoursite.com';
    return $headers;
}, 10, 4 );

テンプレート選択のカスタマイズ

tmfs_detect_language は、送信に使うテンプレートのインデックス(文字列。'0' が一番上)と、Checkout Session のデータ(配列)を受け取ります。1.1.0 以降、戻り値は言語コードではなくテンプレートインデックスです('ja' や 'en' を返すと一番上のテンプレートになります)。中国語向けのテンプレートを 3 番目に登録しているケースの例:

add_filter( 'tmfs_detect_language', function( $template_index, $session ) {
    $cn_link_ids = array( 'plink_xxxxx', 'plink_yyyyy' );
    if ( in_array( $session['payment_link'] ?? '', $cn_link_ids, true ) ) {
        return '2'; // 3 番目のテンプレート(0 始まり)
    }
    return $template_index;
}, 10, 2 );

インデックスは並び順で決まるため、管理画面でテンプレートを並べ替えると指す先が変わります。

CHANGE LOG : バージョン履歴

  • 1.2.1不具合修正と改善のリリースです。Webhook のレート制限が Stripe からの正規の通知まで拒否することがあった問題を修正(署名の検証に失敗したリクエストだけを数えるように変更)。同じイベントがほぼ同時に 2 回届くとメールが 2 通送られることがあった問題を修正。日本円など小数のない通貨の金額が送信履歴に 100 分の 1 で記録されていた問題を修正(記録済みの履歴は変更されません)。カテゴリ名の変更中に入力欄を空にすると全テンプレートからカテゴリが外れていた問題、テンプレートの「デフォルトに戻す」で Payment Link ID が消えたりテンプレート自体が削除されたりしていた問題、テストメールに未保存の編集内容が反映されなかった問題、HTTP の管理画面でコピーボタンが動かなかった問題、本文だけのテンプレートが保存時に削除されていた問題を修正。新機能として、支払いが発生しなかった購入(100% 割引クーポン、無料トライアル)にもメールを送れる「無料の購入」設定(初期設定はオフ)と、WordPress の個人データのエクスポート・消去への対応を追加。送信履歴にテンプレート名・Session ID 全文・サイト設定の日時形式を表示、未保存の変更がある場合の離脱警告、送信履歴テーブルがない場合の自動作成などを改善しました。日本語翻訳の同梱をやめ WordPress.org の言語パックを使うように変更(今回追加した文言は翻訳が公開されるまで英語で表示されます)。WordPress 7.1 で動作確認済み。
  • 1.2.0テンプレート管理を大幅に強化しました。設定できるメールテンプレートを最大 100 件に拡張(従来は 10 件)。カテゴリ機能を追加し、カテゴリ一覧を管理して各テンプレートに割り当て可能に(カテゴリ名を変更すると、それを使う全テンプレートへ自動反映)。名前・カテゴリ・ロケール・Payment Link ID・件名・本文による検索、カテゴリ絞り込み、各テンプレートの折りたたみ/展開(「すべて展開」「すべて折りたたむ」)、1 ページ 10 件のページネーション、「↑/↓」ボタンでの並び替え、ワンクリック複製(コピー)に対応。既存の設定データは保存時に自動移行されます。あわせて同梱の日本語翻訳を確実に読み込むよう改善しました。
  • 1.1.2WordPress 7.0 に対応しました。Tested up to を 7.0 に更新。WordPress 7.0 RC・PHP 8.3 環境で全機能(Webhook 署名検証・テンプレート移行・言語検出・REST エンドポイント・管理画面描画)の動作を検証済み。コードの機能変更はありません。
  • 1.1.1Plugin URI を新しいプラグインページ (https://raplsworks.com/plugins/thanks-mail-for-stripe/) に更新しました。
  • 1.1.0動的なテンプレート管理(1〜10 件、追加/削除ボタン付き)。各テンプレートに個別ラベル・locale・Payment Link ID・件名・本文を設定可能、テンプレート単位のリセットボタンも追加。Webhook はテンプレートと Payment Link ID または locale fallback でマッチ。設定データはフラット形式から配列形式へ自動マイグレーション。破壊的変更:tmfs_detect_language フィルターは言語コードではなくテンプレートインデックス(文字列)を返すように変更。
  • 1.0.4すべての内部 prefix を stm_ から tmfs_ に変更(オプション名・テーブル名・設定グループ・transient キー・JS グローバル変数)して WordPress.org の 4 文字以上 prefix 要件に準拠。Plugin URI を公開ページ公開後に復活。
  • 1.0.3メインクラスを TMFS_Thanks_Mail にリネームして WordPress.org 命名規約に準拠。すべてのフィルターフック(tmfs_email_subject、tmfs_email_body、tmfs_email_headers、tmfs_detect_language)に tmfs_ prefix を適用。アンインストール関数を tmfs_uninstall_cleanup にリネーム。テンプレートのグローバル変数($tmfs_recent_emails、$tmfs_email)にも prefix。カスタムテーブルクエリに phpcs:ignore を追加。load_plugin_textdomain() 呼び出しを削除(WordPress 4.6 以降は不要)。
  • 1.0.2外部リソース読み込み(BuyMeACoffee CDN 画像)を削除しローカルテキストリンクに置き換え。インライン JavaScript を assets/js/admin.js として正しく enqueue。グローバル定数を STM_ から TMFS_ prefix にリネームし、define() 衝突ガードを追加。$_SERVER['REMOTE_ADDR'] アクセスに wp_unslash() と filter_var()(FILTER_VALIDATE_IP)を適用。error_log() 呼び出しを WP_DEBUG チェックでラップ。テーブル名サニタイズ用に esc_sql() を uninstall.php で復活。/test エンドポイントに REST API スキーマ定義(バリデーション付き)を追加。
  • 1.0.1メール送信失敗が誤って「sent」としてデータベースに記録されるバグを修正。送信前のメールアドレスバリデーション(is_email())を追加。Webhook エンドポイントに IP ごとのレート制限(60 秒で 10 リクエスト)を追加。Data & Privacy ドキュメントを readme でより明確に記述。
  • 1.0.0初回リリース。Webhook ベースの自動サンキューメール送信、日本語と英語のテンプレート対応、Payment Link ID または locale による言語検出、カスタム送信元メール・名前設定、session ID トラッキングによる重複防止、テスト送信機能、最近の送信履歴付きメール送信ログ、安全な Webhook 署名検証、クイックセットアップガイド付き管理画面、日本語翻訳付属。

RELATED PAGES : 関連ページ

タイトルとURLをコピーしました