100 ) {
$settings['viewability_threshold'] = intval( $viewability_threshold_default );
}
} else {
$settings['viewability_threshold'] = $viewability_threshold_default;
}
/**
* Refresh interval.
*
* Allows developers to filter the default refresh interval value of 30 seconds.
* We strongly advise developers to not filter this to a value less than 30 seconds.
* Filterable via the avc_refresh_interval_value filter hook.
*
* @since 1.0.5
* @link https://github.com/10up/Ad-Refresh-Control/issues/46
*
* @param int $refresh_interval_default The refresh interval in seconds. Defaults to 30.
*/
$refresh_interval_default = 30;
$refresh_interval_default = absint( apply_filters( 'avc_refresh_interval_value', $refresh_interval_default ) );
if ( isset( $settings['refresh_interval'] ) ) {
if ( ! is_numeric( $settings['refresh_interval'] ) || intval( $settings['refresh_interval'] ) < 30 ) {
$settings['refresh_interval'] = intval( $refresh_interval_default );
}
} else {
$settings['refresh_interval'] = $refresh_interval_default;
}
// maximum_refreshes
$maximum_refreshes_default = 10;
if ( isset( $settings['maximum_refreshes'] ) ) {
if ( ! is_numeric( $settings['maximum_refreshes'] ) || intval( $settings['maximum_refreshes'] ) < 1 ) {
$settings['maximum_refreshes'] = $maximum_refreshes_default;
}
} else {
$settings['maximum_refreshes'] = $maximum_refreshes_default;
}
// advertiser_ids
$advertiser_ids_default = [];
if ( ! empty( $settings['advertiser_ids'] ) ) {
if ( is_array( $settings['advertiser_ids'] ) ) {
$advertiser_ids = $settings['advertiser_ids'];
} else {
$advertiser_ids = explode( ',', $settings['advertiser_ids'] );
}
$advertiser_ids = array_filter(
$advertiser_ids,
function( $advertiser_id ):int {
return is_numeric( $advertiser_id );
}
);
$advertiser_ids = array_map(
function( $advertiser_id ) {
return (int) $advertiser_id;
},
$advertiser_ids
);
$settings['advertiser_ids'] = $advertiser_ids;
} else {
$settings['advertiser_ids'] = $advertiser_ids_default;
}
// Line item IDs.
$line_item_ids_default = [];
if ( ! empty( $settings['line_item_ids'] ) ) {
if ( is_array( $settings['line_item_ids'] ) ) {
$line_item_ids = $settings['line_item_ids'];
} else {
$line_item_ids = explode( ',', $settings['line_item_ids'] );
}
$line_item_ids = array_filter(
$line_item_ids,
function ( $line_item_id ):int {
return is_numeric( $line_item_id );
}
);
$line_item_ids = array_map(
function ( $line_item_id ) {
return (int) $line_item_id;
},
$line_item_ids
);
$settings['line_item_ids'] = $line_item_ids;
} else {
$settings['line_item_ids'] = $line_item_ids_default;
}
// Sizes.
$sizes_to_exclude_default = '';
if ( ! empty( $settings['sizes_to_exclude'] ) ) {
$sizes = sanitize_text_field( $settings['sizes_to_exclude'] );
$settings['sizes_to_exclude'] = $sizes;
} else {
$settings['sizes_to_exclude'] = $sizes_to_exclude_default;
}
// Slot IDs.
$slot_ids_to_exclude_default = [];
if ( ! empty( $settings['slot_ids_to_exclude'] ) ) {
if ( is_array( $settings['slot_ids_to_exclude'] ) ) {
$slot_ids_to_exclude = $settings['slot_ids_to_exclude'];
} else {
$slot_ids_to_exclude = explode( ',', $settings['slot_ids_to_exclude'] );
}
$slot_ids_to_exclude = array_filter(
$slot_ids_to_exclude,
function ( $slot_id ):int {
return is_string( $slot_id );
}
);
$slot_ids_to_exclude = array_map(
function ( $slot_id ) {
return (string) trim( $slot_id );
},
$slot_ids_to_exclude
);
$settings['slot_ids_to_exclude'] = $slot_ids_to_exclude;
} else {
$settings['slot_ids_to_exclude'] = $slot_ids_to_exclude_default;
}
return $settings;
}