<?php
namespace WPForms\Lite\Reports;
/**
* Generate form submissions reports.
*
* @since 1.5.4
*/
class EntriesCount {
/**
* Constructor.
*
* @since 1.5.4
*/
public function __construct() {}
/**
* Get entries count grouped by form.
* Main point of entry to fetch form entry count data from DB.
* Cache the result.
*
* @since 1.5.4
*
* @return array
*/
public function get_by_form() {
$forms = wpforms()->get( 'form' )->get( '', [ 'fields' => 'ids' ] );
if ( empty( $forms ) || ! \is_array( $forms ) ) {
return [];
}
$result = [];
foreach ( $forms as $form_id ) {
$count = \absint( \get_post_meta( $form_id, 'wpforms_entries_count', true ) );
if ( empty( $count ) ) {
continue;
}
$result[ $form_id ] = [
'form_id' => $form_id,
'count' => $count,
'title' => \get_the_title( $form_id ),
];
}
if ( ! empty( $result ) ) {
// Sort forms by entries count (desc).
\uasort(
$result,
function ( $a, $b ) {
return ( $a['count'] > $b['count'] ) ? -1 : 1;
}
);
}
return $result;
}
}
|