diff --git a/app/Http/Controllers/Settings/Modules.php b/app/Http/Controllers/Settings/Modules.php index b70c751a1..51d5caf70 100644 --- a/app/Http/Controllers/Settings/Modules.php +++ b/app/Http/Controllers/Settings/Modules.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Settings; use App\Abstracts\Http\Controller; use App\Models\Setting\Setting; +use App\Utilities\Modules as Utility; use App\Http\Requests\Setting\Module as Request; class Modules extends Controller @@ -54,9 +55,10 @@ class Modules extends Controller setting()->set($alias . '.' . $key, $value); } - // Save all settings setting()->save(); + Utility::clearPaymentMethodsCache(); + $message = trans('messages.success.updated', ['type' => trans_choice('general.settings', 2)]); $response = [ diff --git a/app/Utilities/Modules.php b/app/Utilities/Modules.php index 9bfeb5f3a..128966774 100644 --- a/app/Utilities/Modules.php +++ b/app/Utilities/Modules.php @@ -9,10 +9,8 @@ class Modules { public static function getPaymentMethods($type = null) { - $company_id = session('company_id'); - - $cache_admin = 'payment_methods.' . $company_id . '.admin'; - $cache_customer = 'payment_methods.' . $company_id . '.customer'; + $cache_admin = static::getPaymentMethodsCacheKey('admin'); + $cache_customer = static::getPaymentMethodsCacheKey('customer'); $payment_methods = Cache::get($cache_admin); @@ -65,6 +63,21 @@ class Modules return ($payment_methods) ? $payment_methods : []; } + public static function clearPaymentMethodsCache() + { + Cache::forget(static::getPaymentMethodsCacheKey('admin')); + Cache::forget(static::getPaymentMethodsCacheKey('customer')); + + if (config('setting.cache.enabled')) { + Cache::forget(setting()->getCacheKey()); + } + } + + public static function getPaymentMethodsCacheKey($type) + { + return 'payment_methods.' . session('company_id') . '.' . $type; + } + protected static function sortPaymentMethods(&$list) { $sort_order = []; diff --git a/modules/OfflinePayments/Http/Controllers/Settings.php b/modules/OfflinePayments/Http/Controllers/Settings.php index 21ba06d48..9113d78bd 100644 --- a/modules/OfflinePayments/Http/Controllers/Settings.php +++ b/modules/OfflinePayments/Http/Controllers/Settings.php @@ -3,8 +3,8 @@ namespace Modules\OfflinePayments\Http\Controllers; use App\Abstracts\Http\Controller; +use App\Utilities\Modules; use Illuminate\Http\Response; -use Illuminate\Support\Facades\Cache; use Modules\OfflinePayments\Http\Requests\Setting as Request; use Modules\OfflinePayments\Http\Requests\SettingGet as GRequest; use Modules\OfflinePayments\Http\Requests\SettingDelete as DRequest; @@ -68,9 +68,7 @@ class Settings extends Controller setting()->save(); - if (config('setting.cache.enabled')) { - Cache::forget(setting()->getCacheKey()); - } + Modules::clearPaymentMethodsCache(); $response = [ 'status' => null, @@ -154,9 +152,7 @@ class Settings extends Controller setting()->save(); - if (config('setting.cache.enabled')) { - Cache::forget(setting()->getCacheKey()); - } + Modules::clearPaymentMethodsCache(); $message = trans('messages.success.deleted', ['type' => $remove['name']]);