<?php
namespace App\Http\Controllers;
use App\Models\MetaPixel;
use Illuminate\Http\Request;
class TrackingController extends Controller
{
public function index(){
$events = [
'ViewContent', // Saat pengunjung melihat halaman produk/landing page
'AddToCart', // Saat pengunjung menambahkan produk ke keranjang
'InitiateCheckout', // Saat pengunjung memulai proses checkout/mengisi form
'Lead',
'AddPaymentInfo', // Saat pengunjung menambahkan informasi pembayaran
'Purchase',
'Processing', // Saat status pesanan diubah menjadi "Processing"
'Completed', // Saat status pesanan diubah menjadi "Completed"
'CompleteRegistration',
'Search',
'BelumDirespon',
'SudahDirespon',
'BookingService',
'TidakResponLagi',
'ServiceMasuk',
'TombolKonsultasi',
];
$pages = [
[
"route"=>"home",
"name"=>"Landing Page",
"elements"=>[
[
"name"=>"Tombol Konsultasi",
"element"=>"a[href='#section-4']",
"default"=>'TombolKonsultasi'
],
[
"name"=>"Kirim Konsultasi",
"element"=>"form button.btn-success",
"default"=>'ViewContent'
]
]
],
[
"route"=>"status-perbaikan.index",
"name"=>"Form Cek Status Perbaikan",
"elements"=>[
[
"name"=>"Tombol Cek Status",
"element"=>"button#cek-button",
"default"=>'Search'
],
]
],
[
"route"=>"konsultasi.index",
"name"=>"Prospek",
"elements"=>[
[
"name"=>"Belum Direspon",
"element"=>".pending-respon",
"default"=>'BelumDirespon'
],
[
"name"=>"Sudah Direspon",
"element"=>".sudah-direspon",
"default"=>'SudahDirespon'
],
[
"name"=>"Booking Service",
"element"=>".booking-service",
"default"=>'BookingService'
],
[
"name"=>"Tidak Respon Lagi",
"element"=>".tidak-direspon",
"default"=>'TidakResponLagi'
],
[
"name"=>"Service Masuk",
"element"=>".service-masuk",
"default"=>'SudahService'
],
]
],
[
"route"=>"service.index",
"name"=>"Service",
"elements"=>[
[
"name"=>"Bayar",
"element"=>".action-bayar",
"default"=>'Purchase'
],
]
],
];
$metaEvents = MetaPixel::all();
return view('tracking.index',compact('events','metaEvents','pages'));
}
public function store(Request $request){
$pixelEvents = MetaPixel::get();
if($request->has('meta_page') && $request->main_meta_pixel_id != ""){
foreach ($request->meta_page as $indexPg => $page) {
foreach ($request->meta_element[$indexPg] as $indexEl => $element) {
$cek = $pixelEvents->where('target_page', $page)->where('target_element', $element)->where('source', 'meta')->first();
if(isset($request->meta_pixel_event[$indexPg][$indexEl]) && $request->meta_pixel_event[$indexPg][$indexEl] != ""){
MetaPixel::updateOrCreate([
'target_page'=>$page,
'target_element'=>$element,
'source'=>'meta',
],[
'pixel_id'=>$request->main_meta_pixel_id,
'pixel_event'=>$request->meta_pixel_event[$indexPg][$indexEl],
]);
} else if($cek){
$cek->delete();
}
}
}
} else {
MetaPixel::where('source', 'meta')->delete();
}
if($request->has('tiktok_page') && $request->main_tiktok_pixel_id != ""){
foreach ($request->tiktok_page as $indexPg => $page) {
foreach ($request->tiktok_element[$indexPg] as $indexEl => $element) {
$cek = $pixelEvents->where('target_page', $page)->where('target_element', $element)->where('source', 'tiktok')->first();
if(isset($request->tiktok_pixel_event[$indexPg][$indexEl]) && $request->tiktok_pixel_event[$indexPg][$indexEl] != ""){
MetaPixel::updateOrCreate([
'target_page'=>$page,
'target_element'=>$element,
'source'=>'tiktok',
],[
'pixel_id'=>$request->main_tiktok_pixel_id,
'pixel_event'=>$request->tiktok_pixel_event[$indexPg][$indexEl],
]);
} else if($cek){
$cek->delete();
}
}
}
} else {
MetaPixel::where('source', 'tiktok')->delete();
}
if($request->has('gtm_page') && $request->main_gtm_pixel_id != ""){
foreach ($request->gtm_page as $indexPg => $page) {
foreach ($request->gtm_element[$indexPg] as $indexEl => $element) {
$cek = $pixelEvents->where('target_page', $page)->where('target_element', $element)->where('source', 'gtm')->first();
if(isset($request->gtm_pixel_event[$indexPg][$indexEl]) && $request->gtm_pixel_event[$indexPg][$indexEl] != ""){
MetaPixel::updateOrCreate([
'target_page'=>$page,
'target_element'=>$element,
'source'=>'gtm',
],[
'pixel_id'=>$request->main_gtm_pixel_id,
'pixel_event'=>$request->gtm_pixel_event[$indexPg][$indexEl],
]);
} else if($cek){
$cek->delete();
}
}
}
} else {
MetaPixel::where('source', 'gtm')->delete();
}
return redirect()->back()->with('success','Berhasil menyimpan data tracking');
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]