Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/elementor/includes/beta-testers.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
<?php
2
+
namespace Elementor;
3
+
4
+
if ( ! defined( 'ABSPATH' ) ) {
5
+
exit; // Exit if accessed directly.
6
+
}
7
+
8
+
/**
9
+
* Elementor beta testers.
10
+
*
11
+
* Elementor beta testers handler class is responsible for the Beta Testers
12
+
* feature that allows developers to test Elementor beta versions.
13
+
*
14
+
* @since 1.5.0
15
+
*/
16
+
class Beta_Testers {
17
+
18
+
const NEWSLETTER_TERMS_URL = 'https://go.elementor.com/beta-testers-newsletter-terms';
19
+
20
+
const NEWSLETTER_PRIVACY_URL = 'https://go.elementor.com/beta-testers-newsletter-privacy';
21
+
22
+
const BETA_TESTER_SIGNUP = 'beta_tester_signup';
23
+
24
+
/**
25
+
* Transient key.
26
+
*
27
+
* Holds the Elementor beta testers transient key.
28
+
*
29
+
* @since 1.5.0
30
+
* @access private
31
+
* @static
32
+
*
33
+
* @var string Transient key.
34
+
*/
35
+
private $transient_key;
36
+
37
+
/**
38
+
* Get beta version.
39
+
*
40
+
* Retrieve Elementor beta version from wp.org plugin repository.
41
+
*
42
+
* @since 1.5.0
43
+
* @access private
44
+
*
45
+
* @return string|false Beta version or false.
46
+
*/
47
+
private function get_beta_version() {
48
+
$beta_version = get_site_transient( $this->transient_key );
49
+
50
+
if ( false === $beta_version ) {
51
+
$beta_version = 'false';
52
+
53
+
$response = wp_remote_get( 'https://plugins.svn.wordpress.org/elementor/trunk/readme.txt' );
54
+
55
+
if ( ! is_wp_error( $response ) && ! empty( $response['body'] ) ) {
56
+
preg_match( '/Beta tag: (.*)/i', $response['body'], $matches );
57
+
if ( isset( $matches[1] ) ) {
58
+
$beta_version = $matches[1];
59
+
}
60
+
}
61
+
62
+
set_site_transient( $this->transient_key, $beta_version, 6 * HOUR_IN_SECONDS );
63
+
}
64
+
65
+
return $beta_version;
66
+
}
67
+
68
+
/**
69
+
* Check version.
70
+
*
71
+
* Checks whether a beta version exist, and retrieve the version data.
72
+
*
73
+
* Fired by `pre_set_site_transient_update_plugins` filter, before WordPress
74
+
* runs the plugin update checker.
75
+
*
76
+
* @since 1.5.0
77
+
* @access public
78
+
*
79
+
* @param array $transient Plugin version data.
80
+
*
81
+
* @return array Plugin version data.
82
+
*/
83
+
public function check_version( $transient ) {
84
+
if ( empty( $transient->checked ) ) {
85
+
return $transient;
86
+
}
87
+
88
+
delete_site_transient( $this->transient_key );
89
+
90
+
$plugin_slug = basename( ELEMENTOR__FILE__, '.php' );
91
+
92
+
$beta_version = $this->get_beta_version();
93
+
if ( 'false' !== $beta_version && version_compare( $beta_version, ELEMENTOR_VERSION, '>' ) ) {
94
+
$response = new \stdClass();
95
+
$response->plugin = $plugin_slug;
96
+
$response->slug = $plugin_slug;
97
+
$response->new_version = $beta_version;
98
+
$response->url = 'https://elementor.com/';
99
+
$response->package = sprintf( 'https://downloads.wordpress.org/plugin/elementor.%s.zip', $beta_version );
100
+
101
+
$transient->response[ ELEMENTOR_PLUGIN_BASE ] = $response;
102
+
}
103
+
104
+
return $transient;
105
+
}
106
+
107
+
/**
108
+
* Beta testers constructor.
109
+
*
110
+
* Initializing Elementor beta testers.
111
+
*
112
+
* @since 1.5.0
113
+
* @access public
114
+
*/
115
+
public function __construct() {
116
+
if ( 'yes' !== get_option( 'elementor_beta', 'no' ) ) {
117
+
return;
118
+
}
119
+
120
+
$this->transient_key = md5( 'elementor_beta_testers_response_key' );
121
+
122
+
add_filter( 'pre_set_site_transient_update_plugins', [ $this, 'check_version' ] );
123
+
}
124
+
}
125
+