暂无描述

Forms.php 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace MailPoet\AdminPages\Pages;
  3. if (!defined('ABSPATH')) exit;
  4. use MailPoet\AdminPages\PageRenderer;
  5. use MailPoet\Listing\PageLimit;
  6. use MailPoet\Models\Segment;
  7. use MailPoet\Settings\SettingsController;
  8. use MailPoet\Settings\UserFlagsController;
  9. use MailPoet\Util\Installation;
  10. use MailPoet\Util\License\License;
  11. use MailPoet\WP\Functions as WPFunctions;
  12. class Forms {
  13. /** @var PageRenderer */
  14. private $pageRenderer;
  15. /** @var PageLimit */
  16. private $listingPageLimit;
  17. /** @var Installation */
  18. private $installation;
  19. /** @var UserFlagsController */
  20. private $userFlags;
  21. /** @var WPFunctions */
  22. private $wp;
  23. /** @var SettingsController */
  24. private $settings;
  25. public function __construct(
  26. PageRenderer $pageRenderer,
  27. PageLimit $listingPageLimit,
  28. Installation $installation,
  29. SettingsController $settings,
  30. UserFlagsController $userFlags,
  31. WPFunctions $wp
  32. ) {
  33. $this->pageRenderer = $pageRenderer;
  34. $this->listingPageLimit = $listingPageLimit;
  35. $this->installation = $installation;
  36. $this->userFlags = $userFlags;
  37. $this->wp = $wp;
  38. $this->settings = $settings;
  39. }
  40. public function render() {
  41. $data = [];
  42. $data['items_per_page'] = $this->listingPageLimit->getLimitPerPage('forms');
  43. $data['segments'] = Segment::findArray();
  44. $data['is_new_user'] = $this->installation->isNewInstallation();
  45. $data = $this->getNPSSurveyData($data);
  46. $this->pageRenderer->displayPage('forms.html', $data);
  47. }
  48. public function getNPSSurveyData($data) {
  49. $data['display_nps_survey'] = false;
  50. if ($this->userFlags->get('display_new_form_editor_nps_survey')) {
  51. $data['current_wp_user'] = $this->wp->wpGetCurrentUser()->to_array();
  52. $data['site_url'] = $this->wp->siteUrl();
  53. $data['premium_plugin_active'] = License::getLicense();
  54. $data['current_wp_user_firstname'] = $this->wp->wpGetCurrentUser()->user_firstname;
  55. $installedAtDiff = (new \DateTime($this->settings->get('installed_at')))->diff(new \DateTime());
  56. $data['installed_days_ago'] = (int)$installedAtDiff->format('%a');
  57. $data['display_nps_survey'] = true;
  58. $this->userFlags->set('display_new_form_editor_nps_survey', false);
  59. }
  60. return $data;
  61. }
  62. }