?
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
// use Auth\Auth;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use App\Models\Navigation;
use App\Models\Widget;
use App\Models\WidgetSetting;
use App\Models\Lead;
use App\Models\Product;
use App\Models\Mailemit;
use App\Http\Controllers\Traits\CaptchaGeneratorTrait;
// CaptchaGeneratorTrait
use Illuminate\Support\Str;
class LeadController extends Controller
{
function flagTheReview (Request $req){
$getUserID = Auth::user()->id ;
$type = "Review" ;
$subject = "User Flagged Content" ;
$req->validate([
'leadmsg' => 'required'
],
[
'leadmsg.required'=>'Please update reason .' ]
);
$utmparameter = null ;
$utmparameter = $req->utmparameter ;
Lead::insert([
'userid'=>$getUserID,
'brandid'=>$req->id,
'reviewid'=>$req->rid,
'message'=>$req->leadmsg,
'type'=>$type,
'subject'=>$subject,
'refURL'=>request()->headers->get('referer'),
'utm'=>$utmparameter,
'createby'=>1,
'createdate'=>Carbon::Now(),
'createip'=>$req->ip()
]);
$messagesuccess = session()->flash('sucess', 'Thanks for your request');
return redirect()->back();
}
function showReviewFlagData($type=0){
$dataviewer = Lead::WHERE('currentstatus','0')
->WHERE('subject','User Flagged Content')
->With('getBrandTitle')
->With('getReviewTitle')
->Orderby('createdate', 'DESC')
->paginate(20);
$sendType = $type ;
return view('ticketlead.leadmanager',['data'=>$dataviewer, 'getType' => $sendType]);
}
function showBrandData($type=0){
$dataviewer = Lead::WHERE('currentstatus','0')
->WHERE('subject','Reported by user')
->With('getBrandTitle')
->Orderby('createdate', 'DESC')
->paginate(20);
$sendType = $type ;
return view('ticketlead.leadmanager',['data'=>$dataviewer, 'getType' => $sendType]);
}
function reportBrand(Request $req) {
$getUserID = Auth::user()->id ;
$type = $req->report ;
$subject = "Reported by user" ;
$req->validate([
'name' => 'required|min:7',
'passwordemailxxx' => 'bail|required|email',
'leadmsg' => 'required'
],
[
'passwordemailxxx.required'=>'The email field is required.',
'leadmsg.required'=>'Please update feature request .'
]
);
$utmparameter = null ;
$utmparameter = $req->utmparameter ;
Lead::insert([
'userid'=>$getUserID,
'name'=>$req->name,
'email'=>$req->passwordemailxxx,
'phone'=>$req->phone,
'brandid'=>$req->id,
'message'=>$req->leadmsg,
'type'=>$type,
'subject'=>$subject,
'refURL'=>request()->headers->get('referer'),
'utm'=>$utmparameter,
'createby'=>1,
'createdate'=>Carbon::Now(),
'createip'=>$req->ip()
]);
$messagesuccess = session()->flash('sucess', 'Thanks for your request');
return redirect()->back();
}
function LeadUpdateStatus($id){
//changes the current status of leads
$PostUpdate = Lead::find($id) ;
$PostUpdate->currentstatus = 1 ;
$PostUpdate->isDirty('currentstatus');
$PostUpdate->save();
return redirect()->back()->with('msg', 'Lead has been deleted');
}
function showData($type=0){
$dataviewer = Lead::WHERE('currentstatus','0')
->Orderby('createdate', 'DESC')
->paginate(50);
$sendType = $type ;
return view('ticketlead.leadmanager',['data'=>$dataviewer, 'getType' => $sendType]);
}
function referAFriend(Request $req) {
$getUserID = Auth::user()->id ;
$type = 'Referral' ;
$subject = 'Your friend has Referred' ;
$refToken = (string) Str::uuid();
//Hash::make($data['password']),
$req->validate([
'name' => 'required',
'email' => 'bail|required|email',
]);
lead::insert([
'userid'=>$getUserID,
'name'=>$req->name,
'email'=>$req->email,
'type'=>$type,
'subject'=>$subject,
'refferalkey'=>$refToken,
'refURL'=>request()->headers->get('referer'),
'createby'=>1,
'createdate'=>Carbon::Now(),
'createip'=>$req->ip()
]);
$messagesuccess = session()->flash('sucess', 'updated sucessfully');
}
function OptInUpdate (Request $req) {
$type = 'OptIn';
$getUserID = '1' ; //Auth::user()->id
$listing_id = $req->zzpzzozzszztzzizzdzz;
$subject = "Optin" ;
$product = $req->zzpzzozzszztzzizzdzz ;
$name = $req->xxnxxaxxmxxexx ;
$email =$req->xxexxmxxaxxixxlxx ;
$req->validate([
'xxnxxaxxmxxexx' => 'required',
'xxexxmxxaxxixxlxx' => 'bail|unique:ticketlead,email|required|email',],
['xxnxxaxxmxxexx.required'=>'The Name field is required.',
'xxexxmxxaxxixxlxx.email'=>'The email field is required.',
'xxexxmxxaxxixxlxx.unique'=>'This email is already registered',
]);
lead::insert([
'userid'=>$getUserID,
'ing_id'=>$product,
'name'=>$name,
'email'=>$email,
'type'=>$type,
'subject'=>$subject,
'refURL'=>request()->headers->get('referer'),
'createby'=>$getUserID,
'createdate'=>Carbon::Now(),
'createip'=>$req->ip()
]);
// $messagesuccess = session()->flash('sucess', 'updated sucessfully');
return redirect(request()->headers->get('referer'))->with('sucess', 'Thanks, we will update you soon');
}
function leadInsert(Request $req){
$type = 'listingAd' ;
$subject = 'Lead from the Listing' ;
$req->validate([
'email' => 'bail|required|email',
'name' => 'required|min:7',
'phone' => 'required|numeric',
'leadmsg' => 'required'
],
['leadmsg.required'=>'The Message field is required.']
);
$getUserID = Auth::user()->id ;
lead::insert([
'userid'=>$getUserID,
'listing_id'=>$req->id,
'name'=>$req->name,
'email'=>$req->email,
'phone'=>$req->phone,
'message'=>$req->leadmsg,
'type'=>$type,
'subject'=>$subject,
'refURL'=>request()->headers->get('referer'),
'createby'=>1,
'createdate'=>Carbon::Now(),
'createip'=>$req->ip()
]);
$messagesuccess = session()->flash('sucess', 'updated sucessfully');
return view('ticketlead.leadcapture',[
'message' => $messagesuccess ,]);
}
function ListingInsert(Request $req){
// return $req->all();
$type = 'Listing' ;
$subject = 'Lead from the Website' ;
$req->validate([
'name' => 'required|min:7',
'passwordemailxxx' => 'bail|required|email',
'phone' => 'required|numeric',
'leadmsg' => 'required'
],
[
'passwordemailxxx.required'=>'The email field is required.',
'leadmsg.required'=>'The Message field is required.'
]
);
$getUserID = Auth::user()->id ;
lead::insert([
'userid'=>$getUserID,
'name'=>$req->name,
'email'=>$req->passwordemailxxx,
'phone'=>$req->phone,
'message'=>$req->leadmsg,
'type'=>$type,
'subject'=>$req->subject,
'refURL'=>request()->headers->get('referer'),
'createby'=>1,
'createdate'=>Carbon::Now(),
'createip'=>$req->ip()
]);
$messagesuccess = session()->flash('sucess', 'Thanks for your request, our team will get back to you');
return redirect('/Contact-Us');
}
function FamilyLeadInsert (Request $req) {
$getUserID = Auth::user()->id ;
$type = "Response from website" ;
$subject = "Response from website for the Family" ;
$req->validate([
'name' => 'required|min:7',
'passwordemailxxx' => 'bail|required|email',
'leadmsg' => 'required'
],
[
'passwordemailxxx.required'=>'The email field is required.',
'leadmsg.required'=>'Please update feature request .'
]
);
$utmparameter = null ;
$utmparameter = $req->utmparameter ;
Lead::insert([
'userid'=>$getUserID,
'family_uniqueid'=>$req->id,
'name'=>$req->name,
'email'=>$req->passwordemailxxx,
'phone'=>$req->phone,
'message'=>$req->leadmsg,
'type'=>$type,
'subject'=>$subject,
'refURL'=>request()->headers->get('referer'),
'utm'=>$utmparameter,
'createby'=>1,
'createdate'=>Carbon::Now(),
'createip'=>$req->ip()
]);
$messagesuccess = session()->flash('sucess', 'Thanks for your request');
return redirect()->back();
}
function BrandLeadInsert (Request $req) {
$getUserID = Auth::user()->id ;
$type = "Request For Quote" ;
$subject = "Request For Quote From Your Biz Profile" ;
$req->validate([
'name' => 'required|min:7',
'passwordemailxxx' => 'bail|required|email',
'leadmsg' => 'required'
],
[
'passwordemailxxx.required'=>'The email field is required.',
'leadmsg.required'=>'Please update feature request .'
]
);
$utmparameter = null ;
$utmparameter = $req->utmparameter ;
Lead::insert([
'userid'=>$getUserID,
'name'=>$req->name,
'email'=>$req->passwordemailxxx,
'phone'=>$req->phone,
'message'=>$req->leadmsg,
'type'=>$type,
'subject'=>$subject,
'refURL'=>request()->headers->get('referer'),
'utm'=>$utmparameter,
'createby'=>1,
'createdate'=>Carbon::Now(),
'createip'=>$req->ip()
]);
$messagesuccess = session()->flash('sucess', 'Thanks for your request');
return redirect()->back();
}
public function ContactCaptureDisplay()
{
$widgetsetting = WidgetSetting::getAllWidgetSettingGeneric();
$bottomTicker = Widget::SingleDataSpecific('BottomTicker');
return view('ticketlead.contactcapture', [
"widgetsetting" => $widgetsetting,
'$bottomTicker' => $bottomTicker,
]);
}
public function ContactInsert(Request $req)
{
// 1. Honeypot check for bots
if (!empty($req->input('honeypot'))) {
// Redirect to a success page to deceive the bot
return redirect('/thanks');
}
// 2. Validate all other form fields and the CAPTCHA
$req->validate([
'name' => 'required|min:7',
'passwordemailxxx' => 'bail|required|email',
'phone' => 'required|numeric',
'leadmsg' => 'required',
'captcha' => 'required', // The captcha field must be required
], [
'passwordemailxxx.required' => 'The email field is required.',
'leadmsg.required' => 'The Message field is required.',
'captcha.required' => 'The captcha field is required.',
]);
// 3. Perform the server-side CAPTCHA validation
if ($req->input('captcha') != session('captcha_answer')) {
return back()->withErrors(['captcha' => 'Incorrect captcha. Please try again.'])->withInput();
}
// 4. Insert lead into the database
lead::insert([
'name' => $req->name,
'email' => $req->passwordemailxxx,
'phone' => $req->phone,
'message' => $req->leadmsg,
'type' => 'Contact',
'subject' => 'Lead from the Website',
'refURL' => request()->headers->get('referer'),
'utm' => null,
'createby' => 1,
'createdate' => Carbon::now(),
'createip' => $req->ip()
]);
// 5. Clear the captcha answer from the session after a successful submission
session()->forget('captcha_answer');
session()->flash('sucess', 'Thanks for your request, our team will get back to you');
return redirect('/thanks');
}
function ContactInsertOLD( Request $req){
$utmparameter = null ;
$utmparameter = $req->utmparameter ;
$type = $req->type ;
// dd($req);
if($type != 'Contact') {
$type = $type ;
$subject = $type.'Lead from the Website' ;
$req->validate([
'name' => 'required|min:4',
'passwordemailxxx' => 'bail|required|email',
'phone' => 'required|numeric',
],
[
'passwordemailxxx.required'=>'The email field is required.',
'leadmsg.required'=>'Please update feature request .'
]
);
}else{
$type = 'Contact' ;
$subject = 'Lead from the Website' ;
$req->validate([
'name' => 'required|min:7',
'passwordemailxxx' => 'bail|required|email',
'phone' => 'required|numeric',
'leadmsg' => 'required'
],
[
'passwordemailxxx.required'=>'The email field is required.',
'leadmsg.required'=>'The Message field is required.'
]
);
}
// 'userid'=>$getUserID,
// $getUserID = Auth::user()->id ;
lead::insert([
'name'=>$req->name,
'email'=>$req->passwordemailxxx,
'phone'=>$req->phone,
'message'=>$req->leadmsg,
'type'=>$type,
'subject'=>$subject,
'refURL'=>request()->headers->get('referer'),
'utm'=>$utmparameter,
'createby'=>1,
'createdate'=>Carbon::Now(),
'createip'=>$req->ip()
]);
// $fromName = $req->name;
// $fromEmail = $req->passwordemailxxx;
$to = 'amit@makeyoursoftware.com';
$name = $req->name ;
$message_id = 3 ;
$inject =[
'userid'=>'',
'name'=>$req->name,
'email'=>$req->passwordemailxxx,
'phone'=>$req->phone,
'message'=>$req->leadmsg,
'type'=>$type,
'subject'=>$subject,
'refURL'=>request()->headers->get('referer'),
];
//$fireTheEmail = Mailemit::LetUsSendEmail($to,$subject,$message_id,$name,$inject) ;
$messagesuccess = session()->flash('sucess', 'Thanks for your request, our team will get back to you');
return redirect('/thanks');
}
function PrivacyDisplay(){
$getData = (new WidgetController)->ShowData('PrivacyPolicy');
$getTitle = 'Privacy Policy';
$getImageName = 'site-login-picture.png';
$getContentIcon = 'bi-shield-shaded';
return view('ticketlead.content',[
'Content'=>$getData,
'ContentTitle'=>$getTitle,
'ContentImageName'=>$getImageName,
'ContentIcon'=>$getContentIcon
]);
}
function ThanksDisplay (){
$getData = (new WidgetController)->ShowData('ThanksResponse');
$getTitle = 'Thanks';
$getImageName = 'thanksimg.png';
$getContentIcon = 'bi-stars';
return view('ticketlead.content',[
'Content'=>$getData,
'ContentTitle'=>$getTitle,
'ContentImageName'=>$getImageName,
'ContentIcon'=>$getContentIcon
]);
}
function userRegistrationConfirmation ($response = 'UserConfirmation'){
$getData = (new WidgetController)->ShowData($response);
$getTitle = 'Thanks';
$getImageName = 'site-thanks.png';
$getContentIcon = 'bi-stars';
return view('ticketlead.content',[
'Content'=>$getData,
'ContentTitle'=>$getTitle,
'ContentImageName'=>$getImageName,
'ContentIcon'=>$getContentIcon
]);
}
function wowDisplay ($response = 'RequestResponse'){
$getData = (new WidgetController)->ShowData($response);
$getTitle = 'Thanks';
$getImageName = 'site-thanks.png';
$getContentIcon = 'bi-stars';
return view('ticketlead.content',[
'Content'=>$getData,
'ContentTitle'=>$getTitle,
'ContentImageName'=>$getImageName,
'ContentIcon'=>$getContentIcon
]);
}
function TOSDisplay (){
$getData = (new WidgetController)->ShowData('TOSPolicy');
$getTitle = 'Terms Of Service';
$getImageName = 'site-login-picture.png';
$getContentIcon = 'bi-shield-shaded';
return view('ticketlead.content',[
'Content'=>$getData,
'ContentTitle'=>$getTitle,
'ContentImageName'=>$getImageName,
'ContentIcon'=>$getContentIcon
]);
}
function ContactCaptureDisplayold(){
$widgetsetting = WidgetSetting::getAllWidgetSettingGeneric() ;
return view('ticketlead.contactcapture',[
"widgetsetting" => $widgetsetting,
]);
}
function SuggestAFeatureDisplay(){
return view('ticketlead.suggestafeature',[
]);
}
function LeadCaptureDisplay($adid){
$getadid = $adid ;
$listingdetails = listing::where('id', $getadid)
->where('currentstatus', 0)
->get();
$listingtitle = $listingdetails[0]['title'] ;
if ($listingdetails->count() > 0 && is_numeric($getadid) ){
$dataviewer = [] ;
// 'SubcategoryGrid'=>$dataviewer,
// 'ProductList'=>$listingBasedOnCategory,
// 'CategoryTitle'=>$categorytitle
return view('ticketlead.leadcapture',[
'data'=>$dataviewer,
'listingid'=>$getadid,
'listingtitle'=>$listingtitle
]);
} else {
return "404:::Error" ;
}
}
}