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