PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.5.6.2
JetFormBuilder — Dynamic Blocks Form Builder v3.5.6.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 / includes / admin / tabs-handlers / options-handler.php
jetformbuilder / includes / admin / tabs-handlers Last commit date
base-handler.php 2 years ago options-handler.php 8 months ago tab-handler-manager.php 1 year ago
options-handler.php
96 lines
1 <?php
2
3 namespace Jet_Form_Builder\Admin\Tabs_Handlers;
4
5 if ( ! defined( 'WPINC' ) ) {
6 die;
7 }
8
9 class Options_Handler extends Base_Handler {
10
11 const OPTIONS = array(
12 'enable_dev_mode' => false,
13 'clear_on_uninstall' => false,
14 'disable_next_button' => true,
15 'scroll_on_next' => false,
16 'auto_focus' => false,
17 'form_records_access_capability' => 'manage_options',
18 'gfb_request_args_key' => '',
19 'gfb_request_args_value' => '',
20 'ssr_validation_method' => 'rest',
21 );
22
23 public function slug() {
24 return 'options-tab';
25 }
26
27 public function on_get_request() {
28 $options = array();
29
30 // phpcs:disable WordPress.Security.NonceVerification.Missing
31 foreach ( self::OPTIONS as $name => $default ) {
32
33 if ( ! array_key_exists( $name, $_POST ) ) {
34 continue;
35 }
36 if ( is_bool( $default ) ) {
37 $options[ $name ] = filter_var(
38 sanitize_key( $_POST[ $name ] ),
39 defined( 'FILTER_VALIDATE_BOOL' ) ? FILTER_VALIDATE_BOOL : FILTER_VALIDATE_BOOLEAN
40 );
41 } else {
42 $options[ $name ] = sanitize_text_field( wp_unslash( $_POST[ $name ] ?? '' ) );
43 }
44 }
45 // phpcs:enable WordPress.Security.NonceVerification.Missing
46 $result = $this->update_options( $options );
47
48 $this->send_response( $result );
49 }
50
51 public function on_load() {
52 $this->set_jfb_request_args();
53 return $this->get_options();
54 }
55
56 public function set_jfb_request_args() {
57 $options = $this->get_options();
58 $update_data = array();
59
60 if ( empty( $options['gfb_request_args_key'] ) || ctype_digit( (string) $options['gfb_request_args_key'] ) ) {
61 $update_data['gfb_request_args_key'] = $this->jfb_generate_str();
62 }
63
64 if ( empty( $options['gfb_request_args_value'] ) || ctype_digit( (string) $options['gfb_request_args_value'] ) ) {
65 $update_data['gfb_request_args_value'] = $this->jfb_generate_str() . $this->jfb_generate_str();
66 }
67
68 if ( ! empty( $update_data ) ) {
69 $this->update_options( $update_data );
70 $options = array_merge( $options, $update_data );
71 }
72
73 return $options;
74 }
75
76 public function jfb_generate_str() {
77 $letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
78 $digits = '0123456789';
79
80 $l = '';
81 for ( $i = 0; $i < 3; $i++ ) {
82 $l .= $letters[ wp_rand( 0, strlen( $letters ) - 1 ) ];
83 }
84
85 $d = '';
86 for ( $i = 0; $i < 3; $i++ ) {
87 $d .= $digits[ wp_rand( 0, strlen( $digits ) - 1 ) ];
88 }
89
90 $key_arr = str_split( $l . $d );
91 shuffle( $key_arr );
92
93 return implode( '', $key_arr );
94 }
95 }
96