FileMaster
Search
Toggle Dark Mode
Home
/
.
/
wp-content
/
plugins
/
latepoint
/
lib
/
helpers
Edit File: email_helper.php
<?php class OsEmailHelper { public static function get_default_headers() { $headers = []; $headers[] = 'Content-Type: text/html; charset=UTF-8'; $headers[] = 'From: ' . get_bloginfo( 'name' ) . ' <' . get_bloginfo( 'admin_email' ) . '>'; /** * Default headers for sending email * * @since 4.7.0 * @hook latepoint_default_email_headers * * @param {array} $headers The array of headers for email * * @returns {array} The array of headers for email */ return apply_filters( 'latepoint_default_email_headers', $headers ); } public static function get_email_layout( $insert_content = false ): string { require_once ABSPATH . 'wp-admin/includes/file.php'; if ( ! WP_Filesystem() ) { OsDebugHelper::log( __( 'Failed to initialise WC_Filesystem API while trying to show notification templates.', 'latepoint' ) ); return ''; } global $wp_filesystem; $html = OsSettingsHelper::get_settings_value( 'email_layout_template', $wp_filesystem->get_contents( LATEPOINT_VIEWS_ABSPATH . 'mailers/layouts/default.html' ) ); if ( $insert_content ) { $html = str_replace( '{{content}}', $insert_content, $html ); } return $html; } /** * @param array $result * * @return OsActivityModel */ public static function log_email( array $result ) { if ( empty( $result['processed_datetime'] ) ) { $result['processed_datetime'] = OsTimeHelper::now_datetime_in_db_format(); } $data = [ 'code' => 'email_sent', 'description' => wp_json_encode( $result ), ]; if ( ! empty( $result['extra_data']['activity_data'] ) ) { $data = array_merge( $data, $result['extra_data']['activity_data'] ); } $activity = OsActivitiesHelper::create_activity( $data ); return $activity; } /** * * Sends email using WordPress wp_mail function * * @param string $to Email address(es) of the receiver * @param string $subject Subject of the email * @param string $content Contents of the email * @param array $headers * @return array */ public static function send_email( string $to, string $subject, string $content, array $headers = [], $activity_data = [], $attachments = [] ): array { $processor_code = 'wp_mail'; $result = [ 'status' => LATEPOINT_STATUS_ERROR, 'message' => __( 'No email processor is selected.', 'latepoint' ), 'to' => $to, 'content' => $content, 'processor_code' => $processor_code, 'processor_name' => 'WordPress Mailer', 'processed_datetime' => '', 'extra_data' => [ 'activity_data' => $activity_data, ], 'errors' => [], ]; if ( empty( $to ) ) { $errors[] = __( 'Email address of the recipient can not be blank', 'latepoint' ); } if ( empty( $subject ) ) { $errors[] = __( 'Subject of the email can not be blank', 'latepoint' ); } if ( empty( $content ) ) { $errors[] = __( 'Content of the email can not be blank', 'latepoint' ); } if ( ! empty( $errors ) ) { $result['status'] = LATEPOINT_STATUS_ERROR; $result['message'] = implode( ', ', $errors ); $result['errors'] = $errors; return $result; } if ( OsSettingsHelper::is_email_allowed() && OsNotificationsHelper::is_notification_type_enabled( 'email' ) ) { if ( OsNotificationsHelper::get_selected_processor_code_by_type( 'email' ) == $processor_code ) { if ( wp_mail( $to, $subject, $content, $headers, $attachments ) ) { $result['status'] = LATEPOINT_STATUS_SUCCESS; $result['message'] = __( 'Email was sent successfully', 'latepoint' ); $result['processed_datetime'] = OsTimeHelper::now_datetime_in_db_format(); $result['extra_data']['subject'] = $subject; } else { $result['status'] = LATEPOINT_STATUS_ERROR; $result['errors'] = __( 'Error sending email', 'latepoint' ); $result['message'] = __( 'Error sending email, email address invalid or email processor not setup', 'latepoint' ); } } /** * Result of sending an email * * @since 4.7.0 * @hook latepoint_notifications_send_email * * @param {array} $result The array of data describing the result of operation * @param {string} $to * @param {string} $subject * @param {string} $content * @param {array} $headers * * @returns {array} The array of data describing the result of operation */ $result = apply_filters( 'latepoint_notifications_send_email', $result, $to, $subject, $content, $headers ); } else { $result['message'] = __( 'Email notifications are disabled. Enable email processor in Settings - Notifications.', 'latepoint' ); $result['errors'][] = __( 'Email notifications are disabled. Enable email processor in Settings - Notifications.', 'latepoint' ); } OsEmailHelper::log_email( $result ); return $result; } }
Save
Back