Home / Guias / Conectar formulários no WordPress sem plugins de SMTP | Lugatu
INTEGRAÇÃO CMS · MÁXIMA CONFIABILIDADE · ZERO PLUGINS

Conectar formulários no WordPress sem plugins de SMTP | Lugatu

Deixe seu site WordPress mais rápido eliminando plugins de SMTP instáveis. Com a Lugatu, envie formulários diretamente por API REST segura e sem manutenção.

1. Por que plugins de SMTP no WordPress são problemáticos

Plugins como WP Mail SMTP e Contact Form 7 exigem manutenção contínua, pesam no painel e chegam a travar a página caso o servidor de e-mail fique fora do ar.

2. Opção A: Envio direto do navegador no tema

Insira um formulário HTML simples no seu tema ou bloco Gutenberg. As mensagens vão direto para a Lugatu sem sobrecarregar o banco do 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. Opção B: Envio pelo servidor com wp_remote_post()

Se você precisa validar informações em PHP antes de enviar, repasse a requisição de forma autenticada usando sua chave de API privada.

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>

Invariante de segurança e autenticação

Segurança no WordPress: Salve sua LUGATU_API_KEY no arquivo wp-config.php ou em variáveis de ambiente do servidor, nunca direto no tema.

Solução de problemas e erros comuns de ingestão

wp_remote_post acusa timeout

Aumente o timeout para 15 segundos nos parâmetros de wp_remote_post e certifique-se de que sua hospedagem permite HTTPS externo.

Perguntas frequentes

Preciso ter algum plugin de formulário instalado?

Não. Você pode usar HTML puro, Elementor, Divi ou seus próprios arquivos PHP sem instalar nada a mais.

Pronto para criar o endpoint do seu formulário?

Comece gratuitamente em segundos. Não é necessário cartão de crédito.

Comece grátis →