PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.21
Advanced Ads – Ad Manager & AdSense v2.0.21
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 / admin / includes / class-plugins-screen-updates.php
advanced-ads / admin / includes Last commit date
ad-health-notices.php 1 year ago class-ad-network-ad-unit.php 4 months ago class-ad-network.php 1 year ago class-licenses.php 3 months ago class-notices.php 4 months ago class-overview-widgets.php 1 year ago class-plugins-screen-updates.php 2 months ago notices.php 4 months ago
class-plugins-screen-updates.php
139 lines
1 <?php // phpcs:ignore WordPress.Files.FileName
2 /**
3 * Manages Advanced Ads plugin updating notifications on the Plugins screen.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 */
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit;
11 }
12
13 /**
14 * Class Advanced_Ads_Plugins_Screen_Updates
15 */
16 class Advanced_Ads_Plugins_Screen_Updates {
17
18 /**
19 * The upgrade notice shown inline.
20 *
21 * @var string
22 */
23 protected $upgrade_notice = '';
24
25 /**
26 * The current version of the plugin.
27 *
28 * @var string
29 */
30 protected $current_version = '';
31
32 /**
33 * Constructor.
34 */
35 public function __construct() {
36 $this->current_version = defined( 'ADVADS_VERSION' ) ? ADVADS_VERSION : '0.0.0';
37
38 add_action( "in_plugin_update_message-advanced-ads/advanced-ads.php", array( $this, 'in_plugin_update_message' ), 20, 2 );
39 }
40
41 /**
42 * Show plugin changes on the plugins screen.
43 *
44 * @param array $args Unused parameter.
45 * @param stdClass $response Plugin update response.
46 */
47 public function in_plugin_update_message( $args, $response ) {
48 $new_version = $response->new_version;
49
50 if ( version_compare( $this->current_version, $new_version, '>=' ) ) {
51 return;
52 }
53
54 $this->upgrade_notice = $this->get_upgrade_notice( $new_version );
55
56 if ( empty( $this->upgrade_notice ) ) {
57 return;
58 }
59
60 echo '</p>';
61 ?>
62 <div id="advads-update-notice-<?php echo esc_attr( $new_version ); ?>" style="display: flex; align-items: flex-start; padding: 1em 0; margin-top: .5em; border-top: 1px solid #dba617">
63 <span class="dashicons dashicons-info" style="color: #ffba00; margin-right: 10px; flex-shrink: 0;"></span>
64 <div>
65 <strong style="display: block; margin-bottom: 4px;"><?php esc_html_e( 'Heads up!', 'advanced-ads' ); ?></strong>
66 <div style="line-height: 1.5; color: #3c434a;">
67 <?php echo wp_kses_post( $this->upgrade_notice ); ?>
68 </div>
69 </div>
70 </div>
71 <?php
72
73 echo '<p class="dummy" style="display:none;">';
74 }
75
76 /**
77 * Get the upgrade notice from WordPress.org.
78 *
79 * @param string $version The version to check.
80 * @return string
81 */
82 protected function get_upgrade_notice( $version ) {
83 $transient_name = 'advads_upgrade_notice_' . $version;
84 $upgrade_notice = get_transient( $transient_name );
85
86 if ( false === $upgrade_notice ) {
87 $response = wp_safe_remote_get( 'https://plugins.svn.wordpress.org/advanced-ads/trunk/readme.txt' );
88
89 if ( ! is_wp_error( $response ) && ! empty( $response['body'] ) ) {
90 $upgrade_notice = $this->parse_update_notice( $response['body'], $version );
91 set_transient( $transient_name, $upgrade_notice, DAY_IN_SECONDS );
92 }
93 }
94
95 return $upgrade_notice;
96 }
97
98 /**
99 * Parse update notice from readme file.
100 *
101 * @param string $content Readme file content.
102 * @param string $new_version New version.
103 * @return string
104 */
105 private function parse_update_notice( $content, $new_version ) {
106 $version_parts = explode( '.', $new_version );
107 $check_for_notices = array(
108 $version_parts[0] . '.0', // Major.
109 $version_parts[0] . '.0.0', // Major.
110 $version_parts[0] . '.' . $version_parts[1], // Minor.
111 $version_parts[0] . '.' . $version_parts[1] . '.' . $version_parts[2], // Patch.
112 );
113
114 $notice_regexp = '~==\s*Upgrade Notice\s*==\s*=\s*(.*)\s*=(.*)(?===|$)~Uis';
115 $upgrade_notice = '';
116
117 foreach ( $check_for_notices as $check_version ) {
118 if ( version_compare( $this->current_version, $check_version, '>=' ) ) {
119 continue;
120 }
121
122 $matches = null;
123 if ( preg_match( $notice_regexp, $content, $matches ) ) {
124 if ( version_compare( trim( $matches[1] ), $check_version, '=' ) ) {
125 $notices = (array) preg_split( '~[\r\n]+~', trim( $matches[2] ) );
126
127 foreach ( $notices as $line ) {
128 $upgrade_notice .= preg_replace( '~\[([^\]]*)\]\(([^\)]*)\)~', '<a href="${2}">${1}</a>', $line ) . ' ';
129 }
130
131 break;
132 }
133 }
134 }
135
136 return trim( $upgrade_notice );
137 }
138 }
139