PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.0.25
OttoKit: All-in-One Automation Platform v1.0.25
1.1.38 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 / wordpress / actions / create-post.php
suretriggers / src / Integrations / wordpress / actions Last commit date
add-new-role.php 3 years ago change-role.php 2 years ago create-comment.php 3 years ago create-post.php 3 years ago create-user-if-not-exists.php 2 years ago find-user-by-id.php 2 years ago find-user-meta-by-key.php 3 years ago find-user-metas.php 3 years ago remove-role.php 3 years ago remove-user.php 3 years ago send-mail.php 3 years ago set-post-meta.php 3 years ago set-user-meta.php 3 years ago update-post.php 3 years ago update-user.php 3 years ago
create-post.php
127 lines
1 <?php
2 /**
3 * CreatePost.
4 * php version 5.6
5 *
6 * @category CreatePost
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\Wordpress\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18 use Exception;
19
20 /**
21 * CreatePost
22 *
23 * @category CreatePost
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 CreatePost extends AutomateAction {
31
32 /**
33 * Integration type.
34 *
35 * @var string
36 */
37 public $integration = 'WordPress';
38
39 /**
40 * Action name.
41 *
42 * @var string
43 */
44 public $action = 'create_update_post';
45
46 use SingletonLoader;
47
48 /**
49 * Register a action.
50 *
51 * @param array $actions actions.
52 * @return array
53 */
54 public function register( $actions ) {
55 $actions[ $this->integration ][ $this->action ] = [
56 'label' => __( 'Post: Create a Post', 'suretriggers' ),
57 'action' => 'create_update_post',
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 * @return bool|object
73 * @throws Exception Error.
74 */
75 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
76 $result_arr = [];
77 foreach ( $fields as $field ) {
78 if ( isset( $selected_options[ $field['name'] ] ) && ( trim( wp_strip_all_tags( $selected_options[ $field['name'] ] ) ) !== '' ) ) {
79
80 $result_arr[ $field['name'] ] = $selected_options[ $field['name'] ];
81 }
82 }
83
84 $meta_array = [];
85
86 if ( ! empty( $selected_options['post_meta'] ) ) {
87 foreach ( $selected_options['post_meta'] as $meta ) {
88 $meta_key = $meta['metaKey'];
89 $meta_value = $meta['metaValue'];
90 $meta_array[ $meta_key ] = $meta_value;
91 }
92 $result_arr['meta_input'] = $meta_array;
93 }
94
95 if ( isset( $selected_options['post_url'] ) && ! empty( $selected_options['post_url'] ) ) {
96 $url = $selected_options['post_url'];
97 $parts = explode( '/', $url );
98 $parts = array_values( array_filter( $parts ) );
99 $slug = $parts[ count( $parts ) - 1 ];
100 $post_exists = get_page_by_path( $slug, OBJECT, $selected_options['post_type'] );
101 if ( $post_exists ) {
102 $result_arr['ID'] = $post_exists->ID;
103 wp_update_post( $result_arr );
104 return get_post( $post_exists->ID );
105 } else {
106 throw new Exception( 'The URL entered is incorrect. Please provide the correct URL for the post' );
107 }
108 }
109
110 $post_id = wp_insert_post( $result_arr );
111
112 if ( ! $post_id || is_wp_error( $post_id ) ) {
113 $this->set_error(
114 [
115 'post_data' => $result_arr,
116 'msg' => __( 'Failed to insert post!', 'suretriggers' ),
117 ]
118 );
119 return false;
120 }
121
122 return get_post( $post_id );
123 }
124 }
125
126 CreatePost::get_instance();
127