recherche
MaisonTutoriel CMSWordPresseConstruire un plugin WordPress pour créer un formulaire de contact ajax

Cet article montre la construction d'un plugin de formulaire de contact AJAX simple pour WordPress. Nous couvrirons la création du plugin, la conception de formulaires, la manipulation de l'AJAX et la mise en œuvre des raccourcis.

Concepts clés:

  • Le développement du plugin WordPress exploite les plugins pour étendre les fonctionnalités du site. Cela comprend la création de formulaires de contact qui utilisent AJAX pour la soumission des données. Cela implique la création de fichiers de plugin, la construction de formulaires, un gestionnaire Ajax et un shortcode.
  • Le gestionnaire Ajax est crucial. Il reçoit l'entrée de l'utilisateur, valide les données et envoie des notifications par e-mail à l'administrateur WordPress à l'aide de wp_mail(). Un enregistrement approprié du gestionnaire AJAX est essentiel pour le traitement des demandes AJAX.
  • Shortcodes Simplifiez l'intégration de la forme. Une fonction génère le HTML du formulaire, qui est ensuite encapsulé dans un shortcode pour une insertion facile dans les poteaux et les pages.

Création du plugin:

  1. Créez un dossier nommé ajaxcontactform dans votre répertoire WordPress wp-content/plugins.
  2. à l'intérieur, créez ajaxcontactform.php avec l'en-tête du plugin suivant:
<?php
/*
Plugin Name: Ajax Contact Form
Plugin URI:  (Your Plugin URI)
Description: A simple contact form using AJAX.
Author: Abbas Suterwala
Version: 1.0
Author URI: (Your Author URI)
*/
?>
  1. Activez le plugin dans votre panneau d'administration WordPress.

Building a WordPress Plugin to Create an AJAX Contact Form

  1. Créez un sous-dossier nommé js dans ajaxcontactform et ajoutez ajaxcontact.js pour votre code ajax.

Building a WordPress Plugin to Create an AJAX Contact Form

  1. Ajoutez le code PHP suivant à ajaxcontactform.php pour définir les constantes, les scripts en fidélisation et localiser l'URL AJAX:
define('ACFSURL', WP_PLUGIN_URL."/".dirname( plugin_basename( __FILE__ ) ) );
define('ACFPATH', WP_PLUGIN_DIR."/".dirname( plugin_basename( __FILE__ ) ) );

