PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
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 / studiocart / studiocart.php
suretriggers / src / Integrations / studiocart Last commit date
triggers 1 day ago studiocart.php 1 day ago
studiocart.php
84 lines
1 <?php
2 /**
3 * Studiocart core integration file
4 *
5 * @since 1.1.21
6 * @package SureTrigger
7 */
8
9 namespace SureTriggers\Integrations\Studiocart;
10
11 use SureTriggers\Controllers\IntegrationsController;
12 use SureTriggers\Integrations\Integrations;
13 use SureTriggers\Traits\SingletonLoader;
14 use WP_User;
15
16 /**
17 * Class Studiocart
18 *
19 * @package SureTriggers\Integrations\Studiocart
20 */
21 class Studiocart extends Integrations {
22
23 use SingletonLoader;
24
25 /**
26 * ID
27 *
28 * @var string
29 */
30 protected $id = 'Studiocart';
31
32 /**
33 * Studiocart constructor.
34 */
35 public function __construct() {
36 $this->name = __( 'Studiocart', 'suretriggers' );
37 $this->description = __( 'Studiocart is a checkout page builder for WordPress that lets you sell products, order bumps and subscriptions.', 'suretriggers' );
38 $this->icon_url = SURE_TRIGGERS_URL . 'assets/icons/studiocart.svg';
39
40 parent::__construct();
41 }
42
43 /**
44 * Is dependent plugin installed or not.
45 *
46 * @return bool
47 */
48 public function is_plugin_installed() {
49 return class_exists( 'NCS_Cart' );
50 }
51
52 /**
53 * Build the shared trigger context from a Studiocart order data array.
54 *
55 * @param array $order_data Order data supplied by Studiocart.
56 * @param string|null $order_type Order type, e.g. "main" or a bump/upsell slug.
57 * @return array
58 */
59 public static function get_order_context( $order_data, $order_type = null ) {
60 $context = [
61 'order_id' => isset( $order_data['ID'] ) ? $order_data['ID'] : '',
62 'order_status' => isset( $order_data['status'] ) ? $order_data['status'] : '',
63 'order_amount' => isset( $order_data['amount'] ) ? $order_data['amount'] : '',
64 'product_id' => isset( $order_data['product_id'] ) ? $order_data['product_id'] : '',
65 'product_name' => isset( $order_data['product_name'] ) ? $order_data['product_name'] : '',
66 'order_type' => null !== $order_type ? $order_type : '',
67 ];
68
69 $user_id = get_current_user_id();
70
71 if ( $user_id ) {
72 $user = get_userdata( $user_id );
73
74 $context['user_id'] = $user_id;
75 $context['user_email'] = ( $user instanceof WP_User ) ? $user->user_email : '';
76 }
77
78 return $context;
79 }
80
81 }
82
83 IntegrationsController::register( Studiocart::class );
84