is_email_trigger_order( $email_class ) ) {
$email->trigger( $order_id, wc_get_order( $order_id ) );
} elseif ( $this->is_email_trigger_subscription( $email_class ) && function_exists( 'wcs_get_subscriptions_for_order' ) ) {
$order_subscriptions = wcs_get_subscriptions_for_order( $order_id );
$subscription = array_pop( $order_subscriptions );
$email->trigger( $subscription );
} else {
$email->trigger( $order_id, wc_get_order( $order_id ) );
}
}
public function check_email_subscription( $result, $email_class, $order_id ) {
$error_text = sprintf( __( 'This is not a valid subscription order. Please select a valid subscription order ID.
Go to orders page to check %s.', 'yaymail' ), 'Order ID' );
if ( $this->is_email_trigger_subscription( $email_class ) || $this->is_email_trigger_order( $email_class ) ) {
if ( ! wcs_order_contains_subscription( $order_id ) ) {
$result = [ 'error' => $error_text ];
return $result;
}
return true;
}
return $result;
}
private function is_email_trigger_order( $class_email ) {
$array = [
'WCS_Email_Completed_Renewal_Order',
'WCS_Email_Completed_Switch_Order',
'WCS_Email_Customer_On_Hold_Renewal_Order',
'WCS_Email_New_Renewal_Order',
'WCS_Email_New_Switch_Order',
'WCS_Email_Processing_Renewal_Order',
'WCS_Email_Payment_Retry',
'WCS_Email_Customer_Payment_Retry',
];
return in_array( $class_email, $array, true );
}
private function is_email_trigger_subscription( $class_email ) {
$array = [
'WCS_Email_Cancelled_Subscription',
'WCS_Email_Expired_Subscription',
'WCS_Email_On_Hold_Subscription',
];
return in_array( $class_email, $array, true );
}
}