introduce default_country application configuration key

This commit is contained in:
David Große 2019-12-23 14:28:54 +01:00
parent 619b922ba4
commit c346770ab1
3 changed files with 36 additions and 19 deletions

View File

@ -93,6 +93,19 @@ return [
'fallback_locale' => 'en', 'fallback_locale' => 'en',
/*
|--------------------------------------------------------------------------
| Default Country
|--------------------------------------------------------------------------
|
| Here you may specify the default country by country code.
| Ensure it is uppercase and reflects the 'code' column of the
| countries table.
|
*/
'default_country' => null,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Base Currency Code | Base Currency Code

View File

@ -26,7 +26,8 @@ class AddressController extends Controller
/** /**
* CustomerAddressRepository object * CustomerAddressRepository object
* *
* @param \Webkul\Customer\Repositories\CustomerAddressRepository $customerAddressRepository * @param \Webkul\Customer\Repositories\CustomerAddressRepository $customerAddressRepository
*
* @var Object * @var Object
*/ */
protected $customerAddressRepository; protected $customerAddressRepository;
@ -59,7 +60,9 @@ class AddressController extends Controller
*/ */
public function create() public function create()
{ {
return view($this->_config['view']); return view($this->_config['view'], [
'defaultCountry' => config('app.default_country'),
]);
} }
/** /**
@ -75,11 +78,11 @@ class AddressController extends Controller
$this->validate(request(), [ $this->validate(request(), [
'address1' => 'string|required', 'address1' => 'string|required',
'country' => 'string|required', 'country' => 'string|required',
'state' => 'string|required', 'state' => 'string|required',
'city' => 'string|required', 'city' => 'string|required',
'postcode' => 'required', 'postcode' => 'required',
'phone' => 'required' 'phone' => 'required',
]); ]);
$cust_id['customer_id'] = $this->customer->id; $cust_id['customer_id'] = $this->customer->id;
@ -108,8 +111,8 @@ class AddressController extends Controller
public function edit($id) public function edit($id)
{ {
$address = $this->customerAddressRepository->findOneWhere([ $address = $this->customerAddressRepository->findOneWhere([
'id' => $id, 'id' => $id,
'customer_id' => auth()->guard('customer')->user()->id 'customer_id' => auth()->guard('customer')->user()->id,
]); ]);
if (! $address) if (! $address)
@ -130,18 +133,18 @@ class AddressController extends Controller
$this->validate(request(), [ $this->validate(request(), [
'address1' => 'string|required', 'address1' => 'string|required',
'country' => 'string|required', 'country' => 'string|required',
'state' => 'string|required', 'state' => 'string|required',
'city' => 'string|required', 'city' => 'string|required',
'postcode' => 'required', 'postcode' => 'required',
'phone' => 'required' 'phone' => 'required',
]); ]);
$data = collect(request()->input())->except('_token')->toArray(); $data = collect(request()->input())->except('_token')->toArray();
$addresses = $this->customer->addresses; $addresses = $this->customer->addresses;
foreach($addresses as $address) { foreach ($addresses as $address) {
if ($id == $address->id) { if ($id == $address->id) {
session()->flash('success', trans('shop::app.customer.account.address.edit.success')); session()->flash('success', trans('shop::app.customer.account.address.edit.success'));
@ -157,7 +160,8 @@ class AddressController extends Controller
} }
/** /**
* To change the default address or make the default address, by default when first address is created will be the default address * To change the default address or make the default address, by default when first address is
* created will be the default address
* *
* @return Response * @return Response
*/ */
@ -185,8 +189,8 @@ class AddressController extends Controller
public function destroy($id) public function destroy($id)
{ {
$address = $this->customerAddressRepository->findOneWhere([ $address = $this->customerAddressRepository->findOneWhere([
'id' => $id, 'id' => $id,
'customer_id' => auth()->guard('customer')->user()->id 'customer_id' => auth()->guard('customer')->user()->id,
]); ]);
if (! $address) if (! $address)

View File

@ -12,7 +12,7 @@
<select type="text" v-validate="'required'" class="control" id="country" name="country" v-model="country" data-vv-as="&quot;{{ __('shop::app.customer.account.address.create.country') }}&quot;"> <select type="text" v-validate="'required'" class="control" id="country" name="country" v-model="country" data-vv-as="&quot;{{ __('shop::app.customer.account.address.create.country') }}&quot;">
<option value=""></option> <option value=""></option>
@foreach (core()->countries() as $country) @foreach (core()->countries() as $country)
<option value="{{ $country->code }}">{{ $country->name }}</option> <option {{ $country->code === $defaultCountry ? 'selected' : '' }} value="{{ $country->code }}">{{ $country->name }}</option>
@endforeach @endforeach
</select> </select>
@ -53,9 +53,9 @@
data() { data() {
return { return {
country: "{{ $countryCode }}", country: "{{ $countryCode ?? $defaultCountry }}",
state: "{{ $stateCode }}", state: "{{ $stateCode }}",
countryStates: @json(core()->groupedStatesByCountries()) countryStates: @json(core()->groupedStatesByCountries())
} }