Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/vendor/magento/module-paypal/Model/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/vendor/magento/module-paypal/Model/PayLaterConfig.php
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
declare(strict_types=1);

namespace Magento\Paypal\Model;

/**
 * Provides configuration values for PayPal PayLater Banners
 */
class PayLaterConfig
{
    /**
     * Configuration key for Styles settings
     */
    public const CONFIG_KEY_STYLE = 'style';

    /**
     * Configuration key for Position setting
     */
    public const CONFIG_KEY_POSITION = 'position';

    /**
     * Checkout payment step placement
     */
    public const CHECKOUT_PAYMENT_PLACEMENT = 'checkout_payment';

    /**
     * @var Config
     */
    private $config;

    /**
     * @var array
     */
    private $configData = [];

    /**
     * @param ConfigFactory $configFactory
     */
    public function __construct(
        ConfigFactory $configFactory
    ) {
        $this->config = $configFactory->create();
    }

    /**
     * Check if Banner enabled for specified page
     *
     * @param string $placement
     * @return bool
     */
    public function isEnabled(string $placement): bool
    {
        $enabled = false;
        if ($this->isPPCreditEnabled()) {
            $payLaterActive = (boolean)$this->config->getPayLaterConfigValue('experience_active');
            $isPayLaterEnabled = (boolean)$this->config->getPayLaterConfigValue('enabled');
            $enabled = $payLaterActive && $isPayLaterEnabled && $this->getSectionConfig($placement, 'display');
        }
        return $enabled;
    }

    /**
     * Check that PayPal Credit enabled with any PayPal express method
     *
     * @return bool
     */
    private function isPPCreditEnabled(): bool
    {
        $isEnabled = false;
        if ($this->config->setMethod(Config::METHOD_EXPRESS)->getValue('in_context')) {
            $disabledFunding = $this->config->getValue('disable_funding_options');
            $isEnabled = $disabledFunding ? strpos($disabledFunding, 'CREDIT') === false : true;
        }

        return $isEnabled || $this->config->isMethodAvailable(Config::METHOD_WPP_BML)
            || $this->config->isMethodAvailable(Config::METHOD_WPP_PE_BML);
    }

    /**
     * Get config for a specific section and key
     *
     * @param string $section
     * @param string $key
     * @return array|string|int
     */
    public function getSectionConfig(string $section, string $key)
    {
        if (!array_key_exists($section, $this->configData)) {
            $sectionName = $section === self::CHECKOUT_PAYMENT_PLACEMENT
                ? self::CHECKOUT_PAYMENT_PLACEMENT : "{$section}page";

            $this->configData[$section] = [
                'display' => (boolean)$this->config->getPayLaterConfigValue("{$sectionName}_display"),
                'position' => $this->config->getPayLaterConfigValue("{$sectionName}_position"),
                'style' => $this->getConfigStyles($sectionName)
            ];
        }

        return $this->configData[$section][$key];
    }

    /**
     * Get only the config styles that are needed
     *
     * @param string $sectionName
     * @return array
     */
    private function getConfigStyles(string $sectionName): array
    {
        $logoType = $logoPosition = $textColor = $textSize = null;
        $color = $ratio = null;
        $styleLayout = $this->config->getPayLaterConfigValue("{$sectionName}_stylelayout");
        if ($styleLayout === 'text') {
            $logoType = $this->config->getPayLaterConfigValue("{$sectionName}_logotype");
            if ($logoType === 'primary' || $logoType === 'alternative') {
                $logoPosition = $this->config->getPayLaterConfigValue("{$sectionName}_logoposition");
            }
            $textColor = $this->config->getPayLaterConfigValue("{$sectionName}_textcolor");
            $textSize = $this->config->getPayLaterConfigValue("{$sectionName}_textsize");
        } elseif ($styleLayout === 'flex') {
            $color = $this->config->getPayLaterConfigValue("{$sectionName}_color");
            $ratio = $this->config->getPayLaterConfigValue("{$sectionName}_ratio");
        }

        return [
            'data-pp-style-layout' => $styleLayout,
            'data-pp-style-logo-type' => $logoType,
            'data-pp-style-logo-position' => $logoPosition,
            'data-pp-style-text-color' => $textColor,
            'data-pp-style-text-size' => $textSize,
            'data-pp-style-color' => $color,
            'data-pp-style-ratio' => $ratio
        ];
    }

    /**
     * Check if billing agreement is enabled
     *
     * @return bool
     */
    public function isPPBillingAgreementEnabled(): bool
    {
        return $this->config->isMethodActive(Config::METHOD_BILLING_AGREEMENT);
    }
}

Spamworldpro Mini