custom/plugins/MhspAddCheckoutShippingInput6/src/MhspAddCheckoutShippingInput6.php line 24

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Mhsp\MhspAddCheckoutShippingInput6;
  3. /**
  4.  * Add dependencies from composer
  5.  */
  6. if(file_exists(dirname(__DIR__) . "/vendor/autoload.php")) {
  7.     require_once dirname(__DIR__) . '/vendor/autoload.php';
  8. }
  9. use Mhsp\MhspAddCheckoutShippingInput6\Core\Plugin;
  10. use Shopware\Core\Framework\Plugin\Context\InstallContext;
  11. use Shopware\Core\System\SystemConfig\SystemConfigService;
  12. use Symfony\Component\DependencyInjection\ContainerBuilder;
  13. /**
  14.  * Class MhspAddCheckoutShippingInput6
  15.  *
  16.  * @package   Mhsp\MhspAddCheckoutShippingInput6
  17.  * @author    OU <shopware@mediahaus.de>
  18.  * @copyright Copyright (c) MEDIAHAUS - Die Medienmanager (http://www.mediahaus.de)
  19.  */
  20. class MhspAddCheckoutShippingInput6 extends Plugin
  21. {
  22.     /** @var string */
  23.     const PLUGIN_NAME "MhspAddCheckoutShippingInput6";
  24.     /** @var string */
  25.     const CONFIG_DOMAIN self::PLUGIN_NAME ".config";
  26.     /** @var string */
  27.     const CONFIG_DELIVERY_IDS self::CONFIG_DOMAIN ".deliveryIds";
  28.     /** @var string */
  29.     const CONFIG_SHOW_INPUT self::CONFIG_DOMAIN ".showInput";
  30.     /** @var string */
  31.     const CONFIG_SYNC_PHONE self::CONFIG_DOMAIN ".syncPhone";
  32.     /** @var string */
  33.     const CONFIG_AUTO_FOCUS self::CONFIG_DOMAIN ".autoFocus";
  34.     /** @var string */
  35.     const CONFIG_SHOW_IN_ORDER_DETAILS self::CONFIG_DOMAIN ".showInOrderDetails";
  36.     /** @var string */
  37.     const CONFIG_SHOW_CUSTOM_PLACEHOLDER self::CONFIG_DOMAIN ".showCustomPlaceholder";
  38.     /** @var string */
  39.     const CONFIG_CUSTOM_PLACEHOLDER self::CONFIG_DOMAIN ".customPlaceholder";
  40.     /** @var string  */
  41.     const ROUTE_ORDER "frontend.checkout.finish.order";
  42.     
  43.     /** @var string  */
  44.     const PAYPAL_SWITCH_CONTEXT "store-api.switch-context";
  45.     /** @var string  */
  46.     const PHONE_NUMBER_DEFINITION_NAME "phoneNumber";
  47.     /** @var string  */
  48.     const CUSTOM_PHONE_NAME ="mhsp-shipping-phone";
  49.     /** @var string */
  50.     const ORDER_VALIDATION_CREATE "framework.validation.order.create";
  51.     /** @var string  */
  52.     const VALIDATED_NUMBER_ISO "mhsp-validated-country-iso";
  53.     /**
  54.      * @param ContainerBuilder $container
  55.      */
  56.     public function build(ContainerBuilder $container): void
  57.     {
  58.         parent::build($container);
  59.         $container->setParameter($this->getContainerPrefix().".plugin_name"$this->getName());
  60.         $container->setParameter($this->getContainerPrefix().".plugin_path"$this->getPath());
  61.     }
  62.     public function install(InstallContext $installContext): void
  63.     {
  64.         parent::install($installContext);
  65.         $this->setIfNotExists(self::CONFIG_SYNC_PHONEfalse);
  66.         $this->setIfNotExists(self::CONFIG_AUTO_FOCUSfalse);
  67.         $this->setIfNotExists(self::CONFIG_SHOW_INPUTfalse);
  68.         $this->setIfNotExists(self::CONFIG_SHOW_IN_ORDER_DETAILStrue);
  69.         $this->setIfNotExists(self::CONFIG_DELIVERY_IDS, []);
  70.     }
  71.     private function setIfNotExists(string $key$value){
  72.         /** @var SystemConfigService $configService */
  73.         $configService $this->container->get(SystemConfigService::class);
  74.         if($configService->get($key) !== null){
  75.             return;
  76.         }
  77.         $configService->set($key,$value);
  78.     }
  79. }