Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
UpdateSalesChannelWebsiteCodePlugin.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
19 
21 {
25  private $updateSalesChannelWebsiteCode;
26 
30  private $getWebsiteCodeByWebsiteId;
31 
36  public function __construct(
37  UpdateSalesChannelWebsiteCode $updateSalesChannelWebsiteCode,
38  GetWebsiteCodeByWebsiteId $getWebsiteCodeByWebsiteId
39  ) {
40  $this->updateSalesChannelWebsiteCode = $updateSalesChannelWebsiteCode;
41  $this->getWebsiteCodeByWebsiteId = $getWebsiteCodeByWebsiteId;
42  }
43 
54  public function aroundSave(
55  WebsiteResourceModel $subject,
56  callable $proceed,
58  ) {
59  $newCode = $website->getCode();
60  $oldCode = null;
61 
62  if (null !== $website->getId()) {
63  $oldCode = $this->getWebsiteCodeByWebsiteId->execute((int)$website->getId());
64  }
65 
66  $result = $proceed($website);
67 
68  if (($oldCode !== null) && ($oldCode !== WebsiteInterface::ADMIN_CODE) && ($oldCode !== $newCode)) {
69  $this->updateSalesChannelWebsiteCode->execute($oldCode, $newCode);
70  }
71  return $result;
72  }
73 }
__construct(UpdateSalesChannelWebsiteCode $updateSalesChannelWebsiteCode, GetWebsiteCodeByWebsiteId $getWebsiteCodeByWebsiteId)