Send Email. Version: 0.9.2 Author: kojak711 Domain Path: /languages Text Domain: sefa Send Email From Admin is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Send Email From Admin is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Send Email From Admin. If not, see . */ # Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) { exit; } define( 'SEFA_PLUGIN_DIR_URL', plugin_dir_url( __FILE__ ) ); define( 'SEFA_PLUGIN_VER', '0.9.2' ); /** * Add our sub menu in the Tools menu * * @since 0.9.2 */ function sefa_plugin_add_admin_page() { // create sefa submenu page under the Tools menu $sefa_page = add_submenu_page( 'tools.php', 'Send Email From Admin', 'Send Email', 'manage_options', 'sefa_email', 'sefa_plugin_main' ); // load js and css on sefa page only add_action( 'load-' . $sefa_page, 'sefa_plugin_scripts' ); } add_action( 'admin_menu', 'sefa_plugin_add_admin_page' ); /** * Load our css and js. * * @since 0.9.2 */ function sefa_plugin_scripts() { wp_enqueue_style( 'sefa_admin_css', SEFA_PLUGIN_DIR_URL . 'css/sefa.css', '', SEFA_PLUGIN_VER ); wp_enqueue_script( 'sefa_admin_js', SEFA_PLUGIN_DIR_URL . 'js/sefa.js', array('jquery'), SEFA_PLUGIN_VER); } /** * Register our text domain. * * @since 0.9 */ function sefa_plugin_load_textdomain() { load_plugin_textdomain( 'sefa', false, plugin_basename( dirname( __FILE__ ) ) . '/languages' ); } add_action('plugins_loaded', 'sefa_plugin_load_textdomain'); /** * Our main function to display and process our form * * @since 0.9 */ function sefa_plugin_main() { // get site info to construct 'FROM' for email $from_name = wp_specialchars_decode( get_option('blogname'), ENT_QUOTES ); $from_email = get_bloginfo('admin_email'); // initialize $send_mail_message = false; if ( !empty( $_POST ) && check_admin_referer( 'sefa_send_email', 'sefa-form-nonce' ) ) { // handle attachment $attachment_path = ''; if ( $_FILES ) { if ( !function_exists( 'wp_handle_upload' ) ) { require_once( ABSPATH . 'wp-admin/includes/file.php' ); } $uploaded_file = $_FILES['attachment']; $upload_overrides = array( 'test_form' => false ); $attachment = wp_handle_upload( $uploaded_file, $upload_overrides ); if ( $attachment && !isset( $attachment['error'] ) ) { // file was successfully uploaded $attachment_path = $attachment['file']; } else { // echo $attachment['error']; } } // get the posted form values $sefa_recipient_emails = isset( $_POST['sefa_recipient_emails'] ) ? trim($_POST['sefa_recipient_emails']) : ''; $sefa_subject = isset( $_POST['sefa_subject'] ) ? stripslashes(trim($_POST['sefa_subject'])) : ''; $sefa_body = isset( $_POST['sefa_body'] ) ? stripslashes(nl2br($_POST['sefa_body'])) : ''; $sefa_group_email = isset( $_POST['sefa_group_email'] ) ? trim($_POST['sefa_group_email']) : 'no'; $recipients = explode( ',',$sefa_recipient_emails ); // initialize some vars $errors = array(); $valid_email = true; // simple form validation if ( empty( $sefa_recipient_emails ) ) { $errors[] = __( "Please enter an email recipient in the To: field.", 'sefa' ); } else { // Loop through each email and validate it foreach( $recipients as $recipient ) { if ( !filter_var( trim($recipient), FILTER_VALIDATE_EMAIL ) ) { $valid_email = false; break; } } // create appropriate error msg if ( !$valid_email ) { $errors[] = _n( "The To: email address appears to be invalid.", "One of the To: email addresses appears to be invalid.", count($recipients), 'sefa' ); } } if ( empty($sefa_subject) ) $errors[] = __( "Please enter a Subject.", 'sefa' ); if ( empty($sefa_body) ) $errors[] = __( "Please enter a Message.", 'sefa' ); // send the email if no errors were found if ( empty($errors) ) { $headers[] = "Content-Type: text/html; charset=\"" . get_option('blog_charset') . "\"\n"; $headers[] = 'From: ' . $from_name . ' <' . $from_email . ">\r\n"; $attachments = $attachment_path; if ( $sefa_group_email === 'yes' ) { if ( wp_mail( $sefa_recipient_emails, $sefa_subject, $sefa_body, $headers, $attachments ) ) { $send_mail_message = '
' . __( 'Your email has been successfully sent!', 'sefa' ) . '
'; } else { $send_mail_message = '
' . __( 'There was an error sending the email.', 'sefa' ) . '
'; } } else { foreach( $recipients as $recipient ) { if ( wp_mail( $recipient, $sefa_subject, $sefa_body, $headers, $attachments ) ) { $send_mail_message .= '
' . __( 'Your email has been successfully sent to ', 'sefa' ) . esc_html($recipient) . '!
'; } else { $send_mail_message .= '
' . __( 'There was an error sending the email to ', 'sefa' ) . esc_html($recipient) . '
'; } } } // delete the uploaded file (attachment) from the server if ( $attachment_path ) { unlink($attachment_path); } } } ?>

\n"; } ?>
'; if ( !empty($errors) ) { echo '
'; foreach ($errors as $error) { echo "$error
"; } echo "
\n"; } if ( $send_mail_message ) { echo $send_mail_message; } echo "
From: " required>
General.', 'sefa' ); ?>
  
required>
"200" ); wp_editor( sefa_plugin_issetor($sefa_body), "sefa_body", $settings ); ?>