547 lines
19 KiB
PHP
547 lines
19 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Models\BusinessSetting;
|
|
use Artisan;
|
|
use CoreComponentRepository;
|
|
|
|
class BusinessSettingsController extends Controller
|
|
{
|
|
public function __construct() {
|
|
// Staff Permission Check
|
|
$this->middleware(['permission:seller_commission_configuration'])->only('vendor_commission');
|
|
$this->middleware(['permission:seller_verification_form_configuration'])->only('seller_verification_form');
|
|
$this->middleware(['permission:general_settings'])->only('general_setting');
|
|
$this->middleware(['permission:features_activation'])->only('activation');
|
|
$this->middleware(['permission:smtp_settings'])->only('smtp_settings');
|
|
$this->middleware(['permission:payment_methods_configurations'])->only('payment_method');
|
|
$this->middleware(['permission:order_configuration'])->only('order_configuration');
|
|
$this->middleware(['permission:file_system_&_cache_configuration'])->only('file_system');
|
|
$this->middleware(['permission:social_media_logins'])->only('social_login');
|
|
$this->middleware(['permission:facebook_chat'])->only('facebook_chat');
|
|
$this->middleware(['permission:facebook_comment'])->only('facebook_comment');
|
|
$this->middleware(['permission:analytics_tools_configuration'])->only('google_analytics');
|
|
$this->middleware(['permission:google_recaptcha_configuration'])->only('google_recaptcha');
|
|
$this->middleware(['permission:google_map_setting'])->only('google_map');
|
|
$this->middleware(['permission:google_firebase_setting'])->only('google_firebase');
|
|
$this->middleware(['permission:shipping_configuration'])->only('shipping_configuration');
|
|
}
|
|
|
|
public function general_setting(Request $request)
|
|
{
|
|
CoreComponentRepository::instantiateShopRepository();
|
|
CoreComponentRepository::initializeCache();
|
|
return view('backend.setup_configurations.general_settings');
|
|
}
|
|
|
|
public function activation(Request $request)
|
|
{
|
|
CoreComponentRepository::instantiateShopRepository();
|
|
CoreComponentRepository::initializeCache();
|
|
return view('backend.setup_configurations.activation');
|
|
}
|
|
|
|
public function social_login(Request $request)
|
|
{
|
|
CoreComponentRepository::instantiateShopRepository();
|
|
CoreComponentRepository::initializeCache();
|
|
return view('backend.setup_configurations.social_login');
|
|
}
|
|
|
|
public function smtp_settings(Request $request)
|
|
{
|
|
CoreComponentRepository::instantiateShopRepository();
|
|
CoreComponentRepository::initializeCache();
|
|
return view('backend.setup_configurations.smtp_settings');
|
|
}
|
|
|
|
public function google_analytics(Request $request)
|
|
{
|
|
CoreComponentRepository::instantiateShopRepository();
|
|
CoreComponentRepository::initializeCache();
|
|
return view('backend.setup_configurations.google_configuration.google_analytics');
|
|
}
|
|
|
|
public function google_recaptcha(Request $request)
|
|
{
|
|
CoreComponentRepository::instantiateShopRepository();
|
|
CoreComponentRepository::initializeCache();
|
|
return view('backend.setup_configurations.google_configuration.google_recaptcha');
|
|
}
|
|
|
|
public function google_map(Request $request) {
|
|
CoreComponentRepository::instantiateShopRepository();
|
|
CoreComponentRepository::initializeCache();
|
|
return view('backend.setup_configurations.google_configuration.google_map');
|
|
}
|
|
|
|
public function google_firebase(Request $request) {
|
|
CoreComponentRepository::instantiateShopRepository();
|
|
CoreComponentRepository::initializeCache();
|
|
return view('backend.setup_configurations.google_configuration.google_firebase');
|
|
}
|
|
|
|
public function facebook_chat(Request $request)
|
|
{
|
|
CoreComponentRepository::instantiateShopRepository();
|
|
CoreComponentRepository::initializeCache();
|
|
return view('backend.setup_configurations.facebook_chat');
|
|
}
|
|
|
|
public function facebook_comment(Request $request)
|
|
{
|
|
CoreComponentRepository::instantiateShopRepository();
|
|
CoreComponentRepository::initializeCache();
|
|
return view('backend.setup_configurations.facebook_configuration.facebook_comment');
|
|
}
|
|
|
|
public function payment_method(Request $request)
|
|
{
|
|
CoreComponentRepository::instantiateShopRepository();
|
|
CoreComponentRepository::initializeCache();
|
|
return view('backend.setup_configurations.payment_method');
|
|
}
|
|
|
|
public function file_system(Request $request)
|
|
{
|
|
CoreComponentRepository::instantiateShopRepository();
|
|
CoreComponentRepository::initializeCache();
|
|
return view('backend.setup_configurations.file_system');
|
|
}
|
|
|
|
/**
|
|
* Update the API key's for payment methods.
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function payment_method_update(Request $request)
|
|
{
|
|
foreach ($request->types as $key => $type) {
|
|
$this->overWriteEnvFile($type, $request[$type]);
|
|
}
|
|
|
|
$business_settings = BusinessSetting::where('type', $request->payment_method.'_sandbox')->first();
|
|
if($business_settings != null){
|
|
if ($request->has($request->payment_method.'_sandbox')) {
|
|
$business_settings->value = 1;
|
|
$business_settings->save();
|
|
}
|
|
else{
|
|
$business_settings->value = 0;
|
|
$business_settings->save();
|
|
}
|
|
}
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate("Settings updated successfully"))->success();
|
|
return back();
|
|
}
|
|
|
|
/**
|
|
* Update the API key's for GOOGLE analytics.
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function google_analytics_update(Request $request)
|
|
{
|
|
foreach ($request->types as $key => $type) {
|
|
$this->overWriteEnvFile($type, $request[$type]);
|
|
}
|
|
|
|
$business_settings = BusinessSetting::where('type', 'google_analytics')->first();
|
|
|
|
if ($request->has('google_analytics')) {
|
|
$business_settings->value = 1;
|
|
$business_settings->save();
|
|
}
|
|
else{
|
|
$business_settings->value = 0;
|
|
$business_settings->save();
|
|
}
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate("Settings updated successfully"))->success();
|
|
return back();
|
|
}
|
|
|
|
public function google_recaptcha_update(Request $request)
|
|
{
|
|
foreach ($request->types as $key => $type) {
|
|
$this->overWriteEnvFile($type, $request[$type]);
|
|
}
|
|
|
|
$business_settings = BusinessSetting::where('type', 'google_recaptcha')->first();
|
|
|
|
if ($request->has('google_recaptcha')) {
|
|
$business_settings->value = 1;
|
|
$business_settings->save();
|
|
}
|
|
else{
|
|
$business_settings->value = 0;
|
|
$business_settings->save();
|
|
}
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate("Settings updated successfully"))->success();
|
|
return back();
|
|
}
|
|
|
|
public function google_map_update(Request $request)
|
|
{
|
|
foreach ($request->types as $key => $type) {
|
|
$this->overWriteEnvFile($type, $request[$type]);
|
|
}
|
|
|
|
$business_settings = BusinessSetting::where('type', 'google_map')->first();
|
|
|
|
if ($request->has('google_map')) {
|
|
$business_settings->value = 1;
|
|
$business_settings->save();
|
|
}
|
|
else{
|
|
$business_settings->value = 0;
|
|
$business_settings->save();
|
|
}
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate("Settings updated successfully"))->success();
|
|
return back();
|
|
}
|
|
|
|
public function google_firebase_update(Request $request)
|
|
{
|
|
foreach ($request->types as $key => $type) {
|
|
$this->overWriteEnvFile($type, $request[$type]);
|
|
}
|
|
|
|
$business_settings = BusinessSetting::where('type', 'google_firebase')->first();
|
|
|
|
if ($request->has('google_firebase')) {
|
|
$business_settings->value = 1;
|
|
$business_settings->save();
|
|
}
|
|
else{
|
|
$business_settings->value = 0;
|
|
$business_settings->save();
|
|
}
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate("Settings updated successfully"))->success();
|
|
return back();
|
|
}
|
|
|
|
|
|
/**
|
|
* Update the API key's for GOOGLE analytics.
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function facebook_chat_update(Request $request)
|
|
{
|
|
foreach ($request->types as $key => $type) {
|
|
$this->overWriteEnvFile($type, $request[$type]);
|
|
}
|
|
|
|
$business_settings = BusinessSetting::where('type', 'facebook_chat')->first();
|
|
|
|
if ($request->has('facebook_chat')) {
|
|
$business_settings->value = 1;
|
|
$business_settings->save();
|
|
}
|
|
else{
|
|
$business_settings->value = 0;
|
|
$business_settings->save();
|
|
}
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate("Settings updated successfully"))->success();
|
|
return back();
|
|
}
|
|
|
|
public function facebook_comment_update(Request $request)
|
|
{
|
|
foreach ($request->types as $key => $type) {
|
|
$this->overWriteEnvFile($type, $request[$type]);
|
|
}
|
|
|
|
$business_settings = BusinessSetting::where('type', 'facebook_comment')->first();
|
|
if(!$business_settings) {
|
|
$business_settings = new BusinessSetting;
|
|
$business_settings->type = 'facebook_comment';
|
|
}
|
|
|
|
$business_settings->value = 0;
|
|
if ($request->facebook_comment) {
|
|
$business_settings->value = 1;
|
|
}
|
|
|
|
$business_settings->save();
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate("Settings updated successfully"))->success();
|
|
return back();
|
|
}
|
|
|
|
public function facebook_pixel_update(Request $request)
|
|
{
|
|
foreach ($request->types as $key => $type) {
|
|
$this->overWriteEnvFile($type, $request[$type]);
|
|
}
|
|
|
|
$business_settings = BusinessSetting::where('type', 'facebook_pixel')->first();
|
|
|
|
if ($request->has('facebook_pixel')) {
|
|
$business_settings->value = 1;
|
|
$business_settings->save();
|
|
}
|
|
else{
|
|
$business_settings->value = 0;
|
|
$business_settings->save();
|
|
}
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate("Settings updated successfully"))->success();
|
|
return back();
|
|
}
|
|
|
|
/**
|
|
* Update the API key's for other methods.
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function env_key_update(Request $request)
|
|
{
|
|
foreach ($request->types as $key => $type) {
|
|
$this->overWriteEnvFile($type, $request[$type]);
|
|
}
|
|
|
|
flash(translate("Settings updated successfully"))->success();
|
|
return back();
|
|
}
|
|
|
|
/**
|
|
* overWrite the Env File values.
|
|
* @param String type
|
|
* @param String value
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function overWriteEnvFile($type, $val)
|
|
{
|
|
if(env('DEMO_MODE') != 'On'){
|
|
$path = base_path('.env');
|
|
if (file_exists($path)) {
|
|
$val = '"'.trim($val).'"';
|
|
if(is_numeric(strpos(file_get_contents($path), $type)) && strpos(file_get_contents($path), $type) >= 0){
|
|
file_put_contents($path, str_replace(
|
|
$type.'="'.env($type).'"', $type.'='.$val, file_get_contents($path)
|
|
));
|
|
}
|
|
else{
|
|
file_put_contents($path, file_get_contents($path)."\r\n".$type.'='.$val);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public function seller_verification_form(Request $request)
|
|
{
|
|
return view('backend.sellers.seller_verification_form.index');
|
|
}
|
|
|
|
/**
|
|
* Update sell verification form.
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function seller_verification_form_update(Request $request)
|
|
{
|
|
$form = array();
|
|
$select_types = ['select', 'multi_select', 'radio'];
|
|
$j = 0;
|
|
for ($i=0; $i < count($request->type); $i++) {
|
|
$item['type'] = $request->type[$i];
|
|
$item['label'] = $request->label[$i];
|
|
if(in_array($request->type[$i], $select_types)){
|
|
$item['options'] = json_encode($request['options_'.$request->option[$j]]);
|
|
$j++;
|
|
}
|
|
array_push($form, $item);
|
|
}
|
|
$business_settings = BusinessSetting::where('type', 'verification_form')->first();
|
|
$business_settings->value = json_encode($form);
|
|
if($business_settings->save()){
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate("Verification form updated successfully"))->success();
|
|
return back();
|
|
}
|
|
}
|
|
|
|
public function update(Request $request)
|
|
{
|
|
|
|
foreach ($request->types as $key => $type) {
|
|
if($type == 'site_name'){
|
|
$this->overWriteEnvFile('APP_NAME', $request[$type]);
|
|
}
|
|
if($type == 'timezone'){
|
|
$this->overWriteEnvFile('APP_TIMEZONE', $request[$type]);
|
|
}
|
|
else {
|
|
$lang = null;
|
|
if(gettype($type) == 'array'){
|
|
$lang = array_key_first($type);
|
|
$type = $type[$lang];
|
|
$business_settings = BusinessSetting::where('type', $type)->where('lang',$lang)->first();
|
|
}else{
|
|
$business_settings = BusinessSetting::where('type', $type)->first();
|
|
}
|
|
|
|
if($business_settings!=null){
|
|
if(gettype($request[$type]) == 'array'){
|
|
$business_settings->value = json_encode($request[$type]);
|
|
}
|
|
else {
|
|
$business_settings->value = $request[$type];
|
|
}
|
|
$business_settings->lang = $lang;
|
|
$business_settings->save();
|
|
}
|
|
else{
|
|
$business_settings = new BusinessSetting;
|
|
$business_settings->type = $type;
|
|
if(gettype($request[$type]) == 'array'){
|
|
$business_settings->value = json_encode($request[$type]);
|
|
}
|
|
else {
|
|
$business_settings->value = $request[$type];
|
|
}
|
|
$business_settings->lang = $lang;
|
|
$business_settings->save();
|
|
}
|
|
}
|
|
}
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate("Settings updated successfully"))->success();
|
|
return back();
|
|
}
|
|
|
|
public function updateActivationSettings(Request $request)
|
|
{
|
|
$env_changes = ['FORCE_HTTPS', 'FILESYSTEM_DRIVER'];
|
|
if (in_array($request->type, $env_changes)) {
|
|
|
|
return $this->updateActivationSettingsInEnv($request);
|
|
}
|
|
|
|
$business_settings = BusinessSetting::where('type', $request->type)->first();
|
|
if($business_settings!=null){
|
|
if ($request->type == 'maintenance_mode' && $request->value == '1') {
|
|
if(env('DEMO_MODE') != 'On'){
|
|
Artisan::call('down');
|
|
}
|
|
}
|
|
elseif ($request->type == 'maintenance_mode' && $request->value == '0') {
|
|
if(env('DEMO_MODE') != 'On') {
|
|
Artisan::call('up');
|
|
}
|
|
}
|
|
$business_settings->value = $request->value;
|
|
$business_settings->save();
|
|
}
|
|
else{
|
|
$business_settings = new BusinessSetting;
|
|
$business_settings->type = $request->type;
|
|
$business_settings->value = $request->value;
|
|
$business_settings->save();
|
|
}
|
|
|
|
Artisan::call('cache:clear');
|
|
return '1';
|
|
}
|
|
|
|
public function updateActivationSettingsInEnv($request)
|
|
{
|
|
if ($request->type == 'FORCE_HTTPS' && $request->value == '1') {
|
|
$this->overWriteEnvFile($request->type, 'On');
|
|
|
|
if(strpos(env('APP_URL'), 'http:') !== FALSE) {
|
|
$this->overWriteEnvFile('APP_URL', str_replace("http:", "https:", env('APP_URL')));
|
|
}
|
|
|
|
}
|
|
elseif ($request->type == 'FORCE_HTTPS' && $request->value == '0') {
|
|
$this->overWriteEnvFile($request->type, 'Off');
|
|
if(strpos(env('APP_URL'), 'https:') !== FALSE) {
|
|
$this->overWriteEnvFile('APP_URL', str_replace("https:", "http:", env('APP_URL')));
|
|
}
|
|
|
|
}
|
|
elseif ($request->type == 'FILESYSTEM_DRIVER' && $request->value == '1') {
|
|
$this->overWriteEnvFile($request->type, 's3');
|
|
}
|
|
elseif ($request->type == 'FILESYSTEM_DRIVER' && $request->value == '0') {
|
|
$this->overWriteEnvFile($request->type, 'local');
|
|
}
|
|
|
|
return '1';
|
|
}
|
|
|
|
public function vendor_commission(Request $request)
|
|
{
|
|
return view('backend.sellers.seller_commission.index');
|
|
}
|
|
|
|
public function vendor_commission_update(Request $request){
|
|
foreach ($request->types as $key => $type) {
|
|
$business_settings = BusinessSetting::where('type', $type)->first();
|
|
if($business_settings!=null){
|
|
$business_settings->value = $request[$type];
|
|
$business_settings->save();
|
|
}
|
|
else{
|
|
$business_settings = new BusinessSetting;
|
|
$business_settings->type = $type;
|
|
$business_settings->value = $request[$type];
|
|
$business_settings->save();
|
|
}
|
|
}
|
|
|
|
Artisan::call('cache:clear');
|
|
|
|
flash(translate('Seller Commission updated successfully'))->success();
|
|
return back();
|
|
}
|
|
|
|
public function shipping_configuration(Request $request){
|
|
return view('backend.setup_configurations.shipping_configuration.index');
|
|
}
|
|
|
|
public function shipping_configuration_update(Request $request){
|
|
$business_settings = BusinessSetting::where('type', $request->type)->first();
|
|
$business_settings->value = $request[$request->type];
|
|
$business_settings->save();
|
|
|
|
Artisan::call('cache:clear');
|
|
flash(translate('Shipping Method updated successfully'))->success();
|
|
return back();
|
|
}
|
|
|
|
public function order_configuration(){
|
|
return view('backend.setup_configurations.order_configuration.index');
|
|
}
|
|
|
|
}
|