PluginProbe
AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI / 6.0.2
AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI v6.0.2
6.0.2 6.0.1 6.0.0 5.8.6 5.8.5 5.8.4 5.8.3 5.8.2 5.8.1 5.8.0 5.7.9.2 5.7.9.1 5.7.8 5.7.9 5.7.6 5.7.7 5.7.5 5.7.4 5.7.3 5.7.2 5.7.1 trunk 5.6.0 5.6.1 5.6.2 All 33 releases
automatorwp / integrations / fluentcart / includes / triggers / complete-purchase.php

complete-purchase.php in AutomatorWP – No-Code Workflow Automation, Integration & Webhooks Plugin, now with AI 6.0.2, at integrations/fluentcart/includes/triggers/complete-purchase.php

118 lines 3.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Make Purchase
4 *
5 * @package AutomatorWP\Integrations\FluentCart\Triggers\Make_Purchase
6 * @author AutomatorWP <[email protected]>, Ruben Garcia <[email protected]>
7 * @since 1.0.0
8 */
9 // Exit if accessed directly
10 if( !defined( 'ABSPATH' ) ) exit;
11
12 class AutomatorWP_FluentCart_Complete_Purchase extends AutomatorWP_Integration_Trigger {
13
14 public $integration = 'fluentcart';
15 public $trigger = 'fluentcart_complete_purchase';
16
17 /**
18 * Register the trigger
19 *
20 * @since 1.0.0
21 */
22 public function register() {
23
24 automatorwp_register_trigger( $this->trigger, array(
25 'integration' => $this->integration,
26 'label' => __( 'User completes a purchase', 'automatorwp' ),
27 'select_option' => __( 'User completes a <strong>purchase</strong>', 'automatorwp' ),
28 /* translators: %1$s: Product title. %2$s: Number of times. */
29 'edit_label' => sprintf( __( 'User completes a purchase %1$s time(s)', 'automatorwp' ), '{times}' ),
30 'log_label' => __( 'User completes a purchase', 'automatorwp' ),
31 'action' => 'fluent_cart/order_status_changed_to_completed',
32 'function' => array( $this, 'listener' ),
33 'priority' => 10,
34 'accepted_args' => 1,
35 'options' => array(
36 'times' => automatorwp_utilities_times_option(),
37 ),
38 'tags' => array_merge(
39 automatorwp_fluentcart_get_order_tags(),
40 automatorwp_utilities_times_tag()
41 )
42 ) );
43
44 }
45
46 /**
47 * Trigger listener
48 *
49 * @since 1.0.0
50 *
51 * @param array $data
52 *
53 */
54 public function listener( $data ) {
55
56 $user_id = get_current_user_id();
57
58 // Bail if user is not logged
59 if ($user_id === 0) {
60 return;
61 }
62
63 $order = $data['order'];
64 $order_id = $order->id;
65
66 // Trigger user product purchased
67 automatorwp_trigger_event( array(
68 'trigger' => $this->trigger,
69 'user_id' => $user_id,
70 'order_id' => $order_id,
71 'order_data' => $order,
72 ) );
73
74 }
75
76 /**
77 * Register the required hooks
78 *
79 * @since 1.0.0
80 */
81 public function hooks() {
82
83 // Log meta data
84 add_filter( 'automatorwp_user_completed_trigger_log_meta', array( $this, 'log_meta' ), 10, 6 );
85
86 parent::hooks();
87 }
88
89 /**
90 * Trigger custom log meta
91 *
92 * @since 1.0.0
93 *
94 * @param array $log_meta Log meta data
95 * @param stdClass $trigger The trigger object
96 * @param int $user_id The user ID
97 * @param array $event Event information
98 * @param array $trigger_options The trigger's stored options
99 * @param stdClass $automation The trigger's automation object
100 *
101 * @return array
102 */
103 function log_meta( $log_meta, $trigger, $user_id, $event, $trigger_options, $automation ) {
104
105 // Bail if action type don't match this action
106 if( $trigger->type !== $this->trigger ) {
107 return $log_meta;
108 }
109
110 $log_meta['order_id'] = ( isset( $event['order_id'] ) ? $event['order_id'] : 0 );
111
112 return $log_meta;
113
114 }
115
116 }
117
118 new AutomatorWP_FluentCart_Complete_Purchase();