Вообщем продолжение марлезонского балета. )
Ссылка на фото отправляется без проблем через переменную $textmail таким кодом.
function dd3_open_rcl_register(){ $option = 1; return $option; } add_filter('rcl_users_can_register','dd3_open_rcl_register'); add_action('user_register', 'rcl_send_user_data_to_mail', 50); function rcl_send_user_data_to_mail($user_id){ $admin_email = 'email@example.com'; // укажите почту админа $subject = 'Данные нового пользователя'; // заголовок письма $attach_id_1 = get_user_meta($user_id, 'f_001_jb', 1); $image_url_1 = wp_get_attachment_url( $attach_id_1); foreach($_REQUEST as $k => $val){ $user_email = $_POST['user_email']; $user_login = $_POST['user_login']; $textmail = '<p>На сайте зарегистрировался новый пользователь! Данные указанные при регистрации: </p>'; $textmail .= '<table><tr><td width="140px" valign="top"><b>Логин</b></td><td>'.$user_login.'<br></td></tr>'; $textmail .= '<tr><td width="140px" valign="top"><b>Почта</b></td><td>'.$user_email.'<br></td></tr>'; $textmail .= '<b>Фото</b><br><img style="height: 200px;padding-right: 20px" src="'.$image_url_1.'">'; } rcl_mail($admin_email, $subject, $textmail); }
Но нужно чтобы отправлялась не ссылка, а файл фотографии, то есть через $attach. Первым делом пошел смотреть на функцию rcl_mail. Тут $attach я так понял false и не реализован.
function rcl_mail( $email, $title, $text, $from = false, $attach = false ) { $from_name = (isset( $from['name'] )) ? $from['name'] : get_bloginfo( 'name' ); $from_mail = (isset( $from['email'] )) ? $from['email'] : 'noreply@' . $_SERVER['HTTP_HOST']; add_filter( 'wp_mail_content_type', function() { return "text/html"; } ); $headers = 'From: ' . $from_name . ' ' . "rn"; $text .= '<p><small>-----------------------------------------------------<br /> ' . __( 'This letter was created automatically, no need to answer it.', 'wp-recall' ) . '<br /> "' . get_bloginfo( 'name' ) . '"</small></p>'; return wp_mail( $email, $title, $text, $headers, $attach ); }
Решил попробовать переделать через wp_mail. Для начала в $attachments прописал готовое фото уже хранящееся на хостинге. Для теста.
function dd3_open_rcl_register(){ $option = 1; return $option; } add_filter('rcl_users_can_register','dd3_open_rcl_register'); add_action('user_register', 'rcl_send_user_data_to_mail', 50); function rcl_send_user_data_to_mail($user_id){ $to = 'email@example.com'; // укажите почту админа $subject = 'Данные нового пользователя'; // заголовок письма $attachments = array(WP_CONTENT_DIR . '/uploads/foto.jpg'); foreach($_REQUEST as $k => $val){ $user_email = $_POST['user_email']; $user_login = $_POST['user_login']; $message = '<p>На сайте зарегистрировался новый пользователь! Данные указанные при регистрации: </p>'; $message .= '<table><tr><td width="140px" valign="top"><b>Логин</b></td><td>'.$user_login.'<br></td></tr>'; $message .= '<tr><td width="140px" valign="top"><b>Почта</b></td><td>'.$user_email.'<br></td></tr>'; } wp_mail($to, $subject, $message, $attachments); }
Все равно вложением файл не отправляет. Как можно реализовать в данном случае отправку файла/фото через $attachments?
rcl_mail это просто обертка над wp_mail и файлы можно в нее передавать
rcl_mail($to, $subject, $message, false, $attachments);
тут же:
wp_mail($to, $subject, $message, $attachments);
$attachments должен быть 5ым параметром, а 4ым идут заголовки
wp_mail( $to, $subject, $message, $headers, $attachments );