����JFIF��x�x����'
| Server IP : 78.140.185.180  /  Your IP : 216.73.216.38 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);
            }
        });
    }
}