__( 'Advanced Ads – Ad', 'ads-for-visual-composer' ),
'description' => __( 'Displays an Ad', 'ads-for-visual-composer' ),
'base' => 'the_ad',
'icon' => plugins_url( 'assets/icon.png', __FILE__ ),
'category' => 'Ads',
'group' => 'Advanced Ads',
'params' => [
[
'type' => 'dropdown',
'heading' => __( 'Select an ad', 'ads-for-visual-composer' ),
'param_name' => 'id',
'description' => __( 'Display an Ad', 'ads-for-visual-composer' ),
'value' => $this->get_ads(),
'std' => '',
'admin_label' => true,
],
],
]
);
vc_map( [
'name' => __( 'Advanced Ads – Group', 'ads-for-visual-composer' ),
'description' => __( 'Displays an Ad Group', 'ads-for-visual-composer' ),
'base' => 'the_ad_group',
'icon' => plugins_url( 'assets/icon.png', __FILE__ ),
'category' => 'Ads',
'group' => 'Advanced Ads',
"params" => [
[
'type' => 'dropdown',
'heading' => __( 'Select a group', 'ads-for-visual-composer' ),
'param_name' => 'id',
'description' => __( 'Displays an Ad Group', 'ads-for-visual-composer' ),
'value' => $this->get_groups(),
'std' => '',
'admin_label' => true,
],
],
]
);
vc_map( [
'name' => __( 'Advanced Ads – Placement', 'ads-for-visual-composer' ),
'description' => __( 'Displays an Ad Placement', 'ads-for-visual-composer' ),
'base' => 'the_ad_placement',
'icon' => plugins_url( 'assets/icon.png', __FILE__ ),
'category' => 'Ads',
'group' => 'Advanced Ads',
'params' => [
[
'type' => 'dropdown',
'heading' => __( 'Select a placement', 'ads-for-visual-composer' ),
'param_name' => 'id',
'description' => __( 'Displays an Ad Placement', 'ads-for-visual-composer' ),
'value' => $this->get_placements(),
'std' => '',
'admin_label' => true,
],
],
]
);
}
/**
* Warn if WP Bakery Visual Composer plugin is missing
*/
public function show_vc_version_notice() {
$plugin_data = get_plugin_data( __FILE__ );
echo wp_kses_post(
sprintf(
'
',
sprintf(
/* translators: %s is the name of this plugin. */
__( '%s requires the WPBakery Page Builder plugin to be installed and activated on your site.', 'ads-for-visual-composer' ),
esc_html( $plugin_data['Name'] )
)
)
);
}
/**
* Check if Advanced Ads 2.0 or newer is installed.
*
* @return bool|int
*/
private function is_a2_2() {
return version_compare( ADVADS_VERSION, '2.0', '>=' );
}
/**
* Get all ads
*
* @return array
*/
private function get_ads() {
global $wpdb;
static $ads;
if ( null === $ads ) {
$ads = [ '' => '' ];
if ( $this->is_a2_2() ) {
foreach ( wp_advads_get_all_ads() as $id => $ad ) {
$ads[ $ad->get_title() ] = $id;
}
} else {
foreach ( ( new Advanced_Ads_Model( $wpdb ) )->get_ads() as $ad ) {
$ads[ $ad->post_title ] = $ad->ID;
}
}
}
return $ads;
}
/**
* Get all groups
*
* @return array
*/
private function get_groups() {
global $wpdb;
static $groups;
if ( null === $groups ) {
$groups = [ '' => '' ];
if ( $this->is_a2_2() ) {
$summaries = wp_advads_get_group_summaries();
if ( ! empty( $summaries ) ) {
$groups = wp_list_pluck( $summaries, 'id', 'title' );
}
} else {
foreach ( ( new Advanced_Ads_Model( $wpdb ) )->get_ad_groups() as $group ) {
$groups[ $group->name ] = $group->term_id;
}
}
}
return $groups;
}
/**
* Get all placements
*
* @return array
*/
private function get_placements() {
static $placements;
if ( null === $placements ) {
$placements = [ '' => '' ];
if ( $this->is_a2_2() ) {
foreach ( wp_advads_get_placements_by_types( 'default' ) as $id => $placement ) {
$placements[ $placement->get_title() ] = $placement->get_slug();
}
} else {
foreach ( get_option( 'advads-ads-placements', [] ) as $id => $placement ) {
if ( 'default' !== $placement['type'] ) {
continue;
}
$placements[ $placement['name'] ] = $id;
};
}
}
return $placements;
}
/**
* Warn if Advanced Ads is missing
*/
public function show_advads_version_notice() {
$plugin_data = get_plugin_data( __FILE__ );
$plugins = get_plugins();
if ( isset( $plugins['advanced-ads/advanced-ads.php'] ) ) { // is installed, but not active.
$link = '' . __( 'Activate Now', 'ads-for-visual-composer' ) . '';
} else {
$link = '' . __( 'Install Now', 'ads-for-visual-composer' ) . '';
}
echo wp_kses_post(
sprintf(
'',
sprintf(
/* translators: %s is the name of this plugin. */
__( '%s requires the Advanced Ads plugin to be installed and activated on your site.', 'ads-for-visual-composer' ),
$plugin_data['Name']
),
$link
)
);
}
/**
* Load translations
*
* @return void
*/
public function ads_for_visual_composer_load_plugin_textdomain() {
load_plugin_textdomain( 'ads-for-visual-composer', false, basename( dirname( __FILE__ ) ) . '/languages/' );
}
}
new Advanced_Ads_Visual_Composer();