Divi installation
Divi Testimonials with the Code Module
Divi’s Testimonial module holds one typed quote per module, and Elegant Themes itself notes there is no way to manage them as a set. The Code module takes the StoryProof embed instead. Paste the div there, and either keep the script beside it or load it once for the whole site from Theme Options.
- The div for a Code module, the script for Theme Options
- Divi 4 and Divi 5 field names side by side
- Showing a different widget on phones with Visibility
Code generator
Code for a Divi site
Type the widget id. The div goes into a Code module in the row where testimonials belong. The script can sit in the same module, or once in Theme Options if widgets appear on many pages.
Part 1 · A Code module in your Divi row
Visual Builder › gray plus in the row › Code › Content tab (Text in Divi 5, Code in Divi 4)
<div data-storyproof-widget="YOUR_WIDGET_ID"></div>Part 2 · Site-wide body code, or the same Code module
WordPress dashboard › Divi › Theme Options › Integration › body code field
<script src="https://app.storyproof.io/embed.js" async></script>Save the page and exit the Visual Builder, then load it in a private window. Judge the widget on the published page, not inside the builder.
The code is put together in your browser; the id is not stored.
The problem, solved
Divi testimonial sections that fall behind, and how StoryProof fixes them
- Problem 1
Ten Testimonial modules and no list of them
Each Divi Testimonial module is independent, so finding which pages still show an outdated quote means opening them one by one.
How StoryProof solves it
The quotes live in StoryProof. A Code module only holds a widget div, and you choose which approved testimonials each widget shows from one screen.
- Problem 2
Every client site needs its own testimonials
Agencies on Divi run many client sites, and mixing one client’s reviews into another’s workspace is an expensive mistake.
How StoryProof solves it
StoryProof separates brands into spaces, each with its own testimonials and widgets, and the number of spaces and seats depends on the plan.
- Problem 3
The script ends up pasted on every page
When each Code module carries its own script, a page with two widgets loads the same file twice and a later change means hunting every copy.
How StoryProof solves it
Load embed.js once, for example from the Theme Options body code, and it fills each StoryProof div on whatever page it finds them.
- Problem 4
A wall looks heavy on a phone
A full testimonial wall that suits a desktop services page can turn into an endless scroll on mobile.
How StoryProof solves it
Create a second, slimmer StoryProof widget for small screens and put its div in another Code module. Divi’s Visibility setting then decides which module shows on which device.
In StoryProof
Set it up in Divi
Step 1 of 5
Copy the widget id from StoryProof
Open the widget, check the testimonials it holds and copy its id into the generator above.
Step 2 of 5
Insert a Code module
Enable the Visual Builder on the page. Click the green plus to add a row if you need one, then the gray plus inside the row, and choose Code from the module list or search for it.
Step 3 of 5
Paste the div
In the Content tab, paste the div into the code field (labelled Text in Divi 5 and Code in Divi 4). Paste the script line under it too, unless you are about to load it site-wide.
Step 4 of 5
Optional: load the script for the whole site
Go to Divi, Theme Options, Integration, and paste the script line into the body code field. Remove it from individual Code modules afterwards so each page loads it once.
Step 5 of 5
Save, exit and check
Save with the Save button or Ctrl+S (Cmd+S on a Mac), exit the builder and open the page logged out on a desktop and a phone.
Where the script should live on a Divi site
Before you start
Divi limits worth knowing
WordPress roles still apply
Divi runs on WordPress, and WordPress strips script tags from content saved by users without the unfiltered_html capability. If the script vanishes after a client saves, use the Theme Options route so the client only edits the div.
Divi 4 and Divi 5 label things differently
The Code module field is called Code in the older documentation and Text in the Divi 5 article. The module and its place in the list are the same.
No Divi module from StoryProof
StoryProof is not sold as a Divi module or plugin. It uses Divi’s own Code module. If a site cannot take custom code at all, share the hosted Wall of Love link.
Branding badge
Widgets carry a small "Powered by StoryProof" line until Pro, worth knowing before a client asks.
Based on Elegant Themes docs, 2026-11-12
The menu names follow the Elegant Themes help center as read on 2026-11-12. Nobody has followed these steps on a live Divi site yet, and Divi’s builder changes often.
FAQ
Questions people ask
Short answers to what usually comes up next.
Can I keep using the Divi Testimonial module?
Yes, for a single hand-picked quote that never changes. For a growing set of collected testimonials, a Code module with a StoryProof widget is easier to keep current.
Is the Code module part of the paid Divi theme?
It ships with Divi as a native module. No extra Divi plugin is needed.
Should the script go in the head or the body field in Theme Options?
Use the body field. The widget needs its div on the page, and loading the script with the body content keeps it out of the way of anything in the head.
How do I show one widget on desktop and another on mobile?
Put each widget’s div in its own Code module and set each module’s Visibility in the Advanced tab so one hides on phones and the other on desktop.
Still have a question? Ask the StoryProof team or book a demo.
Stop retyping quotes into Divi modules
Collect testimonials once, approve them, and show them anywhere a Code module fits.
Sources
- How to Add Custom JavaScript Code in Divi, Elegant Themes Help Center. Checked 2026-11-12.
- The Code Module (Divi 5), Elegant Themes Help Center. Checked 2026-11-12.
- The Divi Testimonial Module, Elegant Themes Help Center. Checked 2026-11-12.
- Custom HTML, WordPress.org Documentation. Checked 2026-11-12.
Last updated 2026-11-12.