PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / trunk
OttoKit: All-in-One Automation Platform vtrunk
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 / add-product-to-cart.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
add-product-to-cart.php
129 lines
1 <?php
2 /**
3 * AddProductToCart.
4 * php version 5.6
5 *
6 * @category AddProductToCart
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 if ( ! class_exists( 'AddProductToCart' ) ) :
22
23
24 /**
25 * AddProductToCart
26 *
27 * @category AddProductToCart
28 * @package SureTriggers
29 * @author BSF <username@example.com>
30 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
31 * @link https://www.brainstormforce.com/
32 * @since 1.0.0
33 */
34 class AddProductToCart {
35
36 /**
37 * Integration type.
38 *
39 * @var string
40 */
41 public $integration = 'WooCommerce';
42
43 /**
44 * Trigger name.
45 *
46 * @var string
47 */
48 public $trigger = 'woocommerce_add_to_cart';
49
50 use SingletonLoader;
51
52 /**
53 * Constructor
54 *
55 * @since 1.0.0
56 */
57 public function __construct() {
58 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
59 }
60
61 /**
62 * Register action.
63 *
64 * @param array $triggers trigger data.
65 * @return array
66 */
67 public function register( $triggers ) {
68 $triggers[ $this->integration ][ $this->trigger ] = [
69 'label' => __( 'Product is added to cart', 'suretriggers' ),
70 'action' => $this->trigger,
71 'function' => [ $this, 'trigger_listener' ],
72 'priority' => 10,
73 'accepted_args' => 6,
74 ];
75
76 return $triggers;
77 }
78
79 /**
80 * Trigger listener
81 *
82 * @param int $cart_item_key cart item key.
83 * @param int $product_id product id.
84 * @param int $quantity quantity.
85 * @param int $variation_id variation id.
86 * @param int $variation variation.
87 * @param array $cart_item_data cart item data.
88 *
89 * @return void
90 */
91 public function trigger_listener( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ) {
92
93 $user_id = ap_get_current_user_id();
94 $context = WordPress::get_user_context( $user_id );
95 $context['product_id'] = $product_id;
96 $context['product'] = WooCommerce::get_product_context( $product_id );
97 $terms = get_the_terms( $product_id, 'product_cat' );
98 if ( ! empty( $terms ) && is_array( $terms ) && isset( $terms[0] ) ) {
99 $cat_name = [];
100 foreach ( $terms as $cat ) {
101 $cat_name[] = $cat->name;
102 }
103 $context['product']['category'] = implode( ', ', $cat_name );
104 }
105 $terms_tags = get_the_terms( $product_id, 'product_tag' );
106 if ( ! empty( $terms_tags ) && is_array( $terms_tags ) && isset( $terms_tags[0] ) ) {
107 $tag_name = [];
108 foreach ( $terms_tags as $tag ) {
109 $tag_name[] = $tag->name;
110 }
111 $context['product']['tag'] = implode( ', ', $tag_name );
112 }
113 unset( $context['product']['id'] );
114
115 $context['product_quantity'] = $quantity;
116
117 AutomationController::sure_trigger_handle_trigger(
118 [
119 'trigger' => $this->trigger,
120 'context' => $context,
121 ]
122 );
123 }
124 }
125
126 AddProductToCart::get_instance();
127
128 endif;
129