Contents
Elementor Integration — Plugixa Testimonial
Plugixa Testimonial registers a native Elementor widget so you can drag-and-drop testimonials into any Elementor page, template, or theme builder layout. The widget is free — no Pro license required.
Requirements
- Elementor 3.0.0 or higher.
- Plugixa Testimonial (free or Pro).
The integration activates automatically when both plugins are active (via did_action('elementor/loaded')).

Adding the widget
- Edit a page with Elementor.
- In the widget panel, search for Plugixa Testimonial (or scroll to the Plugixa category).
- Drag the widget onto the canvas.
Widget controls
The widget exposes the same options as the [plugixa_testimonials] shortcode, organized into Elementor-style control tabs.
Content tab
- Config source —
Saved ShortcodeorCustom. - Saved shortcode — SELECT2 dropdown (queries the shortcodes table) — used when source is
Saved Shortcode. - View — SELECT2 dropdown (queries the views table) — used when source is
Custom. - Categories — SELECT2 multi-select (queries the categories table).
- Query controls — limit, order by, order, featured-only, min rating.
- Display options (custom mode) — 7 SWITCHER controls: Show Photo, Rating, Role, Company, Date, Website, Quote Icon (all default on).
Style tab (custom mode only)
Elementor-native style controls that override the view per-widget-instance:
- Card colors — background, text, name, role, border.
- Star colors — active and inactive.
- Spacing & borders — border radius, card padding, gap, border width.
These styles apply only to the specific widget instance — they don’t modify the underlying view.
Advanced tab
Standard Elementor advanced settings (margin, padding, responsive visibility, CSS classes, motion effects, custom CSS).
Rendering
The widget:
- Maps Elementor settings to shortcode attributes.
- Calls
Shortcodes::render_testimonials()— the same renderer used by the shortcode and Gutenberg block. - Adds an inline
<script>to re-initwindow.PlugixaTestimonialApp.init()in Elementor preview mode (ensures Swiper / pagination / modals initialize on preview re-renders).
Theme builder integration
You can use the widget inside Elementor’s theme builder:
- Single post template — add contextual testimonials to every blog post.
- Product template — show product-specific testimonials (combine with the WooCommerce integration).
- Archive template — add testimonials to category archives or custom post type archives.
Custom controls
Extend the widget’s control set via a hook:
add_action( 'plugixatestimonial_elementor_widget_controls', function( $widget ) {
$widget->add_control(
'my_custom_setting',
[
'label' => __( 'Custom setting', 'my-plugin' ),
'type' => \Elementor\Controls_Manager::TEXT,
]
);
} );
Output customization
Transform the widget’s rendered HTML:
add_filter( 'plugixatestimonial_elementor_widget_render', function( $output, $settings ) {
return $output . '<p class="disclaimer">Last updated: ' . current_time( 'Y-m-d' ) . '</p>';
}, 10, 2 );
Preview
Changes in the Elementor editor preview instantly — the widget re-renders on every setting change without a save-and-refresh cycle.
Assets
The widget enqueues the plugin’s frontend CSS and JS through Elementor’s asset system, so Elementor’s caching and minification work normally.
In preview mode (the Elementor editor), HMR / dev-time assets load if includes/admin/class-hmr.php exists; otherwise built assets load.
Multilingual
The widget respects WPML / Polylang automatically — testimonials in the current language are rendered. See Multilingual.
Troubleshooting
Widget not showing in Elementor
- Elementor active? Plugins screen.
- Clear Elementor cache: Elementor → Tools → Regenerate CSS & data.
Widget shows but no testimonials
Same causes as the shortcode — see Shortcodes → Troubleshooting.
Slider doesn’t work in the Elementor preview
The widget re-inits PlugixaTestimonialApp after render, but if Swiper fails to bind, check:
- Browser console for JS errors.
- Whether the Elementor preview iframe has loaded both
frontend.cssand Swiper assets (network tab).
Preview breaks after a plugin update
Elementor caches widget controls. After any plugin update that changes controls, hit Elementor → Tools → Regenerate CSS & data.
Hooks
See Hooks → Elementor.
Related
- Shortcodes
- Views
- Blocks — Gutenberg equivalent
- Multilingual