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 / woocommerce / triggers / view-product.php
suretriggers / src / Integrations / woocommerce / triggers Last commit date
add-product-to-cart.php 2 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 10 months ago order-note-added.php 2 years ago order-paid.php 9 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 2 years ago subscription-var-purchase.php 1 year ago view-product.php 2 years ago
view-product.php
127 lines
1 <?php
2 /**
3 * ViewProduct.
4 * php version 5.6
5 *
6 * @category ViewProduct
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\Woocommerce\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
21 /**
22 * ViewProduct
23 *
24 * @category ViewProduct
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 ViewProduct {
32
33 /**
34 * Integration type.
35 *
36 * @var string
37 */
38 public $integration = 'WooCommerce';
39
40 /**
41 * Trigger name.
42 *
43 * @var string
44 */
45 public $trigger = 'wp_view_product';
46
47 use SingletonLoader;
48
49 /**
50 * Constructor
51 *
52 * @since 1.0.0
53 */
54 public function __construct() {
55 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
56 }
57
58 /**
59 * Register action.
60 *
61 * @param array $triggers trigger data.
62 * @return array
63 */
64 public function register( $triggers ) {
65 $triggers[ $this->integration ][ $this->trigger ] = [
66 'label' => __( 'User views a product', 'suretriggers' ),
67 'action' => $this->trigger,
68 'common_action' => 'template_redirect',
69 'function' => [ $this, 'trigger_listener' ],
70 'priority' => 10,
71 'accepted_args' => 1,
72 ];
73
74 return $triggers;
75 }
76
77 /**
78 * Trigger listener
79 *
80 * @return void
81 */
82 public function trigger_listener() {
83 if ( ! class_exists( 'WooCommerce' ) ) {
84 return;
85 }
86
87 if ( ! is_product() ) {
88 return;
89 }
90
91 $user_id = ap_get_current_user_id();
92 $product_id = get_queried_object_id();
93 $product_data['product_id'] = $product_id;
94 $product_data['product'] = WooCommerce::get_product_context( $product_id );
95 $terms = get_the_terms( $product_id, 'product_cat' );
96 if ( ! empty( $terms ) && is_array( $terms ) && isset( $terms[0] ) ) {
97 $cat_name = [];
98 foreach ( $terms as $cat ) {
99 $cat_name[] = $cat->name;
100 }
101 $product_data['product']['category'] = implode( ', ', $cat_name );
102 }
103 $terms_tags = get_the_terms( $product_id, 'product_tag' );
104 if ( ! empty( $terms_tags ) && is_array( $terms_tags ) && isset( $terms_tags[0] ) ) {
105 $tag_name = [];
106 foreach ( $terms_tags as $tag ) {
107 $tag_name[] = $tag->name;
108 }
109 $product_data['product']['tag'] = implode( ', ', $tag_name );
110 }
111 unset( $product_data['product']['id'] ); //phpcs:ignore
112
113 $context = array_merge(
114 $product_data,
115 WordPress::get_user_context( $user_id )
116 );
117 AutomationController::sure_trigger_handle_trigger(
118 [
119 'trigger' => $this->trigger,
120 'context' => $context,
121 ]
122 );
123 }
124 }
125
126 ViewProduct::get_instance();
127