как я могу отправить клиенту уведомление, когда товар появится в наличии - PullRequest
1 голос
/ 07 ноября 2019

это код, который я сделал, я вставил его в функцию обновления продукта поставщика при обновлении продукта

if ($product->stock >=1)
        {
        $user = DB::table('user_profiles')->leftjoin('wishlist', 'wishlist.user_id' , '=', 'user_profiles.id')->get('email');

        mail($user->email,'The book is available!!','Your book in wishlist is available. Please check it in your wishlist.');
        }

это функция, которую поставщик использует для редактирования продукта и сохранения в базе данных

 public function update(Request $request, $id)
    {
        $product = Product::findOrFail($id);
        $input = $request->all();
        $input['category'] = $request->mainid.",".$request->subid.",".$request->childid;

        if ($file = $request->file('photo')){
            $photo_name = time().$request->file('photo')->getClientOriginalName();
            $file->move('assets/images/products',$photo_name);
            $input['feature_image'] = $photo_name;
        }

        if ($request->galdel == 1){
            $gal = Gallery::where('productid',$id);
            $gal->delete();
        }

        if ($request->pallow == ""){
            $input['sizes'] = null;
        }


        if ($product->stock >=1)
        {
        $user = DB::table('user_profiles')->leftjoin('wishlist', 'wishlist.user_id' , '=', 'user_profiles.id')->get('email');

        mail($user->email,'The book is available!!','Your book in wishlist is available. Please check it in your wishlist.');
        }


        $product->update($input);

        if ($files = $request->file('gallery')){
            foreach ($files as $file){
                $gallery = new Gallery;
                $image_name = str_random(2).time().$file->getClientOriginalName();
                $file->move('assets/images/gallery',$image_name);
                $gallery['image'] = $image_name;
                $gallery['productid'] = $id;
                $gallery->save();
            }
        }

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Сначала получите электронную почту ваших пользователей в виде массива

$users = DB::table('user_profiles')
->select('email')
->leftjoin('wishlist', 'wishlist.user_id' , '=', 'user_profiles.id')
->get()->toArray();

Отправка почты нескольким пользователям.

Mail::send([], [], function ($message) use ($users) {
  $message->to($users)
    ->from('your_email_id')
    ->subject('The book is available!!')
    ->setBody('The book is available!!,Your book in wishlist is available. Please check it in your wishlist.');
});

ИЛИ

Mail::raw('The book is available!!,Your book in wishlist is available. Please check it in your wishlist.', function ($message) use ($users){
 $message->to($users);
});
0 голосов
/ 07 ноября 2019

Вам необходимо следовать документации по отправке почты Laravel:

 $user = DB::table('user_profiles')->leftjoin('wishlist', 'wishlist.user_id' , '=', 'user_profiles.id')->select('email')->get();
 foreach($user as $usr){
     Mail::send('emails.wishlist', ['usr' => $usr], function ($m) use ($usr) {
         $m->from('Youremail@app.com', 'Your Application');
         $m->to($usr->email)->subject('Items are now available!');
     });
 }

Создать новый файл блэйда вида в папке resources -> emails как wishlist.blade.php

Влезвие добавьте ваш адрес электронной почты:

 'The book is available!!','Your book in the wishlist is available. Please check it in your wishlist.

https://laravel.com/docs/5.2/mail

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...