PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.33
OttoKit: All-in-One Automation Platform v1.1.33
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 / voxel / actions / remove-post-from-collection.php
suretriggers / src / Integrations / voxel / actions Last commit date
add-post-profile-wall.php 10 months ago add-post-to-collection.php 10 months ago add-post-wall.php 10 months ago assign-listing-plan-to-user.php 5 months ago change-membership-plan.php 6 months ago claim-post.php 10 months ago delete-post.php 6 months ago delete-wall-post.php 10 months ago find-post.php 6 months ago follow-post.php 10 months ago get-address-by-coordinates.php 10 months ago get-coordinates-by-address.php 10 months ago get-member-by-email.php 9 months ago get-member-by-id.php 9 months ago get-member-by-profile-id.php 9 months ago get-post-by-id.php 10 months ago get-posts-by-voxel-field.php 10 months ago new-collection-post.php 1 year ago new-post.php 1 year ago new-profile.php 10 months ago remove-post-from-collection.php 10 months ago send-custom-in-app-notification.php 2 years ago send-direct-message.php 10 months ago send-email.php 10 months ago set-collection-post-verified.php 10 months ago set-custom-priority.php 10 months ago set-post-verified.php 10 months ago set-profile-verified.php 10 months ago update-collection-post.php 1 year ago update-post.php 10 months ago update-profile.php 10 months ago update-voxel-post-field.php 9 months ago update-voxel-taxonomy.php 9 months ago
remove-post-from-collection.php
148 lines
1 <?php
2 /**
3 * RemovePostFromCollection.
4 * php version 5.6
5 *
6 * @category RemovePostFromCollection
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\Voxel\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18 use Exception;
19
20 /**
21 * RemovePostFromCollection
22 *
23 * @category RemovePostFromCollection
24 * @package SureTriggers
25 * @author BSF <username@example.com>
26 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
27 * @link https://www.brainstormforce.com/
28 * @since 1.0.0
29 */
30 class RemovePostFromCollection extends AutomateAction {
31
32 /**
33 * Integration type.
34 *
35 * @var string
36 */
37 public $integration = 'Voxel';
38
39 /**
40 * Action name.
41 *
42 * @var string
43 */
44 public $action = 'voxel_remove_post_from_collection';
45
46 use SingletonLoader;
47
48 /**
49 * Register action.
50 *
51 * @param array $actions action data.
52 * @return array
53 */
54 public function register( $actions ) {
55 $actions[ $this->integration ][ $this->action ] = [
56 'label' => __( 'Remove Post from Collection', 'suretriggers' ),
57 'action' => 'voxel_remove_post_from_collection',
58 'function' => [ $this, 'action_listener' ],
59 ];
60
61 return $actions;
62 }
63
64 /**
65 * Action listener.
66 *
67 * @param int $user_id user_id.
68 * @param int $automation_id automation_id.
69 * @param array $fields fields.
70 * @param array $selected_options selectedOptions.
71 *
72 * @throws Exception Exception.
73 *
74 * @return bool|array
75 */
76 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
77 // Get the collection ID.
78 $collection_id = (int) $selected_options['collection_post_id'];
79
80 // Get the post ID.
81 $post_id = (int) $selected_options['post_id'];
82
83 if ( ! class_exists( 'Voxel\Post' ) ) {
84 return false;
85 }
86
87 // Get the post.
88 $post = \Voxel\Post::force_get( $post_id );
89
90 if ( ! $post ) {
91 return [
92 'status' => 'error',
93 'message' => 'Post not found',
94 ];
95 }
96
97 // Get the collection.
98 $collection = \Voxel\Post::force_get( $collection_id );
99
100 if ( ! $collection ) {
101 return [
102 'status' => 'error',
103 'message' => 'Collection not found',
104 ];
105 }
106
107 // Get the items field.
108 $field = $collection->get_field( 'items' );
109
110 // Get previous items.
111 $items = $field->get_value();
112
113 // If items are not available, return error.
114 if ( ! $items ) {
115 return [
116 'status' => 'error',
117 'message' => 'Collection items not found',
118 ];
119 }
120
121 // If the post is not in the collection, then skip.
122 if ( ! in_array( $post_id, $items, true ) ) {
123 return [
124 'status' => 'error',
125 'message' => 'Post not found in collection',
126 ];
127 }
128
129 // Remove the post from the items.
130 $items = array_diff( $items, [ $post_id ] );
131
132 // Add the post to the collection.
133 $field->set_value( $items );
134
135 return [
136 'success' => true,
137 'message' => esc_attr__( 'Post removed from collection successfully', 'suretriggers' ),
138 'post_id' => $post_id,
139 'collection_id' => $collection_id,
140 'collection_url' => get_permalink( $collection_id ),
141 'collection_items' => wp_json_encode( $items ),
142 ];
143 }
144
145 }
146
147 RemovePostFromCollection::get_instance();
148