| 1 |
<?php |
| 2 |
/** |
| 3 |
* This template is used to display the donation grid with [donation_grid] |
| 4 |
*/ |
| 5 |
|
| 6 |
// Exit if accessed directly. |
| 7 |
if ( ! defined( 'ABSPATH' ) ) { |
| 8 |
exit; |
| 9 |
} |
| 10 |
|
| 11 |
$form_id = get_the_ID(); // Form ID. |
| 12 |
$give_settings = $args[0]; // Give settings. |
| 13 |
$atts = $args[1]; // Shortcode attributes. |
| 14 |
$raw_content = ''; // Raw form content. |
| 15 |
$stripped_content = ''; // Form content stripped of HTML tags and shortcodes. |
| 16 |
$excerpt = ''; // Trimmed form excerpt ready for display. |
| 17 |
?> |
| 18 |
|
| 19 |
<div class="give-grid__item"> |
| 20 |
<?php |
| 21 |
// Print the opening anchor tag based on display style. |
| 22 |
if ( 'redirect' === $atts['display_style'] ) { |
| 23 |
printf( |
| 24 |
'<a id="give-card-%1$s" class="give-card" href="%2$s">', |
| 25 |
esc_attr( $form_id ), |
| 26 |
esc_attr( get_the_permalink() ) |
| 27 |
); |
| 28 |
} elseif ( 'modal_reveal' === $atts['display_style'] ) { |
| 29 |
printf( |
| 30 |
'<a id="give-card-%1$s" class="give-card js-give-grid-modal-launcher" data-effect="mfp-zoom-out" href="#give-modal-form-%1$s">', |
| 31 |
esc_attr( $form_id ) |
| 32 |
); |
| 33 |
} |
| 34 |
?> |
| 35 |
|
| 36 |
<div class="give-card__body"> |
| 37 |
<?php |
| 38 |
// Maybe display the form title. |
| 39 |
if ( true === $atts['show_title'] ) { |
| 40 |
the_title( '<h3 class="give-card__title">', '</h3>' ); |
| 41 |
} |
| 42 |
|
| 43 |
// Maybe display the form excerpt. |
| 44 |
if ( true === $atts['show_excerpt'] ) { |
| 45 |
if ( has_excerpt( $form_id ) ) { |
| 46 |
// Get excerpt from the form post's excerpt field. |
| 47 |
$raw_content = get_the_excerpt( $form_id ); |
| 48 |
$stripped_content = wp_strip_all_tags( |
| 49 |
strip_shortcodes( $raw_content ) |
| 50 |
); |
| 51 |
} else { |
| 52 |
// Get content from the form post's content field. |
| 53 |
$raw_content = give_get_meta( $form_id, '_give_form_content', true ); |
| 54 |
|
| 55 |
if ( ! empty( $raw_content ) ) { |
| 56 |
$stripped_content = wp_strip_all_tags( |
| 57 |
strip_shortcodes( $raw_content ) |
| 58 |
); |
| 59 |
} |
| 60 |
} |
| 61 |
|
| 62 |
// Maybe truncate excerpt. |
| 63 |
if ( 0 < $atts['excerpt_length'] ) { |
| 64 |
$excerpt = wp_trim_words( $stripped_content, $atts['excerpt_length'] ); |
| 65 |
} else { |
| 66 |
$excerpt = $stripped_content; |
| 67 |
} |
| 68 |
|
| 69 |
printf( '<p class="give-card__text">%s</p>', $excerpt ); |
| 70 |
} |
| 71 |
|
| 72 |
// Maybe display the goal progess bar. |
| 73 |
if ( |
| 74 |
give_is_setting_enabled( get_post_meta( $form_id, '_give_goal_option', true ) ) |
| 75 |
&& true === $atts['show_goal'] |
| 76 |
) { |
| 77 |
echo '<div class="give-card__progress">'; |
| 78 |
give_show_goal_progress( $form_id ); |
| 79 |
echo '</div>'; |
| 80 |
} |
| 81 |
?> |
| 82 |
</div> |
| 83 |
|
| 84 |
<?php |
| 85 |
// Maybe display the featured image. |
| 86 |
if ( |
| 87 |
give_is_setting_enabled( $give_settings['form_featured_img'] ) |
| 88 |
&& has_post_thumbnail() |
| 89 |
&& true === $atts['show_featured_image'] |
| 90 |
) { |
| 91 |
/* |
| 92 |
* Filters the image size used in card layouts. |
| 93 |
* |
| 94 |
* @param string The image size. |
| 95 |
* @param array Form grid attributes. |
| 96 |
*/ |
| 97 |
$image_size = apply_filters( 'give_form_grid_image_size', $atts['image_size'], $atts ); |
| 98 |
$image_attr = ''; |
| 99 |
|
| 100 |
echo '<div class="give-card__media">'; |
| 101 |
if ( 'auto' !== $atts['image_height'] ) { |
| 102 |
$image_attr = array( |
| 103 |
'style' => 'height: ' . $atts['image_height'], |
| 104 |
); |
| 105 |
} |
| 106 |
the_post_thumbnail( $image_size, $image_attr ); |
| 107 |
echo '</div>'; |
| 108 |
} |
| 109 |
?> |
| 110 |
</a> |
| 111 |
<?php |
| 112 |
// If modal, print form in hidden container until it is time to be revealed. |
| 113 |
if ( 'modal_reveal' === $atts['display_style'] ) { |
| 114 |
printf( |
| 115 |
'<div id="give-modal-form-%1$s" class="give-donation-grid-item-form give-modal--slide mfp-hide">', |
| 116 |
$form_id |
| 117 |
); |
| 118 |
give_get_donation_form( $form_id ); |
| 119 |
echo '</div>'; |
| 120 |
} |
| 121 |
?> |
| 122 |
</div> |
| 123 |
|