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 / geo-directory / Triggers / claim-approved.php
suretriggers / src / Integrations / geo-directory / Triggers Last commit date
claim-approved.php 11 months ago claim-rejected.php 11 months ago claimed-listing-added.php 11 months ago listing-added.php 1 year ago upgraded-listing.php 11 months ago
claim-approved.php
204 lines
1 <?php
2 /**
3 * ClaimApproved
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( 'ClaimApproved' ) ) :
20
21 /**
22 * ClaimApproved
23 *
24 * @category ClaimApproved
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 ClaimApproved {
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_claim_approved';
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' => __( 'Listing Claim Approved', 'suretriggers' ),
65 'action' => $this->trigger,
66 'common_action' => 'geodir_claim_approved',
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 object $claim Claim object.
79 * @return void
80 */
81 public function trigger_listener( $claim ) {
82 if ( empty( $claim ) || empty( $claim->post_id ) ) {
83 return;
84 }
85
86 $post_id = absint( $claim->post_id );
87 if ( ! $post_id ) {
88 return;
89 }
90
91 $post = get_post( $post_id );
92 if ( ! $post ) {
93 return;
94 }
95
96 $post_type = $post->post_type;
97
98 if ( ! function_exists( 'geodir_is_gd_post_type' ) || ! geodir_is_gd_post_type( $post_type ) ) {
99 return;
100 }
101
102 $user_id = isset( $claim->user_id ) ? absint( $claim->user_id ) : 0;
103 $user = WordPress::get_user_context( $user_id );
104
105 $description = $post->post_content;
106
107 $categories = [];
108 $cat_taxonomy = $post_type . 'category';
109 if ( taxonomy_exists( $cat_taxonomy ) ) {
110 $terms = wp_get_post_terms( $post_id, $cat_taxonomy );
111 if ( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
112 foreach ( $terms as $term ) {
113 $categories[] = $term->name;
114 }
115 }
116 }
117
118 $tags = [];
119 $tag_taxonomy = $post_type . '_tags';
120 if ( taxonomy_exists( $tag_taxonomy ) ) {
121 $terms = wp_get_post_terms( $post_id, $tag_taxonomy );
122 if ( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
123 foreach ( $terms as $term ) {
124 $tags[] = $term->name;
125 }
126 }
127 }
128
129 $gd_post = null;
130 if ( function_exists( 'geodir_get_post_info' ) ) {
131 $gd_post = geodir_get_post_info( $post_id );
132 }
133
134 $address = '';
135 $country = '';
136 $region = '';
137 $city = '';
138 $postal_code = '';
139 $latitude = '';
140 $longitude = '';
141
142 if ( $gd_post ) {
143 if ( isset( $gd_post->street ) ) {
144 $address = $gd_post->street;
145 }
146 if ( isset( $gd_post->country ) ) {
147 $country = $gd_post->country;
148 }
149 if ( isset( $gd_post->region ) ) {
150 $region = $gd_post->region;
151 }
152 if ( isset( $gd_post->city ) ) {
153 $city = $gd_post->city;
154 }
155 if ( isset( $gd_post->zip ) ) {
156 $postal_code = $gd_post->zip;
157 }
158 if ( isset( $gd_post->latitude ) ) {
159 $latitude = $gd_post->latitude;
160 }
161 if ( isset( $gd_post->longitude ) ) {
162 $longitude = $gd_post->longitude;
163 }
164 }
165
166 $context = array_merge(
167 $user,
168 [
169 'claim' => array_merge(
170 (array) $claim,
171 [
172 'status' => 'approved',
173 ]
174 ),
175 'listing_id' => $post_id,
176 'listing_title' => $post->post_title,
177 'listing_type' => $post_type,
178 'listing_url' => get_permalink( $post_id ),
179 'description' => $description,
180 'categories' => $categories,
181 'tags' => $tags,
182 'address' => $address,
183 'country' => $country,
184 'region' => $region,
185 'city' => $city,
186 'postal_code' => $postal_code,
187 'latitude' => $latitude,
188 'longitude' => $longitude,
189 ]
190 );
191
192 AutomationController::sure_trigger_handle_trigger(
193 [
194 'trigger' => $this->trigger,
195 'context' => $context,
196 ]
197 );
198 }
199 }
200
201 ClaimApproved::get_instance();
202
203 endif;
204