Intereting Posts
Добавление HTML-тегов или классов CSS в столбцы администратора Можно ли включить HTML-файл с плоским файлом внутри темы WordPress? Рейтинг пользователя в сообщении WordPress как поместить значение настраиваемого поля в переменную Понимание того, как ссылки будут работать, когда DNS изменится, чтобы указать на новый сайт WordPress Как добавить категории с помощью mysql Сообщения не проходят правильно Как изменить родительское доменное имя в проекте Multisites? Геокодирование раздельного настраиваемого массива полей Как отображать изображения из базы данных? Правильный способ использования поля Nonce без параметров API Проблема с настройкой темы доступ к родительским переменным в дочерней конструкции без выполнения действий в родительском get_attached_media () возвращает пустой массив, если медиафайл уже используется другой почтой Измените недавнюю боковую панель сообщений, чтобы показать превью с выпадающими плагинами

Изображения в wp_mail не отображаются

Я создал плагин, который отправляет электронное письмо:

$subject = 'New comment - '.$post_title; ob_start(); include(SUBSCRIBE_USER_BASE_DIR . '/email/message.php'); $message = ob_get_clean(); foreach($user_emails as $user_email){ $to = $user_email; $send_mail = wp_mail( $to, $subject, $message ); if($send_mail){ echo 'Mail sent'; }else{ $wpdb->print_error(); } } 

Мое электронное сообщение:

 <img src="<?php echo SUBSCRIBE_USER_BASE_DIR . '/email/email_header.png'; ?>" width="600px" height="100px" /> <div>A new comment has been posted on MySite.</div> <div><?php echo get_the_title($comment->comment_post_ID); ?> <p><?php echo $comment->comment_content; ?></p> </div> 

Где SUBSCRIBE_USER_BASE_DIR определяется как:

 define('SUBSCRIBE_USER_BASE_DIR', dirname(__FILE__)); 

Это прекрасно работает, за исключением того, что изображение не появляется. Вместо этого это пустой заполнитель.

Я уже определил формат электронной почты в моем плагине следующим образом:

 function av_subscribe_format_email(){ return "text/html"; } add_filter( 'wp_mail_content_type', create_function('', 'return "text/html";' ) ); 

Формат и изображение также подтверждаются, если я просматриваю источник полученного электронного письма:

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><img src="/var/www/html/internal/wp-content/plugins/AV_-_Subscribe_User/email/email_header.png" width="600px" height="100px"> 

Однако изображение все еще не отображается.

Я также должен отметить, что я разрешил загрузку изображений в Outlook для просмотра электронной почты.

Итак, я переключил путь корня изображения из

define('SUBSCRIBE_USER_BASE_DIR', dirname(__FILE__));

в

define('SUBSCRIBE_USER_BASE_URL',plugin_dir_url(__FILE__)); и это сработало.

dirname(__FILE__) :

 <img src="/var/www/html/internal/wp-content/plugins/AV_-_Subscribe_User/email/email_header.png" 

Если последний plugin_dir_url(__FILE__) выводит:

 <img src="http://mysite.com/wp-content/plugins/AV_-_Subscribe_User/email/email_header.png" 

Я не на 100% понятен, когда использовать, но я предполагаю, что я буду использовать dirname, когда я буду работать на сервере сайта.