base sync

This commit is contained in:
Prashant Singh 2019-05-03 09:42:35 +05:30
commit cc3ed83f42
21 changed files with 489 additions and 71 deletions

View File

@ -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=

View File

@ -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) {
}

View File

@ -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');
}
}

View File

@ -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'
]
]
];

View File

@ -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="&quot;{{ __('admin::app.catalog.categories.description') }}&quot;">{{ 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="&quot;{{ __('admin::app.catalog.categories.description') }}&quot;">{{ 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

View File

@ -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="&quot;{{ __('admin::app.catalog.categories.description') }}&quot;">{{ 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="&quot;{{ __('admin::app.catalog.categories.description') }}&quot;">{{ 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

View File

@ -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();
}
}
}

View File

@ -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
]
];

View File

@ -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
]
],
]
]
]

View File

@ -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;
}
/**

View File

@ -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');
}
}

View File

@ -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));
}
}
}
});

View File

@ -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');
}

View File

@ -3581,6 +3581,10 @@ section.review {
left: unset !important;
right: 100% !important;
}
.nav ul {
left: 99999em;
}
}
.search-responsive .search-content .right {

View File

@ -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',

View File

@ -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

View File

@ -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>

View File

@ -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">

View File

@ -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') }}';
}
}
}
}
}

View File

@ -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;

View File

@ -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]";