PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.5.4
JetFormBuilder — Dynamic Blocks Form Builder v3.5.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 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 / modules / actions-v2 / insert-term / properties / update-action.php
jetformbuilder / modules / actions-v2 / insert-term / properties Last commit date
abstract-term-modifier.php 1 year ago base-term-action.php 1 year ago insert-action.php 1 year ago term-id-property.php 1 year ago term-meta-property.php 1 year ago term-modifier.php 1 year ago term-name-property.php 1 year ago term-parent-id-property.php 1 year ago term-slug-property.php 1 year ago term-taxonomy-property.php 1 year ago update-action.php 1 year ago
update-action.php
100 lines
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\Exceptions\Action_Exception;
7
8 // If this file is called directly, abort.
9 if ( ! defined( 'WPINC' ) ) {
10 die;
11 }
12
13 class Update_Action extends Base_Term_Action {
14
15 public function get_id(): string {
16 return 'update';
17 }
18
19 public static function is_supported( Abstract_Modifier $modifier ): bool {
20 return ! empty( $modifier->source_arr['term_id'] ?? 0 );
21 }
22
23 /**
24 * @throws Action_Exception
25 */
26 public function do_action() {
27 if ( ! $this->pre_check() ) {
28 return;
29 }
30
31 $taxonomy = sanitize_text_field( $this->modifier->source_arr['taxonomy'] ?? '' );
32
33 if ( ! $this->user_can_manage_taxonomy_terms( $taxonomy ) ) {
34 throw new Action_Exception(
35 'failed',
36 esc_html( 'You are not allowed to manage this taxonomy' )
37 );
38 }
39
40 $term_id = absint( $this->modifier->source_arr['term_id'] ?? 0 );
41 $parent_id = absint( $this->modifier->source_arr['parent'] ?? 0 );
42 $name = sanitize_text_field( $this->modifier->source_arr['name'] ?? '' );
43 $slug = sanitize_title( $this->modifier->source_arr['slug'] ?? '' );
44 $args = array();
45
46 if ( 0 === $term_id || '' === $taxonomy ) {
47 throw new Action_Exception(
48 'failed',
49 esc_html( 'Term ID and Taxonomy are required for term update action' )
50 );
51 }
52
53 if ( ! empty( $name ) ) {
54 $args['name'] = $name;
55 } else {
56 throw new Action_Exception(
57 esc_html( 'Term name is required' )
58 );
59 }
60
61 if ( ! empty( $slug ) ) {
62 $args['slug'] = $slug;
63 } else {
64 $args['slug'] = $name;
65 }
66
67 if ( empty( $parent_id ) ) {
68 $args['parent'] = 0;
69 }
70
71 if ( is_taxonomy_hierarchical( $taxonomy ) && ! empty( $parent_id ) && 0 !== (int) $parent_id ) {
72 $parent_term = get_term( $parent_id, $taxonomy );
73
74 if ( $parent_term && ! is_wp_error( $parent_term ) ) {
75 $args['parent'] = $parent_id;
76 } else {
77 throw new Action_Exception(
78 'failed',
79 esc_html( 'Invalid parent ID for term with ID ' . $term_id )
80 );
81 }
82 }
83
84 $result = wp_update_term(
85 $term_id,
86 $taxonomy,
87 $args
88 );
89
90 if ( is_wp_error( $result ) ) {
91 throw new Action_Exception(
92 'failed',
93 esc_html( $result->get_error_message() )
94 );
95 }
96
97 $this->inserted_id = $result['term_id'];
98 }
99 }
100