0; // Schema stars need a rating the customer actually gave — the visual stars // above may show the "Default Rating" fallback, which must never be marked up. $at_schema_rating = ! empty( $atts['show_rating'] ) && ! empty( $item['has_real_rating'] ); $at_review = $schema && $at_schema_rating; $at_role = array(); if ( ! empty( $atts['show_designation'] ) && '' !== $item['designation'] ) { $at_role[] = $item['designation']; } if ( ! empty( $atts['show_company'] ) && '' !== $item['company'] ) { $at_role[] = $item['company']; } $at_group_slugs = ! empty( $item['groups'] ) ? implode( ' ', array_keys( $item['groups'] ) ) : ''; // Load more: items past the initial batch start collapsed (revealed by JS; // shown for everyone when JS is off — the clamp is gated by .at-has-loadmore). // Grid/List/Card mark the card itself; Masonry marks its column wrapper instead. $at_lm_initial = isset( $atts['_lm_initial'] ) ? (int) $atts['_lm_initial'] : 0; $at_lm_collapsed = ! empty( $atts['load_more'] ) && isset( $at_lm_index ) && $at_lm_index >= $at_lm_initial && 'masonry' !== $atts['layout']; /** * Fires before a testimonial card is rendered. * * @param array $item Prepared testimonial data. * @param array $atts Display attributes. */ do_action( 'advanced_testimonial_before_card', $item, $atts ); ?>
>

>

>
'; } else { echo esc_html( $item['name'] ); } ?>
$at_url ) : ?>