Send Email.
Version: 0.9
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__ ));
/**
* Add our sub menu in the Tools menu
*
* @since 0.9
*/
function sefa_plugin_admin_menu() {
add_submenu_page( 'tools.php', 'Send Email From Admin', 'Send Email', 'manage_options', 'sefa_email', 'sefa_plugin_main' );
}
add_action( 'admin_menu', 'sefa_plugin_admin_menu' );
/**
* Load our css and js.
*
* @since 0.9
*/
function sefa_plugin_init() {
wp_enqueue_style( 'sefa_admin_css', SEFA_PLUGIN_DIR_URL . '/css/sefa.css' );
wp_enqueue_script( 'sefa_admin_js', SEFA_PLUGIN_DIR_URL . '/js/sefa.js', array('jquery'));
}
add_action( 'admin_enqueue_scripts', 'sefa_plugin_init' );
/**
* 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'] ) ? trim($_POST['sefa_subject']) : '';
$sefa_body = isset( $_POST['sefa_body'] ) ? 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) . '
';
}
}
}
}
}
?>