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-controller.php aşağıdaki gibidir:
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']);
}
?>