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