get_options();
if ( empty( $options['lazy-load']['enabled'] ) ) {
return;
}
add_action( 'advanced-ads-placement-options-after', [ $this, 'render_lazy_load_option' ], 10, 2 );
}
public function settings_init() {
// add new section
add_settings_field(
'module-lazy-load',
__( 'Lazy Loading', 'advanced-ads-pro' ),
[ $this, 'render_settings' ],
Advanced_Ads_Pro::OPTION_KEY . '-settings',
Advanced_Ads_Pro::OPTION_KEY . '_modules-enable'
);
}
public function render_settings() {
include dirname( __FILE__ ) . '/views/settings.php';
}
/**
* Render lazy load option.
*
* @param string $placement_slug Placement id.
* @param Placement $placement Placement instance.
*/
public function render_lazy_load_option( $placement_slug, $placement ) {
$data = $placement->get_data();
$options = Advanced_Ads_Pro::get_instance()->get_options();
$type_options = $placement->get_type_object()->get_options();
if ( ! empty( $type_options['show_lazy_load'] ) ) {
$checked = 'enabled' === $placement->get_prop( 'lazy_load' ) ? 'enabled' : 'disabled';
$cb_off = empty( $options['cache-busting']['enabled'] ) || ( isset( $data['cache-busting'] ) && Advanced_Ads_Pro_Module_Cache_Busting::OPTION_OFF === $data['cache-busting'] );
ob_start();
require dirname( __FILE__ ) . '/views/setting_lazy_load.php';
$option_content = ob_get_clean();
if ( $cb_off ) {
$cache_busting_text = sprintf(
'%1s (%3s)',
__( 'Cache Busting needs to be enabled', 'advanced-ads-pro' ),
esc_url( get_admin_url('/','admin.php?page=advanced-ads-settings#top#pro') ),
__( 'Settings', 'advanced-ads-pro' )
);
}
WordPress::render_option(
'placement-lazy-load',
__( 'Lazy Loading', 'advanced-ads-pro' ),
$option_content,
sprintf(
"%1s
%2s",
__( 'Prevent ads from getting loaded before they appear in the visitor’s visible area.', 'advanced-ads-pro' ),
$cache_busting_text ?? ''
)
);
}
}
}