SubmissionsBuilderFactory.php
937 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
namespace NinjaForms\Blocks\DataBuilder;
class SubmissionsBuilderFactory {
/**
* @param int $formID
* @param int $perPage
* @param int $page
*
* @return SubmissionsBuilder
*/
public function make( $formID, $perPage = -1, $page = 0 ) {
$args = [
'posts_per_page' => $perPage,
'paged' => $page,
'post_type' => 'nf_sub',
'meta_query' => [[
'key' => '_form_id',
'value' => $formID
]]
];
$submissions = array_map( function( $post ) {
return array_map( [ self::class, 'flattenPostmeta' ], get_post_meta( $post->ID ) );
}, get_posts( $args ) );
return new SubmissionsBuilder( $submissions );
}
protected static function flattenPostmeta( $postmeta ) {
$postmeta = (array) $postmeta;
return reset( $postmeta );
}
}