Rename plugin: Send WP Mail + namespace

This commit is contained in:
abuyoyo 2025-01-04 09:03:08 +02:00
parent 36e735ae5a
commit 9b64c8f53c
3 changed files with 88 additions and 101 deletions

View File

@ -1,10 +1,10 @@
#sefa-wrapper h1 { #swpm-wrapper h1 {
font-size: 2.8em; font-size: 2.8em;
font-weight: 200; font-weight: 200;
margin-bottom: 26px; margin-bottom: 26px;
margin-left: -4px; margin-left: -4px;
} }
#sefa-wrapper h1:before { #swpm-wrapper h1:before {
font-family: "dashicons"; font-family: "dashicons";
content: "\f465"; content: "\f465";
top: 8px; top: 8px;
@ -12,78 +12,78 @@
margin-right: 10px; margin-right: 10px;
font-size: 1.2em; font-size: 1.2em;
} }
#sefa-wrapper div.error ul li { #swpm-wrapper div.error ul li {
list-style: initial; list-style: initial;
margin-left: 20px; margin-left: 20px;
margin-bottom: 0; margin-bottom: 0;
} }
#sefa-wrapper div.updated { #swpm-wrapper div.updated {
padding: 10px; padding: 10px;
margin-bottom: 5px; margin-bottom: 5px;
} }
#sefa-form .form-table { #swpm-form .form-table {
margin-top: 0; margin-top: 0;
} }
#sefa-form .form-table tr:first-child th { #swpm-form .form-table tr:first-child th {
padding-top: 5px; padding-top: 5px;
} }
#sefa-form .form-table tr:first-child td { #swpm-form .form-table tr:first-child td {
padding-top: 0; padding-top: 0;
} }
#sefa-form .form-table th { #swpm-form .form-table th {
width: auto; width: auto;
min-width: 100px; min-width: 100px;
} }
#sefa-form .form-table td { #swpm-form .form-table td {
vertical-align: text-top; vertical-align: text-top;
} }
#sefa-form .form-table tr:last-child td { #swpm-form .form-table tr:last-child td {
padding: 0 10px; padding: 0 10px;
} }
#sefa-form input[type=text], #swpm-form input[type=text],
#sefa-form input[type=email], #swpm-form input[type=email],
#sefa-form textarea, #swpm-form textarea,
#sefa-form .wp-editor-wrap { #swpm-form .wp-editor-wrap {
width: 100%; width: 100%;
padding: 6px 10px padding: 6px 10px
} }
#sefa-form .sefa-radio-wrap { #swpm-form .swpm-radio-wrap {
display: inline; display: inline;
} }
#sefa-form .wp-editor-wrap { #swpm-form .wp-editor-wrap {
padding-left: 0; padding-left: 0;
} }
#sefa-form #sefa-user-list { #swpm-form #swpm-user-list {
margin-top: 7px; margin-top: 7px;
} }
#sefa-form .note { #swpm-form .note {
font-size: 12px; font-size: 12px;
color: #888; color: #888;
padding: 5px 0 0 1px; padding: 5px 0 0 1px;
} }
@media screen and (max-width: 1300px) { @media screen and (max-width: 1300px) {
#sefa-wrapper { #swpm-wrapper {
width: 100%; width: 100%;
margin-left: 0; margin-left: 0;
} }
} }
@media screen and (max-width: 900px) { @media screen and (max-width: 900px) {
#sefa-form .sefa-radio-wrap { #swpm-form .swpm-radio-wrap {
display: block; display: block;
} }
} }
@media screen and (max-width: 850px) { @media screen and (max-width: 850px) {
#sefa-wrapper .postbox { #swpm-wrapper .postbox {
margin-right: 10px; margin-right: 10px;
} }
} }
@media screen and (max-width: 500px) { @media screen and (max-width: 500px) {
#sefa-wrapper h1 { #swpm-wrapper h1 {
font-size: 2em; font-size: 2em;
margin-left: 0; margin-left: 0;
} }
#sefa-wrapper h1:before { #swpm-wrapper h1:before {
top: 6px; top: 6px;
} }
} }

View File

