PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 2.1.4
JetFormBuilder — Dynamic Blocks Form Builder v2.1.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 / actions / events-manager.php
jetformbuilder / includes / actions Last commit date
conditions 3 years ago events 3 years ago methods 3 years ago types 3 years ago action-handler.php 3 years ago action-localize.php 3 years ago events-list.php 3 years ago events-manager.php 3 years ago manager.php 3 years ago
events-manager.php
121 lines
1 <?php
2
3
4 namespace Jet_Form_Builder\Actions;
5
6 use Jet_Form_Builder\Actions\Events\Bad_Request\Bad_Request_Event;
7 use Jet_Form_Builder\Actions\Events\Default_Required\Default_Required_Event;
8 use Jet_Form_Builder\Actions\Events\Base_Action_Event;
9 use Jet_Form_Builder\Actions\Events\Base_Event;
10 use Jet_Form_Builder\Actions\Events\Base_Gateway_Event;
11 use Jet_Form_Builder\Actions\Events\Default_Process\Default_Process_Event;
12 use Jet_Form_Builder\Actions\Events\Gateway_Failed\Gateway_Failed_Event;
13 use Jet_Form_Builder\Actions\Events\Gateway_Success\Gateway_Success_Event;
14 use Jet_Form_Builder\Classes\Arrayable\Array_Tools;
15 use Jet_Form_Builder\Classes\Arrayable\Arrayable;
16 use Jet_Form_Builder\Classes\Instance_Trait;
17 use Jet_Form_Builder\Classes\Repository\Repository_Pattern_Trait;
18 use Jet_Form_Builder\Exceptions\Action_Exception;
19 use Jet_Form_Builder\Exceptions\Repository_Exception;
20
21 /**
22 * @method static Events_Manager instance()
23 *
24 * Class Events_Manager
25 * @package Jet_Form_Builder\Actions
26 */
27 class Events_Manager implements Arrayable {
28
29 use Instance_Trait;
30 use Repository_Pattern_Trait;
31
32 private $types = array();
33
34 public function __construct() {
35 $this->rep_install();
36 }
37
38 /**
39 * @return array
40 */
41 public function rep_instances(): array {
42 return apply_filters(
43 'jet-form-builder/event-types',
44 array(
45 new Default_Process_Event(),
46 new Gateway_Success_Event(),
47 new Gateway_Failed_Event(),
48 new Bad_Request_Event(),
49 new Default_Required_Event(),
50 )
51 );
52 }
53
54 /**
55 * @param string $current
56 * @param null $form_id
57 *
58 * @throws Action_Exception
59 */
60 public function execute( string $current, $form_id = null ) {
61 try {
62 $event = $this->get_event( $current );
63 } catch ( Repository_Exception $exception ) {
64 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
65 wp_die( $exception->getMessage() );
66 }
67
68 // save all form actions
69 jet_fb_action_handler()->set_form_id( $form_id );
70
71 $event->execute();
72 }
73
74 /**
75 * @param string $slug
76 *
77 * @return Base_Event
78 * @throws Repository_Exception
79 */
80 public function get_event( string $slug ): Base_Event {
81 return $this->rep_get_item( $slug );
82 }
83
84 public function get_gateways_events(): array {
85 /** @var Base_Event[] $response */
86 $response = $this->rep_get_items();
87
88 foreach ( $response as $key => $event ) {
89 if ( ! ( $event instanceof Base_Gateway_Event ) ) {
90 unset( $response[ $key ] );
91 }
92 }
93
94 return $response;
95 }
96
97 public function get_actions_events(): array {
98 /** @var Base_Event[] $response */
99 $response = $this->rep_get_items();
100
101 foreach ( $response as $key => $event ) {
102 if ( ! ( $event instanceof Base_Action_Event ) ) {
103 unset( $response[ $key ] );
104 }
105 }
106
107 return $response;
108 }
109
110
111
112 /**
113 * @return array
114 */
115 public function to_array(): array {
116 return array(
117 'types' => Array_Tools::to_array( $this->rep_get_items() ),
118 );
119 }
120 }
121