function ajaxcontact_enqueuescripts() {
    wp_enqueue_script('ajaxcontact', ACFSURL.'/js/ajaxcontact.js', array('jquery'));
    wp_localize_script( 'ajaxcontact', 'ajaxcontactajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );
}
add_action('wp_enqueue_scripts', 'ajaxcontact_enqueuescripts');

Création de formulaire:

La fonction suivante génère le HTML du formulaire de contact:

function ajaxcontact_show_contact() {
?>
<div>
    <div style="background-color:https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15bE6E6FA ;color:blue;"></div>
    <input type="text" id="ajaxcontactname" placeholder="Name"><br>
    <input type="email" id="ajaxcontactemail" placeholder="Email"><br>
    <input type="text" id="ajaxcontactsubject" placeholder="Subject"><br>
    <textarea id="ajaxcontactcontents" placeholder="Message"></textarea><br>
    <a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b" onclick="ajaxformsendmail(this.form);" style="cursor: pointer">Send Mail</a>
</div>
<?php
}

Ce formulaire sera affiché comme indiqué ci-dessous après avoir été intégré dans une page ou un message:

Building a WordPress Plugin to Create an AJAX Contact Form

Ajax Handler:

Cette fonction gère la demande Ajax, valide les données et envoie l'e-mail:

function ajaxcontact_send_mail() {
    $results = '';
    $error = 0;
    $name = isset($_POST['acfname']) ? sanitize_text_field($_POST['acfname']) : '';
    $email = isset($_POST['acfemail']) ? sanitize_email($_POST['acfemail']) : '';
    $subject = isset($_POST['acfsubject']) ? sanitize_text_field($_POST['acfsubject']) : '';
    $contents = isset($_POST['acfcontents']) ? wp_kses_post($_POST['acfcontents']) : '';
    $admin_email = get_option('admin_email');

    if (!is_email($email)) {
        $results = $email." :email address is not valid.";
        $error = 1;
    } elseif (empty($name)) {
        $results = "Name is invalid.";
        $error = 1;
    } elseif (empty($subject)) {
        $results = "Subject is invalid.";
        $error = 1;
    } elseif (empty($contents)) {
        $results = "Content is invalid.";
        $error = 1;
    }

    if ($error == 0) {
        $headers = 'From: ' . $email . "\r\n";
        if (wp_mail($admin_email, $subject, $contents, $headers)) {
            $results = "*Thanks for your mail.";
        } else {
            $results = "*The mail could not be sent.";
        }
    }
    die($results);
}

La gestion des erreurs affichera un message comme celui-ci:

Building a WordPress Plugin to Create an AJAX Contact Form

Enregistrement du gestionnaire AJAX:

Enregistrez le gestionnaire AJAX:

add_action( 'wp_ajax_nopriv_ajaxcontact_send_mail', 'ajaxcontact_send_mail' );
add_action( 'wp_ajax_ajaxcontact_send_mail', 'ajaxcontact_send_mail' );

Envoi de la demande Ajax (ajaxContact.js):

function ajaxformsendmail(form) {
    jQuery.ajax({
        type: 'POST',
        url: ajaxcontactajax.ajaxurl,
        data: {
            action: 'ajaxcontact_send_mail',
            acfname: jQuery('https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15bajaxcontactname').val(),
            acfemail: jQuery('https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15bajaxcontactemail').val(),
            acfsubject: jQuery('https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15bajaxcontactsubject').val(),
            acfcontents: jQuery('https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15bajaxcontactcontents').val()
        },
        success: function(data, textStatus, XMLHttpRequest) {
            jQuery('https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15bajaxcontact-response').html(data);
        },
        error: function(MLHttpRequest, textStatus, errorThrown) {
            alert(errorThrown);
        }
    });
    return false; // Prevent default form submission
}

Création du shortcode:

function ajaxcontact_shortcode_func( $atts ) {
    ob_start();
    ajaxcontact_show_contact();
    $output = ob_get_clean();
    return $output;
}
add_shortcode( 'ajaxcontact', 'ajaxcontact_shortcode_func' );

Le formulaire rempli apparaîtra comme suit:

Building a WordPress Plugin to Create an AJAX Contact Form

Sécurité, personnalisation et fonctionnalités avancées:

Le code fourni n'a pas de mesures de sécurité cruciales (vérification nonce). L'ajout de nonces est fortement recommandé pour empêcher les attaques du CSRF. Une personnalisation plus approfondie (style avec CSS, validation améliorée, intégration CAPTCHA, téléchargements de fichiers, etc.) peut être implémentée sur la base d'exigences spécifiques. La section FAQS dans le texte d'origine fournit des conseils sur ces améliorations. N'oubliez pas de désinfecter toutes les entrées utilisateur pour éviter les vulnérabilités.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Comment l'écosystème du plugin de WordPress améliore-t-il ses capacités CMS?Comment l'écosystème du plugin de WordPress améliore-t-il ses capacités CMS?May 14, 2025 am 12:20 AM

WordPressPluginssignificantlyEnHanceitsCmscapabilitiesByOffreringCustalization andfunctionality.1) plus de 50000PluginsallowuserstotailOrtheiSiteForseo, e-cowirce, andsecurit

WordPress est-il adapté au commerce électronique?WordPress est-il adapté au commerce électronique?May 13, 2025 am 12:05 AM

Oui, WordPress est très adapté au commerce électronique. 1) Avec le plugin WooCommerce, WordPress peut rapidement devenir une boutique en ligne entièrement fonctionnelle. 2) Faites attention à l'optimisation et à la sécurité des performances, et les mises à jour régulières et l'utilisation de caches et de plug-ins de sécurité sont la clé. 3) WordPress offre une multitude d'options de personnalisation pour améliorer l'expérience utilisateur et optimiser considérablement le référencement.

Comment ajouter votre site WordPress dans les outils de webmaster yandexComment ajouter votre site WordPress dans les outils de webmaster yandexMay 12, 2025 pm 09:06 PM