@ -1,6 +1,6 @@
jQuery( document ).ready( function( $ ) { jQuery( document ).ready( function( $ ) {
$("#sefa-user-list").change( function() { $("#swpm-user-list").change( function() {
$recipients = $("#sefa-recipient-emails"); $recipients = $("#swpm-recipient-emails");
if ( $recipients.val() == '' ) { if ( $recipients.val() == '' ) {
$recipients.val( $(this).find("option:selected").attr("value") ); $recipients.val( $(this).find("option:selected").attr("value") );
} else if ( $(this).val() != '' ) { } else if ( $(this).val() != '' ) {

View File

@ -1,26 +1,13 @@
<?php <?php
/* /**
Plugin Name: Send Email From Admin * Plugin Name: Send WP Mail
Plugin URI: * Update URI: false
Description: Easily send a simple custom email with an attachment from the WordPress administration screen. Tools -> Send Email. * Description: Send email from WordPress. Sends email using WordPress core wp_mail function - if enabled.
Version: 1.0 * Version: 1.1
Author: kojak711 * Author: abuyoyo
Domain Path: /languages * Domain Path: /languages
Text Domain: sefa * Text Domain: swpm
*/
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 <http://www.gnu.org/licenses/>.
*/
# Exit if accessed directly # Exit if accessed directly
@ -28,30 +15,30 @@ if ( ! defined( 'ABSPATH' ) ) {
exit; exit;
} }
define( 'SEFA_PLUGIN_DIR_URL', plugin_dir_url( __FILE__ ) ); define( 'SWPM_PLUGIN_DIR_URL', plugin_dir_url( __FILE__ ) );
define( 'SEFA_PLUGIN_VER', '0.9.3' ); define( 'SWPM_PLUGIN_VER', '0.9.3' );
/** /**
* Add our sub menu in the Tools menu * Add our sub menu in the Tools menu
* *
* @since 0.9.2 * @since 0.9.2
*/ */
function sefa_plugin_add_admin_page() { function swpm_plugin_add_admin_page() {
// create sefa submenu page under the Tools menu // create swpm 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' ); $swpm_page = add_submenu_page( 'tools.php', 'Send WP Mail', 'Send Email', 'manage_options', 'send-wp-mail', 'swpm_plugin_main' );
// load js and css on sefa page only // load js and css on swpm page only
add_action( 'load-' . $sefa_page, 'sefa_plugin_scripts' ); add_action( 'load-' . $swpm_page, 'swpm_plugin_scripts' );
} }
add_action( 'admin_menu', 'sefa_plugin_add_admin_page' ); add_action( 'admin_menu', 'swpm_plugin_add_admin_page' );
/** /**
* Load our css and js. * Load our css and js.
* *
* @since 0.9.2 * @since 0.9.2
*/ */
function sefa_plugin_scripts() { function swpm_plugin_scripts() {
wp_enqueue_style( 'sefa_admin_css', SEFA_PLUGIN_DIR_URL . 'css/send-wp-mail.css', '', SEFA_PLUGIN_VER ); wp_enqueue_style( 'swpm_admin_css', SWPM_PLUGIN_DIR_URL . 'css/send-wp-mail.css', '', SWPM_PLUGIN_VER );
wp_enqueue_script( 'sefa_admin_js', SEFA_PLUGIN_DIR_URL . 'js/send-wp-mail.js', array('jquery'), SEFA_PLUGIN_VER); wp_enqueue_script( 'swpm_admin_js', SWPM_PLUGIN_DIR_URL . 'js/send-wp-mail.js', array('jquery'), SWPM_PLUGIN_VER);
} }
/** /**
@ -59,17 +46,17 @@ function sefa_plugin_scripts() {
* *
* @since 0.9 * @since 0.9
*/ */
function sefa_plugin_load_textdomain() { function swpm_plugin_load_textdomain() {
load_plugin_textdomain( 'sefa', false, plugin_basename( dirname( __FILE__ ) ) . '/languages' ); load_plugin_textdomain( 'swpm', false, plugin_basename( dirname( __FILE__ ) ) . '/languages' );
} }
add_action('plugins_loaded', 'sefa_plugin_load_textdomain'); add_action('plugins_loaded', 'swpm_plugin_load_textdomain');
/** /**
* Our main function to display and process our form * Our main function to display and process our form
* *
* @since 0.9 * @since 0.9
*/ */
function sefa_plugin_main() { function swpm_plugin_main() {
// get site info to construct 'FROM' for email // get site info to construct 'FROM' for email
$from_name = wp_specialchars_decode( get_option('blogname'), ENT_QUOTES ); $from_name = wp_specialchars_decode( get_option('blogname'), ENT_QUOTES );
$from_email = get_bloginfo('admin_email'); $from_email = get_bloginfo('admin_email');
@ -77,7 +64,7 @@ function sefa_plugin_main() {
// initialize // initialize
$send_mail_message = false; $send_mail_message = false;
if ( !empty( $_POST ) && check_admin_referer( 'sefa_send_email', 'sefa-form-nonce' ) ) { if ( !empty( $_POST ) && check_admin_referer( 'send-wp-mail', 'send-wp-mail' ) ) {
// handle attachment // handle attachment
$attachment_path = ''; $attachment_path = '';
if ( $_FILES ) { if ( $_FILES ) {
@ -96,19 +83,19 @@ function sefa_plugin_main() {
} }
// get the posted form values // get the posted form values
$sefa_recipient_emails = isset( $_POST['sefa_recipient_emails'] ) ? trim($_POST['sefa_recipient_emails']) : ''; $email_to = isset( $_POST['email_to'] ) ? trim($_POST['email_to']) : '';
$sefa_subject = isset( $_POST['sefa_subject'] ) ? stripslashes(trim($_POST['sefa_subject'])) : ''; $email_subject = isset( $_POST['email_subject'] ) ? stripslashes(trim($_POST['email_subject'])) : '';
$sefa_body = isset( $_POST['sefa_body'] ) ? stripslashes(nl2br($_POST['sefa_body'])) : ''; $email_body = isset( $_POST['email_body'] ) ? stripslashes(nl2br($_POST['email_body'])) : '';
$sefa_group_email = isset( $_POST['sefa_group_email'] ) ? trim($_POST['sefa_group_email']) : 'no'; $group_email = isset( $_POST['group_email'] ) ? trim($_POST['group_email']) : 'no';
$recipients = explode( ',',$sefa_recipient_emails ); $recipients = explode( ',',$email_to );
// initialize some vars // initialize some vars
$errors = array(); $errors = array();
$valid_email = true; $valid_email = true;
// simple form validation // simple form validation
if ( empty( $sefa_recipient_emails ) ) { if ( empty( $email_to ) ) {
$errors[] = __( "Please enter an email recipient in the To: field.", 'sefa' ); $errors[] = __( "Please enter an email recipient in the To: field.", 'swpm' );
} else { } else {
// Loop through each email and validate it // Loop through each email and validate it
foreach( $recipients as $recipient ) { foreach( $recipients as $recipient ) {
@ -119,11 +106,11 @@ function sefa_plugin_main() {
} }
// create appropriate error msg // create appropriate error msg
if ( !$valid_email ) { 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' ); $errors[] = _n( "The To: email address appears to be invalid.", "One of the To: email addresses appears to be invalid.", count($recipients), 'swpm' );
} }
} }
if ( empty($sefa_subject) ) $errors[] = __( "Please enter a Subject.", 'sefa' ); if ( empty($email_subject) ) $errors[] = __( "Please enter a Subject.", 'swpm' );
if ( empty($sefa_body) ) $errors[] = __( "Please enter a Message.", 'sefa' ); if ( empty($email_body) ) $errors[] = __( "Please enter a Message.", 'swpm' );
// send the email if no errors were found // send the email if no errors were found
if ( empty($errors) ) { if ( empty($errors) ) {
@ -131,18 +118,18 @@ function sefa_plugin_main() {
$headers[] = 'From: ' . $from_name . ' <' . $from_email . ">\r\n"; $headers[] = 'From: ' . $from_name . ' <' . $from_email . ">\r\n";
$attachments = $attachment_path; $attachments = $attachment_path;
if ( $sefa_group_email === 'yes' ) { if ( $group_email === 'yes' ) {
if ( wp_mail( $sefa_recipient_emails, $sefa_subject, $sefa_body, $headers, $attachments ) ) { if ( wp_mail( $email_to, $email_subject, $email_body, $headers, $attachments ) ) {
$send_mail_message = '<div class="updated">' . __( 'Your email has been successfully sent!', 'sefa' ) . '</div>'; $send_mail_message = '<div class="updated">' . __( 'Your email has been successfully sent!', 'swpm' ) . '</div>';
} else { } else {
$send_mail_message = '<div class="error">' . __( 'There was an error sending the email.', 'sefa' ) . '</div>'; $send_mail_message = '<div class="error">' . __( 'There was an error sending the email.', 'swpm' ) . '</div>';
} }
} else { } else {
foreach( $recipients as $recipient ) { foreach( $recipients as $recipient ) {
if ( wp_mail( $recipient, $sefa_subject, $sefa_body, $headers, $attachments ) ) { if ( wp_mail( $recipient, $email_subject, $email_body, $headers, $attachments ) ) {
$send_mail_message .= '<div class="updated">' . __( 'Your email has been successfully sent to ', 'sefa' ) . esc_html($recipient) . '!</div>'; $send_mail_message .= '<div class="updated">' . __( 'Your email has been successfully sent to ', 'swpm' ) . esc_html($recipient) . '!</div>';
} else { } else {
$send_mail_message .= '<div class="error">' . __( 'There was an error sending the email to ', 'sefa' ) . esc_html($recipient) . '</div>'; $send_mail_message .= '<div class="error">' . __( 'There was an error sending the email to ', 'swpm' ) . esc_html($recipient) . '</div>';
} }
} }
} }
@ -154,8 +141,8 @@ function sefa_plugin_main() {
} }
} }
?> ?>
<div class="wrap" id="sefa-wrapper"> <div class="wrap" id="swpm-wrapper">
<h1><?php _e( 'Send Email From Admin', 'sefa' ); ?></h1> <h1><?php _e( 'Send WP Mail', 'swpm' ); ?></h1>
<?php <?php
if ( !empty($errors) ) { if ( !empty($errors) ) {
echo '<div class="error"><ul>'; echo '<div class="error"><ul>';
@ -171,18 +158,18 @@ function sefa_plugin_main() {
<div id="poststuff"> <div id="poststuff">
<div id="post-body" class="metabox-holder columns-2"> <div id="post-body" class="metabox-holder columns-2">
<div id="post-body-content"> <div id="post-body-content">
<form method="POST" id="sefa-form" enctype="multipart/form-data"> <form method="POST" id="swpm-form" enctype="multipart/form-data">
<?php wp_nonce_field( 'sefa_send_email', 'sefa-form-nonce' ); ?> <?php wp_nonce_field( 'send-wp-mail', 'send-wp-mail' ); ?>
<table cellpadding="0" border="0" class="form-table"> <table cellpadding="0" border="0" class="form-table">
<tr> <tr>
<th scope=”row”>From:</th> <th scope=”row”>From:</th>
<td><input type="text" disabled value="<?php echo "$from_name &lt;$from_email&gt;"; ?>" required><div class="note"><?php _e( 'These can be changed in Settings->General.', 'sefa' ); ?></div></td> <td><input type="text" disabled value="<?php echo "$from_name &lt;$from_email&gt;"; ?>" required><div class="note"><?php _e( 'These can be changed in Settings->General.', 'swpm' ); ?></div></td>
</tr> </tr>
<tr> <tr>
<th scope=”row”><label for="sefa-recipient-emails">To:</label></th> <th scope=”row”><label for="swpm-recipient-emails">To:</label></th>
<td><input type="email" multiple id="sefa-recipient-emails" name="sefa_recipient_emails" value="<?php echo esc_attr( sefa_plugin_issetor($sefa_recipient_emails) ); ?>" required><div class="note"><?php _e( 'To send to multiple recipients, enter each email address separated by a comma or choose from the user list below.', 'sefa' ); ?></div> <td><input type="email" multiple id="swpm-recipient-emails" name="email_to" value="<?php echo esc_attr( swpm_plugin_issetor($email_to) ); ?>" required><div class="note"><?php _e( 'To send to multiple recipients, enter each email address separated by a comma or choose from the user list below.', 'swpm' ); ?></div>
<select id="sefa-user-list"> <select id="swpm-user-list">
<option value="">-- <?php _e( 'user list', 'sefa' ); ?> --</option> <option value="">-- <?php _e( 'user list', 'swpm' ); ?> --</option>
<?php <?php
$users = get_users( 'orderby=user_email' ); $users = get_users( 'orderby=user_email' );
foreach ( $users as $user ) { foreach ( $users as $user ) {
@ -200,27 +187,27 @@ function sefa_plugin_main() {
<tr> <tr>
<th scope=”row”></th> <th scope=”row”></th>
<td> <td>
<div class="sefa-radio-wrap"> <div class="swpm-radio-wrap">
<input type="radio" class="radio" name="sefa_group_email" value="no" id="no"<?php if ( isset($sefa_group_email) && $sefa_group_email === 'no' ) echo ' checked'; ?> required> <input type="radio" class="radio" name="group_email" value="no" id="no"<?php if ( isset($group_email) && $group_email === 'no' ) echo ' checked'; ?> required>
<label for="no"><?php _e( 'Send each recipient an individual email', 'sefa' ); ?></label> <label for="no"><?php _e( 'Send each recipient an individual email', 'swpm' ); ?></label>
</div> </div>
&nbsp;&nbsp; &nbsp;&nbsp;
<div class="sefa-radio-wrap"> <div class="swpm-radio-wrap">
<input type="radio" class="radio" name="sefa_group_email" value="yes" id="yes"<?php if ( isset($sefa_group_email) && $sefa_group_email === 'yes' ) echo ' checked'; ?> required> <input type="radio" class="radio" name="group_email" value="yes" id="yes"<?php if ( isset($group_email) && $group_email === 'yes' ) echo ' checked'; ?> required>
<label for="yes"><?php _e( 'Send a group email to all recipients', 'sefa' ); ?></label> <label for="yes"><?php _e( 'Send a group email to all recipients', 'swpm' ); ?></label>
</div> </div>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope=”row”><label for="sefa-subject">Subject:</label></th> <th scope=”row”><label for="swpm-subject">Subject:</label></th>
<td><input type="text" id="sefa-subject" name="sefa_subject" value="<?php echo esc_attr( sefa_plugin_issetor($sefa_subject) );?>" required></td> <td><input type="text" id="swpm-subject" name="email_subject" value="<?php echo esc_attr( swpm_plugin_issetor($email_subject) );?>" required></td>
</tr> </tr>
<tr> <tr>
<th scope=”row”><label for="sefa_body">Message:</label></th> <th scope=”row”><label for="email_body">Message:</label></th>
<td align="left"> <td align="left">
<?php <?php
$settings = array( "editor_height" => "200" ); $settings = array( "editor_height" => "200" );
wp_editor( sefa_plugin_issetor($sefa_body), "sefa_body", $settings ); wp_editor( swpm_plugin_issetor($email_body), "email_body", $settings );
?> ?>
</td> </td>
</tr> </tr>
@ -230,7 +217,7 @@ function sefa_plugin_main() {
</tr> </tr>
<tr> <tr>
<td colspan="2" align="right"> <td colspan="2" align="right">
<input type="submit" value="<?php _e( 'Send Email', 'sefa' ); ?>" name="submit" class="button button-primary"> <input type="submit" value="<?php _e( 'Send WP Mail', 'swpm' ); ?>" name="submit" class="button button-primary">
</td> </td>
</tr> </tr>
</table> </table>
@ -263,6 +250,6 @@ function sefa_plugin_main() {
* *
* @return string $var value if isset or '' * @return string $var value if isset or ''
*/ */
function sefa_plugin_issetor(&$var) { function swpm_plugin_issetor(&$var) {
return isset($var) ? $var : ''; return isset($var) ? $var : '';
} }