Вообщем продолжение марлезонского балета. )
Ссылка на фото отправляется без проблем через переменную $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 );