Compare commits
No commits in common. "4fef1d925a98ead343ee5c1c721c210557ff982c" and "232a901b0c36d08d95ff672cbdcb9bbe2856cecb" have entirely different histories.
4fef1d925a
...
232a901b0c
14
CHANGELOG.md
14
CHANGELOG.md
@ -2,20 +2,6 @@
|
|||||||
|
|
||||||
All notable changes to Send WP Mail plugin.
|
All notable changes to Send WP Mail plugin.
|
||||||
|
|
||||||
## 1.1
|
|
||||||
|
|
||||||
### Fork
|
|
||||||
- Fork wp.org repository plugin [send-admin-from-email](https://plugins.svn.wordpress.org/send-email-from-admin/).
|
|
||||||
- Rebrand plugin "Send WP Mail".
|
|
||||||
- Rename main plugin file `send-wp-mail.php`.
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Disable email spoofing in original plugin.
|
|
||||||
- Use WordPress core `wp_from_mail` and `wp_from_mail_name` hooks to change from email details.
|
|
||||||
- From field is for display purposes only.
|
|
||||||
- Do not send from details in headers.
|
|
||||||
- Do not use admin user's email.
|
|
||||||
|
|
||||||
## [1.0](https://plugins.svn.wordpress.org/send-email-from-admin/tags/1.0/)
|
## [1.0](https://plugins.svn.wordpress.org/send-email-from-admin/tags/1.0/)
|
||||||
- Fix typos.
|
- Fix typos.
|
||||||
|
|
||||||
|
|||||||
@ -48,7 +48,7 @@
|
|||||||
padding: 6px 10px
|
padding: 6px 10px
|
||||||
}
|
}
|
||||||
#swpm-form .swpm-radio-wrap {
|
#swpm-form .swpm-radio-wrap {
|
||||||
margin-bottom: 5px;
|
display: inline;
|
||||||
}
|
}
|
||||||
#swpm-form .wp-editor-wrap {
|
#swpm-form .wp-editor-wrap {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
jQuery( function( $ ) {
|
jQuery( document ).ready( function( $ ) {
|
||||||
$("#swpm-user-list").on( 'change', function() {
|
$("#swpm-user-list").change( function() {
|
||||||
$recipients = $("#swpm-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") );
|
||||||
|
|||||||
@ -55,12 +55,11 @@ 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
|
||||||
* @since 1.1 No more email spoofing - use wp_mail_from hook/default
|
|
||||||
*/
|
*/
|
||||||
function swpm_plugin_main() {
|
function swpm_plugin_main() {
|
||||||
// get email and name from WordPress hooks if available.
|
// get site info to construct 'FROM' for email
|
||||||
$from_name = apply_filters( 'wp_mail_from_name', '' );
|
$from_name = wp_specialchars_decode( get_option('blogname'), ENT_QUOTES );
|
||||||
$from_email = apply_filters( 'wp_mail_from', '' );
|
$from_email = get_bloginfo('admin_email');
|
||||||
|
|
||||||
// initialize
|
// initialize
|
||||||
$send_mail_message = false;
|
$send_mail_message = false;
|
||||||
@ -116,21 +115,21 @@ function swpm_plugin_main() {
|
|||||||
// send the email if no errors were found
|
// send the email if no errors were found
|
||||||
if ( empty($errors) ) {
|
if ( empty($errors) ) {
|
||||||
$headers[] = "Content-Type: text/html; charset=\"" . get_option('blog_charset') . "\"\n";
|
$headers[] = "Content-Type: text/html; charset=\"" . get_option('blog_charset') . "\"\n";
|
||||||
// $headers[] = 'From: ' . $from_name . ' <' . $from_email . ">\r\n"; // We should let wp_mail handle the name and address. no spoofing.
|
$headers[] = 'From: ' . $from_name . ' <' . $from_email . ">\r\n";
|
||||||
$attachments = $attachment_path;
|
$attachments = $attachment_path;
|
||||||
|
|
||||||
if ( $group_email === 'yes' ) {
|
if ( $group_email === 'yes' ) {
|
||||||
if ( wp_mail( $email_to, $email_subject, $email_body, $headers, $attachments ) ) {
|
if ( wp_mail( $email_to, $email_subject, $email_body, $headers, $attachments ) ) {
|
||||||
$send_mail_message = '<div class="below-h2 updated">' . __( 'Your email has been successfully sent!', 'swpm' ) . '</div>';
|
$send_mail_message = '<div class="updated">' . __( 'Your email has been successfully sent!', 'swpm' ) . '</div>';
|
||||||
} else {
|
} else {
|
||||||
$send_mail_message = '<div class="below-h2 error">' . __( 'There was an error sending the email.', 'swpm' ) . '</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, $email_subject, $email_body, $headers, $attachments ) ) {
|
if ( wp_mail( $recipient, $email_subject, $email_body, $headers, $attachments ) ) {
|
||||||
$send_mail_message .= '<div class="below-h2 updated">' . __( 'Your email has been successfully sent to ', 'swpm' ) . 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="below-h2 error">' . __( 'There was an error sending the email to ', 'swpm' ) . esc_html($recipient) . '</div>';
|
$send_mail_message .= '<div class="error">' . __( 'There was an error sending the email to ', 'swpm' ) . esc_html($recipient) . '</div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -141,30 +140,12 @@ function swpm_plugin_main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// reconstruct wp_mail defaults.
|
|
||||||
if ( empty( $from_email ) ) {
|
|
||||||
$from_email = 'wordpress@';
|
|
||||||
$domain = wp_parse_url( network_home_url(), PHP_URL_HOST );
|
|
||||||
if ( null !== $domain ) {
|
|
||||||
if ( str_starts_with( $domain, 'www.' ) ) {
|
|
||||||
$domain = substr( $domain, 4 );
|
|
||||||
}
|
|
||||||
$from_email .= $domain;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( empty( $from_name ) ) {
|
|
||||||
$from_name = 'WordPress';
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<div class="wrap" id="swpm-wrapper">
|
<div class="wrap" id="swpm-wrapper">
|
||||||
<h1><?php _e( 'Send WP Mail', 'swpm' ); ?></h1>
|
<h1><?php _e( 'Send WP Mail', 'swpm' ); ?></h1>
|
||||||
<div class="card"><?php _e( 'Send email using WordPress core <code>wp_mail()</code> directly from this website.', 'swpm' ); ?></div>
|
|
||||||
<?php
|
<?php
|
||||||
if ( !empty($errors) ) {
|
if ( !empty($errors) ) {
|
||||||
echo '<div class="below-h2 error"><ul>';
|
echo '<div class="error"><ul>';
|
||||||
foreach ($errors as $error) {
|
foreach ($errors as $error) {
|
||||||
echo "<li>$error</li>";
|
echo "<li>$error</li>";
|
||||||
}
|
}
|
||||||
@ -182,14 +163,13 @@ function swpm_plugin_main() {
|
|||||||
<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 <$from_email>"; ?>"><div class="note"><?php _e( 'These can be changed using <code>wp_mail_from</code> and <code>wp_mail_from_name</code> hooks.', 'swpm' ); ?></div></td>
|
<td><input type="text" disabled value="<?php echo "$from_name <$from_email>"; ?>" 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="swpm-recipient-emails">To:</label></th>
|
<th scope=”row”><label for="swpm-recipient-emails">To:</label></th>
|
||||||
<td><input type="email" multiple id="swpm-recipient-emails" name="email_to" value="<?php echo esc_attr( $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>
|
<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="swpm-user-list">
|
<select id="swpm-user-list">
|
||||||
<option value="">-- <?php _e( 'Select Email(s)', 'swpm' ); ?> --</option>
|
<option value="">-- <?php _e( 'user list', 'swpm' ); ?> --</option>
|
||||||
<option value="<?php echo get_option('admin_email') ?>">Administration Email <<?php echo get_option('admin_email') ?>></option>
|
|
||||||
<?php
|
<?php
|
||||||
$users = get_users( 'orderby=user_email' );
|
$users = get_users( 'orderby=user_email' );
|
||||||
foreach ( $users as $user ) {
|
foreach ( $users as $user ) {
|
||||||
@ -208,25 +188,26 @@ function swpm_plugin_main() {
|
|||||||
<th scope=”row”></th>
|
<th scope=”row”></th>
|
||||||
<td>
|
<td>
|
||||||
<div class="swpm-radio-wrap">
|
<div class="swpm-radio-wrap">
|
||||||
<input type="radio" class="radio" name="group_email" value="yes" id="yes"<?php checked( ! isset($group_email) || $group_email === 'yes' ) ?> 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="yes"><?php _e( 'Send a group email to all recipients', 'swpm' ); ?></label>
|
|
||||||
</div>
|
|
||||||
<div class="swpm-radio-wrap">
|
|
||||||
<input type="radio" class="radio" name="group_email" value="no" id="no"<?php checked( isset($group_email) && $group_email === 'no' ) ?> required>
|
|
||||||
<label for="no"><?php _e( 'Send each recipient an individual email', 'swpm' ); ?></label>
|
<label for="no"><?php _e( 'Send each recipient an individual email', 'swpm' ); ?></label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="swpm-radio-wrap">
|
||||||
|
<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', 'swpm' ); ?></label>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope=”row”><label for="swpm-subject">Subject:</label></th>
|
<th scope=”row”><label for="swpm-subject">Subject:</label></th>
|
||||||
<td><input type="text" id="swpm-subject" name="email_subject" value="<?php echo esc_attr( $email_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="email_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( $email_body ?? '', "email_body", $settings );
|
wp_editor( swpm_plugin_issetor($email_body), "email_body", $settings );
|
||||||
?>
|
?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -242,11 +223,33 @@ function swpm_plugin_main() {
|
|||||||
</table>
|
</table>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div id="postbox-container-1" class="postbox-container">
|
<div id="postbox-container-1" class="postbox-container">
|
||||||
</div> -->
|
<div class="postbox">
|
||||||
|
<h3><span>Like this plugin?</span></h3>
|
||||||
|
<div class="inside">
|
||||||
|
<ul>
|
||||||
|
<li><a href="https://wordpress.org/support/view/plugin-reviews/send-email-from-admin?filter=5" target="_blank">Rate it on WordPress.org</a></li>
|
||||||
|
<li><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8HHLL6WRX9Z68" target="_blank">Donate to the developer</a></li>
|
||||||
|
</ul>
|
||||||
|
</div> <!-- .inside -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper function for form values
|
||||||
|
*
|
||||||
|
* @since 0.9
|
||||||
|
*
|
||||||
|
* @param string $var Var name to test isset
|
||||||
|
*
|
||||||
|
* @return string $var value if isset or ''
|
||||||
|
*/
|
||||||
|
function swpm_plugin_issetor(&$var) {
|
||||||
|
return isset($var) ? $var : '';
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user