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