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 / SureDonation / triggers / suredonation-donation-refunded.php
suretriggers / src / Integrations / SureDonation / triggers Last commit date
suredonation-donation-completed.php 1 month ago suredonation-donation-refunded.php 1 month ago suredonation-donation-status-changed.php 1 month ago suredonation-new-donation.php 1 month ago
suredonation-donation-refunded.php
137 lines
1 <?php
2 /**
3 * SureDonationDonationRefunded trigger.
4 * php version 5.6
5 *
6 * @category SureDonationDonationRefunded
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\SureDonation\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18
19 /**
20 * SureDonationDonationRefunded
21 *
22 * @category SureDonationDonationRefunded
23 * @package SureTriggers
24 * @author BSF <username@example.com>
25 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
26 * @link https://www.brainstormforce.com/
27 * @since 1.0.0
28 */
29 class SureDonationDonationRefunded {
30
31 /**
32 * Integration type.
33 *
34 * @var string
35 */
36 public $integration = 'SureDonation';
37
38 /**
39 * Trigger name.
40 *
41 * @var string
42 */
43 public $trigger = 'suredonation_donation_refunded';
44
45 use SingletonLoader;
46
47 /**
48 * Constructor
49 *
50 * @since 1.0.0
51 */
52 public function __construct() {
53 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
54 }
55
56 /**
57 * Register a trigger.
58 *
59 * @param array $triggers triggers.
60 * @return array
61 */
62 public function register( $triggers ) {
63 $triggers[ $this->integration ][ $this->trigger ] = [
64 'label' => __( 'Donation Refunded', 'suretriggers' ),
65 'action' => 'suredonation_donation_refunded',
66 'function' => [ $this, 'trigger_listener' ],
67 'priority' => 10,
68 'accepted_args' => 4,
69 ];
70
71 return $triggers;
72 }
73
74 /**
75 * Trigger listener.
76 *
77 * @param int $donation_id Donation ID.
78 * @param float $refund_amount Amount refunded in this event.
79 * @param float $total_refunded Cumulative amount refunded to date.
80 * @param array<string, mixed> $donation Donation record after the update.
81 * @return void
82 */
83 public function trigger_listener( $donation_id, $refund_amount, $total_refunded, $donation ) {
84 if ( empty( $donation_id ) ) {
85 return;
86 }
87
88 if ( ( ! is_array( $donation ) || empty( $donation ) ) && class_exists( 'SureDonation\Inc\Database\Tables\Donations' ) ) {
89 $donation = \SureDonation\Inc\Database\Tables\Donations::get( absint( $donation_id ) );
90 }
91
92 if ( ! is_array( $donation ) ) {
93 $donation = [];
94 }
95
96 $campaign_id = isset( $donation['campaign_id'] ) && is_numeric( $donation['campaign_id'] ) ? absint( $donation['campaign_id'] ) : 0;
97 $form_id = isset( $donation['form_id'] ) && is_numeric( $donation['form_id'] ) ? absint( $donation['form_id'] ) : 0;
98
99 $context = [
100 'donation_id' => absint( $donation_id ),
101 'refund_amount' => is_numeric( $refund_amount ) ? (float) $refund_amount : 0.0,
102 'total_refunded' => is_numeric( $total_refunded ) ? (float) $total_refunded : 0.0,
103 'campaign_id' => $campaign_id,
104 'campaign_title' => $campaign_id ? (string) get_the_title( $campaign_id ) : '',
105 'form_id' => $form_id,
106 'form_title' => $form_id ? (string) get_the_title( $form_id ) : '',
107 'donor_id' => isset( $donation['donor_id'] ) && is_numeric( $donation['donor_id'] ) ? absint( $donation['donor_id'] ) : 0,
108 'donor_name' => isset( $donation['donor_name'] ) ? sanitize_text_field( (string) $donation['donor_name'] ) : '',
109 'donor_email' => isset( $donation['donor_email'] ) ? sanitize_email( (string) $donation['donor_email'] ) : '',
110 'donor_phone' => isset( $donation['donor_phone'] ) ? sanitize_text_field( (string) $donation['donor_phone'] ) : '',
111 'amount' => isset( $donation['amount'] ) && is_numeric( $donation['amount'] ) ? (float) $donation['amount'] : 0.0,
112 'fees_covered' => isset( $donation['fees_covered'] ) && is_numeric( $donation['fees_covered'] ) ? (float) $donation['fees_covered'] : 0.0,
113 'currency' => isset( $donation['currency'] ) ? sanitize_text_field( (string) $donation['currency'] ) : 'USD',
114 'payment_status' => isset( $donation['payment_status'] ) ? sanitize_text_field( (string) $donation['payment_status'] ) : '',
115 'payment_mode' => isset( $donation['payment_mode'] ) ? sanitize_text_field( (string) $donation['payment_mode'] ) : '',
116 'gateway' => isset( $donation['gateway'] ) ? sanitize_text_field( (string) $donation['gateway'] ) : '',
117 'transaction_id' => isset( $donation['transaction_id'] ) ? sanitize_text_field( (string) $donation['transaction_id'] ) : '',
118 'donation_type' => isset( $donation['donation_type'] ) ? sanitize_text_field( (string) $donation['donation_type'] ) : 'one-time',
119 'is_anonymous' => ! empty( $donation['is_anonymous'] ),
120 'donor_comment' => isset( $donation['donor_comment'] ) ? wp_kses_post( (string) $donation['donor_comment'] ) : '',
121 'subscription_id' => isset( $donation['subscription_id'] ) ? sanitize_text_field( (string) $donation['subscription_id'] ) : '',
122 'subscription_status' => isset( $donation['subscription_status'] ) ? sanitize_text_field( (string) $donation['subscription_status'] ) : '',
123 'created_at' => isset( $donation['created_at'] ) ? sanitize_text_field( (string) $donation['created_at'] ) : '',
124 'updated_at' => isset( $donation['updated_at'] ) ? sanitize_text_field( (string) $donation['updated_at'] ) : '',
125 ];
126
127 AutomationController::sure_trigger_handle_trigger(
128 [
129 'trigger' => $this->trigger,
130 'context' => $context,
131 ]
132 );
133 }
134 }
135
136 SureDonationDonationRefunded::get_instance();
137