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 / upgraded-listing.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
upgraded-listing.php
220 lines
1 <?php
2 /**
3 * UpgradedListing
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( 'UpgradedListing' ) ) :
20
21 /**
22 * UpgradedListing
23 *
24 * @category UpgradedListing
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 UpgradedListing {
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_listing_upgraded';
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 Package Upgraded', 'suretriggers' ),
65 'action' => $this->trigger,
66 'common_action' => 'geodir_pricing_complete_package_post_updated',
67 'function' => [ $this, 'trigger_listener' ],
68 'priority' => 10,
69 'accepted_args' => 5,
70 ];
71
72 return $triggers;
73 }
74
75 /**
76 * Trigger listener.
77 *
78 * @param int $post_id Post ID.
79 * @param int $package_id Package ID.
80 * @param int $post_package_id Post Package ID.
81 * @param int $revision_id Revision ID.
82 * @param object $item Package item object.
83 * @return void
84 */
85 public function trigger_listener( $post_id, $package_id, $post_package_id, $revision_id, $item ) {
86 if ( empty( $post_id ) ) {
87 return;
88 }
89
90 $post = get_post( $post_id );
91 if ( ! $post ) {
92 return;
93 }
94
95 $post_type = $post->post_type;
96
97 if ( ! function_exists( 'geodir_is_gd_post_type' ) || ! geodir_is_gd_post_type( $post_type ) ) {
98 return;
99 }
100
101 $user_id = absint( $post->post_author );
102 $user = WordPress::get_user_context( $user_id );
103
104 $description = $post->post_content;
105
106 $categories = [];
107 $cat_taxonomy = $post_type . 'category';
108 if ( taxonomy_exists( $cat_taxonomy ) ) {
109 $terms = wp_get_post_terms( $post_id, $cat_taxonomy );
110 if ( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
111 foreach ( $terms as $term ) {
112 $categories[] = $term->name;
113 }
114 }
115 }
116
117 $tags = [];
118 $tag_taxonomy = $post_type . '_tags';
119 if ( taxonomy_exists( $tag_taxonomy ) ) {
120 $terms = wp_get_post_terms( $post_id, $tag_taxonomy );
121 if ( ! is_wp_error( $terms ) && ! empty( $terms ) ) {
122 foreach ( $terms as $term ) {
123 $tags[] = $term->name;
124 }
125 }
126 }
127
128 $attachments = [];
129 if ( function_exists( 'geodir_get_images' ) ) {
130 $images = geodir_get_images( $post_id );
131 if ( ! empty( $images ) ) {
132 foreach ( $images as $image ) {
133 if ( ! empty( $image->file ) ) {
134 $attachments[] = $image->file;
135 }
136 }
137 }
138 }
139
140 $package = function_exists( 'geodir_pricing_get_package' ) ? geodir_pricing_get_package( $package_id ) : null;
141 $package_name = ! empty( $package ) ? $package->name : '';
142 $package_amount = ! empty( $package ) ? $package->amount : '';
143 $package_days = ! empty( $package ) && function_exists( 'geodir_pricing_package_alive_days' ) ? geodir_pricing_package_alive_days( $package ) : '';
144
145 $address = '';
146 $country = '';
147 $region = '';
148 $city = '';
149 $postal_code = '';
150 $latitude = '';
151 $longitude = '';
152
153
154 $gd_post = null;
155 if ( function_exists( 'geodir_get_post_info' ) ) {
156 $gd_post = geodir_get_post_info( $post_id );
157 }
158
159 if ( $gd_post ) {
160 if ( isset( $gd_post->street ) ) {
161 $address = $gd_post->street;
162 }
163 if ( isset( $gd_post->country ) ) {
164 $country = $gd_post->country;
165 }
166 if ( isset( $gd_post->region ) ) {
167 $region = $gd_post->region;
168 }
169 if ( isset( $gd_post->city ) ) {
170 $city = $gd_post->city;
171 }
172 if ( isset( $gd_post->zip ) ) {
173 $postal_code = $gd_post->zip;
174 }
175 if ( isset( $gd_post->latitude ) ) {
176 $latitude = $gd_post->latitude;
177 }
178 if ( isset( $gd_post->longitude ) ) {
179 $longitude = $gd_post->longitude;
180 }
181 }
182
183 $context = array_merge(
184 $user,
185 [
186 'listing_id' => $post_id,
187 'listing_title' => $post->post_title,
188 'listing_type' => $post_type,
189 'listing_url' => get_permalink( $post_id ),
190 'description' => $description,
191 'categories' => $categories,
192 'tags' => $tags,
193 'attachments' => $attachments,
194 'address' => $address,
195 'country' => $country,
196 'region' => $region,
197 'city' => $city,
198 'postal_code' => $postal_code,
199 'latitude' => $latitude,
200 'longitude' => $longitude,
201 'package_id' => $package_id,
202 'package_name' => $package_name,
203 'package_amount' => $package_amount,
204 'package_days' => $package_days,
205 ]
206 );
207
208 AutomationController::sure_trigger_handle_trigger(
209 [
210 'trigger' => $this->trigger,
211 'context' => $context,
212 ]
213 );
214 }
215 }
216
217 UpgradedListing::get_instance();
218
219 endif;
220