WordPress wp_mail nasıl kullanılır?

Fragger

Kilopat
Katılım
4 Kasım 2017
Mesajlar
655
Çözümler
4
Yer
İstanbul
Daha fazla  
Sistem Özellikleri
Ekran Kartı: Geforce RTX 4060 Ti
Anakart: Asus Prime B550M-K
İşlemci: Ryzen 5 5600
RAM: GSKILL 8GB RIPJAWS V 2x8
SSD: Samsung 980 Pro 2TB
SSD2 : GOODRAM 512GB
Monitör: Dell E2417H
Sıvı Soğutma: PowerBoost NOBLE 120 Rainbow
PSU: FSP 650W
Cinsiyet
Erkek
Meslek
Finans
Merhabalar,

Bir WP sitemiz var. Şu anda her şey aktif olarak çalışmaktadır. Bir müşteri formu doldurduğunda arka planda farklı bir sitede API'lerle sorunsuz bir şekilde müşteri datasını oluşturmaktadır. Benim isteğim ise bu çalışan forma dosya yükleme seçeneklerinden seçilen dosyaların mail olarak gelmesi. Bu form doldurulduğunda normalde olduğu gibi yine arka planda farklı bir sitede müşteri kaydını oluşturmaya devam edip aynı anda o formdaki bilgileri ve yüklenen dosyaları belirlediğimiz mail adresine göndermesi. Bunu wp_mail kodlarıyla yapılabileceğini gördüm ama pek anlamadım.

Form şöyle:

2958361862.png


Form-controller.php aşağıdaki gibidir:

PHP:
<?php

if(!isset($_SESSION))
{
 session_start();
}
$formErr = null;

function getToken($email,$password){
 $curl = curl_init();
 curl_setopt_array($curl, array(
 CURLOPT_URL => "https://***/api/getToken",
 CURLOPT_RETURNTRANSFER => true,
 CURLOPT_ENCODING => "",
 CURLOPT_MAXREDIRS => 10,
 CURLOPT_TIMEOUT => 0,
 CURLOPT_FOLLOWLOCATION => true,
 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
 CURLOPT_CUSTOMREQUEST => "POST",
 CURLOPT_POSTFIELDS => array('email' => $email,'password' => $password),
 ));

 $response = curl_exec($curl);

 curl_close($curl);
 $response = json_decode($response,true);
 if($response["status"]=="incorrect"){
 return "token_error";
 }else if($response["status"]=="correct"){
 return $response["token"];
 }

}

function addLead($token,$name,$email,$phone,$phoneCode,$refer,$source,$campaign,$medium){

 $curl = curl_init();

 curl_setopt_array($curl, array(
 CURLOPT_URL => "https://***/api/customer/create",
 CURLOPT_RETURNTRANSFER => true,
 CURLOPT_ENCODING => "",
 CURLOPT_MAXREDIRS => 10,
 CURLOPT_TIMEOUT => 0,
 CURLOPT_FOLLOWLOCATION => true,
 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
 CURLOPT_CUSTOMREQUEST => "POST",
 CURLOPT_POSTFIELDS => array(
 'token' => $token,
 'name' => $name,
 'email' => $email,
 'phone' => $phone,
 'phone_code' => $phoneCode,
 'refer' => $refer,
 'utm_source' => $source,
 'utm_campaign' => $campaign,
 'utm_medium' => $medium
 ),
 ));

 $response = curl_exec($curl);

 curl_close($curl);
 return $response;
}

