PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.56.0
Advanced Ads – Ad Manager & AdSense v1.56.0
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-model.php
advanced-ads / classes Last commit date
Advanced_Ads_Modal.php 2 years ago EDD_SL_Plugin_Updater.php 2 years ago ad-ajax.php 2 years ago ad-debug.php 1 year 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 1 year 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 2 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 2 years ago compatibility.php 2 years ago display-conditions.php 2 years ago filesystem.php 2 years ago frontend_checks.php 1 year ago in-content-injector.php 1 year ago inline-css.php 2 years ago plugin.php 1 year ago upgrades.php 1 year ago utils.php 3 years ago visitor-conditions.php 2 years ago widget.php 2 years ago
ad-model.php
165 lines
1 <?php
2
3 use AdvancedAds\Entities;
4
5 /**
6 * Advanced Ads Model
7 */
8 class Advanced_Ads_Model {
9
10 /**
11 * Cache group for WP Object Cache
12 *
13 * @var string
14 */
15 const OBJECT_CACHE_GROUP = 'advanced-ads';
16
17 /**
18 * Default time-to-live for WP Object Cache
19 *
20 * @var string
21 */
22 const OBJECT_CACHE_TTL = 720; // 12 Minutes
23
24 /**
25 * WordPress database object.
26 *
27 * @var wpdb
28 */
29 protected $db;
30
31 /**
32 * General ad conditions.
33 *
34 * @var array
35 */
36 protected $ad_conditions;
37
38 /**
39 * Placements
40 *
41 * @var array
42 */
43 protected $ad_placements;
44
45 /**
46 * Advanced_Ads_Model constructor.
47 *
48 * @param wpdb $wpdb WordPress database access.
49 */
50 public function __construct( wpdb $wpdb ) {
51 $this->db = $wpdb;
52 }
53
54 /**
55 * Load ad conditions.
56 *
57 * @return array
58 */
59 public function get_ad_conditions() {
60 if ( ! isset( self::$ad_conditions ) ) {
61 $this->ad_conditions = include ADVADS_ABSPATH . 'includes/array_ad_conditions.php';
62 }
63
64 return $this->ad_conditions;
65 }
66
67 /**
68 * Get all blog ids of blogs in the current network that are:
69 * - not archived
70 * - not spam
71 * - not deleted
72 *
73 * @since 1.0.0
74 * @return array|false The blog ids, false if no matches.
75 */
76 public function get_blog_ids() {
77 // get an array of blog ids.
78 $sql = "SELECT blog_id FROM $this->db->blogs WHERE archived = '0' AND spam = '0' AND deleted = '0'";
79
80 return $this->db->get_col( $sql );
81 }
82
83 /**
84 * Load all ads based on WP_Query conditions
85 *
86 * @since 1.1.0
87 * @param array $args WP_Query arguments that are more specific that default.
88 * @return array $ads array with post objects.
89 */
90 public function get_ads( $args = [] ) {
91 $args = wp_parse_args( $args, [
92 'posts_per_page' => -1,
93 'post_status' => [ 'publish', 'future' ],
94 ] );
95 // add default WP_Query arguments.
96 $args['post_type'] = Entities::POST_TYPE_AD;
97
98 return ( new WP_Query( $args ) )->posts;
99 }
100
101 /**
102 * Load all ad groups
103 *
104 * @param iterable $args array with options.
105 *
106 * @return Advanced_Ads_Group[] array with ad groups
107 * @since 1.1.0
108 * @link http://codex.wordpress.org/Function_Reference/get_terms
109 */
110 public function get_ad_groups( iterable $args = [] ) {
111 $args['hide_empty'] = $args['hide_empty'] ?? false;
112 unset( $args['fields'] );
113
114 return array_map(
115 static function( WP_Term $term ) {
116 return \Advanced_Ads\Group_Repository::get( $term );
117 },
118 get_terms( Entities::TAXONOMY_AD_GROUP, $args )
119 );
120 }
121
122 /**
123 * Get the array with ad placements
124 *
125 * @since 1.1.0
126 * @return array $ad_placements
127 */
128 public function get_ad_placements_array() {
129
130 if ( ! isset( $this->ad_placements ) ) {
131 $this->ad_placements = get_option( 'advads-ads-placements', [] );
132
133 // load default array if not saved yet.
134 if ( ! is_array( $this->ad_placements ) ) {
135 $this->ad_placements = [];
136 }
137
138 $this->ad_placements = apply_filters( 'advanced-ads-get-ad-placements-array', $this->ad_placements );
139 }
140
141 return $this->ad_placements;
142 }
143
144 /**
145 * Reset placement array.
146 */
147 public function reset_placement_array() {
148 $this->ad_placements = null;
149 }
150
151 /**
152 * Update the array with ad placements
153 *
154 * @param array $ad_placements array with placements.
155 */
156 public function update_ad_placements_array( $ad_placements ) {
157 $ad_placements = Advanced_Ads_Placements::sort( $ad_placements, 'type' );
158 update_option( 'advads-ads-placements', $ad_placements );
159 $this->ad_placements = $ad_placements;
160 }
161
162
163
164 }
165