Entry Count Shortcode

Extends the [gravityforms] shortcode, providing a custom action to retrieve the total entry count and also providing the ability to retrieve counts by entry status (i.e. ‘trash’, ‘spam’, ‘unread’, ‘starred’).

Code

Filename: gw-entry-count-shortcode.php

<?php
/**
 * Gravity Wiz // Gravity Forms // Entry Count Shortcode
 *
 * Extends the [gravityforms] shortcode, providing a custom action to retrieve the total entry count and
 * also providing the ability to retrieve counts by entry status (i.e. 'trash', 'spam', 'unread', 'starred').
 *
 * @version  1.0
 * @author   David Smith <david@gravitywiz.com>
 * @license  GPL-2.0+
 * @link     https://gravitywiz.com/
 */
add_filter( 'gform_shortcode_entry_count', 'gwiz_entry_count_shortcode', 10, 2 );
function gwiz_entry_count_shortcode( $output, $atts ) {

	// phpcs:ignore WordPress.PHP.DontExtract.extract_extract
	extract( shortcode_atts( array(
		'id'     => false,
		'status' => 'total', // accepts 'total', 'unread', 'starred', 'trash', 'spam'
		'format' => false, // should be 'comma', 'decimal'
	), $atts ) );

	$valid_statuses = array( 'total', 'unread', 'starred', 'trash', 'spam' );

	if ( ! $id || ! in_array( $status, $valid_statuses ) ) {
		return current_user_can( 'update_core' ) ? __( 'Invalid "id" (the form ID) or "status" (i.e. "total", "trash", etc.) parameter passed.' ) : '';
	}

	$counts = GFFormsModel::get_form_counts( $id );
	$output = rgar( $counts, $status );

	if ( $format ) {
		$format = $format == 'decimal' ? '.' : ',';
		$output = number_format( $output, 0, false, $format );
	}

	return $output;
}

Leave a Reply

Your email address will not be published. Required fields are marked *

  • Trouble installing this snippet? See our troubleshooting tips.
  • Need to include code? Create a gist and link to it in your comment.
  • Reporting a bug? Provide a URL where this issue can be recreated.

By commenting, I understand that I may receive emails related to Gravity Wiz and can unsubscribe at any time.