Woocommerce subscriptions by default doesn’t send subscription cancellation to the customer so I’m trying to add that by using woocommerce_subscription_status_pending-cancel
Hook and the function is below:
add_action('woocommerce_subscription_status_pending-cancel', 'yanco_woocommerce_subscription_status_pending_cancel', 10, 3 );
function yanco_woocommerce_subscription_status_pending_cancel( $subscription ) {
$customer_email = $subscription->get_billing_email();
$wc_emails = WC()->mailer()->get_emails();
$admin_email = $wc_emails['WCS_Email_Cancelled_Subscription']->recipient;
$wc_emails['WCS_Email_Cancelled_Subscription']->trigger( $subscription );
$wc_emails['WCS_Email_Cancelled_Subscription']->recipient = $customer_email;
$wc_emails['WCS_Email_Cancelled_Subscription']->trigger( $subscription );
}
But this code isn’t working when I click on the Cancel button in my account it keep circling without any response after a refresh it cancels the subscription but not sending email to customer.
I tried adding the code above and was expecting the emails to be sent out to the customer when they cancel their subscription.
2
Answers
This has fixed the issue:
function set_customer_as_cancelled_subscription_recipient($recipient, $subscription) { return $subscription ? $subscription->get_billing_email() : $recipient; }`
Your suggested
add_filter('woocommerce_email_recipient_cancelled_subscription'
filter is what I found works as well.
One possible modification: If you want to send the cancel email to the customer PLUS still send it to whoever you have set as the recipient in WooCommerce Email Settings (such as an internal admin user for example), this works: