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