Voulez-vous connecter votre site Web aux outils de webmaster Yandex? Des outils de webmaster tels que Google Search Console, Bing et Yandex peuvent vous aider à optimiser votre site Web, à surveiller le trafic, à gérer Robots.txt, à vérifier les erreurs du site Web, etc. Dans cet article, nous partagerons comment ajouter votre site Web WordPress à l'outil de webmaster Yandex pour surveiller le trafic de votre moteur de recherche. Qu'est-ce que Yandex? Yandex est un moteur de recherche populaire basé en Russie, similaire à Google et Bing. Vous pouvez exceller dans Yandex

Comment corriger les erreurs de téléchargement d'images HTTP dans WordPress (simple)Comment corriger les erreurs de téléchargement d'images HTTP dans WordPress (simple)May 12, 2025 pm 09:03 PM

Avez-vous besoin de corriger les erreurs de téléchargement d'images HTTP dans WordPress? Cette erreur peut être particulièrement frustrant lorsque vous créez du contenu dans WordPress. Cela se produit généralement lorsque vous téléchargez des images ou d'autres fichiers sur votre CMS à l'aide de la bibliothèque de médias WordPress intégrée. Dans cet article, nous vous montrerons comment corriger facilement les erreurs de téléchargement d'images HTTP dans WordPress. Quelle est la raison des erreurs HTTP lors du téléchargement des médias WordPress? Lorsque vous essayez de télécharger des fichiers sur WO à l'aide de WordPress Media Uploader

Comment résoudre le problème où l'ajout de boutons multimédias ne fonctionne pas dans WordPressComment résoudre le problème où l'ajout de boutons multimédias ne fonctionne pas dans WordPressMay 12, 2025 pm 09:00 PM

Récemment, l'un de nos lecteurs a rapporté que le bouton ADD Media sur leur site WordPress a soudainement cessé de fonctionner. Ce problème d'éditeur classique ne montre aucune erreur ou avertisseur, ce qui rend l'utilisateur ignorant pourquoi leur bouton "Ajouter un support" ne fonctionne pas. Dans cet article, nous vous montrerons comment réparer facilement le bouton Ajouter un média dans WordPress qui ne fonctionne pas. Qu'est-ce qui fait que le bouton WordPress "Ajouter des médias" arrête de fonctionner? Si vous utilisez toujours l'ancien éditeur WordPress classique, le bouton ADD Media vous permet d'insérer des images, des vidéos et plus dans votre article de blog.

Comment définir, obtenir et supprimer les cookies WordPress (comme un professionnel)Comment définir, obtenir et supprimer les cookies WordPress (comme un professionnel)May 12, 2025 pm 08:57 PM

Voulez-vous savoir comment utiliser des cookies sur votre site Web WordPress? Les cookies sont des outils utiles pour stocker des informations temporaires dans les navigateurs des utilisateurs. Vous pouvez utiliser ces informations pour améliorer l'expérience utilisateur par le biais de personnalisation et de ciblage comportemental. Dans ce guide ultime, nous vous montrerons comment définir, obtenir et supprimer les cookies WordPress comme un professionnel. Remarque: Il s'agit d'un tutoriel avancé. Il vous oblige à maîtriser HTML, CSS, WordPress sites Web et PHP. Que sont les cookies? Les cookies sont créés et stockés lorsque les utilisateurs visitent les sites Web.

Comment réparer WordPress 429 trop d'erreurs de demandeComment réparer WordPress 429 trop d'erreurs de demandeMay 12, 2025 pm 08:54 PM

Voyez-vous l'erreur "429 trop de demandes" sur votre site Web WordPress? Ce message d'erreur signifie que l'utilisateur envoie trop de demandes HTTP au serveur de votre site Web. Cette erreur peut être très frustrante car il est difficile de savoir ce qui cause l'erreur. Dans cet article, nous vous montrerons comment réparer facilement l'erreur "WordPress429ToomanyRequests". Qu'est-ce qui cause trop de demandes pour WordPress429? La cause la plus courante de l'erreur "429ToomanyRequests" est que l'utilisateur, le bot ou le script tente d'aller sur le site Web

Dans quelle mesure WordPress est-il évolutif en tant que CMS pour les grands sites Web?Dans quelle mesure WordPress est-il évolutif en tant que CMS pour les grands sites Web?May 12, 2025 am 12:08 AM

WordPressCanHandleLargewebsiteswithCarefulPlanningandoptimization.1) UseCachingToreduceServer.2) optimiseryourdatabaseragular.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.