PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.47.3
Advanced Ads – Ad Manager & AdSense v1.47.3
2.0.26 2.0.25 2.0.24 2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.42.1 1.42.2 1.43.0 1.44.0 1.44.1 1.45.0 1.45.1 1.46.0 1.47.0 1.47.1 1.47.2 1.47.3 1.47.4 1.47.5 1.48.0 1.48.1 1.49.0 1.5.0 1.5.0.1 1.5.1 1.5.2 1.5.2.1 1.5.4 1.5.4.1 1.5.5 1.50.0 1.51.0 1.51.1 1.51.2 1.51.3 1.52.0 1.52.1 1.52.2 1.52.3 1.52.4 1.53.0 1.53.1 1.53.2 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.56.2 1.56.3 1.56.4 1.6 1.6.1 1.6.10 1.6.10.1 1.6.10.2 1.6.11 1.6.11.1 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.17.1 1.6.17.2 1.6.2 1.6.2.1 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.6 1.6.6.1 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.6.8.3 1.6.9 1.6.9.1 1.6.9.2 1.6.9.3 1.6.9.4 1.7 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.1.1 1.7.1.2 1.7.1.3 1.7.1.4 1.7.1.5 1.7.10 trunk 1.7.11 1.0.1 1.7.12 1.0.2 1.7.13 1.0.3 1.7.14 1.1.0 1.7.15 1.1.1 1.7.16 1.1.2 1.7.17 1.1.3 1.7.18 1.10 1.7.19 1.10.1 1.7.2 1.10.10 1.7.2.1 1.10.11 1.7.20 1.10.12 1.7.21 1.10.2 1.7.22 1.10.3 1.7.23 1.10.4 1.7.24 1.10.5 1.7.25 1.10.6 1.7.3 1.10.7 1.7.4 1.10.8 1.7.4.1 1.10.9 1.7.4.2 1.11 1.7.4.3 1.11.1 1.7.4.4 1.11.2 1.7.4.5 1.12 1.7.5 1.13 1.7.5.1 1.13.1 1.7.6 1.13.2 1.7.7 1.13.3 1.7.8 1.13.4 1.7.9 1.13.5 1.7.9.1 1.13.6 1.7.9.2 1.13.7 1.7.9.3 1.13.8 1.8 1.14 1.8.1 1.14.1 1.8.10 1.14.10 1.8.11 1.14.11 1.8.12 1.14.2 1.8.13 1.14.3 1.8.14 1.14.4 1.8.15 1.14.5 1.8.16 1.14.6 1.8.17 1.14.7 1.8.18 1.14.8 1.8.19 1.14.9 1.8.2 1.15 1.8.20 1.16 1.8.21 1.16.1 1.8.22 1.17 1.8.23 1.17.1 1.8.24 1.17.10 1.8.25 1.17.10-rc.1 1.8.26 1.17.11 1.8.27 1.17.12 1.8.28 1.17.12-rc.1 1.8.29 1.17.2 1.8.3 1.17.3 1.8.30 1.17.4 1.8.4 1.17.5 1.8.5 1.17.6 1.8.6 1.17.7 1.8.7 1.17.8 1.8.8 1.17.9 1.8.9 1.17.9-beta.1 1.9 1.18.0 2.0.0 1.19.0 2.0.1 1.19.1 2.0.10 1.2 2.0.11 1.2.1 2.0.12 1.2.2 2.0.13 1.2.3 2.0.14 1.2.4 2.0.15 1.2.5 2.0.16 1.2.6 2.0.17 1.2.7 2.0.18 1.20.0 2.0.19 1.20.0-rc.1 2.0.2 1.20.0-rc.2 2.0.20 1.20.1 2.0.3 1.20.2 2.0.4 1.20.3 2.0.5 1.21.0 2.0.6 1.21.1 2.0.7 1.22.0 2.0.8 1.22.1 2.0.9 1.22.2 1.23.0 1.23.1 1.23.2 1.24.0 1.24.1 1.24.2 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.29.0 1.29.1 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.30.0 1.30.1 1.30.2 1.30.2-rc.1 1.30.3 1.30.4 1.30.4-rc.1 1.30.5 1.31.0 1.31.1 1.32.0 1.32.0-rc.1 1.33.0 1.33.1 1.33.2 1.34.0 1.35.0 1.35.1 1.36.0 1.36.1 1.36.2 1.36.3 1.37.0 1.37.1 1.37.2
advanced-ads / classes / ad_type_group.php
advanced-ads / classes Last commit date
Advanced_Ads_Modal.php 2 years ago EDD_SL_Plugin_Updater.php 4 years ago ad-ajax.php 2 years ago ad-debug.php 2 years ago ad-expiration.php 3 years ago ad-health-notices.php 2 years ago ad-model.php 2 years ago ad-select.php 3 years ago ad.php 2 years ago ad_ajax_callbacks.php 2 years ago ad_group.php 2 years ago ad_placements.php 2 years ago ad_type_abstract.php 2 years ago ad_type_content.php 2 years ago ad_type_dummy.php 3 years ago ad_type_group.php 2 years ago ad_type_image.php 2 years ago ad_type_plain.php 2 years ago checks.php 2 years ago class-translation-promo.php 3 years ago compatibility.php 2 years ago display-conditions.php 2 years ago filesystem.php 3 years ago frontend_checks.php 2 years ago in-content-injector.php 2 years ago inline-css.php 2 years ago plugin.php 2 years ago upgrades.php 2 years ago utils.php 3 years ago visitor-conditions.php 2 years ago widget.php 2 years ago
ad_type_group.php
117 lines
1 <?php
2
3 use AdvancedAds\Entities;
4
5 /**
6 * Advanced Ads Plain Ad Type
7 *
8 * @package Advanced_Ads
9 * @author Thomas Maier <support@wpadvancedads.com>
10 * @license GPL-2.0+
11 * @link https://wpadvancedads.com
12 * @copyright 2014-2016 Thomas Maier, Advanced Ads GmbH
13 *
14 * Class containing information about the plain text/code ad type
15 *
16 * see ad-type-content.php for a better sample on ad type
17 *
18 * @since 1.7.1.1
19 *
20 */
21 class Advanced_Ads_Ad_Type_Group extends Advanced_Ads_Ad_Type_Abstract{
22
23 /**
24 * ID - internal type of the ad type
25 *
26 */
27 public $ID = 'group';
28
29 /**
30 * Set basic attributes
31 */
32 public function __construct() {
33 $this->title = __( 'Ad Group', 'advanced-ads' );
34 $this->description = __( 'Choose an existing ad group. Use this type when you want to assign the same display and visitor conditions to all ads in that group.', 'advanced-ads' );
35 $this->parameters = [
36 'group_id' => 0
37 ];
38
39 // on save, remove the group in which the ad is itself to prevent infinite loops
40 add_action( 'save_post_advanced_ads', [$this, 'remove_from_ad_group'], 1 );
41 }
42
43 /**
44 * When saving the ad, remove it from the ad group, if this is the group assigned as ad content
45 * see also: /admin/includes/class-ad-groups-list.php::update_groups()
46 *
47 * @param integer $post_id ID of the post.
48 */
49 public function remove_from_ad_group( $post_id ){
50
51 // phpcs:disable WordPress.Security.NonceVerification.Missing -- nonce is verified before calling the hook
52 if( ! isset( $_POST['post_type'] ) || $_POST['post_type'] !== Entities::POST_TYPE_AD ){
53 return;
54 }
55
56 if( isset( $_POST[ 'advanced_ad' ]['output']['group_id'] ) ){
57 $group_id = (int) $_POST['advanced_ad']['output']['group_id'];
58 if( isset( $_POST['tax_input']['advanced_ads_groups'] ) ){
59 if(( $key = array_search( $group_id, $_POST['tax_input']['advanced_ads_groups'])) !== false ) {
60 $res = wp_remove_object_terms( $post_id, $group_id, Entities::TAXONOMY_AD_GROUP );
61 unset( $_POST['tax_input']['advanced_ads_groups'][$key] );
62 }
63 }
64 }
65 // phpcs:enable
66 }
67
68
69 /**
70 * Output for the ad parameters metabox
71 *
72 * this will be loaded using ajax when changing the ad type radio buttons
73 * echo the output right away here
74 * name parameters must be in the "advanced_ads" array
75 *
76 * @param obj $ad ad object
77 */
78 public function render_parameters($ad){
79
80 $group_id = ( isset( $ad->output['group_id'] ) ) ? $ad->output['group_id'] : '';
81
82 $select = [];
83 $model = Advanced_Ads::get_instance()->get_model();
84
85 // load all ad groups
86 $groups = $model->get_ad_groups();
87
88 if( ! is_array( $groups ) || ! count( $groups ) ){
89 return;
90 }
91
92 ?><label for="advads-group-id" class="label"><?php _e('ad group', 'advanced-ads'); ?></label><div><select name="advanced_ad[output][group_id]" id="advads-group-id"><?php
93
94 foreach ( $groups as $_group ) {
95 ?><option value="<?php echo $_group->term_id; ?>" <?php selected( $_group->term_id, $group_id ); ?>><?php echo $_group->name; ?></option><?php
96 }
97
98 ?></select></div><hr/><?php
99
100 }
101
102 /**
103 * Prepare the ads frontend output
104 *
105 * @param obj $ad ad object
106 * @return str $content ad content prepared for frontend output
107 */
108 public function prepare_output($ad){
109 $group_id = ( isset( $ad->output['group_id'] ) ) ? absint( $ad->output['group_id'] ) : 0;
110
111 if( $group_id ){
112 return get_ad_group( $group_id, $ad->args );
113 }
114 }
115
116 }
117