Attention !

Cet article contient du code PHP et est destiné aux développeurs. Nous offrons ce code par courtoisie, mais nous ne fournissons pas de support pour les personnalisations de code ou le développement de tierces parties.

Pour plus d'informations, consultez le tutoriel de WPBeginner sur l'ajout de code personnalisé.

Rejeter

Comment désactiver l'éditeur WYSIWYG dans les paramètres de confirmation ?

Introduction

Souhaitez-vous désactiver l'éditeur WYSIWYG qui apparaît dans les paramètres de confirmation? Par défaut, lorsque vous vous trouvez dans le générateur de formulaires, vous voyez l'éditeur WYSIWYG standard utilisé par WordPress. Mais si vous souhaitez désactiver ce champ, vous pouvez le faire facilement en ajoutant quelques lignes de code PHP. Dans ce tutoriel, nous allons vous expliquer étape par étape comment désactiver cet éditeur.

Qu'est-ce qu'un éditeur WYSIWYG ? C'est ce que l'on appelle généralement un éditeur visuel ou un champ de texte enrichi. Lorsque vous accédez pour la première fois à l'onglet Paramètres de confirmation dans le générateur de formulaires, vous voyez généralement deux onglets. L'un concerne l'éditeur de texte visuel (WYSIWYG) et l'autre est un onglet de texte simple.

L'écran des paramètres de confirmation propose deux types d'éditeurs, l'éditeur visuel et l'éditeur textuel.

L'éditeur de texte brut est généralement utilisé par les utilisateurs qui sont à l'aise avec l'écriture HTML.

Ajout du snippet pour désactiver l'éditeur WYSIWYG

Avant de créer le formulaire, ajoutons d'abord le snippet qui désactivera cet éditeur. Pour ce faire, il suffit de copier et de coller ce snippet sur votre site.

Si vous avez besoin d'aide pour ajouter des snippets à votre site, veuillez consulter ce tutoriel.

/**
Disable the WYSIWYG editor in the Confirmation settings.

@link https://wpforms.com/developers/how-to-disable-the-wysiwyg-editor-inside-the-confirmation-settings/
 */
function wpf_dev_builder_enqueues( $view ) {
 wp_add_inline_script(
 'wpforms-builder',
 '(function( $ ) {

     // Prevent crash: module reads tinymceDefaults.tinymce.toolbar1 before
     // calling wp.editor.initialize — needs a valid object, not false.
     // This runs synchronously so WPFormsBuilder is guaranteed to exist.
     if ( typeof WPFormsBuilder !== "undefined" && WPFormsBuilder.settings ) {
         WPFormsBuilder.settings.tinymceDefaults.tinymce = { toolbar1: "" };
     }

     $( document ).ready( function() {

         // Layer 1: wp.editor.initialize intercept.
         // Prevents tmce-active class + TinyMCE init flow for confirmation editors.
         if ( typeof wp !== "undefined" && wp.editor && wp.editor.initialize && ! wp.editor.initialize.wpfPatched ) {
             var wpInit = wp.editor.initialize;
             wp.editor.initialize = function( id, settings ) {
                 if ( typeof id === "string" && /^wpforms[-]panel[-]field[_-]confirmations/.test( id ) ) {
                     settings = Object.assign( {}, settings, { tinymce: false } );
                 }
                 return _wpInit.call( this, id, settings );
             };
             wp.editor.initialize.wpfPatched = true;
         }

         // Layer 2: tinymce.init intercept.
         // Belt-and-suspenders — catches TinyMCE even if wp.editor.initialize
         // is called from a path our Layer 1 missed.
         if ( typeof tinymce !== "undefined" && ! tinymce.init.wpfPatched ) {
             var mceInit = tinymce.init;
             tinymce.init = function( settings ) {
                 if ( settings && settings.selector && /wpforms[-]panel[-]field[-]confirmations/.test( settings.selector ) ) {
                     return;
                 }
                 return _mceInit.apply( this, arguments );
             };
             tinymce.init._wpfPatched = true;
         }

         // Layer 3: event fallback — re-init any editor that slipped through.
         $( "#wpforms-builder" ).on( "wpformsBuilderConfirmationsReady", function() {
             if ( typeof wp === "undefined" || ! wp.editor ) return;
             $( ".wpforms-panel-field-confirmations-message" ).each( function() {
                 var id = $( this ).attr( "id" );
                 if ( ! id ) return;
                 wp.editor.remove( id );
                 wp.editor.initialize( id, { tinymce: false, quicktags: true } );
             } );
         } );

     } );

 } )( jQuery );'
 );

}
add_action( 'wpforms_builder_enqueues', 'wpf_dev_builder_enqueues', 10, 1 );

Cela désactivera complètement l'éditeur visuel (l'éditeur WYSIWYG) et vous ne verrez plus que l'éditeur de texte.

vous avez maintenant utilisé avec succès le snippet pour désactiver l'éditeur WYSIWYG

Souhaitez-vous également désactiver le défilement automatique en cas d'erreurs dans le formulaire ? Consultez notre article intitulé Comment désactiver l'effet de défilement en cas d'erreur de validation d'un champ.