PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.0.42
OttoKit: All-in-One Automation Platform v1.0.42
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 2 years ago change-role.php 2 years ago create-comment.php 2 years ago create-post.php 2 years ago create-user-if-not-exists.php 2 years ago find-user-by-email.php 2 years ago find-user-by-id.php 2 years ago find-user-meta-by-key.php 2 years ago find-user-metas.php 2 years ago remove-role.php 2 years ago remove-user-meta.php 2 years ago remove-user.php 2 years ago send-mail.php 2 years ago set-post-meta.php 2 years ago set-user-meta.php 2 years ago update-post.php 2 years ago update-user.php 2 years ago
create-post.php
137 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( $field['name'] ) && isset( $selected_options[ $field['name'] ] ) && ( trim( wp_strip_all_tags( $selected_options[ $field['name'] ] ) ) !== '' ) ) {
79 if ( 'post_content' === $field['name'] ) {
80 $html_content = $selected_options[ $field['name'] ];
81 $patterns = [
82 '/<head\b[^>]*>.*?<\/head>/is',
83 '/<script\b[^>]*>.*?<\/script>/is',
84 '/<style\b[^>]*>.*?<\/style>/is',
85 ];
86 $html_content = preg_replace( $patterns, '', $html_content );
87 $result_arr[ $field['name'] ] = $html_content;
88 } else {
89 $result_arr[ $field['name'] ] = $selected_options[ $field['name'] ];
90 }
91 }
92 }
93
94 $meta_array = [];
95
96 if ( ! empty( $selected_options['post_meta'] ) ) {
97 foreach ( $selected_options['post_meta'] as $meta ) {
98 $meta_key = $meta['metaKey'];
99 $meta_value = $meta['metaValue'];
100 $meta_array[ $meta_key ] = $meta_value;
101 }
102 $result_arr['meta_input'] = $meta_array;
103 }
104
105 if ( isset( $selected_options['post_url'] ) && ! empty( $selected_options['post_url'] ) ) {
106 $url = $selected_options['post_url'];
107 $parts = explode( '/', $url );
108 $parts = array_values( array_filter( $parts ) );
109 $slug = $parts[ count( $parts ) - 1 ];
110 $post_exists = get_page_by_path( $slug, OBJECT, $selected_options['post_type'] );
111 if ( $post_exists ) {
112 $result_arr['ID'] = $post_exists->ID;
113 wp_update_post( $result_arr );
114 return get_post( $post_exists->ID );
115 } else {
116 throw new Exception( 'The URL entered is incorrect. Please provide the correct URL for the post' );
117 }
118 }
119
120 $post_id = wp_insert_post( $result_arr );
121
122 if ( ! $post_id || is_wp_error( $post_id ) ) {
123 $this->set_error(
124 [
125 'post_data' => $result_arr,
126 'msg' => __( 'Failed to insert post!', 'suretriggers' ),
127 ]
128 );
129 return false;
130 }
131
132 return get_post( $post_id );
133 }
134 }
135
136 CreatePost::get_instance();
137