PluginProbe
JetFormBuilder — Dynamic Blocks Form Builder / 3.6.5.4
JetFormBuilder — Dynamic Blocks Form Builder v3.6.5.4
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 / modules / actions-v2 / insert-term / properties / term-meta-property.php

term-meta-property.php in JetFormBuilder — Dynamic Blocks Form Builder 3.6.5.4, at modules/actions-v2/insert-term/properties/term-meta-property.php

87 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace JFB_Modules\Actions_V2\Insert_Term\Properties;
4
5 use Jet_Form_Builder\Actions\Methods\Abstract_Modifier;
6 use Jet_Form_Builder\Actions\Methods\Object_Dynamic_Property;
7 use Jet_Form_Builder\Classes\Tools;
8 use Jet_Form_Builder\Actions\Methods\Base_Object_Property;
9 use Jet_Form_Builder\Exceptions\Silence_Exception;
10
11 // If this file is called directly, abort.
12 if ( ! defined( 'WPINC' ) ) {
13 die;
14 }
15
16 class Term_Meta_Property extends Base_Object_Property implements Object_Dynamic_Property {
17
18 public function get_id(): string {
19 return 'term_meta';
20 }
21
22 public function get_label(): string {
23 return __( 'Term Meta', 'jet-form-builder' );
24 }
25
26 public function is_supported( string $key, $value ): bool {
27 return true;
28 }
29
30 /**
31 * @param Abstract_Modifier $modifier
32 */
33 public function do_before( string $key, $value, Abstract_Modifier $modifier ) {
34 if ( ! Tools::is_repeater_val( $value ) ) {
35 $this->set_meta(
36 array(
37 $key => $value,
38 )
39 );
40 return;
41 }
42
43 $this->set_meta(
44 array(
45 $key => Tools::prepare_repeater_value( $value, $modifier->fields_map ),
46 )
47 );
48 }
49
50 public function do_after( Abstract_Modifier $modifier ) {
51 /** @var Base_Term_Action $action */
52 $action = $modifier->get_action();
53 $id = $action->get_inserted();
54
55 if ( ! $id ) {
56 return;
57 }
58
59 foreach ( $this->value as $key => $value ) {
60 update_term_meta( $id, $key, $value );
61 }
62 }
63
64 public function set_meta( array $meta ) {
65 if ( ! is_array( $this->value ) ) {
66 $this->value = array();
67 }
68
69 $this->value = array_merge( $this->value, $meta );
70 }
71
72 public static function prepare_meta( array $meta ): array {
73 foreach ( $meta as $meta_key => $meta_row ) {
74 if ( ! empty( $meta_row['key'] ) ) {
75 $meta[ $meta_row['key'] ] = $meta_row['value'];
76 unset( $meta[ $meta_key ] );
77 }
78 }
79
80 return $meta;
81 }
82
83 public function get_value( Abstract_Modifier $modifier ) {
84 throw new Silence_Exception();
85 }
86 }
87