riverskies / laravel-newsletter-subscription
Simple newsletter subscription for Laravel projects.
Installs: 1 288
Dependents: 0
Suggesters: 0
Security: 0
Stars: 16
Watchers: 2
Forks: 7
Open Issues: 1
Requires
- hashids/hashids: ^2.0
Requires (Dev)
- orchestra/testbench: ^3.5
- phpunit/phpunit: ^6.3
- vlucas/phpdotenv: ^2.4
This package is auto-updated.
Last update: 2024-11-20 07:02:13 UTC
README
A simple package to enable newsletter subscriptions within the context of a Laravel application.
Installation
$ composer require riverskies/laravel-newsletter-subscription
Laravel 5.4 or earlier
Add the service provider to your config/app.php
file:
'providers' => [ // ... Riverskies\LaravelNewsletterSubscription\Providers\NewsletterSubscriptionServiceProvider::class, ];
Usage
Include a simple form anywhere within your pages.
<form action="/subscribe" method="POST"> {{ csrf_field() }} <input type="email" name="email"/> <button type="submit">Subscribe</button> </form>
You might also want to include notification display on the same page.
@if(session('flash')) <p>{{ session('flash') }}</p> @endif
Subscriptions
This package collects email addresses and stores them in the database. You can access these subscriptions by querying the Riverskies\LaravelNewsletterSubscription\NewsletterSubscription
Eloquent model.
Note
This package uses the Mail
facade to deliver the emails and delivery is queued, so ensure your QUEUE_DRIVER
in your environment config is set accordingly.
Publishing assets
You can override the database table name, the associated URLs, email template format and the session key by overriding the default configuration values.
$ php artisan vendor:publish --tag='newsletter-subscription-config'
You can design the confirmation email by overriding the default view.
$ php artisan vendor:publish --tag='newsletter-subscription-views'
You can localise/change the messages by overriding the default localisation values.
$ php artisan vendor:publish --tag='newsletter-subscription-translations'
Considerations
This package uses hashids/hashids
to help derive unsubscribe links from the id
fields of the subscription records. Those hashes are not stored in the database but instead encoded/decoded at runtime. To generate unique codes, this package uses the APP_KEY
from the environment settings. If that changes, previously generated unsubscribe links will no longer work.
Contributions
PRs are welcome as long as they are following PSR-2
standards and include all the corresponding tests that the change requires (not to mention that those should not break any previous behaviour either).