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 / woocommerce / triggers / review-product.php
suretriggers / src / Integrations / woocommerce / triggers Last commit date
add-product-to-cart.php 3 years ago customer-created.php 2 years ago customer-order-count-reach-specific-count.php 2 years ago customer-total-spend-reach-specific-amount.php 2 years ago order-created.php 11 months ago order-note-added.php 2 years ago order-paid.php 10 months ago order-status-changed.php 2 years ago purchase-product-category.php 1 year ago purchase-product.php 1 year ago purchase-variable-product.php 1 year ago review-product.php 3 years ago subscription-var-purchase.php 1 year ago view-product.php 2 years ago
review-product.php
138 lines
1 <?php
2 /**
3 * ReviewProduct.
4 * php version 5.6
5 *
6 * @category ReviewProduct
7 * @package SureTriggers
8 * @author BSF <username@example.com>
9 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
10 * @link https://www.brainstormforce.com/
11 * @since 1.0.0
12 */
13
14 namespace SureTriggers\Integrations\Wordpress\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Integrations\WooCommerce\WooCommerce;
18 use SureTriggers\Integrations\WordPress\WordPress;
19 use SureTriggers\Traits\SingletonLoader;
20 use WP_Post;
21
22 /**
23 * ReviewProduct
24 *
25 * @category ReviewProduct
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.0.0
31 */
32 class ReviewProduct {
33
34 /**
35 * Integration type.
36 *
37 * @var string
38 */
39 public $integration = 'WooCommerce';
40
41 /**
42 * Trigger name.
43 *
44 * @var string
45 */
46 public $trigger = 'wc_review_product';
47
48 use SingletonLoader;
49
50 /**
51 * Constructor
52 *
53 * @since 1.0.0
54 */
55 public function __construct() {
56 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
57 }
58
59 /**
60 * Register action.
61 *
62 * @param array $triggers trigger data.
63 * @return array
64 */
65 public function register( $triggers ) {
66 $triggers[ $this->integration ][ $this->trigger ] = [
67 'event_name' => 'wp_insert_comment',
68 'label' => __( 'User reviews a product', 'suretriggers' ),
69 'action' => $this->trigger,
70 'common_action' => 'wp_insert_comment',
71 'function' => [ $this, 'trigger_listener' ],
72 'priority' => 10,
73 'accepted_args' => 2,
74 ];
75
76 return $triggers;
77 }
78
79 /**
80 * Trigger listener
81 *
82 * @param int $comment_id comment id.
83 * @param object|array $comment comment.
84 * @since 1.0.0
85 *
86 * @return void
87 */
88 public function trigger_listener( $comment_id, $comment ) {
89 if ( is_object( $comment ) ) {
90 $comment = get_object_vars( $comment );
91 }
92
93 $post = get_post( absint( $comment['comment_post_ID'] ) );
94
95 if ( ! $post instanceof WP_Post ) {
96 return;
97 }
98
99 if ( 'review' !== $comment['comment_type'] ) {
100 return;
101 }
102
103 $context = array_merge(
104 WooCommerce::get_product_context( $comment['comment_post_ID'] ),
105 WordPress::get_user_context( $comment['user_id'] )
106 );
107 $context['comment_id'] = $comment_id;
108 $context['comment'] = $comment['comment_content'];
109 $context['comment_author'] = $comment['comment_author'];
110 $context['comment_date'] = $comment['comment_date'];
111 $context['comment_author_email'] = $comment['comment_author_email'];
112 $terms = get_the_terms( (int) $comment['comment_post_ID'], 'product_cat' );
113 if ( ! empty( $terms ) && is_array( $terms ) && isset( $terms[0] ) ) {
114 $cat_name = [];
115 foreach ( $terms as $cat ) {
116 $cat_name[] = $cat->name;
117 }
118 $context['product']['category'] = implode( ', ', $cat_name );
119 }
120 $terms_tags = get_the_terms( (int) $comment['comment_post_ID'], 'product_tag' );
121 if ( ! empty( $terms_tags ) && is_array( $terms_tags ) && isset( $terms_tags[0] ) ) {
122 $tag_name = [];
123 foreach ( $terms_tags as $tag ) {
124 $tag_name[] = $tag->name;
125 }
126 $context['product']['tag'] = implode( ', ', $tag_name );
127 }
128 AutomationController::sure_trigger_handle_trigger(
129 [
130 'trigger' => $this->trigger,
131 'context' => $context,
132 ]
133 );
134 }
135 }
136
137 ReviewProduct::get_instance();
138