PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.0.0
JetFormBuilder — Dynamic Blocks Form Builder v3.0.0
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 / admin / tabs-handlers / tab-handler-manager.php
jetformbuilder / includes / admin / tabs-handlers Last commit date
active-campaign-handler.php 3 years ago base-handler.php 3 years ago captcha-handler.php 3 years ago get-response-handler.php 3 years ago mailchimp-handler.php 3 years ago options-handler.php 3 years ago payments-gateways-handler.php 3 years ago paypal-handler.php 3 years ago tab-handler-manager.php 3 years ago
tab-handler-manager.php
141 lines
1 <?php
2
3
4 namespace Jet_Form_Builder\Admin\Tabs_Handlers;
5
6 use Jet_Form_Builder\Plugin;
7
8 class Tab_Handler_Manager {
9
10 public static $instance;
11 private $_tabs = array();
12 private $_tabs_options = array();
13
14 public static function instance() {
15 if ( is_null( self::$instance ) ) {
16 self::$instance = new self();
17 }
18
19 return self::$instance;
20 }
21
22 public static function get_options( string $slug ): array {
23 $tab = static::instance()->tab( $slug );
24 $tab->save_global_options();
25
26 return $tab->get_global_options();
27 }
28
29 public function __construct() {
30 $this->register_tabs();
31 }
32
33 public function register_tabs() {
34 $tabs = apply_filters(
35 'jet-form-builder/register-tabs-handlers',
36 array(
37 new Captcha_Handler(),
38 new Mailchimp_Handler(),
39 new Active_Campaign_Handler(),
40 new Get_Response_Handler(),
41 new Paypal_Handler(),
42 new Payments_Gateways_Handler(),
43 new Options_Handler(),
44 )
45 );
46
47 foreach ( $tabs as $tab ) {
48 if ( $tab instanceof Base_Handler ) {
49 $this->register_tab( $tab );
50 }
51 }
52
53 foreach ( $this->_tabs as $tab ) {
54 $this->register_hooks_for_tab( $tab );
55 }
56 }
57
58 /**
59 * @param Base_Handler $tab
60 */
61 public function register_tab( Base_Handler $tab ) {
62 $default_options = $tab->save_global_default();
63
64 if ( ! empty( $default_options ) && is_array( $default_options ) ) {
65 $this->save_options_tab( $tab->slug(), $tab->get_options( $default_options ) );
66 }
67 $this->_tabs[ $tab->slug() ] = $tab;
68 }
69
70 private function register_hooks_for_tab( Base_Handler $tab ) {
71 add_action( "wp_ajax_jet_fb_save_tab__{$tab->slug()}", array( $tab, 'on_raw_request' ) );
72
73 add_filter(
74 'jet-form-builder/page-config/jfb-settings',
75 function ( $page_config ) use ( $tab ) {
76 $page_config[ $tab->slug() ] = apply_filters(
77 "jet-form-builder/tab-config/{$tab->slug()}",
78 $tab->on_load()
79 );
80
81 return $page_config;
82 }
83 );
84 }
85
86 /**
87 * @param $slug
88 *
89 * @return Base_Handler
90 */
91 public function tab( $slug ) {
92 $this->isset_tab( $slug );
93
94 return $this->_tabs[ $slug ];
95 }
96
97 public function options( $slug, $default = array() ) {
98 $this->isset_tab( $slug );
99
100 return $this->_tabs[ $slug ]->get_options( $default );
101 }
102
103 public function isset_tab( $slug ) {
104 if ( ! isset( $this->_tabs[ $slug ] ) ) {
105 _doing_it_wrong(
106 __METHOD__,
107 esc_html( "Undefined tab: $slug" ),
108 esc_html( Plugin::instance()->get_version() )
109 );
110 }
111 }
112
113 public function all( $default_tabs = array() ) {
114 $response = array();
115
116 foreach ( $this->_tabs as $slug => $tab ) {
117 $default = array();
118 if ( isset( $default_tabs[ $slug ] ) ) {
119 $default = $default_tabs[ $slug ];
120 }
121
122 $response[ $slug ] = $tab->get_options( $default );
123 }
124
125 return $response;
126 }
127
128 public function save_options_tab( $slug, $options ) {
129 if ( isset( $this->_tabs_options[ $slug ] ) && $this->_tabs_options[ $slug ] ) {
130 return;
131 }
132 $this->_tabs_options[ $slug ] = $options;
133 }
134
135 public function get_options_tab( $slug ) {
136 return $this->_tabs_options[ $slug ];
137 }
138
139
140 }
141