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 / new-review-submitted.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
new-review-submitted.php
132 lines
1 <?php
2 /**
3 * NewReviewSubmitted
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( 'NewReviewSubmitted' ) ) :
21
22 /**
23 * NewReviewSubmitted
24 *
25 * @category NewReviewSubmitted
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 NewReviewSubmitted {
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_new_review_submitted';
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' => __( 'New Review Submitted', '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 ( empty( $post ) || 'auto-draft' === $new_status || 'trash' === $new_status ) {
86 return;
87 }
88
89 // See NewListingSubmitted::trigger_listener() for why this guards on old_status
90 // instead of save_post's $update flag (avoids firing on the wp-admin auto-draft).
91 if ( ! in_array( $old_status, [ 'new', 'auto-draft' ], true ) ) {
92 return;
93 }
94
95 if ( wp_is_post_revision( $post->ID ) || wp_is_post_autosave( $post->ID ) ) {
96 return;
97 }
98
99 $bundle = DirectoriesPro::get_bundle( $post->post_type );
100 if ( ! DirectoriesPro::is_review_bundle( $bundle ) ) {
101 return;
102 }
103
104 $user = WordPress::get_user_context( absint( $post->post_author ) );
105 $parent = absint( $post->post_parent );
106
107 $context = array_merge(
108 $user,
109 [
110 'review_id' => $post->ID,
111 'review_title' => $post->post_title,
112 'review_content' => $post->post_content,
113 'status' => $post->post_status,
114 'listing_id' => $parent,
115 'listing_title' => $parent ? get_the_title( $parent ) : '',
116 'listing_url' => $parent ? get_permalink( $parent ) : '',
117 ]
118 );
119
120 AutomationController::sure_trigger_handle_trigger(
121 [
122 'trigger' => $this->trigger,
123 'context' => $context,
124 ]
125 );
126 }
127 }
128
129 NewReviewSubmitted::get_instance();
130
131 endif;
132