PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.8.19
Advanced Ads – Ad Manager & AdSense v1.8.19
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 / classes / filesystem.php
advanced-ads / classes Last commit date
EDD_SL_Plugin_Updater.php 8 years ago ad-ajax.php 9 years ago ad-debug.php 8 years ago ad-model.php 9 years ago ad-select.php 9 years ago ad.php 8 years ago ad_ajax_callbacks.php 8 years ago ad_group.php 8 years ago ad_placements.php 8 years ago ad_type_abstract.php 11 years ago ad_type_content.php 8 years ago ad_type_dummy.php 8 years ago ad_type_group.php 8 years ago ad_type_image.php 8 years ago ad_type_plain.php 9 years ago checks.php 9 years ago display-conditions.php 8 years ago filesystem.php 8 years ago frontend_checks.php 8 years ago plugin.php 8 years ago upgrades.php 9 years ago utils.php 9 years ago visitor-conditions.php 8 years ago widget.php 8 years ago
filesystem.php
123 lines
1 <?php
2 /**
3 * @since 1.7.17
4 */
5 class Advanced_Ads_Filesystem {
6 /**
7 * Singleton instance of the class
8 *
9 * @var Advanced_Ads_Filesystem
10 */
11 protected static $instance;
12
13 /**
14 * Return an instance of Advanced_Ads_Filesystem
15 *
16 * @return Advanced_Ads_Filesystem
17 */
18 public static function get_instance() {
19 if ( null === self::$instance ) {
20 self::$instance = new self;
21 }
22
23 return self::$instance;
24 }
25
26 private function __construct() {}
27
28 /**
29 * Connect to the filesystem.
30 *
31 * @param array $directories A list of directories. If any of these do
32 * not exist, a WP_Error object will be returned.
33 * @return bool|WP_Error True if able to connect, false or a WP_Error otherwise.
34 */
35 public function fs_connect( $directories = array() ) {
36 global $wp_filesystem;
37 $directories = ( is_array( $directories ) && count( $directories ) ) ? $directories : array( WP_CONTENT_DIR );
38
39 // This will output a credentials form in event of failure, We don't want that, so just hide with a buffer.
40 ob_start();
41 $credentials = request_filesystem_credentials( '', '', false, $directories[0] );
42 ob_end_clean();
43
44 if ( false === $credentials ) {
45 return false;
46 }
47
48 if ( ! WP_Filesystem( $credentials ) ) {
49 $error = true;
50 if ( is_object( $wp_filesystem ) && $wp_filesystem->errors->get_error_code() ) {
51 $error = $wp_filesystem->errors;
52 }
53 // Failed to connect, Error and request again.
54 ob_start();
55 request_filesystem_credentials( '', '', $error, $directories[0] );
56 ob_end_clean();
57 return false;
58 }
59
60 if ( ! is_object( $wp_filesystem) ) {
61 return new WP_Error( 'fs_unavailable', __( 'Could not access filesystem.', 'advanced-ads' ) );
62 }
63
64 if ( is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) {
65 return new WP_Error( 'fs_error', __( 'Filesystem error.', 'advanced-ads' ), $wp_filesystem->errors);
66 }
67
68 foreach ( (array) $directories as $dir ) {
69 switch ( $dir ) {
70 case ABSPATH:
71 if ( ! $wp_filesystem->abspath() )
72 return new WP_Error( 'fs_no_root_dir', __( 'Unable to locate WordPress root directory.', 'advanced-ads' ) );
73 break;
74 case WP_CONTENT_DIR:
75 if ( ! $wp_filesystem->wp_content_dir() )
76 return new WP_Error( 'fs_no_content_dir', __( 'Unable to locate WordPress content directory (wp-content).', 'advanced-ads' ) );
77 break;
78 default:
79 if ( ! $wp_filesystem->find_folder( $dir ) )
80 return new WP_Error( 'fs_no_folder', sprintf( __( 'Unable to locate needed folder (%s).', 'advanced-ads' ) , esc_html( basename( $dir ) ) ) );
81 break;
82 }
83 }
84
85 return true;
86 }
87
88 /**
89 * Replace the 'direct' absolute path with the Filesystem API path. Useful only when the 'direct' method is not used.
90 * Check https://codex.wordpress.org/Filesystem_API for info
91 *
92 * @param string existing path
93 * @return string normalized path
94 */
95 public function normalize_path( $path ) {
96 global $wp_filesystem;
97 return str_replace( ABSPATH, $wp_filesystem->abspath(), $path );
98 }
99
100 /**
101 * Print the filesystem credentials modal when needed.
102 */
103 public function print_request_filesystem_credentials_modal() {
104 $filesystem_method = get_filesystem_method();
105 ob_start();
106 $filesystem_credentials_are_stored = request_filesystem_credentials( self_admin_url() );
107 ob_end_clean();
108 $request_filesystem_credentials = ( $filesystem_method != 'direct' && ! $filesystem_credentials_are_stored );
109 if ( ! $request_filesystem_credentials ) {
110 return;
111 }
112 ?>
113 <div id="advanced-ads-rfc-dialog" class="notification-dialog-wrap request-filesystem-credentials-dialog">
114 <div class="notification-dialog-background"></div>
115 <div class="notification-dialog" role="dialog" aria-labelledby="request-filesystem-credentials-title" tabindex="0">
116 <div class="request-filesystem-credentials-dialog-content">
117 <?php request_filesystem_credentials( site_url() ); ?>
118 </div>
119 </div>
120 </div>
121 <?php
122 }
123 }