Hooks portfolio block Kadence

/**
 * Server rendering for Post Block Inner Loop
 *
 * @param array $attributes the block attributes.
 */
function kadence_blocks_pro_render_portfolio_block_loop( $attributes ) {
	$image_align = ( isset( $attributes['alignImage'] ) && isset( $attributes['displayImage'] ) && true === $attributes['displayImage'] && has_post_thumbnail() ? $attributes['alignImage'] : 'none' );
	echo '<div class="kb-blocks-portfolio-grid-item">';
		do_action( 'kadence_blocks_portfolio_loop_start', $attributes );
		echo '<div class="kb-blocks-portfolio-grid-item-inner-wrap kb-feat-image-align-' . esc_attr( $image_align ) . '">';
			/**
			 * Kadence Blocks Portfolio Loop Start
			 *
			 * @hooked kb_blocks_pro_get_portfolio_image - 20
			 */
			do_action( 'kadence_blocks_portfolio_loop_image', $attributes );
			echo '<div class="kb-portfolio-grid-item-inner">';
				/**
				 * Kadence Blocks Portfolio before Hover content.
				 *
				 * @hooked kb_blocks_pro_portfolio_hover_link - 10
				 * @hooked kb_blocks_pro_portfolio_hover_divs - 20
				 */
				do_action( 'kadence_blocks_portfolio_loop_before_content', $attributes );
				echo '<div class="kb-portfolio-content-item-inner">';
					/**
					 * Kadence Blocks Portfolio Hover content.
					 *
					 * @hooked kb_blocks_pro_get_portfolio_lightbox - 20
					 * @hooked kb_blocks_pro_get_portfolio_title - 20
					 * @hooked kb_blocks_pro_get_portfolio_taxonomies - 30
					 * @hooked kb_blocks_pro_get_portfolio_excerpt - 40
					 */
					do_action( 'kadence_blocks_portfolio_loop_content_inner', $attributes );
				echo '</div>';
			echo '</div>';
		echo '</div>';
	do_action( 'kadence_blocks_portfolio_loop_end', $attributes );
	echo '</div>';
}

Ruta: /wp-content/plugins/kadence-blocks-pro/dist/dynamicblocks/portfolio-grid-carousel.php