PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.32
OttoKit: All-in-One Automation Platform v1.1.32
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 / spaces-engine / actions / create-space.php
suretriggers / src / Integrations / spaces-engine / actions Last commit date
create-space.php 1 month ago delete-space.php 1 month ago update-space.php 1 month ago
create-space.php
128 lines
1 <?php
2 /**
3 * CreateSpace.
4 * php version 5.6
5 *
6 * @category CreateSpace
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\SpacesEngine\Actions;
15
16 use Exception;
17 use SureTriggers\Integrations\AutomateAction;
18 use SureTriggers\Integrations\WordPress\WordPress;
19 use SureTriggers\Traits\SingletonLoader;
20
21 /**
22 * CreateSpace
23 *
24 * @category CreateSpace
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 CreateSpace extends AutomateAction {
32
33 /**
34 * Integration type.
35 *
36 * @var string
37 */
38 public $integration = 'SpacesEngine';
39
40 /**
41 * Action name.
42 *
43 * @var string
44 */
45 public $action = 'spaces_engine_create_space';
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' => __( 'Create a Space', '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 Selected options.
72 * @throws Exception Exception.
73 *
74 * @return bool|array|void
75 */
76 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
77 $title = isset( $selected_options['space_title'] ) ? sanitize_text_field( $selected_options['space_title'] ) : '';
78 $description = isset( $selected_options['space_description'] ) ? wp_kses_post( $selected_options['space_description'] ) : '';
79 $author_email = isset( $selected_options['space_author_email'] ) ? sanitize_email( $selected_options['space_author_email'] ) : '';
80
81 if ( empty( $title ) || empty( $description ) ) {
82 return [
83 'status' => 'error',
84 'message' => __( 'Space title and description are required.', 'suretriggers' ),
85 ];
86 }
87
88 $author_id = $user_id;
89 if ( ! empty( $author_email ) && is_email( $author_email ) ) {
90 $author = get_user_by( 'email', $author_email );
91 if ( $author ) {
92 $author_id = $author->ID;
93 }
94 }
95
96 $args = [
97 'post_title' => $title,
98 'post_type' => 'wpe_wpspace',
99 'post_status' => 'publish',
100 'post_content' => $description,
101 'post_author' => $author_id,
102 ];
103
104 $space_id = wp_insert_post( $args, true );
105
106 if ( is_wp_error( $space_id ) ) {
107 throw new Exception( $space_id->get_error_message() );
108 }
109
110 $space_desc = isset( $selected_options['space_description'] ) ? $selected_options['space_description'] : '';
111 add_post_meta( $space_id, 'wpe_wps_short_description', sanitize_text_field( $space_desc ) );
112
113 if ( ! empty( $selected_options['space_category'] ) ) {
114 $category = is_array( $selected_options['space_category'] )
115 ? array_map( 'intval', $selected_options['space_category'] )
116 : [ absint( $selected_options['space_category'] ) ];
117 wp_set_object_terms( $space_id, $category, 'wp_space_category' );
118 }
119
120 $context = WordPress::get_post_context( $space_id );
121 $context = array_merge( $context, WordPress::get_user_context( $author_id ) );
122
123 return $context;
124 }
125 }
126
127 CreateSpace::get_instance();
128