PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.0.8
JetFormBuilder — Dynamic Blocks Form Builder v3.0.8
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 / dynamic-value.php
jetformbuilder / includes / blocks Last commit date
advanced-rules 3 years ago button-types 3 years ago conditional-block 3 years ago exceptions 3 years ago modules 3 years ago render 3 years ago ssr-validation 3 years ago types 3 years ago validation-messages 3 years ago action-buttons-manager.php 3 years ago block-helper.php 3 years ago blocks-repository-base.php 3 years ago default-blocks-repository.php 3 years ago dynamic-value.php 3 years ago form-builder-blocks-repository.php 3 years ago manager.php 3 years ago switch-page-on-change.php 3 years ago validation.php 3 years ago
dynamic-value.php
97 lines
1 <?php
2
3
4 namespace Jet_Form_Builder\Blocks;
5
6
7 use Jet_Form_Builder\Blocks\Types\Base;
8 use Jet_Form_Builder\Blocks\Types\Conditional_Block;
9 use Jet_Form_Builder\Classes\Tools;
10 use Jet_Form_Builder\Plugin;
11
12 use \Jet_Form_Builder\Blocks\Render\Base as RenderBase;
13
14
15 class Dynamic_Value {
16
17 const HANDLE = 'jet-fb-dynamic-value';
18
19 public function __construct() {
20 add_action(
21 'jet-form-builder/before-start-form-row',
22 array( $this, 'add_dynamic_value_block' )
23 );
24 add_filter(
25 'jet-form-builder/render/hidden-field',
26 array( $this, 'on_render_hidden_field' ),
27 10, 2
28 );
29 add_action(
30 'wp_enqueue_scripts',
31 array( $this, 'register_scripts' )
32 );
33 add_action(
34 'jet_plugins/frontend/register_scripts',
35 array( $this, 'register_scripts' )
36 );
37 }
38
39 public function register_scripts() {
40 wp_register_script(
41 self::HANDLE,
42 Plugin::instance()->plugin_url( 'assets/js/frontend/dynamic.value{min}.js' ),
43 array(
44 Conditional_Block::HANDLE,
45 ),
46 Plugin::instance()->get_version(),
47 true
48 );
49 }
50
51 public function add_dynamic_value_block( Base $block ) {
52 $groups = $this->get_groups_json( $block );
53
54 if ( ! $groups ) {
55 return;
56 }
57
58 $block->add_attribute( 'data-value', Tools::esc_attr( $groups ) );
59 }
60
61 public function on_render_hidden_field( array $args, RenderBase $block ): array {
62 $groups = $this->get_groups_json( $block->block_type );
63
64 if ( ! $groups ) {
65 return $args;
66 }
67
68 $block->add_attribute( 'data-dynamic-value', Tools::esc_attr( $groups ) );
69
70 return $args;
71 }
72
73 protected function get_groups_json( Base $block ): string {
74 $groups = $block->block_attrs['value']['groups'] ?? array();
75
76 if ( ! count( $groups ) ) {
77 return '';
78 }
79
80 wp_enqueue_script( self::HANDLE );
81
82 foreach ( $groups as &$group ) {
83 $group['to_set'] = jet_fb_parse_dynamic( $group['to_set'] ?? '' );
84
85 if ( ! isset( $group['conditions'] ) ) {
86 continue;
87 }
88
89 foreach ( $group['conditions'] as &$condition ) {
90 $condition['value'] = jet_fb_parse_dynamic( $condition['value'] ?? '' );
91 }
92 }
93
94 return Tools::encode_json( $groups );
95 }
96
97 }