Loading...
Loading...
Use when hooking into Elementor lifecycle events, injecting controls, filtering widget output, or using the JS APIs. Covers elementor/init, elementor/element/before_section_end, elementor/element/after_section_end, elementor/widget/render_content filter, elementor/frontend/after_enqueue_styles, frontend JS hooks (elementorFrontend.hooks, frontend/element_ready), editor JS hooks (elementor.hooks), $e.commands API ($e.run, $e.commands.register), $e.routes, $e.hooks (registerUIBefore, registerUIAfter), control injection patterns, CSS file hooks, forms hooks (Pro), and query filters.
npx skill4agent add peixotorms/odinlayer-skills elementor-hooks| Hook Name | Parameters | Description |
|---|---|---|
| none | Fires when Elementor plugin is loaded, before components initialize. Use for checking Elementor availability. |
| none | Fires when Elementor is fully loaded. Use for registering custom functionality. |
| Hook Name | Parameters | Description |
|---|---|---|
| | Register custom widgets |
| | Register custom controls |
| | Register dynamic tags |
| | Register Finder categories |
| | Register widget categories |
| | Register document types |
| Hook Name | Parameters | Description |
|---|---|---|
| none | After frontend scripts registered |
| none | Before frontend scripts registered |
| none | After frontend styles registered |
| none | Before frontend styles registered |
| none | After frontend scripts enqueued |
| none | Before frontend scripts enqueued |
| none | After frontend styles enqueued |
| none | Before frontend styles enqueued |
| Hook Name | Parameters | Description |
|---|---|---|
| none | Before editor scripts enqueued |
| none | After editor scripts enqueued |
| none | After editor styles enqueued |
| none | Before editor styles enqueued |
| Hook Name | Parameters | Description |
|---|---|---|
| none | Enqueue scripts in the preview iframe |
| none | Enqueue styles in the preview iframe |
| Hook Name | Parameters | Description |
|---|---|---|
| | Register custom skins for a widget |
| | Before widget content renders |
| | Before any element renders (all types) |
| | After any element renders (all types) |
| | Before specific element type renders |
| | After specific element type renders |
{$element_type}sectioncolumncontainerwidget| Hook Name | Parameters | Description |
|---|---|---|
| | Register controls for documents/page settings |
| | After user saves editor data |
| | Before document saves |
| | After document saves |
| Hook Name | Parameters | Description |
|---|---|---|
| | Add custom CSS rules to element CSS |
| | Before CSS is parsed |
| | When a CSS file is enqueued |
| none | When CSS cache is cleared |
| Hook Name | Parameters | Description |
|---|---|---|
| | Validate all form fields |
| | Validate specific field type |
| | After fields validated, process form |
| | Process specific field type |
| | After form actions run |
| | When form POST received |
| | After form email sent |
| | Handle webhook response |
| Hook Name | Parameters | Description |
|---|---|---|
| | Filter Posts/Portfolio widget query. Set Query ID in widget settings. |
| Hook Name | Parameters | Description |
|---|---|---|
| | Register AJAX handlers |
| none | Editor initialization |
| none | Editor footer output |
| none | Preview initialization |
| | Register kit (site settings) tabs |
| none | Before canvas template content |
| none | After canvas template content |
| | After template saved |
| | After render attributes added |
| | Register experiments |
| Filter Name | Parameters | Description |
|---|---|---|
| | Filter widget HTML on frontend |
| | Filter widget JS template in preview |
| | Filter entire Elementor page output |
| | Control whether element renders |
| Filter Name | Parameters | Description |
|---|---|---|
| | Filter document config |
| | Filter data before save |
| | Filter edit URL |
| | Filter preview URL |
| | Filter editor localized settings |
| Filter Name | Parameters | Description |
|---|---|---|
| | Return false to disable Google Fonts loading |
| | Add custom shape dividers |
| | Add custom mask shapes |
| | Change default placeholder image |
| | Add custom icon libraries |
| | Add custom fonts |
| | Add custom animations |
| | Add custom divider styles |
| Filter Name | Parameters | Description |
|---|---|---|
| | Add/modify Finder categories |
| | Filter template data |
| | Control template export |
| | Allow unfiltered file uploads |
| | Enable/disable SVG support |
| Filter Name | Parameters | Description |
|---|---|---|
| | Filter form email headers |
| | Filter form email body HTML |
| | Override custom fonts |
| Filter Name | Parameters | Description |
|---|---|---|
| | Filter builder content data |
| | Filter frontend assets URL |
| | Widget class blacklist |
| | Filter allowed child types |
| | Filter post type support |
| Hook Name | Params | Use |
|---|---|---|
| | Add new section before an existing section |
| | Add control inside start of existing section |
| | Add control inside end of existing section |
| | Add new section after an existing section |
{$stack_name}{$section_id}| Hook Pattern | Params | Use |
|---|---|---|
| | Add section before |
| | Add control at section start |
| | Add control at section end |
| | Add section after |
resources/injecting-controls-examples.mdelementorFrontend.hooks| Hook Name | Parameters | Description |
|---|---|---|
| none | Frontend initialized |
| | Any element is ready (sections, columns, widgets) |
| | Any widget is ready |
| | Specific widget+skin is ready (e.g. |
| Hook Name | Parameters | Description |
|---|---|---|
| | Adjust scroll distance for menu anchors |
resources/js-hooks-commands.mdelementor.hooks| Hook Name | Parameters | Description |
|---|---|---|
| | Settings panel opened for element type ( |
| | Settings panel opened for a specific widget name |
| Hook Name | Parameters | Description |
|---|---|---|
| | Modify right-click context menu groups |
resources/js-hooks-commands.md$e.commands$e.run()| Method | Parameters | Returns | Description |
|---|---|---|---|
| | | Register a new command |
| | | Execute a command |
| none | | Get all registered commands |
| none | | Get currently running commands |
| | | Check if command is currently running |
| none | | Get args of currently running command |
| none | | Get first currently running command |
| Base Class | Type | Purpose |
|---|---|---|
| User commands | Represent user actions |
| Internal commands | For internal editor use |
| Data commands | Communicate with data/cache/backend |
resources/js-hooks-commands.md$e.components| Method | Parameters | Returns | Description |
|---|---|---|---|
| | | Register a component |
| | | Get component by namespace |
| none | | Get all components |
| | Activate a component | |
| | Deactivate a component | |
| | | Check if component is active |
| none | | Get all active components |
component.jsresources/js-hooks-commands.md$e.hooks$e.hooks$e.run()| Method | Parameter | Description |
|---|---|---|
| | Before command runs (UI) |
| | After command runs (UI) |
| | When command fails (UI) |
| Method | Parameter | Description |
|---|---|---|
| | Before command (dependency check) |
| | After command runs (data) |
| | When command fails (data) |
resources/js-hooks-commands.md| I want to... | Use this hook |
|---|---|
| Register a custom widget | |
| Register a custom control | |
| Add a widget category | |
| Register a dynamic tag | |
| Enqueue frontend script | |
| Enqueue editor script | |
| Enqueue preview script | |
| Add control to existing widget | |
| Add control to page settings | |
| Add control to user preferences | |
| Modify widget HTML output | |
| Modify widget JS template | |
| Filter entire page output | |
| Disable Google Fonts | |
| Change placeholder image | |
| Add custom shape dividers | |
| Add custom mask shapes | |
| Validate form data (Pro) | |
| Process form after submit (Pro) | |
| Filter posts widget query (Pro) | |
| Add CSS rules to elements | |
| Run code when widget ready (JS) | |
| Hook into editor panel open (JS) | |
| Register editor command (JS) | |
| Hook before/after command (JS) | |