base sync
This commit is contained in:
commit
cc3ed83f42
|
|
@ -30,6 +30,8 @@ MAIL_PORT=2525
|
|||
MAIL_USERNAME=null
|
||||
MAIL_PASSWORD=null
|
||||
MAIL_ENCRYPTION=null
|
||||
SHOP_MAIL_FROM=shop@bagsaas.com
|
||||
ADMIN_MAIL_TO=admin@bagsaas.com
|
||||
|
||||
PUSHER_APP_ID=
|
||||
PUSHER_APP_KEY=
|
||||
|
|
|
|||
|
|
@ -20,12 +20,14 @@ class Order {
|
|||
/**
|
||||
* @param mixed $order
|
||||
*
|
||||
* Send new shipment mail to the customer and inventory source
|
||||
* Send new order Mail to the customer and admin
|
||||
*/
|
||||
public function sendNewOrderMail($order)
|
||||
{
|
||||
try {
|
||||
Mail::send(new NewOrderNotification($order));
|
||||
Mail::queue(new NewOrderNotification($order));
|
||||
|
||||
Mail::queue(new NewAdminNotification($order));
|
||||
} catch (\Exception $e) {
|
||||
|
||||
}
|
||||
|
|
@ -40,7 +42,7 @@ class Order {
|
|||
public function sendNewInvoiceMail($invoice)
|
||||
{
|
||||
try {
|
||||
Mail::send(new NewInvoiceNotification($invoice));
|
||||
Mail::queue(new NewInvoiceNotification($invoice));
|
||||
} catch (\Exception $e) {
|
||||
|
||||
}
|
||||
|
|
@ -54,9 +56,9 @@ class Order {
|
|||
public function sendNewShipmentMail($shipment)
|
||||
{
|
||||
try {
|
||||
Mail::send(new NewShipmentNotification($shipment));
|
||||
Mail::queue(new NewShipmentNotification($shipment));
|
||||
|
||||
Mail::send(new NewInventorySourceNotification($shipment));
|
||||
Mail::queue(new NewInventorySourceNotification($shipment));
|
||||
} catch (\Exception $e) {
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,49 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Admin\Mail;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
|
||||
/**
|
||||
* New Admin Mail class
|
||||
*
|
||||
* @author Jitendra Singh <jitendra@webkul.com>
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
class NewAdminNotification extends Mailable
|
||||
{
|
||||
use Queueable, SerializesModels;
|
||||
|
||||
/**
|
||||
* The order instance.
|
||||
*
|
||||
* @var Order
|
||||
*/
|
||||
public $order;
|
||||
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($order)
|
||||
{
|
||||
$this->order = $order;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the message.
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function build()
|
||||
{
|
||||
return $this->to(env('ADMIN_MAIL_TO'))
|
||||
->subject(trans('shop::app.mail.order.subject'))
|
||||
->view('shop::emails.sales.new-admin-order');
|
||||
}
|
||||
}
|
||||
|
|
@ -873,7 +873,8 @@ return [
|
|||
'newsletter' => 'NewsLetter Subscription',
|
||||
'newsletter-subscription' => 'Allow NewsLetter Subscription',
|
||||
'email' => 'Email Verification',
|
||||
'email-verification' => 'Allow Email Verification'
|
||||
'email-verification' => 'Allow Email Verification',
|
||||
'sort_order' => 'Sort Order'
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -93,16 +93,17 @@
|
|||
<span class="control-error" v-if="errors.has('display_mode')">@{{ errors.first('display_mode') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('description') ? 'has-error' : '']">
|
||||
<label for="description" id="descript-label" class="required">{{ __('admin::app.catalog.categories.description') }}</label>
|
||||
<textarea v-validate="''" class="control" id="description" name="description" data-vv-as=""{{ __('admin::app.catalog.categories.description') }}"">{{ old('description') }}</textarea>
|
||||
<span class="control-error" v-if="errors.has('description')">@{{ errors.first('description') }}</span>
|
||||
</div>
|
||||
<description></description>
|
||||
|
||||
<div class="control-group">
|
||||
<div class="control-group {!! $errors->has('image.*') ? 'has-error' : '' !!}">
|
||||
<label>{{ __('admin::app.catalog.categories.image') }}
|
||||
|
||||
<image-wrapper :button-label="'{{ __('admin::app.catalog.products.add-image-btn-title') }}'" input-name="image" :multiple="false"></image-wrapper>
|
||||
|
||||
<span class="control-error" v-if="{!! $errors->has('image.*') !!}">
|
||||
{{ $errors->first('image.*') }}
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.catalog.category.create_form_accordian.description_images.controls.after') !!}
|
||||
|
|
@ -179,6 +180,16 @@
|
|||
@push('scripts')
|
||||
<script src="{{ asset('vendor/webkul/admin/assets/js/tinyMCE/tinymce.min.js') }}"></script>
|
||||
|
||||
<script type="text/x-template" id="description-template">
|
||||
|
||||
<div class="control-group" :class="[errors.has('description') ? 'has-error' : '']">
|
||||
<label for="description" :class="isRequired ? 'required' : ''">{{ __('admin::app.catalog.categories.description') }}</label>
|
||||
<textarea v-validate="isRequired ? 'required' : ''" class="control" id="description" name="description" data-vv-as=""{{ __('admin::app.catalog.categories.description') }}"">{{ old('description') }}</textarea>
|
||||
<span class="control-error" v-if="errors.has('description')">@{{ errors.first('description') }}</span>
|
||||
</div>
|
||||
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
tinymce.init({
|
||||
|
|
@ -189,14 +200,33 @@
|
|||
toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat | code',
|
||||
image_advtab: true
|
||||
});
|
||||
|
||||
$('#display_mode').on('change', function (e) {
|
||||
if ($('#display_mode').val() != 'products_only') {
|
||||
$("#descript-label").addClass("required");
|
||||
} else {
|
||||
$("#descript-label").removeClass("required");
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
Vue.component('description', {
|
||||
|
||||
template: '#description-template',
|
||||
|
||||
inject: ['$validator'],
|
||||
|
||||
data() {
|
||||
return {
|
||||
isRequired: true,
|
||||
}
|
||||
},
|
||||
|
||||
created () {
|
||||
var this_this = this;
|
||||
|
||||
$(document).ready(function () {
|
||||
$('#display_mode').on('change', function (e) {
|
||||
if ($('#display_mode').val() != 'products_only') {
|
||||
this_this.isRequired = true;
|
||||
} else {
|
||||
this_this.isRequired = false;
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@endpush
|
||||
|
|
@ -106,16 +106,16 @@
|
|||
<span class="control-error" v-if="errors.has('display_mode')">@{{ errors.first('display_mode') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('{{$locale}}[description]') ? 'has-error' : '']">
|
||||
<label for="description">{{ __('admin::app.catalog.categories.description') }}</label>
|
||||
<textarea class="control" id="description" name="{{$locale}}[description]" data-vv-as=""{{ __('admin::app.catalog.categories.description') }}"">{{ old($locale)['description'] ?: $category->translate($locale)['description'] }}</textarea>
|
||||
<span class="control-error" v-if="errors.has('{{$locale}}[description]')">@{{ errors.first('{!!$locale!!}[description]') }}</span>
|
||||
</div>
|
||||
<description></description>
|
||||
|
||||
<div class="control-group">
|
||||
<label>{{ __('admin::app.catalog.categories.image') }} </label>
|
||||
<div class="control-group {!! $errors->has('image.*') ? 'has-error' : '' !!}">
|
||||
<label>{{ __('admin::app.catalog.categories.image') }}
|
||||
|
||||
<image-wrapper :button-label="'{{ __('admin::app.catalog.products.add-image-btn-title') }}'" input-name="image" :multiple="false" :images='"{{ $category->image_url }}"'></image-wrapper>
|
||||
<image-wrapper :button-label="'{{ __('admin::app.catalog.products.add-image-btn-title') }}'" input-name="image" :multiple="false" :images='"{{ $category->image_url }}"'></image-wrapper>
|
||||
|
||||
<span class="control-error" v-if="{!! $errors->has('image.*') !!}">
|
||||
{{ $errors->first('image.*') }}
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
@ -192,6 +192,16 @@
|
|||
@push('scripts')
|
||||
<script src="{{ asset('vendor/webkul/admin/assets/js/tinyMCE/tinymce.min.js') }}"></script>
|
||||
|
||||
<script type="text/x-template" id="description-template">
|
||||
|
||||
<div class="control-group" :class="[errors.has('{{$locale}}[description]') ? 'has-error' : '']">
|
||||
<label for="description" :class="isRequired ? 'required' : ''">{{ __('admin::app.catalog.categories.description') }}</label>
|
||||
<textarea v-validate="isRequired ? 'required' : ''" class="control" id="description" name="{{$locale}}[description]" data-vv-as=""{{ __('admin::app.catalog.categories.description') }}"">{{ old($locale)['description'] ?: $category->translate($locale)['description'] }}</textarea>
|
||||
<span class="control-error" v-if="errors.has('{{$locale}}[description]')">@{{ errors.first('{!!$locale!!}[description]') }}</span>
|
||||
</div>
|
||||
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
tinymce.init({
|
||||
|
|
@ -203,5 +213,38 @@
|
|||
image_advtab: true
|
||||
});
|
||||
});
|
||||
|
||||
Vue.component('description', {
|
||||
|
||||
template: '#description-template',
|
||||
|
||||
inject: ['$validator'],
|
||||
|
||||
data() {
|
||||
return {
|
||||
isRequired: true,
|
||||
}
|
||||
},
|
||||
|
||||
created () {
|
||||
var this_this = this;
|
||||
|
||||
$(document).ready(function () {
|
||||
$('#display_mode').on('change', function (e) {
|
||||
if ($('#display_mode').val() != 'products_only') {
|
||||
this_this.isRequired = true;
|
||||
} else {
|
||||
this_this.isRequired = false;
|
||||
}
|
||||
})
|
||||
|
||||
if ($('#display_mode').val() != 'products_only') {
|
||||
this_this.isRequired = true;
|
||||
} else {
|
||||
this_this.isRequired = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
</script>
|
||||
@endpush
|
||||
|
|
@ -66,7 +66,7 @@ class RegistrationController extends Controller
|
|||
|
||||
$data['channel_id'] = core()->getCurrentChannel()->id;
|
||||
|
||||
if(core()->getConfigData( 'customer.settings.email.verification')) {
|
||||
if (core()->getConfigData('customer.settings.email.verification')) {
|
||||
$data['is_verified'] = 0;
|
||||
} else {
|
||||
$data['is_verified'] = 1;
|
||||
|
|
@ -87,9 +87,9 @@ class RegistrationController extends Controller
|
|||
Event::fire('customer.registration.after', $customer);
|
||||
|
||||
if ($customer) {
|
||||
if (core()->getConfigData( 'customer.settings.email.verification')) {
|
||||
if (core()->getConfigData('customer.settings.email.verification')) {
|
||||
try {
|
||||
Mail::send(new VerificationEmail($verificationData));
|
||||
Mail::queue(new VerificationEmail($verificationData));
|
||||
|
||||
session()->flash('success', trans('shop::app.customer.signup-form.success-verify'));
|
||||
} catch (\Exception $e) {
|
||||
|
|
@ -137,7 +137,7 @@ class RegistrationController extends Controller
|
|||
$this->customer->update(['token' => $verificationData['token']], $customer->id);
|
||||
|
||||
try {
|
||||
Mail::send(new VerificationEmail($verificationData));
|
||||
Mail::queue(new VerificationEmail($verificationData));
|
||||
|
||||
if (Cookie::has('enable-resend')) {
|
||||
\Cookie::queue(\Cookie::forget('enable-resend'));
|
||||
|
|
@ -146,7 +146,7 @@ class RegistrationController extends Controller
|
|||
if (Cookie::has('email-for-resend')) {
|
||||
\Cookie::queue(\Cookie::forget('email-for-resend'));
|
||||
}
|
||||
} catch(\Exception $e) {
|
||||
} catch (\Exception $e) {
|
||||
session()->flash('error', trans('shop::app.customer.signup-form.verification-not-sent'));
|
||||
|
||||
return redirect()->back();
|
||||
|
|
@ -155,4 +155,4 @@ class RegistrationController extends Controller
|
|||
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,8 @@ return [
|
|||
'title' => 'Cash On Delivery',
|
||||
'description' => 'Cash On Delivery',
|
||||
'class' => 'Webkul\Payment\Payment\CashOnDelivery',
|
||||
'active' => true
|
||||
'active' => true,
|
||||
'sort' => 1
|
||||
],
|
||||
|
||||
'moneytransfer' => [
|
||||
|
|
@ -13,7 +14,8 @@ return [
|
|||
'title' => 'Money Transfer',
|
||||
'description' => 'Money Transfer',
|
||||
'class' => 'Webkul\Payment\Payment\MoneyTransfer',
|
||||
'active' => true
|
||||
'active' => true,
|
||||
'sort' => 2
|
||||
],
|
||||
|
||||
'paypal_standard' => [
|
||||
|
|
@ -23,6 +25,7 @@ return [
|
|||
'class' => 'Webkul\Paypal\Payment\Standard',
|
||||
'sandbox' => true,
|
||||
'active' => true,
|
||||
'business_account' => 'test@webkul.com'
|
||||
'business_account' => 'test@webkul.com',
|
||||
'sort' => 3
|
||||
]
|
||||
];
|
||||
|
|
@ -41,6 +41,25 @@ return [
|
|||
]
|
||||
],
|
||||
'validation' => 'required'
|
||||
], [
|
||||
'name' => 'sort',
|
||||
'title' => 'admin::app.admin.system.sort_order',
|
||||
'type' => 'select',
|
||||
'options' => [
|
||||
[
|
||||
'title' => '1',
|
||||
'value' => 1
|
||||
], [
|
||||
'title' => '2',
|
||||
'value' => 2
|
||||
], [
|
||||
'title' => '3',
|
||||
'value' => 3
|
||||
], [
|
||||
'title' => '4',
|
||||
'value' => 4
|
||||
]
|
||||
],
|
||||
]
|
||||
]
|
||||
], [
|
||||
|
|
@ -75,6 +94,25 @@ return [
|
|||
]
|
||||
],
|
||||
'validation' => 'required'
|
||||
], [
|
||||
'name' => 'sort',
|
||||
'title' => 'admin::app.admin.system.sort_order',
|
||||
'type' => 'select',
|
||||
'options' => [
|
||||
[
|
||||
'title' => '1',
|
||||
'value' => 1
|
||||
], [
|
||||
'title' => '2',
|
||||
'value' => 2
|
||||
], [
|
||||
'title' => '3',
|
||||
'value' => 3
|
||||
], [
|
||||
'title' => '4',
|
||||
'value' => 4
|
||||
]
|
||||
],
|
||||
]
|
||||
]
|
||||
], [
|
||||
|
|
@ -115,6 +153,25 @@ return [
|
|||
]
|
||||
],
|
||||
'validation' => 'required'
|
||||
], [
|
||||
'name' => 'sort',
|
||||
'title' => 'admin::app.admin.system.sort_order',
|
||||
'type' => 'select',
|
||||
'options' => [
|
||||
[
|
||||
'title' => '1',
|
||||
'value' => 1
|
||||
], [
|
||||
'title' => '2',
|
||||
'value' => 2
|
||||
], [
|
||||
'title' => '3',
|
||||
'value' => 3
|
||||
], [
|
||||
'title' => '4',
|
||||
'value' => 4
|
||||
]
|
||||
],
|
||||
]
|
||||
]
|
||||
]
|
||||
|
|
|
|||
|
|
@ -13,6 +13,21 @@ class Payment
|
|||
* @return array
|
||||
*/
|
||||
public function getSupportedPaymentMethods()
|
||||
{
|
||||
$paymentMethods = $this->getPaymentMethods();
|
||||
|
||||
return [
|
||||
'jump_to_section' => 'payment',
|
||||
'html' => view('shop::checkout.onepage.payment', compact('paymentMethods'))->render()
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all supported payment methods
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getPaymentMethods()
|
||||
{
|
||||
$paymentMethods = [];
|
||||
|
||||
|
|
@ -24,14 +39,20 @@ class Payment
|
|||
'method' => $object->getCode(),
|
||||
'method_title' => $object->getTitle(),
|
||||
'description' => $object->getDescription(),
|
||||
'sort' => $object->getSortOrder(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return [
|
||||
'jump_to_section' => 'payment',
|
||||
'html' => view('shop::checkout.onepage.payment', compact('paymentMethods'))->render()
|
||||
];
|
||||
usort ($paymentMethods, function($a, $b) {
|
||||
if ($a['sort'] == $b['sort']) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ($a['sort'] < $b['sort']) ? -1 : 1;
|
||||
});
|
||||
|
||||
return $paymentMethods;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ abstract class Payment
|
|||
* @var Cart
|
||||
*/
|
||||
protected $cart;
|
||||
|
||||
|
||||
/**
|
||||
* Checks if payment method is available
|
||||
*
|
||||
|
|
@ -109,4 +109,14 @@ abstract class Payment
|
|||
|
||||
return $this->cart->items;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns payment method sort order
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getSortOrder()
|
||||
{
|
||||
return $this->getConfigData('sort');
|
||||
}
|
||||
}
|
||||
|
|
@ -442,7 +442,7 @@ class ProductRepository extends Repository
|
|||
->addSelect('product_flat.*')
|
||||
->addSelect(DB::raw('IF( product_flat.special_price_from IS NOT NULL
|
||||
AND product_flat.special_price_to IS NOT NULL , IF( NOW( ) >= product_flat.special_price_from
|
||||
AND NOW( ) <= product_flat.special_price_to, IF( product_flat.special_price IS NULL OR product_flat.special_price = 0 , product_flat.price, LEAST( product_flat.special_price, product_flat.price ) ) , product_flat.price ) , IF( product_flat.special_price_from IS NULL , IF( product_flat.special_price_to IS NULL , IF( product_flat.special_price IS NULL OR product_flat.special_price = 0 , product_flat.price, LEAST( product_flat.special_price, product_flat.price ) ) , IF( NOW( ) <= product_flat.special_price_to, IF( product_flat.special_price IS NULL OR product_flat.special_price = 0 , product_flat.price, LEAST( product_flat.special_price, product_flat.price ) ) , product_flat.price ) ) , IF( product_flat.special_price_to IS NULL , IF( NOW( ) >= product_flat.special_price_from, IF( product_flat.special_price IS NULL OR product_flat.special_price = 0 , product_flat.price, LEAST( product_flat.special_price, product_flat.price ) ) , product_flat.price ) , product_flat.price ) ) ) AS price'))
|
||||
AND NOW( ) <= product_flat.special_price_to, IF( product_flat.special_price IS NULL OR product_flat.special_price = 0 , product_flat.price, LEAST( product_flat.special_price, product_flat.price ) ) , product_flat.price ) , IF( product_flat.special_price_from IS NULL , IF( product_flat.special_price_to IS NULL , IF( product_flat.special_price IS NULL OR product_flat.special_price = 0 , product_flat.price, LEAST( product_flat.special_price, product_flat.price ) ) , IF( NOW( ) <= product_flat.special_price_to, IF( product_flat.special_price IS NULL OR product_flat.special_price = 0 , product_flat.price, LEAST( product_flat.special_price, product_flat.price ) ) , product_flat.price ) ) , IF( product_flat.special_price_to IS NULL , IF( NOW( ) >= product_flat.special_price_from, IF( product_flat.special_price IS NULL OR product_flat.special_price = 0 , product_flat.price, LEAST( product_flat.special_price, product_flat.price ) ) , product_flat.price ) , product_flat.price ) ) ) AS final_price'))
|
||||
|
||||
->leftJoin('products', 'product_flat.product_id', '=', 'products.id')
|
||||
->leftJoin('product_categories', 'products.id', '=', 'product_categories.product_id')
|
||||
|
|
@ -472,7 +472,11 @@ class ProductRepository extends Repository
|
|||
$attribute = $this->attribute->findOneByField('code', $params['sort']);
|
||||
|
||||
if ($params['sort'] == 'price') {
|
||||
$qb->orderBy($attribute->code, $params['order']);
|
||||
if ($attribute->code == 'price') {
|
||||
$qb->orderBy('final_price', $params['order']);
|
||||
} else {
|
||||
$qb->orderBy($attribute->code, $params['order']);
|
||||
}
|
||||
} else {
|
||||
$qb->orderBy($params['sort'] == 'created_at' ? 'product_flat.created_at' : $attribute->code, $params['order']);
|
||||
}
|
||||
|
|
@ -495,7 +499,11 @@ class ProductRepository extends Repository
|
|||
}
|
||||
});
|
||||
} else {
|
||||
$query2 = $query2->where($column, '>=', current($queryParams))->where($column, '<=', end($queryParams));
|
||||
if ($attribute->code != 'price') {
|
||||
$query2 = $query2->where($column, '>=', current($queryParams))->where($column, '<=', end($queryParams));
|
||||
} else {
|
||||
$query2 = $query2->where($column, '>=', current($queryParams))->where($column, '<=', end($queryParams));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -67,8 +67,8 @@ class SubscriptionController extends Controller
|
|||
|
||||
$alreadySubscribed = $this->subscription->findWhere(['email' => $email]);
|
||||
|
||||
$unique = function() use($alreadySubscribed) {
|
||||
if ($alreadySubscribed->count() > 0 ) {
|
||||
$unique = function () use ($alreadySubscribed) {
|
||||
if ($alreadySubscribed->count() > 0) {
|
||||
return 0;
|
||||
} else {
|
||||
return 1;
|
||||
|
|
@ -84,10 +84,10 @@ class SubscriptionController extends Controller
|
|||
$mailSent = true;
|
||||
|
||||
try {
|
||||
Mail::send(new SubscriptionEmail($subscriptionData));
|
||||
Mail::queue(new SubscriptionEmail($subscriptionData));
|
||||
|
||||
session()->flash('success', trans('shop::app.subscription.subscribed'));
|
||||
} catch(\Exception $e) {
|
||||
} catch (\Exception $e) {
|
||||
session()->flash('error', trans('shop::app.subscription.not-subscribed'));
|
||||
|
||||
$mailSent = false;
|
||||
|
|
@ -103,7 +103,7 @@ class SubscriptionController extends Controller
|
|||
'token' => $token
|
||||
]);
|
||||
|
||||
if (! $result) {
|
||||
if (!$result) {
|
||||
session()->flash('error', trans('shop::app.subscription.not-subscribed'));
|
||||
|
||||
return redirect()->back();
|
||||
|
|
@ -121,15 +121,16 @@ class SubscriptionController extends Controller
|
|||
*
|
||||
* @var string $token
|
||||
*/
|
||||
public function unsubscribe($token) {
|
||||
public function unsubscribe($token)
|
||||
{
|
||||
$subscriber = $this->subscription->findOneByField('token', $token);
|
||||
|
||||
if (isset($subscriber))
|
||||
if ($subscriber->count() > 0 && $subscriber->is_subscribed == 1 &&$subscriber->update(['is_subscribed' => 0])) {
|
||||
session()->flash('info', trans('shop::app.subscription.unsubscribed'));
|
||||
} else {
|
||||
session()->flash('info', trans('shop::app.subscription.already-unsub'));
|
||||
}
|
||||
if ($subscriber->count() > 0 && $subscriber->is_subscribed == 1 && $subscriber->update(['is_subscribed' => 0])) {
|
||||
session()->flash('info', trans('shop::app.subscription.unsubscribed'));
|
||||
} else {
|
||||
session()->flash('info', trans('shop::app.subscription.already-unsub'));
|
||||
}
|
||||
|
||||
return redirect()->route('shop.home.index');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3581,6 +3581,10 @@ section.review {
|
|||
left: unset !important;
|
||||
right: 100% !important;
|
||||
}
|
||||
|
||||
.nav ul {
|
||||
left: 99999em;
|
||||
}
|
||||
}
|
||||
|
||||
.search-responsive .search-content .right {
|
||||
|
|
|
|||
|
|
@ -457,7 +457,9 @@ return [
|
|||
'subject' => 'New Order Confirmation',
|
||||
'heading' => 'Order Confirmation!',
|
||||
'dear' => 'Dear :customer_name',
|
||||
'dear-admin' => 'Dear :admin_name',
|
||||
'greeting' => 'Thanks for your Order :order_id placed on :created_at',
|
||||
'greeting-admin' => 'Order Id :order_id placed on :created_at',
|
||||
'summary' => 'Summary of Order',
|
||||
'shipping-address' => 'Shipping Address',
|
||||
'billing-address' => 'Billing Address',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,175 @@
|
|||
@component('shop::emails.layouts.master')
|
||||
<div style="text-align: center;">
|
||||
<a href="{{ config('app.url') }}">
|
||||
<img src="{{ bagisto_asset('images/logo.svg') }}">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div style="padding: 30px;">
|
||||
<div style="font-size: 20px;color: #242424;line-height: 30px;margin-bottom: 34px;">
|
||||
<span style="font-weight: bold;">
|
||||
{{ __('shop::app.mail.order.heading') }}
|
||||
</span> <br>
|
||||
|
||||
<p style="font-size: 16px;color: #5E5E5E;line-height: 24px;">
|
||||
{{ __('shop::app.mail.order.dear-admin', ['admin_name' => config('mail.from.name')]) }},
|
||||
</p>
|
||||
|
||||
<p style="font-size: 16px;color: #5E5E5E;line-height: 24px;">
|
||||
{!! __('shop::app.mail.order.greeting-admin', [
|
||||
'order_id' => '<a href="' . route('customer.orders.view', $order->id) . '" style="color: #0041FF; font-weight: bold;">#' . $order->id . '</a>',
|
||||
'created_at' => $order->created_at
|
||||
])
|
||||
!!}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div style="font-weight: bold;font-size: 20px;color: #242424;line-height: 30px;margin-bottom: 20px !important;">
|
||||
{{ __('shop::app.mail.order.summary') }}
|
||||
</div>
|
||||
|
||||
<div style="display: flex;flex-direction: row;margin-top: 20px;justify-content: space-between;margin-bottom: 40px;">
|
||||
<div style="line-height: 25px;">
|
||||
<div style="font-weight: bold;font-size: 16px;color: #242424;">
|
||||
{{ __('shop::app.mail.order.shipping-address') }}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{{ $order->shipping_address->name }}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{{ $order->shipping_address->address1 }}, {{ $order->shipping_address->state }}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{{ country()->name($order->shipping_address->country) }} {{ $order->shipping_address->postcode }}
|
||||
</div>
|
||||
|
||||
<div>---</div>
|
||||
|
||||
<div style="margin-bottom: 40px;">
|
||||
{{ __('shop::app.mail.order.contact') }} : {{ $order->shipping_address->phone }}
|
||||
</div>
|
||||
|
||||
<div style="font-size: 16px;color: #242424;">
|
||||
{{ __('shop::app.mail.order.shipping') }}
|
||||
</div>
|
||||
|
||||
<div style="font-weight: bold;font-size: 16px;color: #242424;">
|
||||
{{ $order->shipping_title }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="line-height: 25px;">
|
||||
<div style="font-weight: bold;font-size: 16px;color: #242424;">
|
||||
{{ __('shop::app.mail.order.billing-address') }}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{{ $order->billing_address->name }}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{{ $order->billing_address->address1 }}, {{ $order->billing_address->state }}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{{ country()->name($order->billing_address->country) }} {{ $order->billing_address->postcode }}
|
||||
</div>
|
||||
|
||||
<div>---</div>
|
||||
|
||||
<div style="margin-bottom: 40px;">
|
||||
{{ __('shop::app.mail.order.contact') }} : {{ $order->billing_address->phone }}
|
||||
</div>
|
||||
|
||||
<div style="font-size: 16px; color: #242424;">
|
||||
{{ __('shop::app.mail.order.payment') }}
|
||||
</div>
|
||||
|
||||
<div style="font-weight: bold;font-size: 16px; color: #242424;">
|
||||
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@foreach ($order->items as $item)
|
||||
<div style="background: #FFFFFF;border: 1px solid #E8E8E8;border-radius: 3px;padding: 20px;margin-bottom: 10px">
|
||||
<p style="font-size: 18px;color: #242424;line-height: 24px;margin-top: 0;margin-bottom: 10px;font-weight: bold;">
|
||||
{{ $item->name }}
|
||||
</p>
|
||||
|
||||
<div style="margin-bottom: 10px;">
|
||||
<label style="font-size: 16px;color: #5E5E5E;">
|
||||
{{ __('shop::app.mail.order.price') }}
|
||||
</label>
|
||||
<span style="font-size: 18px;color: #242424;margin-left: 40px;font-weight: bold;">
|
||||
{{ core()->formatPrice($item->price, $order->order_currency_code) }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div style="margin-bottom: 10px;">
|
||||
<label style="font-size: 16px;color: #5E5E5E;">
|
||||
{{ __('shop::app.mail.order.quantity') }}
|
||||
</label>
|
||||
<span style="font-size: 18px;color: #242424;margin-left: 40px;font-weight: bold;">
|
||||
{{ $item->qty_ordered }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@if ($html = $item->getOptionDetailHtml())
|
||||
<div style="">
|
||||
<label style="margin-top: 10px; font-size: 16px;color: #5E5E5E; display: block;">
|
||||
{{ $html }}
|
||||
</label>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
<div style="font-size: 16px;color: #242424;line-height: 30px;float: right;width: 40%;margin-top: 20px;">
|
||||
<div>
|
||||
<span>{{ __('shop::app.mail.order.subtotal') }}</span>
|
||||
<span style="float: right;">
|
||||
{{ core()->formatPrice($order->sub_total, $order->order_currency_code) }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<span>{{ __('shop::app.mail.order.shipping-handling') }}</span>
|
||||
<span style="float: right;">
|
||||
{{ core()->formatPrice($order->shipping_amount, $order->order_currency_code) }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<span>{{ __('shop::app.mail.order.tax') }}</span>
|
||||
<span style="float: right;">
|
||||
{{ core()->formatPrice($order->tax_amount, $order->order_currency_code) }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div style="font-weight: bold">
|
||||
<span>{{ __('shop::app.mail.order.grand-total') }}</span>
|
||||
<span style="float: right;">
|
||||
{{ core()->formatPrice($order->grand_total, $order->order_currency_code) }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 65px;font-size: 16px;color: #5E5E5E;line-height: 24px;display: inline-block">
|
||||
<p style="font-size: 16px;color: #5E5E5E;line-height: 24px;">
|
||||
{!!
|
||||
__('shop::app.mail.order.help', [
|
||||
'support_email' => '<a style="color:#0041FF" href="mailto:' . env('ADMIN_MAIL_TO') . '">' . env('ADMIN_MAIL_TO'). '</a>'
|
||||
])
|
||||
!!}
|
||||
</p>
|
||||
|
||||
<p style="font-size: 16px;color: #5E5E5E;line-height: 24px;">
|
||||
{{ __('shop::app.mail.order.thanks') }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@endcomponent
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<div class="product-price mt-10">
|
||||
@inject ('priceHelper', 'Webkul\Product\Helpers\Price')
|
||||
|
||||
@if ($product->type == 'configurable')
|
||||
<span class="pro-price">{{ core()->currency($priceHelper->getMinimalPrice($product)) }}</span>
|
||||
@else
|
||||
@if ($priceHelper->haveSpecialPrice($product))
|
||||
<span class="pro-price">{{ core()->currency($priceHelper->getSpecialPrice($product)) }}</span>
|
||||
@else
|
||||
<span class="pro-price">{{ core()->currency($product->price) }}</span>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
|
|
@ -26,19 +26,8 @@
|
|||
</a>
|
||||
</div>
|
||||
|
||||
<div class="product-price mt-10">
|
||||
@inject ('priceHelper', 'Webkul\Product\Helpers\Price')
|
||||
@include('shop::products.review-price')
|
||||
|
||||
@if ($product->type == 'configurable')
|
||||
<span class="pro-price">{{ core()->currency($priceHelper->getMinimalPrice($product)) }}</span>
|
||||
@else
|
||||
@if ($priceHelper->haveSpecialPrice($product))
|
||||
<span class="pro-price">{{ core()->currency($priceHelper->getSpecialPrice($product)) }}</span>
|
||||
@else
|
||||
<span class="pro-price">{{ core()->currency($product->price) }}</span>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="review-form">
|
||||
|
|
|
|||
|
|
@ -634,8 +634,16 @@
|
|||
obj.label = '';
|
||||
|
||||
for(colIndex in this.columns) {
|
||||
if(this.columns[colIndex].index == obj.column) {
|
||||
if (this.columns[colIndex].index == obj.column) {
|
||||
obj.label = this.columns[colIndex].label;
|
||||
|
||||
if (this.columns[colIndex].type == 'boolean') {
|
||||
if (obj.val == 1) {
|
||||
obj.val = '{{ __('ui::app.datagrid.true') }}';
|
||||
} else {
|
||||
obj.val = '{{ __('ui::app.datagrid.false') }}';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -100,6 +100,8 @@ $data = array();
|
|||
$data['support_error'] = 'Bagisto currently support MySQL only. Press OK to still continue or change you DB connection to MySQL';
|
||||
}
|
||||
|
||||
$storage_output = exec('cd ../.. && php artisan storage:link 2>&1');
|
||||
|
||||
// if there are no errors process our form, then return a message
|
||||
// show a message of success and provide a true success variable
|
||||
$data['success'] = true;
|
||||
|
|
|
|||
|
|
@ -120,8 +120,6 @@
|
|||
// object creation
|
||||
$requirement = new Requirement();
|
||||
echo $requirement->render();
|
||||
|
||||
$storage_output = exec('cd ../.. && php artisan storage:link 2>&1');
|
||||
} else {
|
||||
// getting url
|
||||
$actual_link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
|
||||
|
|
|
|||
Loading…
Reference in New Issue