b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / dev2.destoffenstraat.com / app / code / Amasty / Checkout / Model /
Filename/home/dev2.destoffenstraat.com/app/code/Amasty/Checkout/Model/SaveFields.php
Size2.08 kb
Permissionrwxrwxrwx
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified23-Nov-2022 12:33
Last accessed21-Aug-2025 20:26
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php

declare(strict_types=1);

/**
* @author Amasty Team
* @copyright Copyright (c) 2022 Amasty (https://www.amasty.com)
* @package One Step Checkout for Magento 2
*/

namespace Amasty\Checkout\Model;

use Amasty\Checkout\Api\Data\PlaceholderInterface;
use Amasty\CheckoutCore\Model\Field;
use Magento\Framework\Api\DataObjectHelper;
use Magento\Framework\Exception\CouldNotDeleteException;
use Magento\Framework\Exception\CouldNotSaveException;

class SaveFields
{
/**
* @var PlaceholderRepository
*/
private $placeholderRepository;

/**
* @var DataObjectHelper
*/
private $dataObjectHelper;

public function __construct(
PlaceholderRepository $placeholderRepository,
DataObjectHelper $dataObjectHelper
) {
$this->placeholderRepository = $placeholderRepository;
$this->dataObjectHelper = $dataObjectHelper;
}

/**
* @param array $fields
* @param int $storeId
*
* @throws CouldNotDeleteException
* @throws CouldNotSaveException
*/
public function saveFields(array $fields, int $storeId): void
{
foreach ($fields as $attributeId => $fieldData) {
$placeholderEntity = $this->placeholderRepository->getById(
(int)$fieldData[PlaceholderInterface::PLACEHOLDER_ID]
);

if (($storeId != Field::DEFAULT_STORE_ID && empty($fieldData['use_default']))
|| $storeId == Field::DEFAULT_STORE_ID) {
unset($fieldData[PlaceholderInterface::PLACEHOLDER_ID], $fieldData['id']);
$fieldData[PlaceholderInterface::ATTRIBUTE_ID] = $attributeId;
$fieldData[PlaceholderInterface::STORE_ID] = $storeId;

$this->dataObjectHelper->populateWithArray(
$placeholderEntity,
$fieldData,
PlaceholderInterface::class
);

$this->placeholderRepository->save($placeholderEntity);
} else {
$this->placeholderRepository->delete($placeholderEntity);
}
}
}
}