PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.0.0.1
JetFormBuilder — Dynamic Blocks Form Builder v3.0.0.1
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 / blocks / conditional-block / rest-api / add-render-state-endpoint-option.php
jetformbuilder / includes / blocks / conditional-block / rest-api Last commit date
add-render-state-endpoint-option.php 3 years ago add-render-state-endpoint-table.php 3 years ago delete-render-states-endpoint.php 3 years ago rest-api-controller.php 3 years ago
add-render-state-endpoint-option.php
101 lines
1 <?php
2
3
4 namespace Jet_Form_Builder\Blocks\Conditional_Block\Rest_Api;
5
6 use Jet_Form_Builder\Blocks\Conditional_Block\Render_State;
7 use Jet_Form_Builder\Classes\Tools;
8 use Jet_Form_Builder\Rest_Api\Rest_Api_Endpoint_Base;
9
10 class Add_Render_State_Endpoint_Option extends Rest_Api_Endpoint_Base {
11
12 /**
13 * @return mixed
14 */
15 public static function get_rest_base() {
16 return 'render-states/add/option';
17 }
18
19 /**
20 * @return mixed
21 */
22 public static function get_methods() {
23 return \WP_REST_Server::CREATABLE;
24 }
25
26 /**
27 * @param \WP_REST_Request $request
28 *
29 * @return mixed
30 */
31 public function run_callback( \WP_REST_Request $request ) {
32 $body = $request->get_json_params();
33 $label = $body['value'] ?? '';
34 $value = $this->format_name( $label );
35
36 if ( ! $value ) {
37 return new \WP_REST_Response(
38 array(
39 'message' => __( 'Empty render state name', 'jet-form-builder' ),
40 ),
41 400
42 );
43 }
44
45 $saved = Tools::decode_json( get_option( Render_State::OPTION_KEY, '[]' ) );
46
47 $find = array_filter(
48 $saved,
49 function ( $item ) use ( $value ) {
50 return $item['value'] === $value;
51 }
52 );
53
54 if ( count( $find ) ) {
55 return new \WP_REST_Response(
56 array(
57 'message' => sprintf(
58 /* translators: %s - name of render state */
59 __( 'Render state with name "%s" is already exist', 'jet-form-builder' ),
60 $value
61 ),
62 ),
63 400
64 );
65 }
66
67 $new_state = array(
68 'label' => $label,
69 'value' => $value,
70 );
71
72 $saved[] = $new_state;
73
74 $result = Render_State::update_states( $saved );
75
76 if ( ! $result ) {
77 return new \WP_REST_Response(
78 array(
79 'message' => __( 'Something went wrong', 'jet-form-builder' ),
80 ),
81 400
82 );
83 }
84
85 $new_state['is_custom'] = true;
86
87 return new \WP_REST_Response(
88 array(
89 'message' => __( 'Successful added render state', 'jet-form-builder' ),
90 'state' => $new_state,
91 )
92 );
93 }
94
95 private function format_name( string $title ): string {
96 $name = preg_replace( '#[\s\-\_]+#', '.', $title );
97
98 return strtoupper( $name );
99 }
100 }
101