Hooks
RowSprout 3.1 and RowSprout Pro 3.1 offer 46 hooks: 37 filters and 9 actions. This page is generated from the plugin source on every build, so it lists every hook that exists and nothing else.
- All hook names start with
rowsprout_. Hooks marked RowSprout Pro only fire while RowSprout Pro is active. - Hooks marked Internal connect RowSprout to RowSprout Pro. They are listed for completeness; their arguments may change without notice, so prefer the other hooks in your own code.
- Filters that pass
nullby default are short-circuits: return a value to take over, ornullto keep the default behaviour. - Source lines link to the free plugin on GitHub; RowSprout Pro’s source is not public.
Template editor and save flow
Section titled “Template editor and save flow”rowsprout_elementor_save_action_controls
Section titled “rowsprout_elementor_save_action_controls”Action
Adds Elementor controls to the save action section of a template’s document settings, the Elementor counterpart of rowsprout_render_template_save_action_fields. Map their values into the save with rowsprout_elementor_save_input.
do_action( 'rowsprout_elementor_save_action_controls', $document, $postId )| Parameter | Type | Description |
|---|---|---|
$document |
\Elementor\Core\Base\Document |
The Elementor document; call $document->add_control() on it. |
$postId |
int |
The template (rowsprout_template post ID). |
Source: src/ThirdParty/Elementor/TemplateSaveActionControl.php:119
rowsprout_elementor_save_input
Section titled “rowsprout_elementor_save_input”Filter
Turns Elementor document settings into save input when a template is saved from Elementor. Use the same keys your classic-screen fields post, so one save handler serves both editors.
apply_filters( 'rowsprout_elementor_save_input', $input, $settings )| Parameter | Type | Description |
|---|---|---|
$input |
array<string, string> |
The save input; contains at least rowsprout_page_save_action. |
$settings |
array |
The Elementor document settings. |
Returns: The save input.
Source: src/ThirdParty/Elementor/TemplateSaveActionControl.php:203
rowsprout_handle_template_save_action
Section titled “rowsprout_handle_template_save_action”Filter
Handles a custom save action that has no handler_callback (or whose callback returned false).
apply_filters( 'rowsprout_handle_template_save_action', $handled, $postId, $saveAction, $actionConfig )| Parameter | Type | Description |
|---|---|---|
$handled |
bool |
Whether the action was handled; false by default. |
$postId |
int |
The template (rowsprout_template post ID). |
$saveAction |
string |
The selected action key. |
$actionConfig |
array |
Its config from rowsprout_template_save_actions. |
Returns: true when you handled the save.
Source: src/Core/SavePost.php:470
rowsprout_render_template_save_action_fields
Section titled “rowsprout_render_template_save_action_fields”Action
Prints extra fields under one save action in the classic screen’s publish box (each action has its own container, shown while that action is selected). Fields posted from here arrive in the normal save request.
do_action( 'rowsprout_render_template_save_action_fields', $postId, $actionKey, $selectedSaveAction, $actionConfig )| Parameter | Type | Description |
|---|---|---|
$postId |
int |
The template (rowsprout_template post ID). |
$actionKey |
string |
The action whose container is being printed. |
$selectedSaveAction |
string |
The action currently selected. |
$actionConfig |
array |
That action’s config from rowsprout_template_save_actions. |
Source: src/Admin/Metaboxes/PublishBoxRenderer.php:36
rowsprout_render_template_status_cell
Section titled “rowsprout_render_template_status_cell”Action
Renders the Status column on the Templates screen instead of the built-in dot and “x of y up to date” label. Only fires when something is hooked to it; RowSprout Pro uses it for its live status bar.
do_action( 'rowsprout_render_template_status_cell', $postId )| Parameter | Type | Description |
|---|---|---|
$postId |
int |
The template (rowsprout_template post ID). |
Source: src/Admin/TemplateStatusColumn.php:57
rowsprout_settings_page_after_permalink
Section titled “rowsprout_settings_page_after_permalink”Action
Prints extra settings on RowSprout → Settings, after the page URL base section.
do_action( 'rowsprout_settings_page_after_permalink' )Source: src/Admin/Menu.php:181
rowsprout_skip_handle_save
Section titled “rowsprout_skip_handle_save”Filter
Skips RowSprout’s template save handler for this save_post run. Meant for an integration whose own save lifecycle fires save_post_rowsprout_template part-way and calls the handler itself afterwards with fuller context (the block editor and Elementor integrations use it), so the save does not run twice.
apply_filters( 'rowsprout_skip_handle_save', $skip, $postId )| Parameter | Type | Description |
|---|---|---|
$skip |
bool |
false by default. |
$postId |
int |
The template (rowsprout_template post ID). |
Returns: true to skip.
Source: src/Core/SavePost.php:308
rowsprout_template_save_actions
Section titled “rowsprout_template_save_actions”Filter
The save actions offered in the template’s Save action selector: update_pages (“Create & update pages”) and save_template (“Save template only”). RowSprout Pro adds schedule_pages. Runs wherever the list is needed: rendering the selector, handling the save and deciding whether a save generates pages.
apply_filters( 'rowsprout_template_save_actions', $actions )| Parameter | Type | Description |
|---|---|---|
$actions |
array |
Action key => config. Keys used: label, description, disable_schedule (true = this action generates nothing; the affected pages are marked outdated instead), handler_callback (callable ( int $postId, string $action, array $config ): bool, return true when you handled the save) and render_fields_callback (prints extra fields under the selector). |
Returns: The array of actions.
Source: src/Admin/Metaboxes/PublishBoxRenderer.php:65, src/Core/SavePost.php:490, src/Core/Template/Lifecycle/TemplateSaveActionState.php:61
rowsprout_template_tabs
Section titled “rowsprout_template_tabs”Filter
Adds tabs after the built-in General, Properties and Groups tabs of the template box. The same markup feeds the classic edit screen and the “RowSprout template” tab in Elementor, so a tab added here appears in both.
apply_filters( 'rowsprout_template_tabs', $tabs, $post )| Parameter | Type | Description |
|---|---|---|
$tabs |
array |
Extra tabs. Each entry: id (unique HTML id, e.g. my-tab), label, render (callable receiving the WP_Post) and optionally hidden (start with the tab button hidden; your own script can reveal it). |
$post |
WP_Post |
The template being edited. |
Returns: The array of tabs.
Source: src/Admin/Metaboxes/TemplateTabsRenderer.php:35
Example
add_filter( 'rowsprout_template_tabs', function ( array $tabs, WP_Post $post ): array { $tabs[] = [ 'id' => 'my-notes-tab', 'label' => __( 'Notes', 'my-plugin' ), 'render' => function ( WP_Post $post ): void { echo '<p>' . esc_html( get_post_meta( $post->ID, '_my_notes', true ) ) . '</p>'; }, ]; return $tabs;}, 10, 2 );Properties and placeholders
Section titled “Properties and placeholders”rowsprout_field_type_definitions
Section titled “rowsprout_field_type_definitions”Filter
Adjusts the definitions (label, description, default code, UI kind, options, required, …) of the registered property types after they are collected, keyed by type.
apply_filters( 'rowsprout_field_type_definitions', $definitions )| Parameter | Type | Description |
|---|---|---|
$definitions |
array<string, array> |
Type => definition, as returned by each type’s getDefinition(). |
Returns: The definitions.
Source: src/Core/Template/FieldTypeRegistry.php:19
rowsprout_field_types
Section titled “rowsprout_field_types”Filter
Registers property types. Each entry is an object implementing RowSprout\Core\Template\FieldTypes\FieldTypeContract; extending BaseFieldType gives sensible defaults. Create the object inside the filter: your plugin may load before RowSprout, and the base class only exists once RowSprout is loaded. RowSprout Pro adds its extra types (Checkbox, Date, Select, …) here. A complete example is in the how-to guides.
apply_filters( 'rowsprout_field_types', $types )| Parameter | Type | Description |
|---|---|---|
$types |
FieldTypeContract[] |
The registered types. |
Returns: The array of types.
Source: src/Core/Template/FieldTypes/FieldTypeManager.php:35
Example
use RowSprout\Core\Template\FieldTypes\BaseFieldType;
add_filter( 'rowsprout_field_types', function ( array $types ): array { $types[] = new class() extends BaseFieldType { public function getType(): string { return 'postcode'; } public function getUiKind(): string { return 'text'; } protected function label(): string { return __( 'Postcode', 'my-plugin' ); } protected function description(): string { return __( 'A postal code.', 'my-plugin' ); } protected function defaultCode(): string { return 'postcode'; }
public function sanitize( string $value, array $options ): string { return strtoupper( preg_replace( '/\s+/', ' ', trim( $value ) ) ); } }; return $types;} );rowsprout_group_placeholder_alias_code_ids
Section titled “rowsprout_group_placeholder_alias_code_ids”Filter Internal
Other template IDs whose placeholder tokens should resolve with this group’s data. RowSprout Pro’s WPML integration adds every translation’s template ID, because WPML copies a template’s title and URL pattern into the translation with the original template’s tokens in it.
apply_filters( 'rowsprout_group_placeholder_alias_code_ids', $aliasCodeIds, $rowsproutPageId, $templatePost )| Parameter | Type | Description |
|---|---|---|
$aliasCodeIds |
int[] |
Empty by default. |
$rowsproutPageId |
int |
The template being built from. |
$templatePost |
WP_Post |
The same template as a post object. |
Returns: The extra template IDs.
Source: src/Core/Page/PageBuildContextResolver.php:31
rowsprout_placeholder_field_aliases
Section titled “rowsprout_placeholder_field_aliases”Filter
Extra names a property can be referred to by in placeholder tokens. By default a property answers to its key and its code; title, URL slug and textarea types get a few fixed aliases.
apply_filters( 'rowsprout_placeholder_field_aliases', $aliases, $fieldKey, $fieldType, $code )| Parameter | Type | Description |
|---|---|---|
$aliases |
string[] |
The aliases so far. |
$fieldKey |
string |
The property key. |
$fieldType |
string |
The property type. |
$code |
string |
The property code. |
Returns: The aliases.
Source: src/Core/Page/GroupPlaceholderTokenResolver.php:154
rowsprout_property_binding_date
Section titled “rowsprout_property_binding_date”Filter
Block Bindings: the value for a date attribute (the Post Date block) bound to a property. None of the free types is a date; a plugin that adds one returns the value here.
apply_filters( 'rowsprout_property_binding_date', $date, $value, $type )| Parameter | Type | Description |
|---|---|---|
$date |
string|null |
null keeps the block’s own value. |
$value |
string |
The property value. |
$type |
string |
The property type. |
Returns: A date string, or null.
Source: src/Core/BlockBindings/PropertyBindingSource.php:110
rowsprout_property_binding_html
Section titled “rowsprout_property_binding_html”Filter
Block Bindings: the HTML for a text attribute (Paragraph, Heading, List item, Button text) bound to a property of a type a plugin registers. Textarea values keep their line breaks before this filter runs.
apply_filters( 'rowsprout_property_binding_html', $html, $value, $type )| Parameter | Type | Description |
|---|---|---|
$html |
string|null |
null falls back to the escaped plain value. Escape the HTML you return yourself. |
$value |
string |
The property value. |
$type |
string |
The property type. |
Returns: HTML, or null.
Source: src/Core/BlockBindings/PropertyBindingSource.php:157
rowsprout_property_binding_url
Section titled “rowsprout_property_binding_url”Filter
Block Bindings: the URL for a link or image attribute bound to a property of a type a plugin registers (a phone or file type, for example). Email properties become mailto: links before this filter runs.
apply_filters( 'rowsprout_property_binding_url', $url, $value, $type )| Parameter | Type | Description |
|---|---|---|
$url |
string|null |
null leaves it to the default handling; '' keeps the block’s own value. |
$value |
string |
The property value. |
$type |
string |
The property type. |
Returns: A URL, '' or null.
Source: src/Core/BlockBindings/PropertyBindingSource.php:136
rowsprout_shortcode_attribute_encoder
Section titled “rowsprout_shortcode_attribute_encoder”Filter Internal
How a value must be encoded inside a shortcode attribute, which depends on the page builder that wrote the shortcode. Without an encoder, tokens inside shortcode attributes get the plain replacement. RowSprout’s WPBakery integration returns one that writes " as `` and [/] as `{`/`}`. The encoder also receives the URL-encoded form of each token (%40code_…%40), used in link fields, and must return the value encoded the same way.
apply_filters( 'rowsprout_shortcode_attribute_encoder', $encoder )| Parameter | Type | Description |
|---|---|---|
$encoder |
callable|null |
null by default. |
Returns: A callable, or null.
Source: src/Core/Page/MarkupTokenReplacer.php:134
Change detection and the queue
Section titled “Change detection and the queue”rowsprout_child_template_changed_parent_groups
Section titled “rowsprout_child_template_changed_parent_groups”Filter Internal
After a parent template is saved: which of its groups affect a child template. null (the default) marks every group of the child.
apply_filters( 'rowsprout_child_template_changed_parent_groups', $parentGuids, $childTemplateId, $parentTemplateId, $oldConfig, $newConfig )| Parameter | Type | Description |
|---|---|---|
$parentGuids |
string[]|null |
null, or the parent group IDs that affect the child. |
$childTemplateId |
int |
The child template. |
$parentTemplateId |
int |
The parent template that was saved. |
$oldConfig |
array |
The parent’s config before the save. |
$newConfig |
array |
The parent’s config after the save. |
Returns: null or the parent group IDs.
Source: src/Core/Template/Lifecycle/TemplateSyncMarker.php:236
rowsprout_groups_queue_interval
Section titled “rowsprout_groups_queue_interval”Filter
Seconds between runs of the background queue. Only read when the recurring action is scheduled, so a change takes effect after the existing rowsprout_process_groups_queue action is unscheduled.
apply_filters( 'rowsprout_groups_queue_interval', $interval )| Parameter | Type | Description |
|---|---|---|
$interval |
int |
MINUTE_IN_SECONDS by default. |
Returns: The interval in seconds.
Source: src/Core/Scheduler/QueueManager.php:16
rowsprout_groups_queue_limit
Section titled “rowsprout_groups_queue_limit”Filter
How many pages one run of the background queue starts. The queue runs every minute through Action Scheduler and waits until the previous batch is finished. RowSprout Pro’s Throttling page sets this from its Batch size setting.
apply_filters( 'rowsprout_groups_queue_limit', $limit )| Parameter | Type | Description |
|---|---|---|
$limit |
int |
40 by default. |
Returns: The batch size.
Source: src/Core/Scheduler/QueueProcessor.php:26
Example
// Smaller batches on a shared host.add_filter( 'rowsprout_groups_queue_limit', fn () => 10 );rowsprout_groups_queued
Section titled “rowsprout_groups_queued”Action
Fires after groups of a template were queued: by a save with “Create & update pages” (status pending) or by RowSprout Pro’s planning (status scheduled).
do_action( 'rowsprout_groups_queued', $postId, $status )| Parameter | Type | Description |
|---|---|---|
$postId |
int |
The template (rowsprout_template post ID). |
$status |
string |
pending or scheduled. |
Source: src/Core/SavePost.php:420, RowSprout Pro src/Support/GroupPlanningService.php:167
rowsprout_is_within_processing_window
Section titled “rowsprout_is_within_processing_window”Filter
Whether the queue may process pages right now. Due planned groups are still promoted to pending; they wait until this returns true. RowSprout Pro’s Processing Time Window setting uses it.
apply_filters( 'rowsprout_is_within_processing_window', $within )| Parameter | Type | Description |
|---|---|---|
$within |
bool |
true by default. |
Returns: false to pause processing for this run.
Source: src/Core/Scheduler/QueueProcessor.php:96
Example
// Only generate pages at night (site timezone).add_filter( 'rowsprout_is_within_processing_window', function ( bool $within ): bool { $hour = (int) wp_date( 'G' ); return $within && ( $hour >= 22 || $hour < 6 );} );rowsprout_template_changed_groups
Section titled “rowsprout_template_changed_groups”Filter Internal
Which groups a template save affects. null (the default) means every group, so every page is regenerated. RowSprout Pro’s Smart Generate returns only the groups whose values changed plus the groups this save added.
apply_filters( 'rowsprout_template_changed_groups', $changes, $postId, $oldConfig, $newConfig )| Parameter | Type | Description |
|---|---|---|
$changes |
array|null |
null, or [ 'changed' => string[], 'added' => string[] ] with group IDs. |
$postId |
int |
The template (rowsprout_template post ID). |
$oldConfig |
array |
The template config before this save. |
$newConfig |
array |
The template config after this save. |
Returns: null or the changes array.
Source: src/Core/Template/Lifecycle/TemplateSyncMarker.php:157
Building pages
Section titled “Building pages”rowsprout_excluded_meta_keys
Section titled “rowsprout_excluded_meta_keys”Filter
Template meta keys that are not copied onto generated pages. Every other meta key of the template is copied, with placeholder tokens replaced. A trailing * matches a prefix. The Elementor and Rank Math integrations add their own keys here.
apply_filters( 'rowsprout_excluded_meta_keys', $excludedKeys, $sourcePostId, $targetPostId, $group )| Parameter | Type | Description |
|---|---|---|
$excludedKeys |
string[] |
Includes _edit_lock, _edit_last and _rowsprout_page_*. |
$sourcePostId |
int |
The template. |
$targetPostId |
int |
The generated page. |
$group |
array |
The group being built. |
Returns: The excluded keys.
Source: src/Core/Page/PageMetaReplicator.php:32
Example
add_filter( 'rowsprout_excluded_meta_keys', function ( array $keys ): array { $keys[] = '_my_template_only_setting'; return $keys;} );rowsprout_page_after_upsert
Section titled “rowsprout_page_after_upsert”Action
Fires after a generated page was inserted or updated, its meta copied from the template and its featured image set. The place to add your own meta or sync the page elsewhere.
do_action( 'rowsprout_page_after_upsert', $newPostId, $group, $rowsproutPageId )| Parameter | Type | Description |
|---|---|---|
$newPostId |
int |
The generated page (rowsprout_page post ID). |
$group |
array |
The group it was built from. |
$rowsproutPageId |
int |
The template ID. |
Source: src/Core/Page/PageBuilder.php:88
Example
add_action( 'rowsprout_page_after_upsert', function ( int $pageId, array $group, int $templateId ): void { update_post_meta( $pageId, '_my_source_row', $group['id'] ?? '' );}, 10, 3 );rowsprout_page_before_upsert
Section titled “rowsprout_page_before_upsert”Action
Fires just before a generated page is inserted or updated.
do_action( 'rowsprout_page_before_upsert', $defaults, $group, $rowsproutPageId )| Parameter | Type | Description |
|---|---|---|
$defaults |
array |
The post data (after rowsprout_page_defaults_before_upsert). |
$group |
array |
The group being built. |
$rowsproutPageId |
int |
The template ID. |
Source: src/Core/Page/PageBuilder.php:68
rowsprout_page_defaults_before_upsert
Section titled “rowsprout_page_defaults_before_upsert”Filter
The post data a generated page is created or updated with (post_title, post_content, post_name, post_status, … copied from the template with this group’s values filled in). A generated page is always updated in place: the same post ID every time.
apply_filters( 'rowsprout_page_defaults_before_upsert', $defaults, $group, $rowsproutPageId )| Parameter | Type | Description |
|---|---|---|
$defaults |
array |
Arguments for wp_insert_post() / wp_update_post(). |
$group |
array |
The group (row) being built. |
$rowsproutPageId |
int |
The template ID. |
Returns: The post data.
Source: src/Core/Page/PageBuilder.php:66
rowsprout_page_delete_post_meta_keys
Section titled “rowsprout_page_delete_post_meta_keys”Filter
Meta keys deleted from a generated page every time it is rebuilt, right after the template’s meta was copied onto it. Use it for caches that were copied from the template but must be rebuilt for the page itself (the Elementor integration deletes _elementor_css and _elementor_element_cache here).
apply_filters( 'rowsprout_page_delete_post_meta_keys', $metaKeys, $postId )| Parameter | Type | Description |
|---|---|---|
$metaKeys |
string[] |
Empty by default. |
$postId |
int |
The generated page. |
Returns: The keys to delete.
Source: src/Core/Helpers.php:194
rowsprout_page_delete_wpml_translations
Section titled “rowsprout_page_delete_wpml_translations”Action Internal
Fires just before a generated page is deleted because its group was removed, so a multilingual integration can delete the page’s translations with it. Runs for each child page first, then for the page itself.
do_action( 'rowsprout_page_delete_wpml_translations', $postId, $postType )| Parameter | Type | Description |
|---|---|---|
$postId |
int |
The page about to be deleted. |
$postType |
string |
Always rowsprout_page. |
Source: src/Core/Groups/GroupDeletionService.php:55, src/Core/Groups/GroupDeletionService.php:59
rowsprout_reconciled_meta_key_prefixes
Section titled “rowsprout_reconciled_meta_key_prefixes”Filter
Meta key prefixes your integration owns whose keys can disappear from the template (Rank Math’s schema keys, for example). Before meta is copied, every key on the generated page with such a prefix that the template no longer has is deleted, so removed settings do not linger on the pages.
apply_filters( 'rowsprout_reconciled_meta_key_prefixes', $prefixes, $sourcePostId, $targetPostId, $group )| Parameter | Type | Description |
|---|---|---|
$prefixes |
string[] |
Empty by default. |
$sourcePostId |
int |
The template. |
$targetPostId |
int |
The generated page. |
$group |
array |
The group being built. |
Returns: The prefixes.
Source: src/Core/Page/PageMetaReplicator.php:151
rowsprout_resolve_child_template_context
Section titled “rowsprout_resolve_child_template_context”Filter Internal
For a child template: fills the group’s empty title, URL and thumbnail from the matching group of the parent template. RowSprout’s own child-template support hooks in here; the Elementor field resolver reuses it so the editor preview shows inherited values too.
apply_filters( 'rowsprout_resolve_child_template_context', $context, $id, $rowsproutPageId, $templatePost )| Parameter | Type | Description |
|---|---|---|
$context |
array |
[ 'group' => array, 'parent_id' => int|null ]. |
$id |
string |
The group ID. |
$rowsproutPageId |
int |
The child template ID. |
$templatePost |
WP_Post |
The child template. |
Returns: The context, with the group filled in.
Source: src/Core/Page/PageBuildContextResolver.php:40, src/ThirdParty/Elementor/PageFieldResolver.php:173
Post types and URLs
Section titled “Post types and URLs”rowsprout_post_type_capabilities
Section titled “rowsprout_post_type_capabilities”Filter
Capabilities of the generated page post type. By default generated pages are locked: editing and deleting published, private and other people’s pages maps to do_not_allow, so changes always go through the template. Unlocking under RowSprout → Settings removes those entries.
apply_filters( 'rowsprout_post_type_capabilities', $capabilities )| Parameter | Type | Description |
|---|---|---|
$capabilities |
array<string, string> |
For the capabilities argument of register_post_type(). |
Returns: The capabilities.
Source: src/Core/PostTypes.php:49
rowsprout_post_type_supports
Section titled “rowsprout_post_type_supports”Filter
The supports list of the generated page post type, rowsprout_page.
apply_filters( 'rowsprout_post_type_supports', $pageSupports )| Parameter | Type | Description |
|---|---|---|
$pageSupports |
string[] |
Feature names for register_post_type(). |
Returns: The list.
Source: src/Core/PostTypes.php:44
rowsprout_template_post_type_supports
Section titled “rowsprout_template_post_type_supports”Filter
The supports list of the template post type, rowsprout_template. Keep page-attributes: it provides the Parent field child templates rely on.
apply_filters( 'rowsprout_template_post_type_supports', $templateSupports )| Parameter | Type | Description |
|---|---|---|
$templateSupports |
string[] |
title, editor, thumbnail, revisions, page-attributes. |
Returns: The list.
Source: src/Core/PostTypes.php:45
rowsprout_url_candidate_path
Section titled “rowsprout_url_candidate_path”Filter
When generated pages have no URL base, RowSprout looks up the requested path itself. This filter lets a multilingual integration strip a language prefix (en/ in /en/plumber-amsterdam/) from that path first; RowSprout Pro’s WPML integration does so.
apply_filters( 'rowsprout_url_candidate_path', $path )| Parameter | Type | Description |
|---|---|---|
$path |
string |
The request path without leading or trailing slash. |
Returns: The path to look up.
Source: src/Core/RemoveCptBase.php:145
Template data lookup
Section titled “Template data lookup”rowsprout_get_child_extra
Section titled “rowsprout_get_child_extra”Filter Internal
Short-circuits reading a child template’s extra per-group data (child_extra in the template config).
apply_filters( 'rowsprout_get_child_extra', $result, $postId, $single )| Parameter | Type | Description |
|---|---|---|
$result |
array|null |
null by default. |
$postId |
int |
The template (rowsprout_template post ID). |
$single |
bool |
Passed through from the caller. |
Returns: null, or the data.
Source: src/Core/Template/Lookup/TemplateDataReader.php:57
rowsprout_get_child_extra_by_id
Section titled “rowsprout_get_child_extra_by_id”Filter Internal
Short-circuits reading one entry of a child template’s child_extra data.
apply_filters( 'rowsprout_get_child_extra_by_id', $result, $id, $rowsproutPageId )| Parameter | Type | Description |
|---|---|---|
$result |
array|null |
null by default. |
$id |
string |
The group ID. |
$rowsproutPageId |
int |
The template ID. |
Returns: null, or the entry.
Source: src/Core/Template/Lookup/TemplateDataReader.php:73
rowsprout_get_code_ids
Section titled “rowsprout_get_code_ids”Filter Internal
Short-circuits which template IDs a template’s placeholder tokens use: its own ID and, for a child template, its parent’s.
apply_filters( 'rowsprout_get_code_ids', $result, $postId )| Parameter | Type | Description |
|---|---|---|
$result |
array|null |
null, or [ 'code_id' => int, 'parent_code_id' => int|string ]. |
$postId |
int |
The template (rowsprout_template post ID). |
Returns: null, or the IDs.
Source: src/Core/Template/Lookup/TemplateDataReader.php:93
rowsprout_get_group_by_id
Section titled “rowsprout_get_group_by_id”Filter Internal
Short-circuits reading one group of a template.
apply_filters( 'rowsprout_get_group_by_id', $result, $id, $rowsproutPageId )| Parameter | Type | Description |
|---|---|---|
$result |
array|null |
null by default. |
$id |
string |
The group ID (unique within its template only). |
$rowsproutPageId |
int |
The template ID. |
Returns: null, or the group.
Source: src/Core/Template/Lookup/TemplateDataReader.php:35
rowsprout_get_groups
Section titled “rowsprout_get_groups”Filter Internal
Short-circuits reading a template’s groups. Return anything other than null to replace the stored groups.
apply_filters( 'rowsprout_get_groups', $result, $postId, $single )| Parameter | Type | Description |
|---|---|---|
$result |
array|null |
null by default. |
$postId |
int |
The template (rowsprout_template post ID). |
$single |
bool |
Passed through from the caller. |
Returns: null, or the groups.
Source: src/Core/Template/Lookup/TemplateDataReader.php:19
RowSprout Pro
Section titled “RowSprout Pro”rowsprout_global_change_meta_key_prefixes
Section titled “rowsprout_global_change_meta_key_prefixes”Filter RowSprout Pro
Smart Generate: like rowsprout_global_change_meta_keys, but matches every meta key that starts with one of these prefixes.
apply_filters( 'rowsprout_global_change_meta_key_prefixes', $prefixes )| Parameter | Type | Description |
|---|---|---|
$prefixes |
string[] |
Meta key prefixes. |
Returns: The prefixes.
Source: RowSprout Pro src/SmartGenerate/TemplateMetaChangeTracker.php:99
rowsprout_global_change_meta_keys
Section titled “rowsprout_global_change_meta_keys”Filter RowSprout Pro
Smart Generate: template meta keys whose change counts as a change to the whole template, so every page is regenerated, just like a change to the title or content. Empty by default.
apply_filters( 'rowsprout_global_change_meta_keys', $metaKeys )| Parameter | Type | Description |
|---|---|---|
$metaKeys |
string[] |
Exact meta keys. |
Returns: The keys.
Source: RowSprout Pro src/SmartGenerate/TemplateMetaChangeTracker.php:82
Example
add_filter( 'rowsprout_global_change_meta_keys', function ( array $keys ): array { $keys[] = '_my_layout_setting'; return $keys;} );rowsprout_license_page_after_status
Section titled “rowsprout_license_page_after_status”Action RowSprout Pro Internal
Prints extra cards on RowSprout → License, after the licence status.
do_action( 'rowsprout_license_page_after_status', $license )| Parameter | Type | Description |
|---|---|---|
$license |
array |
The stored licence data. |
Source: RowSprout Pro src/Admin/LicenseMenu.php:234
rowsprout_mcp_tools
Section titled “rowsprout_mcp_tools”Filter RowSprout Pro Internal
The tool definitions behind RowSprout’s MCP abilities (name, description, inputSchema, handler). Each tool is registered as the WordPress Ability rowsprout/<name-in-kebab-case>.
apply_filters( 'rowsprout_mcp_tools', $tools )| Parameter | Type | Description |
|---|---|---|
$tools |
array |
The tool definitions. |
Returns: The tools.
Source: RowSprout Pro src/Features/Mcp/JsonRpc/ToolRegistry.php:295
rowsprout_status_overview_columns
Section titled “rowsprout_status_overview_columns”Filter RowSprout Pro
Columns of the Status Overview modal on the Templates screen.
apply_filters( 'rowsprout_status_overview_columns', $columns )| Parameter | Type | Description |
|---|---|---|
$columns |
array |
Entries of [ 'key' => string, 'label' => string ]: name, page ID, page link and status by default. |
Returns: The columns.
Source: RowSprout Pro src/Admin/Overview/Assets.php:44
rowsprout_template_status_help_items
Section titled “rowsprout_template_status_help_items”Filter RowSprout Pro
The colour legend in the Templates screen’s help tab, which explains the status bar.
apply_filters( 'rowsprout_template_status_help_items', $items )| Parameter | Type | Description |
|---|---|---|
$items |
array |
Entries of [ 'color' => string, 'label' => string ]. |
Returns: The items.
Source: RowSprout Pro src/Admin/Overview/HelpTab.php:31