diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php
index bab0cc24f..878a88148 100644
--- a/packages/Webkul/Admin/src/Http/routes.php
+++ b/packages/Webkul/Admin/src/Http/routes.php
@@ -31,7 +31,7 @@ Route::group(['middleware' => ['web']], function () {
// Admin Routes
- Route::group(['middleware' => ['admin', 'locale']], function () {
+ Route::group(['middleware' => ['admin']], function () {
Route::get('/logout', 'Webkul\User\Http\Controllers\SessionController@destroy')->defaults('_config', [
'redirect' => 'admin.session.create'
])->name('admin.session.destroy');
diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php
index 1a191775a..dbf2d439d 100644
--- a/packages/Webkul/Admin/src/Resources/lang/en/app.php
+++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php
@@ -382,6 +382,7 @@ return [
'code' => 'Code',
'name' => 'Name',
'description' => 'Description',
+ 'hostname' => 'Hostname',
'currencies-and-locales' => 'Currencies and Locales',
'locales' => 'Locales',
'default-locale' => 'Default Locale',
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php
index e962920c9..b41973d8b 100644
--- a/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php
+++ b/packages/Webkul/Admin/src/Resources/views/settings/channels/create.blade.php
@@ -45,6 +45,11 @@
@{{ errors.first('description') }}
+
+
+
+
+
diff --git a/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php b/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php
index 1603039be..7ca570905 100644
--- a/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php
+++ b/packages/Webkul/Admin/src/Resources/views/settings/channels/edit.blade.php
@@ -47,6 +47,11 @@
@{{ errors.first('description') }}
+
+
+
+
+
diff --git a/packages/Webkul/Core/src/Core.php b/packages/Webkul/Core/src/Core.php
index b158e4602..54c234b5f 100644
--- a/packages/Webkul/Core/src/Core.php
+++ b/packages/Webkul/Core/src/Core.php
@@ -93,7 +93,8 @@ class Core
*
* @return Collection
*/
- public function getAllChannels() {
+ public function getAllChannels()
+ {
static $channels;
if($channels)
@@ -107,13 +108,23 @@ class Core
*
* @return mixed
*/
- public function getCurrentChannel() {
+ public function getCurrentChannel()
+ {
static $channel;
if($channel)
return $channel;
- return $channel = $this->channelRepository->first();
+ $channel = $this->channelRepository->findWhereIn('hostname', [
+ request()->getHttpHost(),
+ 'http://' . request()->getHttpHost(),
+ 'https://' . request()->getHttpHost()
+ ])->first();
+
+ if(!$channel)
+ $channel = $this->channelRepository->first();
+
+ return $channel;
}
/**
@@ -121,7 +132,8 @@ class Core
*
* @return string
*/
- public function getCurrentChannelCode() {
+ public function getCurrentChannelCode()
+ {
static $channelCode;
if($channelCode)
@@ -135,7 +147,8 @@ class Core
*
* @return mixed
*/
- public function getDefaultChannel() {
+ public function getDefaultChannel()
+ {
static $channel;
if($channel)
@@ -149,7 +162,8 @@ class Core
*
* @return string
*/
- public function getDefaultChannelCode() {
+ public function getDefaultChannelCode()
+ {
static $channelCode;
if($channelCode)
@@ -163,7 +177,8 @@ class Core
*
* @return Collection
*/
- public function getAllLocales() {
+ public function getAllLocales()
+ {
static $locales;
if($locales)
diff --git a/packages/Webkul/Core/src/Models/Channel.php b/packages/Webkul/Core/src/Models/Channel.php
index 07cddf191..5bf90353d 100644
--- a/packages/Webkul/Core/src/Models/Channel.php
+++ b/packages/Webkul/Core/src/Models/Channel.php
@@ -9,7 +9,7 @@ use Illuminate\Support\Facades\Storage;
class Channel extends Model
{
- protected $fillable = ['code', 'name', 'description', 'default_locale_id', 'base_currency_id', 'theme'];
+ protected $fillable = ['code', 'name', 'description', 'theme', 'hostname', 'default_locale_id', 'base_currency_id'];
/**
* Get the channel locales.
diff --git a/packages/Webkul/Core/src/Providers/CoreServiceProvider.php b/packages/Webkul/Core/src/Providers/CoreServiceProvider.php
index 82b05cff1..fbf290a81 100644
--- a/packages/Webkul/Core/src/Providers/CoreServiceProvider.php
+++ b/packages/Webkul/Core/src/Providers/CoreServiceProvider.php
@@ -1,10 +1,11 @@
loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'core');
- $router->aliasMiddleware('locale', Locale::class);
-
Validator::extend('slug', 'Webkul\Core\Contracts\Validations\Slug@passes');
Validator::extend('code', 'Webkul\Core\Contracts\Validations\Code@passes');
diff --git a/packages/Webkul/Core/src/Http/Middleware/Locale.php b/packages/Webkul/Shop/src/Http/Middleware/Locale.php
similarity index 70%
rename from packages/Webkul/Core/src/Http/Middleware/Locale.php
rename to packages/Webkul/Shop/src/Http/Middleware/Locale.php
index 8b128eabc..90d420624 100644
--- a/packages/Webkul/Core/src/Http/Middleware/Locale.php
+++ b/packages/Webkul/Shop/src/Http/Middleware/Locale.php
@@ -1,15 +1,14 @@
get('locale')) {
if($this->locale->findOneByField('code', $locale)) {
- // app()->setLocale($locale);
+ app()->setLocale($locale);
+
+ session()->put('locale', $locale);
+ }
+ } else {
+ if($locale = session()->get('locale')) {
+ app()->setLocale($locale);
}
}
diff --git a/packages/Webkul/Shop/src/Http/Middleware/Theme.php b/packages/Webkul/Shop/src/Http/Middleware/Theme.php
new file mode 100644
index 000000000..0a64ad59f
--- /dev/null
+++ b/packages/Webkul/Shop/src/Http/Middleware/Theme.php
@@ -0,0 +1,29 @@
+getCurrentChannel();
+
+ if($channel && $channelThemeCode = $channel->theme) {
+ if($theme->exists($channelThemeCode)) {
+ $theme->set($channelThemeCode);
+ }
+ }
+
+ return $next($request);
+ }
+}
\ No newline at end of file
diff --git a/packages/Webkul/Shop/src/Http/routes.php b/packages/Webkul/Shop/src/Http/routes.php
index 444862394..a2da19300 100644
--- a/packages/Webkul/Shop/src/Http/routes.php
+++ b/packages/Webkul/Shop/src/Http/routes.php
@@ -1,6 +1,6 @@
['web']], function () {
+Route::group(['middleware' => ['web', 'theme', 'locale']], function () {
Route::get('/', 'Webkul\Shop\Http\Controllers\HomeController@index')->defaults('_config', [
'view' => 'shop::home.index'
diff --git a/packages/Webkul/Shop/src/Providers/ShopServiceProvider.php b/packages/Webkul/Shop/src/Providers/ShopServiceProvider.php
index ac4fbc117..ab2f2e477 100644
--- a/packages/Webkul/Shop/src/Providers/ShopServiceProvider.php
+++ b/packages/Webkul/Shop/src/Providers/ShopServiceProvider.php
@@ -6,6 +6,8 @@ use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Event;
use Illuminate\Routing\Router;
use Illuminate\Support\Facades\Blade;
+use Webkul\Shop\Http\Middleware\Locale;
+use Webkul\Shop\Http\Middleware\Theme;
use Webkul\Shop\Providers\ComposerServiceProvider;
use Webkul\Ui\Menu;
@@ -16,7 +18,7 @@ class ShopServiceProvider extends ServiceProvider
*
* @return void
*/
- public function boot()
+ public function boot(Router $router)
{
include __DIR__ . '/../Http/routes.php';
@@ -28,6 +30,10 @@ class ShopServiceProvider extends ServiceProvider
$this->loadViewsFrom(__DIR__ . '/../Resources/views', 'shop');
+ $router->aliasMiddleware('locale', Locale::class);
+
+ $router->aliasMiddleware('theme', Theme::class);
+
$this->app->register(ComposerServiceProvider::class);
$this->composeView();
diff --git a/packages/Webkul/Shop/src/Resources/assets/sass/app.scss b/packages/Webkul/Shop/src/Resources/assets/sass/app.scss
index ce8d641ee..03189a737 100644
--- a/packages/Webkul/Shop/src/Resources/assets/sass/app.scss
+++ b/packages/Webkul/Shop/src/Resources/assets/sass/app.scss
@@ -737,21 +737,19 @@ section.slider-block {
}
.form-container {
- padding-top: 10px;
+ padding-top: 5px;
.control-group {
- margin: 0;
-
.subscribe-field {
width: 100%;
- }
- .subscribe-field::-webkit-input-placeholder {
- font-family: "montserrat", sans-serif;
- }
+ &::-webkit-input-placeholder {
+ font-family: "montserrat", sans-serif;
+ }
- .subscribe-field::-moz-placeholder {
- font-family: "montserrat", sans-serif;
+ &::-moz-placeholder {
+ font-family: "montserrat", sans-serif;
+ }
}
.btn-primary {
@@ -760,6 +758,10 @@ section.slider-block {
border-radius: 0px;
text-align: center;
}
+
+ .locale-switcher {
+ width: 100%;
+ }
}
}
}
diff --git a/packages/Webkul/Shop/src/Resources/lang/en/app.php b/packages/Webkul/Shop/src/Resources/lang/en/app.php
index 879c8df7d..894a5ab36 100644
--- a/packages/Webkul/Shop/src/Resources/lang/en/app.php
+++ b/packages/Webkul/Shop/src/Resources/lang/en/app.php
@@ -11,6 +11,12 @@ return [
]
],
+ 'footer' => [
+ 'subscribe-newsletter' => 'Subscribe Newsletter',
+ 'subscribe' => 'Subscribe',
+ 'locale' => 'Locale',
+ ],
+
'reviews' => [
'add-review-page-title' => 'Add Review',
'write-review' => 'Write a review',
diff --git a/packages/Webkul/Shop/src/Resources/views/layouts/footer/footer.blade.php b/packages/Webkul/Shop/src/Resources/views/layouts/footer/footer.blade.php
index d6c7daa5b..a16555a2f 100644
--- a/packages/Webkul/Shop/src/Resources/views/layouts/footer/footer.blade.php
+++ b/packages/Webkul/Shop/src/Resources/views/layouts/footer/footer.blade.php
@@ -3,14 +3,17 @@