PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.35
OttoKit: All-in-One Automation Platform v1.1.35
1.1.37 1.1.36 1.1.35 1.1.34 1.1.33 1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Integrations / geo-directory / Actions / remove-category-from-place.php
suretriggers / src / Integrations / geo-directory / Actions Last commit date
add-category-to-place.php 2 years ago add-place.php 11 months ago add-tag-to-place.php 2 years ago remove-category-from-place.php 2 years ago remove-tag-from-place.php 2 years ago
remove-category-from-place.php
124 lines
1 <?php
2 /**
3 * RemoveCategoryFromPlace.
4 * php version 5.6
5 *
6 * @category RemoveCategoryFromPlace
7 * @package SureTriggers
8 * @author BSF <username@example.com>
9 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
10 * @link https://www.brainstormforce.com/
11 * @since 1.0.0
12 */
13
14 namespace SureTriggers\Integrations\GeoDirectory\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18 use SureTriggers\Integrations\GeoDirectory\GeoDirectory;
19 use Exception;
20
21 /**
22 * RemoveCategoryFromPlace
23 *
24 * @category RemoveCategoryFromPlace
25 * @package SureTriggers
26 * @author BSF <username@example.com>
27 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
28 * @link https://www.brainstormforce.com/
29 * @since 1.0.0
30 */
31 class RemoveCategoryFromPlace extends AutomateAction {
32
33 /**
34 * Integration type.
35 *
36 * @var string
37 */
38 public $integration = 'GeoDirectory';
39
40 /**
41 * Action name.
42 *
43 * @var string
44 */
45 public $action = 'remove_category_from_place';
46
47 use SingletonLoader;
48
49 /**
50 * Register a action.
51 *
52 * @param array $actions actions.
53 * @return array
54 */
55 public function register( $actions ) {
56 $actions[ $this->integration ][ $this->action ] = [
57 'label' => __( 'Remove Category From Place', 'suretriggers' ),
58 'action' => $this->action,
59 'function' => [ $this, 'action_listener' ],
60 ];
61
62 return $actions;
63 }
64
65 /**
66 * Action listener.
67 *
68 * @param int $user_id user_id.
69 * @param int $automation_id automation_id.
70 * @param array $fields fields.
71 * @param array $selected_options selectedOptions.
72 *
73 * @return array
74 * @throws Exception Error.
75 */
76 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
77 $post_data = [];
78 $post_id = $selected_options['post'] ? $selected_options['post'] : 0;
79
80 $post_details = static::gd_update_post( $post_id, $selected_options, false );
81
82 $post_data = (array) get_post( $post_id );
83 return array_merge( $post_data, $post_details );
84 }
85
86 /**
87 * Update Place Table
88 *
89 * @param int $post_id post_id.
90 * @param array $gd_post post data.
91 * @param bool $update New or update.
92 *
93 * @return array
94 * @throws Exception Error.
95 */
96 public function gd_update_post( $post_id, $gd_post, $update ) {
97 global $wpdb;
98 $tags['categories'] = [];
99 $post_type = 'gd_place';
100 $taxonomy = $post_type . 'category';
101 $place_tag = explode( ',', $gd_post['place_categories'] );
102 $place_tag_ids = GeoDirectory::get_place_terms( $place_tag, $taxonomy );
103 $current_tags = wp_get_post_terms( $post_id, $taxonomy, [ 'fields' => 'ids' ] );
104
105 if ( is_array( $current_tags ) ) {
106 $tags_to_remove = array_intersect( $current_tags, $place_tag_ids );
107 if ( ! empty( $tags_to_remove ) ) {
108 wp_remove_object_terms( $post_id, $tags_to_remove, $taxonomy );
109 }
110 }
111 $placetags = wp_get_post_terms( $post_id, $taxonomy, [ 'fields' => 'names' ] );
112
113 if ( ! empty( $placetags ) && ! is_wp_error( $placetags ) ) {
114 $tags['categories'] = $placetags;
115 }
116 return $tags;
117 }
118
119
120
121 }
122
123 RemoveCategoryFromPlace::get_instance();
124