{"id":387552,"date":"2026-10-15T21:23:21","date_gmt":"2026-10-15T21:23:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pressundo-repeater-for-elementor\/"},"modified":"2026-10-17T02:53:06","modified_gmt":"2026-10-17T02:53:06","slug":"pressundo-repeater-for-elementor","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/pressundo-repeater-for-elementor\/","author":23585651,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.1.3","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"PressUndo Repeater for Elementor","header_author":"PressUndo","header_description":"Render ACF\/SCF repeater rows in Elementor with secure placeholders, multiple data sources, nested repeaters and Elementor Pro loop support.","assets_banners_color":"7384ac","last_updated":"2026-10-17 02:53:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":107,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.4":{"tag":"1.1.4","author":"pressundo","date":"2026-10-15 21:22:50","revision":3749330},"1.2.0":{"tag":"1.2.0","author":"pressundo","date":"2026-10-17 02:53:06","revision":3751342}},"upgrade_notice":{"1.2.0":"<p>Feature and stability update with guided templates, inline conditions, nested-data improvements, complex-field normalization, saved-template improvements, Accordion\/Toggle hardening, and built-in documentation. Test important Elementor layouts on staging before production updates.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3749356,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3749356,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3749356,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3749356,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.4","1.2.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2211,2010,2487,76538,2244],"plugin_category":[59],"plugin_contributors":[286610],"plugin_business_model":[],"class_list":["post-387552","plugin","type-plugin","status-publish","hentry","plugin_tags-acf","plugin_tags-custom-fields","plugin_tags-dynamic-content","plugin_tags-elementor","plugin_tags-repeater","plugin_category-utilities-and-tools","plugin_contributors-pressundo","plugin_committers-pressundo"],"banners":{"banner":"https:\/\/ps.w.org\/pressundo-repeater-for-elementor\/assets\/banner-772x250.png?rev=3749356","banner_2x":"https:\/\/ps.w.org\/pressundo-repeater-for-elementor\/assets\/banner-1544x500.png?rev=3749356","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pressundo-repeater-for-elementor\/assets\/icon-128x128.png?rev=3749356","icon_2x":"https:\/\/ps.w.org\/pressundo-repeater-for-elementor\/assets\/icon-256x256.png?rev=3749356","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>PressUndo Repeater for Elementor lets you render ACF\/SCF repeater data in Elementor without manually duplicating content.<\/p>\n\n<p>Use the dedicated <strong>PressUndo Repeater<\/strong> widget for template-driven output, or configure supported Elementor elements from <strong>Advanced &gt; PressUndo Repeater<\/strong> to repeat an existing Elementor design once per row.<\/p>\n\n<p>Key features include:<\/p>\n\n<ul>\n<li>Inline HTML templates with automatic starter HTML generation.<\/li>\n<li>Contextual <strong>Available fields<\/strong> shown above the HTML model.<\/li>\n<li>Modern <code>{{ field_name }}<\/code> placeholders and legacy <code>#field_name<\/code> compatibility.<\/li>\n<li>Nested repeaters and Parent repeater row support.<\/li>\n<li>Inline <code>{{#if ...}} ... {{\/if}}<\/code> conditions with no activation switch.<\/li>\n<li>Image, File, Link, Taxonomy, User, Post Object and Relationship properties.<\/li>\n<li>Current post, Options Page, current term, current user and custom post ID sources.<\/li>\n<li>Saved Elementor row templates and PressUndo dynamic tags.<\/li>\n<li>Accordion, Toggle and Nested Accordion support from <strong>Advanced &gt; PressUndo Repeater<\/strong>.<\/li>\n<li>Optional Elementor Pro Loop Carousel integration.<\/li>\n<li>Migration-friendly support for older ACF Repeater for Elementor conventions.<\/li>\n<li>Context-aware output escaping and sanitization.<\/li>\n<li>No telemetry and no external PressUndo API required for core functionality.<\/li>\n<\/ul>\n\n<p>A complete documentation page is included inside the plugin. After activation, open:<\/p>\n\n<p><strong>WordPress Dashboard &gt; Elementor &gt; PressUndo Repeater Docs<\/strong><\/p>\n\n<p>You can also open it from <strong>Plugins &gt; PressUndo Repeater for Elementor &gt; Documentation<\/strong>.<\/p>\n\n<p>The in-plugin documentation includes quick start instructions, field\/property references, generated HTML, conditions, nested repeaters, data sources, saved templates, dynamic tags, Accordion\/Toggle usage, migration guidance, troubleshooting and developer notes.<\/p>\n\n<p>PressUndo Repeater is fully translation-ready. A complete POT catalog is included, and bundled translations for the <strong>plugin interface and the complete in-plugin documentation<\/strong> are provided for <strong>French (fr_FR), Spanish (es_ES), German (de_DE), Italian (it_IT), and Portuguese \u2014 Brazil (pt_BR)<\/strong>. The documentation follows the WordPress admin locale. WordPress.org language packs remain supported and take priority when available.<\/p>\n\n<p>PressUndo is an independent GPL plugin and is not affiliated with or endorsed by Elementor, Advanced Custom Fields, Secure Custom Fields, or the original plugin authors.<\/p>\n\n<h3>Quick Start<\/h3>\n\n<ol>\n<li>Create a repeater such as <code>team_members<\/code>.<\/li>\n<li>Add sub fields such as <code>name<\/code>, <code>job<\/code>, <code>description<\/code>, and <code>photo<\/code>.<\/li>\n<li>Add the <strong>PressUndo Repeater<\/strong> widget in Elementor.<\/li>\n<li>Select <code>team_members<\/code> and the correct data source.<\/li>\n<li>Use the generated Inline HTML model or choose a Saved Elementor template.<\/li>\n<li>Preview the real frontend before publishing.<\/li>\n<\/ol>\n\n<p>Example:<\/p>\n\n<pre><code>&lt;article class=\"team-card\"&gt;\n\n  &lt;img src=\"{{ photo.url }}\" alt=\"{{ photo.alt }}\"&gt;\n\n  &lt;h3&gt;{{ name }}&lt;\/h3&gt;\n\n  &lt;p&gt;{{ job }}&lt;\/p&gt;\n\n&lt;\/article&gt;\n<\/code><\/pre>\n\n<p>Important: PressUndo uses the real ACF\/SCF <strong>field name<\/strong>, not only the label. If the label is <code>Job<\/code> but the field name is <code>_job<\/code>, use <code>{{ _job }}<\/code>.<\/p>\n\n<h3>Documentation<\/h3>\n\n<p>Full step-by-step documentation is available directly in WordPress:<\/p>\n\n<p><strong>Elementor &gt; PressUndo Repeater Docs<\/strong><\/p>\n\n<p>The built-in manual is the canonical user guide for version 1.2.0. It includes searchable sections, copyable code examples, exact field\/property references, every inline condition operator, nested repeaters, Accordion\/Toggle, Saved Elementor templates, data sources, migration, troubleshooting, performance\/cache guidance and developer hooks.<\/p>\n\n<p>The page documents:<\/p>\n\n<ul>\n<li>Inline HTML and generated starter templates.<\/li>\n<li>Available fields and placeholder insertion.<\/li>\n<li>Row metadata: <code>{{ __index }}<\/code>, <code>{{ __number }}<\/code>, <code>{{ __count }}<\/code>.<\/li>\n<li>Complex field properties such as <code>{{ photo.url }}<\/code>, <code>{{ file.filename }}<\/code>, <code>{{ taxonomy.name }}<\/code>, and <code>{{ user.email }}<\/code>.<\/li>\n<li>Inline conditions: filled, empty, equals, not equals, contains, not contains, and numeric comparisons.<\/li>\n<li>Nested repeater block syntax.<\/li>\n<li>Parent repeater row for nested Elementor structures.<\/li>\n<li>Saved Elementor templates.<\/li>\n<li>PressUndo Repeater Field and PressUndo Repeater Image dynamic tags.<\/li>\n<li>Current post, Options Page, current term, current user, custom post ID and parent-row sources.<\/li>\n<li>Accordion, Toggle and Nested Accordion.<\/li>\n<li>PressUndo ACF Conditions for hiding an entire Elementor element.<\/li>\n<li>Optional Elementor Pro Loop Carousel support.<\/li>\n<li>Migration, troubleshooting and developer hooks.<\/li>\n<\/ul>\n\n<h3>Credits<\/h3>\n\n<p>PressUndo Repeater for Elementor is a GPL-compatible fork derived in part from <strong>ACF Repeater for Elementor<\/strong> by Sympl. Original authors retain copyright in their original work. New code, security hardening, refactoring, features, naming, and ongoing maintenance are by PressUndo.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP from <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong>, or install it from WordPress.org.<\/li>\n<li>Activate <strong>PressUndo Repeater for Elementor<\/strong>.<\/li>\n<li>Make sure Elementor and ACF PRO, Secure Custom Fields, or another compatible ACF-style implementation are active.<\/li>\n<li>Open <strong>Elementor &gt; PressUndo Repeater Docs<\/strong> for the full documentation.<\/li>\n<li>Create a repeater field and save some rows.<\/li>\n<li>Edit a page with Elementor and add the <strong>PressUndo Repeater<\/strong> widget, or configure an existing supported element from <strong>Advanced &gt; PressUndo Repeater<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20pressundo%20require%20elementor%20pro%3F\"><h3>Does PressUndo require Elementor Pro?<\/h3><\/dt>\n<dd><p>No. The main repeater widget works with Elementor. Elementor Pro is only required for optional Pro-specific integrations or Pro widgets used in your own templates.<\/p><\/dd>\n<dt id=\"does%20pressundo%20require%20acf%20pro%3F\"><h3>Does PressUndo require ACF PRO?<\/h3><\/dt>\n<dd><p>PressUndo needs a compatible ACF-style field API and repeater data. ACF PRO and compatible Secure Custom Fields\/ACF implementations are supported when they provide the required repeater functionality.<\/p><\/dd>\n<dt id=\"can%20i%20use%20multiple%20repeaters%20on%20the%20same%20page%3F\"><h3>Can I use multiple repeaters on the same page?<\/h3><\/dt>\n<dd><p>Yes. Repeater rendering contexts are isolated so multiple fields and sources can coexist on one page.<\/p><\/dd>\n<dt id=\"can%20i%20use%20nested%20repeaters%3F\"><h3>Can I use nested repeaters?<\/h3><\/dt>\n<dd><p>Yes. Use nested block syntax in Inline HTML or <strong>Parent repeater row<\/strong> for nested Elementor elements.<\/p><\/dd>\n<dt id=\"can%20i%20conditionally%20show%20content%20inside%20a%20row%3F\"><h3>Can I conditionally show content inside a row?<\/h3><\/dt>\n<dd><p>Yes. Use inline <code>{{#if ...}} ... {{\/if}}<\/code> conditions directly in the row model. No condition activation switch is required.<\/p><\/dd>\n<dt id=\"can%20i%20use%20saved%20elementor%20templates%3F\"><h3>Can I use Saved Elementor templates?<\/h3><\/dt>\n<dd><p>Yes. Choose <strong>Saved Elementor template<\/strong> and use PressUndo dynamic tags inside the saved template.<\/p><\/dd>\n<dt id=\"can%20i%20repeat%20accordion%20or%20toggle%20items%3F\"><h3>Can I repeat Accordion or Toggle items?<\/h3><\/dt>\n<dd><p>Yes. Configure the widget from <strong>Advanced &gt; PressUndo Repeater<\/strong>. The first item acts as the model for each repeater row.<\/p><\/dd>\n<dt id=\"where%20is%20the%20full%20documentation%3F\"><h3>Where is the full documentation?<\/h3><\/dt>\n<dd><p>Open <strong>WordPress Dashboard &gt; Elementor &gt; PressUndo Repeater Docs<\/strong>, or click <strong>Documentation<\/strong> on the Plugins screen.<\/p><\/dd>\n<dt id=\"does%20pressundo%20send%20data%20to%20an%20external%20service%3F\"><h3>Does PressUndo send data to an external service?<\/h3><\/dt>\n<dd><p>No external PressUndo service is required for core functionality.<\/p><\/dd>\n<dt id=\"which%20languages%20are%20included%3F\"><h3>Which languages are included?<\/h3><\/dt>\n<dd><p>The plugin is translation-ready and ships a complete <code>languages\/pressundo-repeater-for-elementor.pot<\/code> catalog. Bundled translations for both the plugin interface and the complete in-plugin documentation are included for French, Spanish, German, Italian, and Portuguese (Brazil). The documentation automatically follows the WordPress admin locale. Additional translations can be delivered through the standard WordPress.org translation system.<\/p><\/dd>\n<dt id=\"how%20can%20i%20support%20pressundo%20repeater%3F\"><h3>How can I support PressUndo Repeater?<\/h3><\/dt>\n<dd><p>If PressUndo Repeater is useful on your Elementor projects, please consider leaving an honest review on WordPress.org:<\/p>\n\n<p><a href=\"https:\/\/wordpress.org\/support\/plugin\/pressundo-repeater-for-elementor\/reviews\/#new-post\">https:\/\/wordpress.org\/support\/plugin\/pressundo-repeater-for-elementor\/reviews\/#new-post<\/a><\/p>\n\n<p>Reviews help other Elementor users discover the plugin and support continued maintenance.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added contextual Available fields directly above the Inline HTML model.<\/li>\n<li>Added automatic starter HTML generation from discovered repeater fields.<\/li>\n<li>Added one-click placeholder insertion\/copy and complete nested-block insertion.<\/li>\n<li>Added inline <code>{{#if ...}} ... {{\/if}}<\/code> conditions without a separate row-filter activation switch.<\/li>\n<li>Added safe word-based numeric condition operators.<\/li>\n<li>Improved nested repeater discovery, child-row normalization, and empty-field handling.<\/li>\n<li>Improved Taxonomy, User, File, Link, Image, Post Object and Relationship normalization.<\/li>\n<li>Improved Saved Elementor row-template context and added the PressUndo Repeater Image dynamic tag.<\/li>\n<li>Improved Accordion, Toggle and Nested Accordion handling under <strong>Advanced &gt; PressUndo Repeater<\/strong>.<\/li>\n<li>Stabilized Elementor editor controls and preserved legacy migration compatibility.<\/li>\n<li>Added a complete in-plugin documentation page under <strong>Elementor &gt; PressUndo Repeater Docs<\/strong>.<\/li>\n<li>Added a persistent, dismissible admin notice with direct links to the complete documentation and WordPress.org review form. Opening either link does not dismiss the notice; only the explicit Dismiss notice action does.<\/li>\n<li>Added professional review calls-to-action in the in-plugin FAQ and Plugins screen.<\/li>\n<li>Improved the integrated documentation with a responsive layout that stays inside the WordPress admin content area on desktop, tablet, and mobile.<\/li>\n<li>Added a complete translation template and complete bundled interface\/documentation translations for French, Spanish, German, Italian, and Portuguese (Brazil).<\/li>\n<li>Fixed WordPress i18n translator comments and removed the discouraged <code>load_plugin_textdomain()<\/code> call. Bundled translations now load only as a fallback when a WordPress.org language pack is not available.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>First stable WordPress.org release under the PressUndo identity.<\/li>\n<li>Added the PressUndo Repeater widget, multiple data sources, nested rows, saved templates, dynamic tags, Accordion\/Toggle support, conditions, and security hardening.<\/li>\n<\/ul>\n\n<p>Full development history is included in <code>changelog.txt<\/code>.<\/p>","raw_excerpt":"Display ACF\/SCF repeaters in Elementor with placeholders, nested rows, conditions, saved templates, multiple sources, and carousel support.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/387552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=387552"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pressundo"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=387552"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=387552"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=387552"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=387552"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=387552"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=387552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}