🏡 index : ~doyle/koselig.git

author Jordan Doyle <jordan@doyle.wf> 2016-10-17 5:00:39.0 +00:00:00
committer Jordan Doyle <jordan@doyle.wf> 2016-10-17 5:00:39.0 +00:00:00
commit
586de3b969b85f136f781a579f01ff2330238d76 [patch]
tree
540d28dd5b6c0742489ed190adda845eb6f905c7
parent
a81ede8b98b503cb31ca2f872cc83fbc349685a8
download
586de3b969b85f136f781a579f01ff2330238d76.tar.gz

replace wordpress mailer with laravel's mailer



Diff

 src/Mail/Mailer.php                        | 39 +++++++++++++++++++++++++++++++-
 src/Mail/WordpressMailServiceProvider.php  | 22 +++++++++++++++++-
 src/Providers/KoseligServiceProvider.php   |  2 ++-
 src/Providers/WordpressServiceProvider.php |  1 +-
 4 files changed, 64 insertions(+)

diff --git a/src/Mail/Mailer.php b/src/Mail/Mailer.php
new file mode 100644
index 0000000..c441057
--- /dev/null
+++ b/src/Mail/Mailer.php
@@ -0,0 +1,39 @@
<?php
use Illuminate\Mail\Message;
use Illuminate\Support\Facades\Mail;
use Koselig\Support\Action;

if (!function_exists('wp_mail')) {
    /**
     * Override wp_mail to use the Laravel mailer.
     *
     * @param string|array $to Array or comma-separated list of email addresses to send message.
     * @param string $subject Email subject
     * @param string $message Message contents
     * @param string|array $headers Optional. Additional headers.
     * @param string|array $attachments Optional. Files to attach.
     * @return bool Whether the email contents were sent successfully.
     */
    function wp_mail($to, $subject, $message, $headers = '', $attachments = [])
    {
        list($to, $subject, $headers, $attachments) = array_values(
            Action::filter('wp_mail', [$to, $subject, $message, $headers, $attachments])
        );

        Mail::raw($message, function (Message $message) use ($to, $subject, $headers, $attachments) {
            $message->to($to)->subject($subject);

            if (!is_array($attachments)) {
                $attachments = explode("\n", str_replace("\r\n", "\n", $attachments));
            }

            $attachments = array_filter($attachments);

            if (!empty($attachments)) {
                foreach ($attachments as $attachment) {
                    $message->attach($attachment);
                }
            }
        });
    }
}
diff --git a/src/Mail/WordpressMailServiceProvider.php b/src/Mail/WordpressMailServiceProvider.php
new file mode 100644
index 0000000..89acc32
--- /dev/null
+++ b/src/Mail/WordpressMailServiceProvider.php
@@ -0,0 +1,22 @@
<?php
namespace Koselig\Mail;

use Illuminate\Support\ServiceProvider;

/**
 *
 *
 * @author Jordan Doyle <jordan@doyle.wf>
 */
class WordpressMailServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function register()
    {
        include_once 'Mailer.php';
    }
}
diff --git a/src/Providers/KoseligServiceProvider.php b/src/Providers/KoseligServiceProvider.php
index f625a1d..5f446f3 100644
--- a/src/Providers/KoseligServiceProvider.php
+++ b/src/Providers/KoseligServiceProvider.php
@@ -4,6 +4,7 @@ namespace Koselig\Providers;
use Illuminate\Support\ServiceProvider;
use Koselig\Auth\AuthServiceProvider;
use Koselig\Hashing\HashServiceProvider;
use Koselig\Mail\WordpressMailServiceProvider;
use Koselig\Routing\RoutingServiceProvider;

/**
@@ -21,6 +22,7 @@ class KoseligServiceProvider extends ServiceProvider
    public function register()
    {
        // Generic service providers
        $this->app->register(WordpressMailServiceProvider::class);
        $this->app->register(WordpressServiceProvider::class);
        $this->app->register(ConfigServiceProvider::class);
        $this->app->register(QueryServiceProvider::class);
diff --git a/src/Providers/WordpressServiceProvider.php b/src/Providers/WordpressServiceProvider.php
index 6d726eb..1d22bfd 100644
--- a/src/Providers/WordpressServiceProvider.php
+++ b/src/Providers/WordpressServiceProvider.php
@@ -4,6 +4,7 @@ namespace Koselig\Providers;
use Illuminate\Contracts\Routing\UrlGenerator;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\ServiceProvider;
use Koselig\Mail\WordpressMailServiceProvider;
use Koselig\Support\Action;
use Koselig\Support\Wordpress;