PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
4.17.2 4.17.1 4.17.0 4.16.19 4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / Membership / Emails / SubscriptionPaymentFailedNotification.php
wp-user-avatar / src / Membership / Emails Last commit date
AbstractMembershipEmail.php 1 month ago EmailDataTrait.php 3 weeks ago NewOrderAdminNotification.php 2 years ago NewOrderReceipt.php 2 years ago RenewalOrderReceipt.php 2 years ago SubscriptionAfterExpiredNotification.php 1 week ago SubscriptionCancelledNotification.php 2 years ago SubscriptionCompletedNotification.php 2 years ago SubscriptionExpirationReminder.php 4 months ago SubscriptionExpiredNotification.php 1 week ago SubscriptionPaymentFailedNotification.php 3 weeks ago SubscriptionRenewalReminder.php 4 months ago index.php 4 years ago
SubscriptionPaymentFailedNotification.php
54 lines
1 <?php
2
3 namespace ProfilePress\Core\Membership\Emails;
4
5 use ProfilePress\Core\Membership\Models\Customer\CustomerFactory;
6 use ProfilePress\Core\Membership\Models\Subscription\SubscriptionEntity;
7
8 class SubscriptionPaymentFailedNotification extends AbstractMembershipEmail
9 {
10 const ID = 'subscription_payment_failed_notification';
11
12 const DEDUPE_META_KEY = 'payment_failed_email_sent';
13
14 public function __construct()
15 {
16 add_action('ppress_subscription_payment_failed', [$this, 'dispatch_email']);
17 }
18
19 /**
20 * @param SubscriptionEntity $subscription
21 *
22 * @return void
23 */
24 public function dispatch_email($subscription)
25 {
26 if ( ! apply_filters('ppress_membership_subscription_payment_failed_email_enabled', true, $subscription)) return;
27
28 if (ppress_get_setting(self::ID . '_email_enabled', 'on') !== 'on') return;
29
30 // ensures gateway payment retries do not re-send the email within the same billing period.
31 if ($subscription->get_meta(self::DEDUPE_META_KEY) === $subscription->expiration_date) return;
32
33 $placeholders_values = $this->get_subscription_placeholders_values($subscription);
34
35 $subject = apply_filters('ppress_' . self::ID . '_email_subject', $this->parse_placeholders(
36 ppress_get_setting(self::ID . '_email_subject', esc_html__('Your subscription payment failed.', 'wp-user-avatar'), true),
37 $placeholders_values,
38 $subscription
39 ), $subscription);
40
41 $message = apply_filters('ppress_' . self::ID . '_email_content', $this->parse_placeholders(
42 ppress_get_setting(self::ID . '_email_content', $this->get_subscription_payment_failed_content(), true),
43 $placeholders_values,
44 $subscription
45 ), $subscription);
46
47 $recipient = apply_filters('ppress_' . self::ID . '_recipient', CustomerFactory::fromId($subscription->customer_id)->get_email(), $subscription);
48
49 if (ppress_send_email($recipient, $subject, $message)) {
50 $subscription->update_meta(self::DEDUPE_META_KEY, $subscription->expiration_date);
51 }
52 }
53 }
54