I had got problems with laravel-newsletter, it just didn't work.
One time I received email, confirmed, but it is not visible on Mailchimp list...
So, it is like, laravel-newsletter doesn't work.
Please check my code and help me figure out what I have made wrong:
Controller:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Newsletter;
class NewsletterController extends Controller
{
public function store(Request $request) {
if(! Newsletter::isSubscribed($request->email)){
Newsletter::subscribePending($request->email);
return redirect('/')->with('success', 'Thanks! Check your email to accept newsletter!');
}
return redirect('/')->with('failure', 'Yeah, you are already our subscriber!');
}
}
Blade:
<div class="newsletter">
@if (session('success'))
<div class="success">
{{ session('success') }}
</div>
@endif
@if (session('failure'))
<div class="failure">
{{ session('failure') }}
</div>
@endif
<div class="newsletter-box">
<form action="{{ url('/newsletter') }}" method="post">
{{ csrf_field() }}
<p>Get special job offers for you and much more!</p>
<div class="newsletter-content">
<div class="newsletter-group"><input type="email" name="email" placeholder="Your e-mail"></div>
<div class="newsletter-group"><input value="Subscribe" type="submit"></div>
</div>
</form>
</div>
<p class="spam">No spam. Only valuable stuff guaranteed.</p>
</div>
Route:
Route::post('/newsletter', 'NewsletterController@store')->name('store');
ENV:
MAILCHIMP_APIKEY=xxx
MAILCHIMP_LIST_ID=yyy
When I type email and click "Subscribe", I get success:
"Thanks! Check your email to accept newsletter!"
but when I leave input blank and click "Subscribe", it shows error:
Type error: Argument 1 passed to Spatie\Newsletter\Newsletter::isSubscribed() must be of the type string, null given
Please help me.