У нас есть сайт WordPress, и он использует SemRUSH API, который возвращает запрос в CSV. Мне нужно отправить этот запрос по электронной почте и сделать его читабельным, так как сейчас я просто отправляю ответ, поэтому он выглядит как
База данных; Домен; Ранг; Органические ключевые слова; Органический трафик; Органические затраты; Ключевые слова AdWords; Трафик AdWords; Стоимость AdWords; ключевые слова PLA; PLA использует нас; google.com; 5; 397712791; 570450887; 641270788; 11662; 2671447; 3225368; 138676; 35275
Вот как я это делаюон есть в моем functions.php
add_action('wp_ajax_mail_before_submit', 'mycustomtheme_send_mail_before_submit');
// if you want none logged in users to access this function use this hook
add_action('wp_ajax_nopriv_mail_before_submit', 'mycustomtheme_send_mail_before_submit');
function mycustomtheme_send_mail_before_submit(){
check_ajax_referer('my_email_ajax_nonce');
if ( isset($_POST['action']) && $_POST['action'] == "mail_before_submit" ){
$response = file_get_contents('https://api.semrush.com/?key=xxxxxxxxxxxxxxxxxxxxx&type=domain_ranks&export_columns=Db,Dn,Rk,Or,Ot,Oc,Ad,At,Ac,Sh,Sv&domain='.$_POST['domain'].'&database=us');
echo "$response";
//send email wp_mail( $to, $subject, $message, $headers, $attachments ); ex:
wp_mail($_POST['toemail'],'Your Personalized Audit', $response);
echo 'email sent';
die();
}
echo 'error';
die();
}
Также есть файл js, который загружает данные, которые получают данные (имя домена и поле электронной почты) из формы, поэтому запрос API принимает определенный домен. и отправляет по электронной почте конкретное письмо, которое выглядит так
// $() will work as an alias for jQuery() inside of this function
jQuery('#rankForm').submit(function() {
console.log("form submitted");
var data = {
action: 'mail_before_submit',
toemail: jQuery('#form-field-eed99f1').val(),
domain: jQuery('#form-field-domainField').val(),
_ajax_nonce: jQuery('#my_email_ajax_nonce').data('nonce'),
};
console.log(data);
jQuery.post(window.location.origin + "/wp-admin/admin-ajax.php", data, function(response) {
console.log('Got this from the server: ' + response);
});
});
} );
, затем этот код добавляется в footer.php
<span id="my_email_ajax_nonce" data-nonce="<?php echo wp_create_nonce( 'my_email_ajax_nonce' ); ?>"></span>
как мне поступить с переменной$ response, который является ответом csv от API и делает его читаемым по электронной почте. Спасибо за любые советы, спасибо.
Позвольте мне добавить немного дальше, поэтому я хочу пройтись по ответу и составить таблицу, которую я могу отправить по электронной почте, но у меня нет опыта работы с PHP, я нашел учебники в phpобрабатывают файлы CSV, но большинство из них делают противоположное тому, что я хочу (брать данные и делать CSV, тогда как у меня есть CSV и я хочу таблицы) Или они берут файл и читают из файла, а не просто переменную, котораяимеет информацию. Я не совсем уверен, если это что-то меняет или ответ - обрабатывать $ response как файл.