PluginProbe
JetFormBuilder — Dynamic Blocks Form Builder / 1.0.3
JetFormBuilder — Dynamic Blocks Form Builder v1.0.3
3.6.6.1 3.6.6 3.6.5.4 3.6.5.3 3.6.5.2 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 All 134 releases
jetformbuilder / includes / blocks / render / calculated-field-render.php

calculated-field-render.php in JetFormBuilder — Dynamic Blocks Form Builder 1.0.3, at includes/blocks/render/calculated-field-render.php

73 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Jet_Form_Builder\Blocks\Render;
4
5 // If this file is called directly, abort.
6 if ( ! defined( 'WPINC' ) ) {
7 die;
8 }
9
10 /**
11 * Define text field renderer class
12 */
13 class Calculated_Field_Render extends Base {
14
15 public function get_name() {
16 return 'calculated-field';
17 }
18
19 /**
20 * Get calulation formula for calculated field
21 *
22 * @return [type] [description]
23 */
24 public function get_calculated_data( $args ) {
25
26 if ( empty( $args['calc_formula'] ) ) {
27 return '';
28 }
29
30 $listen_fields = array();
31
32 $formula = preg_replace_callback(
33 '/%([a-zA-Z-_]+)::([a-zA-Z0-9-_]+)%/',
34 function ( $matches ) use ( &$listen_fields ) {
35
36 switch ( strtolower( $matches[1] ) ) {
37 case 'field':
38
39 $listen_fields[] = $matches[2];
40
41 return '%' . $matches[2] . '%';
42
43 case 'meta':
44
45 return get_post_meta( $this->post->ID, $matches[2], true );
46
47 default:
48 $macros_name = $matches[1];
49 $field_key = isset( $matches[2] ) ? $matches[2] : '';
50
51 if ( $field_key ) {
52 $listen_fields[] = $field_key;
53 }
54
55 return apply_filters( "jet-engine/calculated-data/$macros_name", $matches[0], $matches );
56 }
57
58 },
59 $args['calc_formula']
60 );
61
62 $formula = str_replace( '^', '**', $formula );
63
64 return array(
65 'formula' => $formula,
66 'listen_fields' => $listen_fields,
67 'listen_to' => $listen_fields,
68 );
69
70 }
71
72 }
73