Content does not load in modal when using Raw HTML and content grid carousel [FIX INCLUDED]

How to reproduce

Using PowerPack version 2.33.2, create a content grid and use layout Carousel. Add a trigger class to each post item (we are doing this by using a shortcode in Custom content and defining the post item structure in functions.php).

Then create a PowerPack modal, set the Trigger to Custom Element Click and enter the class you defined above.

In Content set Type to Raw HTML, and in the box below enter your HTML with the required comment as defined in this article:

<!-- pp-modal-post-template -->
[example_carousel_popup]

Then try clicking one of the posts in the carousel. The modal will show with the loader icon but the ajax never triggers, however it does if the layout is set to Grid instead of Carousel.

Proposed fix

The carousel is missing the data-id attribute, so the modal content returns before the ajax request is triggered at modules/pp-modal-box/js/frontend.js:139.

Change modules/pp-content-grid/includes/post-carousel.php:25 from:

<div class="pp-content-post pp-content-carousel-post pp-grid-<?php echo $settings->post_grid_style_select; ?> <?php echo join( ' ', get_post_class() ); ?>"<?php BB_PowerPack_Post_Helper::print_schema( ' itemscope itemtype="' . PPContentGridModule::schema_itemtype() . '"' ); ?> data-hash="pp-post-<?php echo $post_id; ?>">

to:

<div class="pp-content-post pp-content-carousel-post pp-grid-<?php echo $settings->post_grid_style_select; ?> <?php echo join( ' ', get_post_class() ); ?>"<?php BB_PowerPack_Post_Helper::print_schema( ' itemscope itemtype="' . PPContentGridModule::schema_itemtype() . '"' ); ?> data-hash="pp-post-<?php echo $post_id; ?>" data-id="<?php echo $post_id; ?>">

You should probably let the PowerPack authors know about this.

Ah apologies, I thought PowerPack was a sub-plugin of Beaver Builder.

No worries :slight_smile: Im sure they will be delighted with your fix too

This topic was automatically closed 36 hours after the last reply. New replies are no longer allowed.