PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
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 / Triggers / claimed-listing-added.php
suretriggers / src / Integrations / geo-directory / Triggers Last commit date
claim-approved.php 1 year ago claim-rejected.php 1 year ago claimed-listing-added.php 1 year ago listing-added.php 1 year ago upgraded-listing.php 1 year ago
claimed-listing-added.php
213 lines
1 <?php
2 /**
3 * ClaimedListingAdded
4 *
5 * @package SureTriggers
6 * @category Integration
7 * @author BSF
8 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
9 * @link https://www.brainstormforce.com/
10 * @since 1.0.0
11 */
12
13 namespace SureTriggers\Integrations\GeoDirectory\Triggers;
14
15 use SureTriggers\Controllers\AutomationController;
16 use SureTriggers\Traits\SingletonLoader;
17 use SureTriggers\Integrations\WordPress\WordPress;
18
19 if ( ! class_exists( 'ClaimedListingAdded' ) ) :
20
21 /**
22 * ClaimedListingAdded
23 *
24 * @category ClaimedListingAdded
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 ClaimedListingAdded {
32
33 use SingletonLoader;
34
35 /**
36 * Integration name.
37 *
38 * @var string
39 */
40 public $integration = 'GeoDirectory';
41
42 /**
43 * Trigger name.
44 *
45 * @var string
46 */
47 public $trigger = 'geodir_claimed_listing_added';
48
49 /**
50 * Constructor.
51 */
52 public function __construct() {
53 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
54 }
55
56 /**
57 * Register trigger.
58 *
59 * @param array $triggers Registered triggers.
60 * @return array Modified triggers.
61 */
62 public function register( $triggers ) {
63 $triggers[ $this->integration ][ $this->trigger ] = [
64 'label' => __( 'New Listing Claim Submitted', 'suretriggers' ),
65 'action' => $this->trigger,
66 'common_action' => 'geodir_claim_post_item_inserted',
67 'function' => [ $this, 'trigger_listener' ],
68 'priority' => 10,
69 'accepted_args' => 1,
70 ];
71
72 return $triggers;
73 }
74
75 /**
76 * Trigger listener.
77 *
78 * @param int $claim_id Claim ID.
79 * @return void
80 */
81 public function trigger_listener( $claim_id ) {
82 if ( empty( $claim_id ) ) {
83 return;
84 }
85
86 $claim = null;
87 if ( class_exists( 'GeoDir_Claim_Post' ) ) {
88 $claim = \GeoDir_Claim_Post::get_item( $claim_id );
89 }
90
91 if ( empty( $claim ) || empty( $claim->post_id ) ) {
92 return;
93 }
94
95 $post_id = absint( $claim->post_id );
96 if ( ! $post_id ) {
97 return;
98 }
99
100 $post = get_post( $post_id );
101 if ( ! $post ) {
102 return;
103 }
104
105 $post_type = $post->post_type;
106
107 if ( ! function_exists( 'geodir_is_gd_post_type' ) || ! geodir_is_gd_post_type( $post_type ) ) {
108 return;
109 }
110
111 $user_id = isset( $claim->user_id ) ? absint( $claim->user_id ) : 0;
112 $user = WordPress::get_user_context( $user_id );
113
114 $description = $post->post_content;
115
116 $categories = [];
117 $cat_taxonomy = $post_type . 'category';
118 if ( taxonomy_exists( $cat_taxonomy ) ) {
119 $terms = wp_get_post_terms( $post_id, $cat_taxonomy );
120 if ( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
121 foreach ( $terms as $term ) {
122 $categories[] = $term->name;
123 }
124 }
125 }
126
127 $tags = [];
128 $tag_taxonomy = $post_type . '_tags';
129 if ( taxonomy_exists( $tag_taxonomy ) ) {
130 $terms = wp_get_post_terms( $post_id, $tag_taxonomy );
131 if ( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
132 foreach ( $terms as $term ) {
133 $tags[] = $term->name;
134 }
135 }
136 }
137
138 $gd_post = null;
139 if ( function_exists( 'geodir_get_post_info' ) ) {
140 $gd_post = geodir_get_post_info( $post_id );
141 }
142
143 $address = '';
144 $country = '';
145 $region = '';
146 $city = '';
147 $postal_code = '';
148 $latitude = '';
149 $longitude = '';
150
151 if ( $gd_post ) {
152 if ( isset( $gd_post->street ) ) {
153 $address = $gd_post->street;
154 }
155 if ( isset( $gd_post->country ) ) {
156 $country = $gd_post->country;
157 }
158 if ( isset( $gd_post->region ) ) {
159 $region = $gd_post->region;
160 }
161 if ( isset( $gd_post->city ) ) {
162 $city = $gd_post->city;
163 }
164 if ( isset( $gd_post->zip ) ) {
165 $postal_code = $gd_post->zip;
166 }
167 if ( isset( $gd_post->latitude ) ) {
168 $latitude = $gd_post->latitude;
169 }
170 if ( isset( $gd_post->longitude ) ) {
171 $longitude = $gd_post->longitude;
172 }
173 }
174
175 $context = array_merge(
176 $user,
177 [
178 'claim' => array_merge(
179 (array) $claim,
180 [
181 'status' => 'pending',
182 ]
183 ),
184 'listing_id' => $post_id,
185 'listing_title' => $post->post_title,
186 'listing_type' => $post_type,
187 'listing_url' => get_permalink( $post_id ),
188 'description' => $description,
189 'categories' => $categories,
190 'tags' => $tags,
191 'address' => $address,
192 'country' => $country,
193 'region' => $region,
194 'city' => $city,
195 'postal_code' => $postal_code,
196 'latitude' => $latitude,
197 'longitude' => $longitude,
198 ]
199 );
200
201 AutomationController::sure_trigger_handle_trigger(
202 [
203 'trigger' => $this->trigger,
204 'context' => $context,
205 ]
206 );
207 }
208 }
209
210 ClaimedListingAdded::get_instance();
211
212 endif;
213