if (!empty($_POST['token']) and $_SESSION['token']!=null ) {

 if (hash_equals($_SESSION['token'], $_POST['token'])) {
 //print "token:ok\n";
 $_SESSION['token']=null;
 $refer = isset($_POST['refer']) ? $_POST['refer'] : "";

 $token = getToken('api@***','***');
 if ($token === "token_error") { //token hatalı mı ?
 $formErr = "Şu anda işleminizi gerçekleştiremiyoruz. Lütfen daha sonra tekrar deneyiniz.";
 } else {
 if (empty($_POST['name'])) {
 $formErr = "Lütfen isim alanını doldurunuz";
 } else {

 $name = $_POST['name']; //name atama.
 if (empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
 $formErr = "Lütfen geçerli bir email adresi giriniz";
 } else {

 $email = $_POST['email']; //email atama.
 if (empty($_POST['phone']) ) {
 $formErr = "Lütfen telefon alanını doldurunuz";
 } else {

 $phone = "90".str_replace(' ', '', $_POST["phone"]);
 $utm_source = isset($_SESSION["utm_source"]) ? $_SESSION["utm_source"] : "";
 $utm_campaign = isset($_SESSION["utm_campaign"]) ? $_SESSION["utm_campaign"] : "";
 $utm_medium = isset($_SESSION["utm_medium"]) ? $_SESSION["utm_medium"] : "";
 if(addLead($token,$name,$email,$phone,"90",$refer,$utm_source,$utm_campaign,$utm_medium)){
 //print_r($_POST);
 print true;
 //print header("Location: https://" . $_SERVER['HTTP_HOST'] . "/tesekkurler.html");
 }else{
 $formErr = "Şu anda işleminizi gerçekleştiremiyoruz. Lütfen daha sonra tekrar deneyiniz.";

 }

 //create_lead($token,$email,$name, $phone, $phoneCode,1,$refer,$refUrl,$utm_source ,$utm_campaign,$utm_medium);
 }
 }
 }
 }
 } else {
 $formErr = "Oturum süreniz dolmuş lütfen sayfayı yenileyip tekrar deneyiniz.";
 }
}else {
 $formErr = "Oturum süreniz dolmuş lütfen sayfayı yenileyip tekrar deneyiniz.";
}

if($formErr){
 $_SESSION["formErr"] = $formErr;
 print($formErr);
 //header('Location: ' . $_SERVER['HTTP_REFERER']);
}

?>
 
Gerek yok böyle bir API kullanımına. Ayrıca hostinglerde wp_mail desteği artık yok, güvenlik açığı oluşturduğu için kaldırıldı.

 
Gerek yok böyle bir API kullanımına. Ayrıca hostinglerde wp_mail desteği artık yok, güvenlik açığı oluşturduğu için kaldırıldı.


Normal PHP ile mail göndermeyi biliyorum da zaten kullanılan API var ve bunu bozamayız. Bu form-controller'e, formdaki bilgileri mail göndermeyi eklememiz lazım. Buraya nasıl ekleyeceğiz eğer onu biliyorsanız o iyi olur.
 
@Fragger yaptığınız işlem KVKK koşullarına uymuyor gibi. Kişisel verileri kendi kontrolünüzde olmayan bir API servise yönlendireceksiniz. Bu yüzden maalesef ben bu işe destek vermek istemiyorum.
 
@Fragger yaptığınız işlem KVKK koşullarına uymuyor gibi. Kişisel verileri kendi kontrolünüzde olmayan bir API servise yönlendireceksiniz. Bu yüzden maalesef ben bu işe destek vermek istemiyorum.

Hocam API de bize ait zaten. Kodda vermememin nedeni sitenin gizliliğinden dolayı. İndex'den hesap açılışı için doldurulan form API ile Crm'e data olarak eklenmektedir. Crm'in ne olduğunu biliyor musunuz? KVKK'yı benden iyi bilmeyeceğine emin olabilirsin.
 
@Fragger ne işle uğraştığımı bilsen... İnsanları tanımadan ve yaptığı işi bilmeden konuşmamanı öneririm.

form-controller.php için SMTP mail gönderim kodlarını eklemen gerek, wp_mail ile bu işi yapamazsın. Çünkü artık wp_mail kullanılmıyor. Madem çok iyi bir CRM yapıyorsunuz maile dosya eklemek çok zor olmamalı.
 
@Fragger ne işle uğraştığımı bilsen? İnsanları tanımadan ve yaptığı işi bilmeden konuşmamanı öneririm.

form-controller.php için smtp mail gönderim kodlarını eklemen gerek, wp_mail ile bu işi yapamazsın. Çünkü artık wp_mail kullanılmıyor. Madem çok iyi bir crm yapıyorsunuz maile dosya eklemek çok zor olmamalı.

Anladım ama konunun başında verdiğim kodların neresine eklemem gerekiyor? O şekilde ekleyip atar mısın?

İmzanda yazılanı okudum ama ben yaklaşık 2.5 yıl kadar THH kararlarıyla ilgili bir kurumda çalıştım. Teşekkürler.
 

Geri
Yukarı