Home / ガイド / SMTPプラグインを使用しないWordPressコンタクトフォームの統合
統合ガイド · WordPress と CMS

SMTPプラグインを使用しないWordPressコンタクトフォームの統合

WordPress の連絡先送信を Lugatu フォーム エンドポイントに直接ルーティングすることで、wp_mail() 配信の失敗、wp_options への平文パスワードの保存、かさばるプラグインを排除します。

1. WordPress SMTP プラグインの問題

ほとんどの WordPress サイトは、WP Mail SMTP などのプラグインに依存して、PHP mail() または保存された SMTP 認証情報を介して連絡先通知を送信します。 ホスティング IP アドレスが変更されるか、ホスティング プロバイダーがポート 587/465 をブロックすると、問い合わせは通知なく失われます。

2. wp_remote_post() によるサーバー側の統合

テーマ開発者とカスタム プラグインの場合、フロントエンド訪問者に秘密を公開することなく、ワークスペース API キーを使用して WordPress サーバーからフォーム送信を安全に転送します。

functions.php php
<?php
// Secure WordPress server-side form forwarding
function handle_custom_contact_submission() {
    if ( ! isset( $_POST['contact_nonce'] ) || ! wp_verify_nonce( $_POST['contact_nonce'], 'contact_action' ) ) {
        wp_send_json_error( array( 'message' => 'Security check failed.' ), 403 );
    }

    // Silently drop automated spam if honeypot trap is filled
    if ( ! empty( $_POST['_gotcha'] ) ) {
        wp_send_json_success( array( 'message' => 'Thank you! Message received.' ) );
        return;
    }

    $name    = sanitize_text_field( $_POST['name'] ?? '' );
    $email   = sanitize_email( $_POST['email'] ?? '' );
    $message = sanitize_textarea_field( $_POST['message'] ?? '' );

    $payload = array(
        'fields' => array(
            'name'    => $name,
            'email'   => $email,
            'message' => $message,
        ),
    );

    $api_url = 'https://www.lugatu.com/api/v1/forms/' . LUGATU_FORM_GUID . '/submissions';

    $response = wp_remote_post( $api_url, array(
        'headers' => array(
            'Authorization'   => 'Bearer ' . LUGATU_API_KEY,
            'Content-Type'    => 'application/json',
            'Idempotency-Key' => wp_generate_uuid4(),
        ),
        'body'    => wp_json_encode( $payload ),
        'timeout' => 10,
    ) );

    if ( is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) >= 400 ) {
        wp_send_json_error( array( 'message' => 'Failed to deliver message.' ), 500 );
    }

    wp_send_json_success( array( 'message' => 'Thank you! Message received.' ) );
}
add_action( 'wp_ajax_custom_contact', 'handle_custom_contact_submission' );
add_action( 'wp_ajax_nopriv_custom_contact', 'handle_custom_contact_submission' );

3. 直接サンドボックス埋め込み Iframe オプション

PHP コードを使用しない場合は、サンドボックス化されたレスポンシブ iframe を使用して、公開された Lugatu フォームを WordPress ページまたは Elementor HTML ブロックに直接埋め込みます。

wordpress-embed.html html
<iframe
  src="https://www.lugatu.com/embed/forms/YOUR_PUBLIC_FORM_ID"
  width="100%"
  height="540"
  frameborder="0"
  style="border:none; border-radius:16px; overflow:hidden;"
  title="Contact Form">
</iframe>

セキュリティと認証の不変性

セキュリティに関する指示: LUGATU_API_KEY を Web ルートの外側の wp-config.php 内で定義し、クライアントがアクセス可能なスクリプトやパブリック テーマ ファイル内では決して定義しないでください。

トラブルシューティングと一般的な取り込みエラー

wp_remote_post() は cURL エラー 28 を返します: 接続がタイムアウトしました

ホスティング プロバイダーがポート 443 で www.lugatu.com へのアウトバウンド HTTPS トラフィックを許可していることを確認してください。

よくある質問

WordPress で Lugatu を使用するには特別なプラグインをインストールする必要がありますか?

いいえ。軽量の公式 WordPress コネクタを使用するか、標準の HTML iframe または AJAX スニペットを使用してフォームを埋め込むことができます。

フォームエンドポイントを作成する準備はできましたか?

数秒で無料で始められます。 クレジットカードは必要ありません。

無料で始める →