PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.0.0
JetFormBuilder — Dynamic Blocks Form Builder v3.0.0
3.6.5.1 3.6.5 3.6.4.2 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 / 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 actions-tools.php 3 years ago events-list.php 3 years ago events-manager.php 3 years ago manager.php 3 years ago
events-manager.php
131 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\Actions\Events\Never\Never_Event;
15 use Jet_Form_Builder\Actions\Events\On_Dynamic_State\On_Dynamic_State_Event;
16 use Jet_Form_Builder\Actions\Types\Base;
17 use Jet_Form_Builder\Classes\Arrayable\Array_Tools;
18 use Jet_Form_Builder\Classes\Arrayable\Arrayable;
19 use Jet_Form_Builder\Classes\Instance_Trait;
20 use Jet_Form_Builder\Classes\Repository\Repository_Dynamic_Items_It;
21 use Jet_Form_Builder\Classes\Repository\Repository_Pattern_Trait;
22 use Jet_Form_Builder\Exceptions\Action_Exception;
23 use Jet_Form_Builder\Exceptions\Repository_Exception;
24
25 /**
26 * @method static Events_Manager instance()
27 *
28 * Class Events_Manager
29 * @package Jet_Form_Builder\Actions
30 */
31 class Events_Manager implements Arrayable, Repository_Dynamic_Items_It {
32
33 use Instance_Trait;
34 use Repository_Pattern_Trait;
35
36 private $types = array();
37
38 public function __construct() {
39 $this->rep_install();
40 }
41
42 /**
43 * @return array
44 */
45 public function rep_instances(): array {
46 return apply_filters(
47 'jet-form-builder/event-types',
48 array(
49 new Never_Event(),
50 new Default_Process_Event(),
51 new Gateway_Success_Event(),
52 new Gateway_Failed_Event(),
53 new Bad_Request_Event(),
54 new Default_Required_Event(),
55 new On_Dynamic_State_Event(),
56 )
57 );
58 }
59
60 /**
61 * @param string $current
62 * @param null $form_id
63 *
64 * @throws Action_Exception
65 */
66 public function execute( string $current, $form_id = null ) {
67 try {
68 $event = $this->get_event( $current );
69 } catch ( Repository_Exception $exception ) {
70 return;
71 }
72
73 // save all form actions
74 jet_fb_action_handler()->set_form_id( $form_id );
75
76 do_action( 'jet-form-builder/before-trigger-event', $event );
77 $event->execute();
78 do_action( 'jet-form-builder/after-trigger-event', $event );
79 }
80
81 /**
82 * @param string $slug
83 *
84 * @return Base_Event
85 * @throws Repository_Exception
86 */
87 public function get_event( string $slug ): Base_Event {
88 return $this->rep_get_item( $slug );
89 }
90
91 public function get_gateways_events(): array {
92 /** @var Base_Event[] $response */
93 $response = $this->rep_get_items();
94
95 foreach ( $response as $key => $event ) {
96 if ( ! ( $event instanceof Base_Gateway_Event ) ) {
97 unset( $response[ $key ] );
98 }
99 }
100
101 return $response;
102 }
103
104 public function get_actions_events(): array {
105 /** @var Base_Event[] $response */
106 $response = $this->rep_get_items();
107
108 foreach ( $response as $key => $event ) {
109 if ( ! ( $event instanceof Base_Action_Event ) ) {
110 unset( $response[ $key ] );
111 }
112 }
113
114 return $response;
115 }
116
117
118 /**
119 * @return array
120 */
121 public function to_array(): array {
122 return array(
123 'types' => Array_Tools::to_array( $this->rep_get_items() ),
124 );
125 }
126
127 public function get_never_event(): Never_Event {
128 return self::instance()->rep_get_item( Never_Event::class );
129 }
130 }
131