PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.24
Advanced Ads – Ad Manager & AdSense v2.0.24
2.0.24 2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.42.1 1.42.2 1.43.0 1.44.0 1.44.1 1.45.0 1.45.1 1.46.0 1.47.0 1.47.1 1.47.2 1.47.3 1.47.4 1.47.5 1.48.0 1.48.1 1.49.0 1.5.0 1.5.0.1 1.5.1 1.5.2 1.5.2.1 1.5.4 1.5.4.1 1.5.5 1.50.0 1.51.0 1.51.1 1.51.2 1.51.3 1.52.0 1.52.1 1.52.2 1.52.3 1.52.4 1.53.0 1.53.1 1.53.2 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.56.2 1.56.3 1.56.4 1.6 1.6.1 1.6.10 1.6.10.1 1.6.10.2 1.6.11 1.6.11.1 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.17.1 1.6.17.2 1.6.2 1.6.2.1 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.6 1.6.6.1 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.6.8.3 1.6.9 1.6.9.1 1.6.9.2 1.6.9.3 1.6.9.4 1.7 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.1.1 1.7.1.2 1.7.1.3 1.7.1.4 1.7.1.5 1.7.10 trunk 1.7.11 1.0.1 1.7.12 1.0.2 1.7.13 1.0.3 1.7.14 1.1.0 1.7.15 1.1.1 1.7.16 1.1.2 1.7.17 1.1.3 1.7.18 1.10 1.7.19 1.10.1 1.7.2 1.10.10 1.7.2.1 1.10.11 1.7.20 1.10.12 1.7.21 1.10.2 1.7.22 1.10.3 1.7.23 1.10.4 1.7.24 1.10.5 1.7.25 1.10.6 1.7.3 1.10.7 1.7.4 1.10.8 1.7.4.1 1.10.9 1.7.4.2 1.11 1.7.4.3 1.11.1 1.7.4.4 1.11.2 1.7.4.5 1.12 1.7.5 1.13 1.7.5.1 1.13.1 1.7.6 1.13.2 1.7.7 1.13.3 1.7.8 1.13.4 1.7.9 1.13.5 1.7.9.1 1.13.6 1.7.9.2 1.13.7 1.7.9.3 1.13.8 1.8 1.14 1.8.1 1.14.1 1.8.10 1.14.10 1.8.11 1.14.11 1.8.12 1.14.2 1.8.13 1.14.3 1.8.14 1.14.4 1.8.15 1.14.5 1.8.16 1.14.6 1.8.17 1.14.7 1.8.18 1.14.8 1.8.19 1.14.9 1.8.2 1.15 1.8.20 1.16 1.8.21 1.16.1 1.8.22 1.17 1.8.23 1.17.1 1.8.24 1.17.10 1.8.25 1.17.10-rc.1 1.8.26 1.17.11 1.8.27 1.17.12 1.8.28 1.17.12-rc.1 1.8.29 1.17.2 1.8.3 1.17.3 1.8.30 1.17.4 1.8.4 1.17.5 1.8.5 1.17.6 1.8.6 1.17.7 1.8.7 1.17.8 1.8.8 1.17.9 1.8.9 1.17.9-beta.1 1.9 1.18.0 2.0.0 1.19.0 2.0.1 1.19.1 2.0.10 1.2 2.0.11 1.2.1 2.0.12 1.2.2 2.0.13 1.2.3 2.0.14 1.2.4 2.0.15 1.2.5 2.0.16 1.2.6 2.0.17 1.2.7 2.0.18 1.20.0 2.0.19 1.20.0-rc.1 2.0.2 1.20.0-rc.2 2.0.20 1.20.1 2.0.3 1.20.2 2.0.4 1.20.3 2.0.5 1.21.0 2.0.6 1.21.1 2.0.7 1.22.0 2.0.8 1.22.1 2.0.9 1.22.2 1.23.0 1.23.1 1.23.2 1.24.0 1.24.1 1.24.2 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.29.0 1.29.1 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.30.0 1.30.1 1.30.2 1.30.2-rc.1 1.30.3 1.30.4 1.30.4-rc.1 1.30.5 1.31.0 1.31.1 1.32.0 1.32.0-rc.1 1.33.0 1.33.1 1.33.2 1.34.0 1.35.0 1.35.1 1.36.0 1.36.1 1.36.2 1.36.3 1.37.0 1.37.1 1.37.2
advanced-ads / includes / license / class-license.php
advanced-ads / includes / license Last commit date
class-license.php 3 months ago
class-license.php
141 lines
1 <?php
2 /**
3 * License class.
4 * Handles license management for Advanced Ads add-ons.
5 *
6 * @since 2.0.17
7 * @package AdvancedAds
8 * @author Advanced Ads <info@wpadvancedads.com>
9 */
10
11 namespace AdvancedAds\License;
12
13 use AdvancedAds\Utilities\Data;
14
15 defined( 'ABSPATH' ) || exit;
16
17 /**
18 * License class.
19 */
20 class License {
21
22 /**
23 * Option name for licenses.
24 *
25 * @var string
26 */
27 private const OPTION_NAME = 'advanced-ads-licenses';
28
29 /**
30 * Add-on slugs.
31 *
32 * @var array
33 */
34 public const ADDONS_SLUGS = [
35 'pro',
36 'responsive',
37 'gam',
38 'layer',
39 'selling',
40 'sticky',
41 'tracking',
42 'slider-ads',
43 ];
44
45 /**
46 * Main instance
47 *
48 * Ensure only one instance is loaded or can be loaded.
49 *
50 * @return License
51 */
52 public static function get() {
53 static $instance;
54
55 if ( null === $instance ) {
56 $instance = new License();
57 }
58
59 return $instance;
60 }
61
62 /**
63 * Get license
64 *
65 * @param string $slug Add-on slug.
66 *
67 * @return array
68 */
69 public static function get_license_details( $slug ): array {
70 $licenses = get_option( self::OPTION_NAME, [] );
71 $license = $licenses[ $slug ] ?? [];
72
73 if ( ! empty( $license ) ) {
74 $license['status'] = get_option( 'advanced-ads-' . $slug . '-license-status', 'invalid' );
75 $license['expires'] = get_option( 'advanced-ads-' . $slug . '-license-expires', false );
76 }
77
78 return $license;
79 }
80
81 /**
82 * Save license
83 *
84 * @param string $slug Add-on slug.
85 * @param string $license_key License key.
86 * @param string $status License status.
87 * @param string $expires License expires.
88 *
89 * @return void
90 */
91 public static function update_license_details( $slug, $license_key, $status = 'valid', $expires = false ): void {
92 $licenses = get_option( self::OPTION_NAME, [] );
93
94 if ( 'lifetime' === $expires ) {
95 $expires = time() + YEAR_IN_SECONDS * 200;
96 }
97
98 $licenses[ $slug ] = [
99 'license' => $license_key,
100 'status' => $status,
101 'expires' => $expires,
102 ];
103
104 update_option( self::OPTION_NAME, $licenses );
105 update_option( 'advanced-ads-' . $slug . '-license-status', $status );
106 update_option( 'advanced-ads-' . $slug . '-license-expires', $expires );
107 }
108
109 /**
110 * Get license key
111 *
112 * @param string $slug Add-on slug.
113 *
114 * @return bool
115 */
116 public static function has_valid_license( $slug ): bool {
117 $license = self::get_license_details( $slug );
118
119 if ( empty( $license ) ) {
120 return false;
121 }
122
123 return 'valid' === $license['status'] && $license['expires'] > time();
124 }
125
126 /**
127 * Check if any license is valid
128 *
129 * @return bool
130 */
131 public static function has_any_valid_license(): bool {
132 foreach ( self::ADDONS_SLUGS as $add_on ) {
133 if ( self::has_valid_license( $add_on ) ) {
134 return true;
135 }
136 }
137
138 return false;
139 }
140 }
141