Ajax
1 week ago
BackgroundProcessing
2 weeks ago
Dto
1 week ago
Entity
2 weeks ago
Exceptions
3 days ago
FileHeader
2 weeks ago
Interfaces
2 weeks ago
Job
3 days ago
Request
2 weeks ago
Service
3 days ago
Storage
2 weeks ago
Task
3 days ago
Traits
2 weeks ago
Utils
2 weeks ago
AdminMenuBadge.php
3 days ago
AfterRestore.php
2 weeks ago
BackupDeleter.php
2 weeks ago
BackupDownload.php
2 weeks ago
BackupFileIndex.php
2 weeks ago
BackupGlitchReason.php
2 weeks ago
BackupHeader.php
1 week ago
BackupNextOffer.php
3 days ago
BackupRepairer.php
2 weeks ago
BackupRetentionHandler.php
2 weeks ago
BackupScheduler.php
3 days ago
BackupServiceProvider.php
2 weeks ago
BackupValidator.php
1 week ago
BeforeUpdateRowStatus.php
2 weeks ago
FileHeader.php
2 weeks ago
FileHeaderAttribute.php
2 weeks ago
UpdateProtectionPausedNotice.php
2 weeks ago
WithBackupIdentifier.php
2 weeks ago
BackupNextOffer.php
49 lines
| 1 | <?php |
| 2 | |
| 3 | namespace WPStaging\Backup; |
| 4 | |
| 5 | use WPStaging\Core\WPStaging; |
| 6 | use WPStaging\Framework\SiteInfo; |
| 7 | |
| 8 | |
| 9 | |
| 10 | |
| 11 | class BackupNextOffer |
| 12 | { |
| 13 | |
| 14 | private $siteInfo; |
| 15 | |
| 16 | |
| 17 | private $isEligible = null; |
| 18 | |
| 19 | public function __construct(SiteInfo $siteInfo) |
| 20 | { |
| 21 | $this->siteInfo = $siteInfo; |
| 22 | } |
| 23 | |
| 24 | |
| 25 | |
| 26 | |
| 27 | |
| 28 | |
| 29 | |
| 30 | public static function resolve() |
| 31 | { |
| 32 | try { |
| 33 | return WPStaging::make(self::class); |
| 34 | } catch (\Throwable $e) { |
| 35 | return null; |
| 36 | } |
| 37 | } |
| 38 | |
| 39 | |
| 40 | public function isEligible(): bool |
| 41 | { |
| 42 | if ($this->isEligible === null) { |
| 43 | $this->isEligible = current_user_can('manage_options') && !$this->siteInfo->isStagingSite(); |
| 44 | } |
| 45 | |
| 46 | return $this->isEligible; |
| 47 | } |
| 48 | } |
| 49 |