PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.4.2
JetFormBuilder — Dynamic Blocks Form Builder v3.4.2
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 / compatibility / jet-engine / generators / get-from-je-query.php
jetformbuilder / compatibility / jet-engine / generators Last commit date
je-query-object-handlers 2 years ago get-from-field.php 1 year ago get-from-je-query.php 2 years ago
get-from-je-query.php
107 lines
1 <?php
2
3 namespace JFB_Compatibility\Jet_Engine\Generators;
4
5 use Jet_Engine\Query_Builder\Queries\Base_Query;
6 use JFB_Compatibility\Jet_Engine\Generators\Je_Query_Object_Handlers\Base_Object_Handler;
7 use JFB_Compatibility\Jet_Engine\Generators\Je_Query_Object_Handlers\User_Object_Handler;
8 use Jet_Form_Builder\Generators\Base;
9 use Jet_Engine\Query_Builder\Manager as Query_Manager;
10
11 // If this file is called directly, abort.
12 if ( ! defined( 'WPINC' ) ) {
13 die;
14 }
15
16 class Get_From_Je_Query extends Base {
17
18 private $object_handlers;
19
20 public function __construct() {
21 $this->object_handlers = apply_filters(
22 'jet-form-builder/generators/get_from_query/handlers',
23 array(
24 new User_Object_Handler(),
25 new Base_Object_Handler(),
26 )
27 );
28 }
29
30 /**
31 * Returns generator ID
32 *
33 * @return string
34 */
35 public function get_id() {
36 return 'get_from_query';
37 }
38
39 /**
40 * Returns generator name
41 *
42 * @return string
43 */
44 public function get_name() {
45 return __( 'Get values list from JetEngine Query', 'jet-form-builder' );
46 }
47
48 /**
49 * Returns generated options list
50 *
51 * @param $args
52 *
53 * @return array
54 */
55 public function generate( $args ) {
56
57 $field = $args['generator_field'] ?? $args;
58
59 $args = explode( '|', $field );
60 /** @var Base_Query $query */
61 $query = Query_Manager::instance()->get_query_by_id( $args[0] );
62 $result = array();
63
64 if ( ! $query ) {
65 return $result;
66 }
67
68 $query->setup_query();
69 $this->get_block()->block_attrs['je_generator_query_type'] = $query->query_type;
70
71 do_action( 'jet-form-builder/generators/get_from_query/setup', $this, $query );
72
73 $objects = $query->get_items();
74
75 $handler = $this->get_handler( $objects[0] ?? array() );
76 $handler->set_fields( $args );
77
78 foreach ( $objects as $object ) {
79 $item = $handler->to_array( $object );
80
81 if ( ! empty( $item ) ) {
82 $result[] = $item;
83 }
84 }
85
86 return $result;
87 }
88
89 private function get_handler( $current ): Base_Object_Handler {
90 /** @var Base_Object_Handler $handler */
91 foreach ( $this->object_handlers as $handler ) {
92 if ( $handler->is_supported( $current ) ) {
93 return $handler;
94 }
95 }
96
97 wp_die(
98 sprintf(
99 /* translators: %s - class name */
100 esc_html__( '%s::is_supported must return TRUE', 'jet-form-builder' ),
101 esc_attr( Base_Object_Handler::class )
102 )
103 );
104 }
105
106 }
107