PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.0.1
JetFormBuilder — Dynamic Blocks Form Builder v3.0.1
3.6.4.1 3.6.4 3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / includes / compatibility / jet-engine / generators / get-from-je-query.php
jetformbuilder / includes / compatibility / jet-engine / generators Last commit date
je-query-object-handlers 3 years ago get-from-field.php 3 years ago get-from-je-query.php 3 years ago
get-from-je-query.php
96 lines
1 <?php
2
3 namespace Jet_Form_Builder\Compatibility\Jet_Engine\Generators;
4
5 use Jet_Form_Builder\Compatibility\Jet_Engine\Generators\Je_Query_Object_Handlers\Base_Object_Handler;
6 use Jet_Form_Builder\Compatibility\Jet_Engine\Generators\Je_Query_Object_Handlers\User_Object_Handler;
7 use Jet_Form_Builder\Generators\Base;
8 use Jet_Engine\Query_Builder\Manager as Query_Manager;
9
10 class Get_From_Je_Query extends Base {
11
12 private $object_handlers;
13
14 public function __construct() {
15 $this->object_handlers = apply_filters(
16 'jet-form-builder/generators/get_from_query/handlers',
17 array(
18 new User_Object_Handler(),
19 new Base_Object_Handler(),
20 )
21 );
22 }
23
24 /**
25 * Returns generator ID
26 *
27 * @return string
28 */
29 public function get_id() {
30 return 'get_from_query';
31 }
32
33 /**
34 * Returns generator name
35 *
36 * @return string
37 */
38 public function get_name() {
39 return __( 'Get values list from JetEngine Query', 'jet-form-builder' );
40 }
41
42 /**
43 * Returns generated options list
44 *
45 * @param $args
46 *
47 * @return array
48 */
49 public function generate( $args ) {
50
51 $field = isset( $args['generator_field'] ) ? $args['generator_field'] : $args;
52
53 $args = explode( '|', $field );
54 $query = Query_Manager::instance()->get_query_by_id( $args[0] );
55 $result = array();
56
57 if ( ! $query ) {
58 return $result;
59 }
60
61 $query->setup_query();
62 $objects = $query->_get_items();
63
64 $handler = $this->get_handler( $objects[0] ?? array() );
65 $handler->set_fields( $args );
66
67 foreach ( $objects as $object ) {
68 $item = $handler->to_array( $object );
69
70 if ( ! empty( $item ) ) {
71 $result[] = $item;
72 }
73 }
74
75 return $result;
76
77 }
78
79 private function get_handler( $object ): Base_Object_Handler {
80 /** @var Base_Object_Handler $handler */
81 foreach ( $this->object_handlers as $handler ) {
82 if ( $handler->is_supported( $object ) ) {
83 return $handler;
84 }
85 }
86
87 wp_die(
88 sprintf(
89 __( '%s::is_supported must return TRUE', 'jet-form-builder' ),
90 Base_Object_Handler::class
91 )
92 );
93 }
94
95 }
96