data = Advanced_Ads_AdSense_Data::get_instance();
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
add_action( 'admin_print_scripts', array( $this, 'print_scripts' ) );
add_filter( 'advanced-ads-list-ad-size', array( $this, 'ad_details_column' ), 10, 2 );
add_filter( 'advanced-ads-ad-notices', array( $this, 'ad_notices' ), 10, 3 );
}
/**
* Add content to ad details column on ad overview list.
*
* @param string $size size string.
* @param Advanced_Ads_Ad $the_ad ad object.
*
* @return string|void
*/
public function ad_details_column( $size, $the_ad ) {
if ( 'adsense' === $the_ad->type ) {
$content = json_decode( $the_ad->content );
//phpcs:ignore
if ( $content && 'responsive' === $content->unitType ) {
$size = __( 'Responsive', 'advanced-ads' ); }
}
return $size;
}
/**
* Load JavaScript needed on some pages.
*/
public function print_scripts() {
global $pagenow, $post_type;
if (
( 'post-new.php' === $pagenow && Advanced_Ads::POST_TYPE_SLUG === $post_type ) ||
( 'post.php' === $pagenow && Advanced_Ads::POST_TYPE_SLUG === $post_type && isset( $_GET['action'] ) && 'edit' === $_GET['action'] )
) {
$db = Advanced_Ads_AdSense_Data::get_instance();
$pub_id = $db->get_adsense_id();
?>
$value ) {
if ( empty( $handle ) ) {
continue;
}
if ( ! empty( $handle ) && empty( $value ) ) {
// Allow inclusion of WordPress's built-in script like jQuery.
wp_enqueue_script( $handle );
} else {
if ( ! isset( $value['version'] ) ) {
$value['version'] = null; }
wp_enqueue_script( $handle, $value['path'], $value['dep'], $value['version'] );
}
}
$styles = array();
// Allow modifications of default style files to enqueue.
$styles = apply_filters( 'advanced-ads-gadsense-ad-param-style', $styles );
foreach ( $styles as $handle => $value ) {
if ( ! isset( $value['path'] ) ||
! isset( $value['dep'] ) ||
empty( $handle )
) {
continue;
}
if ( ! isset( $value['version'] ) ) {
$value['version'] = null; }
wp_enqueue_style( $handle, $value['path'], $value['dep'], $value['version'] );
}
}
}
/**
* Get instance of Advanced_Ads_AdSense_Admin.
*
* @return Advanced_Ads_AdSense_Admin|null
*/
public static function get_instance() {
if ( null == self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Show AdSense ad specific notices in parameters box
*
* @param array $notices some notices to show in the parameters box.
* @param string $box ID of the meta box.
* @param WP_Post $post post object.
*/
public function ad_notices( $notices, $box, $post ) {
$ad = new Advanced_Ads_Ad( $post->ID );
// $content = json_decode( stripslashes( $ad->content ) );
switch ( $box['id'] ) {
case 'ad-parameters-box':
// Add warning if this is a responsive ad unit without custom sizes and position is set to left or right.
// Hidden by default and made visible with JS.
$notices[] = array(
'text' => sprintf(
// Translators: %s is a URL.
__( 'Responsive AdSense ads don’t work reliably with Position set to left or right. Either switch the Type to "normal" or follow this tutorial if you want the ad to be wrapped in text.', 'advanced-ads' ),
ADVADS_URL . 'adsense-responsive-custom-sizes/#utm_source=advanced-ads&utm_medium=link&utm_campaign=adsense-custom-sizes-tutorial'
),
'class' => 'advads-ad-notice-responsive-position advads-notice-inline advads-error hidden',
);
// Show hint about AdSense In-feed add-on.
if ( ! class_exists( 'Advanced_Ads_In_Feed', false ) ) {
$notices[] = array(
'text' => sprintf(
// Translators: %s is a URL.
__( 'Install the free AdSense In-feed add-on in order to place ads between posts.', 'advanced-ads' ),
wp_nonce_url(
self_admin_url( 'update.php?action=install-plugin&plugin=advanced-ads-adsense-in-feed' ),
'install-plugin_advanced-ads-adsense-in-feed'
)
),
'class' => 'advads-ad-notice-in-feed-add-on advads-notice-inline advads-idea hidden',
);
}
break;
}
return $notices;
}
/**
* Enqueue AdSense connection script.
*/
public static function enqueue_connect_adsense() {
if ( ! wp_script_is( 'advads/connect-adsense', 'registered' ) ) {
wp_enqueue_script( 'advads/connect-adsense', GADSENSE_BASE_URL . 'admin/assets/js/connect-adsense.js', array( 'jquery' ), ADVADS_VERSION );
}
if ( ! has_action( 'admin_footer', array( 'Advanced_Ads_AdSense_Admin', 'print_connect_adsense' ) ) ) {
add_action( 'admin_footer', array( 'Advanced_Ads_AdSense_Admin', 'print_connect_adsense' ) );
}
}
/**
* Prints AdSense connection markup.
*/
public static function print_connect_adsense() {
require_once GADSENSE_BASE_PATH . 'admin/views/connect-adsense.php';
}
/**
* Get Auto Ads messages.
*/
public static function get_auto_ads_messages() {
return array(
'enabled' => sprintf(
// Translators: %s is a URL.
__( 'The AdSense verification and Auto ads code is already activated in the AdSense settings.', 'advanced-ads' ),
admin_url( 'admin.php?page=advanced-ads-settings#top#adsense' )
)
. ' ' . __( 'No need to add the code manually here, unless you want to include it into certain pages only.', 'advanced-ads' ),
'disabled' => sprintf(
'%s ',
sprintf(
// Translators: %s is a URL.
__( 'The AdSense verification and Auto ads code should be set up in the AdSense settings. Click on the following button to enable it now.', 'advanced-ads' ),
admin_url( 'admin.php?page=advanced-ads-settings#top#adsense' )
),
esc_attr__( 'Activate', 'advanced-ads' )
),
);
}
/**
* Get the ad selector markup
*
* @param bool $hide_idle_ads Whether to hide idle ads.
*/
public static function get_mapi_ad_selector( $hide_idle_ads = true ) {
global $closeable, $use_dashicons, $network, $ad_units, $display_slot_id;
$closeable = true;
$use_dashicons = false;
$network = Advanced_Ads_Network_Adsense::get_instance();
$ad_units = $network->get_external_ad_units();
$display_slot_id = true;
$pub_id = Advanced_Ads_AdSense_Data::get_instance()->get_adsense_id();
require_once GADSENSE_BASE_PATH . 'admin/views/external-ads-list.php';
}
}