No Description

FormSaveController.php 1021B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace MailPoet\Form;
  3. if (!defined('ABSPATH')) exit;
  4. use MailPoet\Entities\FormEntity;
  5. use MailPoet\WP\Functions as WPFunctions;
  6. use MailPoetVendor\Carbon\Carbon;
  7. use MailPoetVendor\Doctrine\ORM\EntityManager;
  8. class FormSaveController {
  9. /** @var EntityManager */
  10. private $entityManager;
  11. /** @var WPFunctions */
  12. private $wp;
  13. public function __construct(
  14. EntityManager $entityManager,
  15. WPFunctions $wp
  16. ) {
  17. $this->entityManager = $entityManager;
  18. $this->wp = $wp;
  19. }
  20. public function duplicate(FormEntity $formEntity): FormEntity {
  21. $duplicate = clone $formEntity;
  22. $duplicate->setName(sprintf(__('Copy of %s', 'mailpoet'), $formEntity->getName()));
  23. // reset timestamps
  24. $now = Carbon::createFromTimestamp($this->wp->currentTime('timestamp'));
  25. $duplicate->setCreatedAt($now);
  26. $duplicate->setUpdatedAt($now);
  27. $duplicate->setDeletedAt(null);
  28. $this->entityManager->persist($duplicate);
  29. $this->entityManager->flush();
  30. return $duplicate;
  31. }
  32. }