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 / directories-pro / Triggers / review-published.php
suretriggers / src / Integrations / directories-pro / Triggers Last commit date
listing-deleted.php 3 weeks ago listing-published.php 3 weeks ago listing-updated.php 3 weeks ago new-listing-submitted.php 3 weeks ago new-review-submitted.php 3 weeks ago review-published.php 3 weeks ago
review-published.php
122 lines
1 <?php
2 /**
3 * ReviewPublished
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.1.26
11 */
12
13 namespace SureTriggers\Integrations\DirectoriesPro\Triggers;
14
15 use SureTriggers\Controllers\AutomationController;
16 use SureTriggers\Integrations\DirectoriesPro\DirectoriesPro;
17 use SureTriggers\Integrations\WordPress\WordPress;
18 use SureTriggers\Traits\SingletonLoader;
19
20 if ( ! class_exists( 'ReviewPublished' ) ) :
21
22 /**
23 * ReviewPublished
24 *
25 * @category ReviewPublished
26 * @package SureTriggers
27 * @author BSF <username@example.com>
28 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
29 * @link https://www.brainstormforce.com/
30 * @since 1.1.26
31 */
32 class ReviewPublished {
33
34 use SingletonLoader;
35
36 /**
37 * Integration name.
38 *
39 * @var string
40 */
41 public $integration = 'DirectoriesPro';
42
43 /**
44 * Trigger name.
45 *
46 * @var string
47 */
48 public $trigger = 'directories_pro_review_published';
49
50 /**
51 * Constructor.
52 */
53 public function __construct() {
54 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
55 }
56
57 /**
58 * Register trigger.
59 *
60 * @param array $triggers Registered triggers.
61 * @return array Modified triggers.
62 */
63 public function register( $triggers ) {
64 $triggers[ $this->integration ][ $this->trigger ] = [
65 'label' => __( 'Review Published', 'suretriggers' ),
66 'action' => $this->trigger,
67 'common_action' => 'transition_post_status',
68 'function' => [ $this, 'trigger_listener' ],
69 'priority' => 10,
70 'accepted_args' => 3,
71 ];
72
73 return $triggers;
74 }
75
76 /**
77 * Trigger listener.
78 *
79 * @param string $new_status New post status.
80 * @param string $old_status Old post status.
81 * @param \WP_Post $post Post object.
82 * @return void
83 */
84 public function trigger_listener( $new_status, $old_status, $post ) {
85 if ( 'publish' !== $new_status || 'publish' === $old_status || empty( $post ) ) {
86 return;
87 }
88
89 $bundle = DirectoriesPro::get_bundle( $post->post_type );
90 if ( ! DirectoriesPro::is_review_bundle( $bundle ) ) {
91 return;
92 }
93
94 $user = WordPress::get_user_context( absint( $post->post_author ) );
95 $parent = absint( $post->post_parent );
96
97 $context = array_merge(
98 $user,
99 [
100 'review_id' => $post->ID,
101 'review_title' => $post->post_title,
102 'review_content' => $post->post_content,
103 'status' => $post->post_status,
104 'listing_id' => $parent,
105 'listing_title' => $parent ? get_the_title( $parent ) : '',
106 'listing_url' => $parent ? get_permalink( $parent ) : '',
107 ]
108 );
109
110 AutomationController::sure_trigger_handle_trigger(
111 [
112 'trigger' => $this->trigger,
113 'context' => $context,
114 ]
115 );
116 }
117 }
118
119 ReviewPublished::get_instance();
120
121 endif;
122