Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/advanced.../modules/gadsense/admin
File: admin.php
<?php // phpcs:ignoreFile
[0] Fix | Delete
[1] Fix | Delete
use AdvancedAds\Entities;
[2] Fix | Delete
use AdvancedAds\Utilities\Conditional;
[3] Fix | Delete
[4] Fix | Delete
/**
[5] Fix | Delete
* Class Advanced_Ads_AdSense_Admin
[6] Fix | Delete
*/
[7] Fix | Delete
class Advanced_Ads_AdSense_Admin {
[8] Fix | Delete
[9] Fix | Delete
/**
[10] Fix | Delete
* AdSense options.
[11] Fix | Delete
*
[12] Fix | Delete
* @var Advanced_Ads_AdSense_Data
[13] Fix | Delete
*/
[14] Fix | Delete
private $data;
[15] Fix | Delete
[16] Fix | Delete
/**
[17] Fix | Delete
* Noncetodo: check if this is still used
[18] Fix | Delete
* todo: check if this is still used
[19] Fix | Delete
*
[20] Fix | Delete
* @var string $nonce
[21] Fix | Delete
*/
[22] Fix | Delete
private $nonce;
[23] Fix | Delete
[24] Fix | Delete
/**
[25] Fix | Delete
* Instance of Advanced_Ads_AdSense_Admin
[26] Fix | Delete
*
[27] Fix | Delete
* @var null
[28] Fix | Delete
*/
[29] Fix | Delete
private static $instance = null;
[30] Fix | Delete
[31] Fix | Delete
/**
[32] Fix | Delete
* Notices
[33] Fix | Delete
* todo: still used?
[34] Fix | Delete
*
[35] Fix | Delete
* @var null
[36] Fix | Delete
*/
[37] Fix | Delete
protected $notice = null;
[38] Fix | Delete
[39] Fix | Delete
/**
[40] Fix | Delete
* Settings page hook
[41] Fix | Delete
*
[42] Fix | Delete
* @var string
[43] Fix | Delete
*/
[44] Fix | Delete
private $settings_page_hook = 'advanced-ads-adsense-settings-page';
[45] Fix | Delete
[46] Fix | Delete
const ADSENSE_NEW_ACCOUNT_LINK = 'https://www.google.com/adsense/start/?utm_source=AdvancedAdsPlugIn&utm_medium=partnerships&utm_campaign=AdvancedAdsPartner1';
[47] Fix | Delete
[48] Fix | Delete
/**
[49] Fix | Delete
* Advanced_Ads_AdSense_Admin constructor.
[50] Fix | Delete
*/
[51] Fix | Delete
private function __construct() {
[52] Fix | Delete
$this->data = Advanced_Ads_AdSense_Data::get_instance();
[53] Fix | Delete
[54] Fix | Delete
add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
[55] Fix | Delete
add_action( 'admin_print_scripts', [ $this, 'print_scripts' ] );
[56] Fix | Delete
add_filter( 'advanced-ads-ad-notices', [ $this, 'ad_notices' ], 10, 3 );
[57] Fix | Delete
add_filter( 'advanced-ads-ad-settings-pre-save', [ $this, 'pre_save_post' ] );
[58] Fix | Delete
}
[59] Fix | Delete
[60] Fix | Delete
/**
[61] Fix | Delete
* Edit $_POST['advanced_ad'] before saving
[62] Fix | Delete
*
[63] Fix | Delete
* @param array $advanced_ad content of $_POST['advanced_ad'].
[64] Fix | Delete
*
[65] Fix | Delete
* @return array
[66] Fix | Delete
*/
[67] Fix | Delete
public function pre_save_post( $advanced_ad ) {
[68] Fix | Delete
if ( $advanced_ad['type'] !== 'adsense' ) {
[69] Fix | Delete
return $advanced_ad;
[70] Fix | Delete
}
[71] Fix | Delete
[72] Fix | Delete
// Remove ad size options for responsive AdSense ads.
[73] Fix | Delete
$content = json_decode( str_replace( "\n", '', wp_unslash( $advanced_ad['content'] ) ), true );
[74] Fix | Delete
if ( in_array( $content['unitType'], [
[75] Fix | Delete
'responsive',
[76] Fix | Delete
'link',
[77] Fix | Delete
'link-responsive',
[78] Fix | Delete
'matched-content',
[79] Fix | Delete
'in-article',
[80] Fix | Delete
'in-feed',
[81] Fix | Delete
], true )
[82] Fix | Delete
) {
[83] Fix | Delete
$advanced_ad['width'] = '';
[84] Fix | Delete
$advanced_ad['height'] = '';
[85] Fix | Delete
}
[86] Fix | Delete
[87] Fix | Delete
return $advanced_ad;
[88] Fix | Delete
}
[89] Fix | Delete
[90] Fix | Delete
/**
[91] Fix | Delete
* Load JavaScript needed on some pages.
[92] Fix | Delete
*/
[93] Fix | Delete
public function print_scripts() {
[94] Fix | Delete
global $pagenow, $post_type;
[95] Fix | Delete
if (
[96] Fix | Delete
( 'post-new.php' === $pagenow && Entities::POST_TYPE_AD === $post_type ) ||
[97] Fix | Delete
( 'post.php' === $pagenow && Entities::POST_TYPE_AD === $post_type && isset( $_GET['action'] ) && 'edit' === $_GET['action'] )
[98] Fix | Delete
) {
[99] Fix | Delete
$db = Advanced_Ads_AdSense_Data::get_instance();
[100] Fix | Delete
$pub_id = $db->get_adsense_id();
[101] Fix | Delete
?>
[102] Fix | Delete
<script type="text/javascript">
[103] Fix | Delete
if ( 'undefined' == typeof gadsenseData ) {
[104] Fix | Delete
window.gadsenseData = {};
[105] Fix | Delete
}
[106] Fix | Delete
// todo: check why we are using echo here.
[107] Fix | Delete
gadsenseData['pagenow'] = '<?php echo esc_attr( $pagenow ); ?>';
[108] Fix | Delete
</script>
[109] Fix | Delete
<?php
[110] Fix | Delete
}
[111] Fix | Delete
}
[112] Fix | Delete
[113] Fix | Delete
/**
[114] Fix | Delete
* Add AdSense-related scripts.
[115] Fix | Delete
*/
[116] Fix | Delete
public function enqueue_scripts() {
[117] Fix | Delete
global $gadsense_globals, $pagenow, $post_type;
[118] Fix | Delete
$screen = get_current_screen();
[119] Fix | Delete
$plugin = Advanced_Ads_Admin::get_instance();
[120] Fix | Delete
[121] Fix | Delete
if ( Conditional::is_screen_advanced_ads() ) {
[122] Fix | Delete
self::enqueue_connect_adsense();
[123] Fix | Delete
}
[124] Fix | Delete
if (
[125] Fix | Delete
( 'post-new.php' === $pagenow && Entities::POST_TYPE_AD === $post_type ) ||
[126] Fix | Delete
( 'post.php' === $pagenow && Entities::POST_TYPE_AD === $post_type && isset( $_GET['action'] ) && 'edit' === $_GET['action'] )
[127] Fix | Delete
) {
[128] Fix | Delete
$scripts = [];
[129] Fix | Delete
[130] Fix | Delete
// Allow modifications of script files to enqueue.
[131] Fix | Delete
$scripts = apply_filters( 'advanced-ads-gadsense-ad-param-script', $scripts );
[132] Fix | Delete
[133] Fix | Delete
foreach ( $scripts as $handle => $value ) {
[134] Fix | Delete
if ( empty( $handle ) ) {
[135] Fix | Delete
continue;
[136] Fix | Delete
}
[137] Fix | Delete
if ( ! empty( $handle ) && empty( $value ) ) {
[138] Fix | Delete
// Allow inclusion of WordPress's built-in script like jQuery.
[139] Fix | Delete
wp_enqueue_script( $handle );
[140] Fix | Delete
} else {
[141] Fix | Delete
if ( ! isset( $value['version'] ) ) {
[142] Fix | Delete
$value['version'] = null; }
[143] Fix | Delete
wp_enqueue_script( $handle, $value['path'], $value['dep'], $value['version'] );
[144] Fix | Delete
}
[145] Fix | Delete
}
[146] Fix | Delete
[147] Fix | Delete
$styles = [];
[148] Fix | Delete
[149] Fix | Delete
// Allow modifications of default style files to enqueue.
[150] Fix | Delete
$styles = apply_filters( 'advanced-ads-gadsense-ad-param-style', $styles );
[151] Fix | Delete
[152] Fix | Delete
foreach ( $styles as $handle => $value ) {
[153] Fix | Delete
if ( ! isset( $value['path'] ) ||
[154] Fix | Delete
! isset( $value['dep'] ) ||
[155] Fix | Delete
empty( $handle )
[156] Fix | Delete
) {
[157] Fix | Delete
continue;
[158] Fix | Delete
}
[159] Fix | Delete
if ( ! isset( $value['version'] ) ) {
[160] Fix | Delete
$value['version'] = null; }
[161] Fix | Delete
wp_enqueue_style( $handle, $value['path'], $value['dep'], $value['version'] );
[162] Fix | Delete
}
[163] Fix | Delete
}
[164] Fix | Delete
}
[165] Fix | Delete
[166] Fix | Delete
/**
[167] Fix | Delete
* Get instance of Advanced_Ads_AdSense_Admin.
[168] Fix | Delete
*
[169] Fix | Delete
* @return Advanced_Ads_AdSense_Admin|null
[170] Fix | Delete
*/
[171] Fix | Delete
public static function get_instance() {
[172] Fix | Delete
if ( null == self::$instance ) {
[173] Fix | Delete
self::$instance = new self();
[174] Fix | Delete
}
[175] Fix | Delete
return self::$instance;
[176] Fix | Delete
}
[177] Fix | Delete
[178] Fix | Delete
/**
[179] Fix | Delete
* Show AdSense ad specific notices in parameters box
[180] Fix | Delete
*
[181] Fix | Delete
* @param array $notices some notices to show in the parameters box.
[182] Fix | Delete
* @param string $box ID of the meta box.
[183] Fix | Delete
* @param WP_Post $post post object.
[184] Fix | Delete
*/
[185] Fix | Delete
public function ad_notices( $notices, $box, $post ) {
[186] Fix | Delete
[187] Fix | Delete
$ad = \Advanced_Ads\Ad_Repository::get( $post->ID );
[188] Fix | Delete
[189] Fix | Delete
// $content = json_decode( stripslashes( $ad->content ) );
[190] Fix | Delete
[191] Fix | Delete
switch ( $box['id'] ) {
[192] Fix | Delete
case 'ad-parameters-box':
[193] Fix | Delete
// Add warning if this is a responsive ad unit without custom sizes and position is set to left or right.
[194] Fix | Delete
// Hidden by default and made visible with JS.
[195] Fix | Delete
$notices[] = [
[196] Fix | Delete
'text' => sprintf(
[197] Fix | Delete
// translators: %s is a URL.
[198] Fix | Delete
__( 'Responsive AdSense ads don’t work reliably with <em>Position</em> set to left or right. Either switch the <em>Type</em> to "normal" or follow <a href="%s" target="_blank">this tutorial</a> if you want the ad to be wrapped in text.', 'advanced-ads' ),
[199] Fix | Delete
'https://wpadvancedads.com/adsense-responsive-custom-sizes/?utm_source=advanced-ads&utm_medium=link&utm_campaign=adsense-custom-sizes-tutorial'
[200] Fix | Delete
),
[201] Fix | Delete
'class' => 'advads-ad-notice-responsive-position advads-notice-inline advads-error hidden',
[202] Fix | Delete
];
[203] Fix | Delete
// Show hint about AdSense In-feed add-on.
[204] Fix | Delete
if ( ! class_exists( 'Advanced_Ads_In_Feed', false ) && ! class_exists( 'Advanced_Ads_Pro_Admin', false ) ) {
[205] Fix | Delete
$notices[] = [
[206] Fix | Delete
'text' => sprintf(
[207] Fix | Delete
// translators: %s is a URL.
[208] Fix | Delete
__( '<a href="%s" target="_blank">Install the free AdSense In-feed add-on</a> in order to place ads between posts.', 'advanced-ads' ),
[209] Fix | Delete
wp_nonce_url(
[210] Fix | Delete
self_admin_url( 'update.php?action=install-plugin&plugin=advanced-ads-adsense-in-feed' ),
[211] Fix | Delete
'install-plugin_advanced-ads-adsense-in-feed'
[212] Fix | Delete
)
[213] Fix | Delete
),
[214] Fix | Delete
'class' => 'advads-ad-notice-in-feed-add-on advads-notice-inline advads-idea hidden',
[215] Fix | Delete
];
[216] Fix | Delete
}
[217] Fix | Delete
break;
[218] Fix | Delete
}
[219] Fix | Delete
[220] Fix | Delete
return $notices;
[221] Fix | Delete
}
[222] Fix | Delete
[223] Fix | Delete
/**
[224] Fix | Delete
* Enqueue AdSense connection script.
[225] Fix | Delete
*/
[226] Fix | Delete
public static function enqueue_connect_adsense() {
[227] Fix | Delete
if ( ! wp_script_is( 'advads/connect-adsense', 'registered' ) ) {
[228] Fix | Delete
wp_enqueue_script( 'advads/connect-adsense', GADSENSE_BASE_URL . 'admin/assets/js/connect-adsense.js', [ 'jquery' ], ADVADS_VERSION );
[229] Fix | Delete
}
[230] Fix | Delete
if ( ! has_action( 'admin_footer', [ 'Advanced_Ads_AdSense_Admin', 'print_connect_adsense' ] ) ) {
[231] Fix | Delete
add_action( 'admin_footer', [ 'Advanced_Ads_AdSense_Admin', 'print_connect_adsense' ] );
[232] Fix | Delete
}
[233] Fix | Delete
}
[234] Fix | Delete
[235] Fix | Delete
/**
[236] Fix | Delete
* Prints AdSense connection markup.
[237] Fix | Delete
*/
[238] Fix | Delete
public static function print_connect_adsense() {
[239] Fix | Delete
require_once GADSENSE_BASE_PATH . 'admin/views/connect-adsense.php';
[240] Fix | Delete
}
[241] Fix | Delete
[242] Fix | Delete
/**
[243] Fix | Delete
* Get Auto Ads messages.
[244] Fix | Delete
*/
[245] Fix | Delete
public static function get_auto_ads_messages() {
[246] Fix | Delete
return [
[247] Fix | Delete
'enabled' => sprintf(
[248] Fix | Delete
// translators: %s is a URL.
[249] Fix | Delete
__( 'The AdSense verification and Auto ads code is already activated in the <a href="%s">AdSense settings</a>.', 'advanced-ads' ),
[250] Fix | Delete
admin_url( 'admin.php?page=advanced-ads-settings#top#adsense' )
[251] Fix | Delete
)
[252] Fix | Delete
. ' ' . __( 'No need to add the code manually here, unless you want to include it into certain pages only.', 'advanced-ads' ),
[253] Fix | Delete
'disabled' => sprintf(
[254] Fix | Delete
'%s <button id="adsense_enable_pla" type="button" class="button">%s</button>',
[255] Fix | Delete
sprintf(
[256] Fix | Delete
// translators: %s is a URL.
[257] Fix | Delete
__( 'The AdSense verification and Auto ads code should be set up in the <a href="%s">AdSense settings</a>. Click on the following button to enable it now.', 'advanced-ads' ),
[258] Fix | Delete
admin_url( 'admin.php?page=advanced-ads-settings#top#adsense' )
[259] Fix | Delete
),
[260] Fix | Delete
esc_attr__( 'Activate', 'advanced-ads' )
[261] Fix | Delete
),
[262] Fix | Delete
];
[263] Fix | Delete
}
[264] Fix | Delete
[265] Fix | Delete
/**
[266] Fix | Delete
* Get the ad selector markup
[267] Fix | Delete
*
[268] Fix | Delete
* @param bool $hide_idle_ads Whether to hide idle ads.
[269] Fix | Delete
*/
[270] Fix | Delete
public static function get_mapi_ad_selector( $hide_idle_ads = true ) {
[271] Fix | Delete
global $closeable, $use_dashicons, $network, $ad_units, $display_slot_id;
[272] Fix | Delete
$closeable = true;
[273] Fix | Delete
$use_dashicons = false;
[274] Fix | Delete
$network = Advanced_Ads_Network_Adsense::get_instance();
[275] Fix | Delete
$ad_units = $network->get_external_ad_units();
[276] Fix | Delete
$display_slot_id = true;
[277] Fix | Delete
$pub_id = Advanced_Ads_AdSense_Data::get_instance()->get_adsense_id();
[278] Fix | Delete
[279] Fix | Delete
require_once GADSENSE_BASE_PATH . 'admin/views/external-ads-list.php';
[280] Fix | Delete
}
[281] Fix | Delete
}
[282] Fix | Delete
[283] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function