$attributes Block attributes.
* @param string $content Block content.
* @return string
* @since 1.0.0
*/
public function render( $attributes, $content = '' ) {
unset( $content );
$campaign_id = Campaign_Page::resolve_campaign_id( $attributes );
if ( ! $campaign_id ) {
return '';
}
wp_enqueue_style( 'suredonation-campaign-blocks' );
$statistic = isset( $attributes['statistic'] ) ? (string) $attributes['statistic'] : 'average-donation';
$stats = Stats::get_cached_stats( $campaign_id );
$config = self::get_statistic_config( $statistic, $stats );
$wrapper = get_block_wrapper_attributes( [ 'class' => 'suredonation-campaign-stat suredonation-campaign-stat--' . sanitize_html_class( $statistic ) ] );
ob_start();
?>
>
$stats Campaign stats.
* @return array{value:string,label:string}
* @since 1.0.0
*/
private static function get_statistic_config( $statistic, $stats ) {
switch ( $statistic ) {
case 'total-raised':
return [
'value' => Payment_Helper::format_amount( $stats['total_raised'] ),
'label' => __( 'Total Raised', 'suredonation' ),
];
case 'top-donation':
return [
'value' => Payment_Helper::format_amount( $stats['largest_donation'] ),
'label' => __( 'Top Donation', 'suredonation' ),
];
case 'donor-count':
return [
'value' => number_format_i18n( $stats['donor_count'] ),
'label' => __( 'Donors', 'suredonation' ),
];
case 'donation-count':
return [
'value' => number_format_i18n( $stats['donation_count'] ),
'label' => __( 'Donations', 'suredonation' ),
];
case 'average-donation':
default:
return [
'value' => Payment_Helper::format_amount( $stats['average_donation'] ),
'label' => __( 'Average Donation', 'suredonation' ),
];
}
}
}