PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.6.16
Advanced Ads – Ad Manager & AdSense v1.6.16
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 / plugin.php
advanced-ads / classes Last commit date
EDD_SL_Plugin_Updater.php 10 years ago ad-ajax.php 10 years ago ad-model.php 11 years ago ad-select.php 10 years ago ad.php 10 years ago ad_ajax_callbacks.php 10 years ago ad_group.php 10 years ago ad_placements.php 10 years ago ad_type_abstract.php 11 years ago ad_type_content.php 10 years ago ad_type_image.php 10 years ago ad_type_plain.php 10 years ago checks.php 10 years ago plugin.php 10 years ago visitor-conditions.php 10 years ago widget.php 10 years ago
plugin.php
453 lines
1 <?php
2
3 /**
4 * Wordpress integration and definitions:
5 *
6 * - posttypes
7 * - taxonomy
8 * - textdomain
9 *
10 * @since 1.5.0
11 */
12 class Advanced_Ads_Plugin {
13
14 /**
15 *
16 * @var Advanced_Ads_Plugin
17 */
18 protected static $instance;
19
20 /**
21 *
22 * @var Advanced_Ads_Model
23 */
24 protected $model;
25
26 /**
27 * plugin options
28 *
29 * @since 1.0.1
30 * @var array (if loaded)
31 */
32 protected $options;
33
34 /**
35 * interal plugin options – set by the plugin
36 *
37 * @since 1.4.5
38 * @var array (if loaded)
39 */
40 protected $internal_options;
41
42 /**
43 * default prefix of selectors (id, class) in the frontend
44 * can be changed by options
45 *
46 * @var Advanced_Ads_Plugin
47 */
48 const DEFAULT_FRONTEND_PREFIX = 'advads-';
49
50
51 private function __construct() {
52 register_activation_hook( dirname( __FILE__ ), array( $this, 'activate' ) );
53 register_deactivation_hook( dirname( __FILE__ ), array( $this, 'deactivate' ) );
54
55 add_action( 'plugins_loaded', array( $this, 'wp_plugins_loaded' ) );
56 }
57
58 /**
59 *
60 * @return Advanced_Ads_Plugin
61 */
62 public static function get_instance() {
63 // If the single instance hasn't been set, set it now.
64 if ( null === self::$instance ) {
65 self::$instance = new self;
66 }
67
68 return self::$instance;
69 }
70
71 /**
72 *
73 * @param Advanced_Ads_Model $model
74 */
75 public function set_model(Advanced_Ads_Model $model) {
76 $this->model = $model;
77 }
78
79 public function wp_plugins_loaded() {
80 // Load plugin text domain
81 $this->load_plugin_textdomain();
82
83 // activate plugin when new blog is added on multisites // -TODO this is admin-only
84 add_action( 'wpmu_new_blog', array( $this, 'activate_new_site' ) );
85
86 // Load public-facing style sheet and JavaScript.
87 add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles' ) );
88 add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
89
90 // add short codes
91 add_shortcode( 'the_ad', array( $this, 'shortcode_display_ad' ) );
92 add_shortcode( 'the_ad_group', array( $this, 'shortcode_display_ad_group' ) );
93 add_shortcode( 'the_ad_placement', array( $this, 'shortcode_display_ad_placement' ) );
94
95 // remove default ad group menu item // -TODO only for admin
96 add_action( 'admin_menu', array( $this, 'remove_taxonomy_menu_item' ) );
97 // load widgets
98 add_action( 'widgets_init', array( $this, 'widget_init' ) );
99 }
100
101 /**
102 * Register and enqueue public-facing style sheet.
103 *
104 * @since 1.0.0
105 */
106 public function enqueue_styles() {
107 // wp_enqueue_style( $this->get_plugin_slug() . '-plugin-styles', plugins_url('assets/css/public.css', __FILE__), array(), ADVADS_VERSION);
108 }
109
110 /**
111 * Return the plugin slug.
112 *
113 * @since 1.0.0
114 * @return Plugin slug variable.
115 */
116 public function get_plugin_slug() {
117 return ADVADS_SLUG;
118 }
119
120 /**
121 * Register and enqueues public-facing JavaScript files.
122 *
123 * @since 1.0.0
124 */
125 public function enqueue_scripts() {
126 // wp_enqueue_script( $this->get_plugin_slug() . '-plugin-script', plugins_url('assets/js/public.js', __FILE__), array('jquery'), ADVADS_VERSION);
127 $options = $this->options();
128 $activated_js = apply_filters( 'advanced-ads-activate-advanced-js', isset( $options['advanced-js'] ) );
129 if ( $activated_js ){
130 wp_enqueue_script( $this->get_plugin_slug() . '-advanced-js', ADVADS_BASE_URL . 'public/assets/js/advanced.js', array( 'jquery' ), ADVADS_VERSION );
131 }
132 }
133
134 public function widget_init() {
135 register_widget( 'Advanced_Ads_Widget' );
136 }
137
138 /**
139 * Fired when a new site is activated with a WPMU environment.
140 *
141 * @since 1.0.0
142 * @param int $blog_id ID of the new blog.
143 */
144 public function activate_new_site($blog_id) {
145
146 if ( 1 !== did_action( 'wpmu_new_blog' ) ) {
147 return;
148 }
149
150 switch_to_blog( $blog_id );
151 $this->single_activate();
152 restore_current_blog();
153 }
154
155 /**
156 * Fired for each blog when the plugin is activated.
157 *
158 * @since 1.0.0
159 */
160 protected function single_activate() {
161 $this->post_types_rewrite_flush();
162 // -TODO inform modules
163 }
164
165 /**
166 * Fired for each blog when the plugin is deactivated.
167 *
168 * @since 1.0.0
169 */
170 protected function single_deactivate() {
171 // -TODO inform modules
172 }
173
174 /**
175 * Load the plugin text domain for translation.
176 *
177 * @since 1.0.0
178 */
179 public function load_plugin_textdomain() {
180 // $locale = apply_filters('advanced-ads-plugin-locale', get_locale(), $domain);
181 load_plugin_textdomain( ADVADS_SLUG, false, ADVADS_BASE_DIR . '/languages' );
182 }
183
184 /**
185 * Fired when the plugin is activated.
186 *
187 * @since 1.0.0
188 * @param boolean $network_wide True if WPMU superadmin uses
189 * "Network Activate" action, false if
190 * WPMU is disabled or plugin is
191 * activated on an individual blog.
192 */
193 public function activate($network_wide) {
194
195 if ( function_exists( 'is_multisite' ) && is_multisite() ) {
196
197 if ( $network_wide ) {
198
199 // Get all blog ids
200 $blog_ids = $this->model->get_blog_ids();
201
202 foreach ( $blog_ids as $blog_id ) {
203
204 switch_to_blog( $blog_id );
205 $this->single_activate();
206 }
207
208 restore_current_blog();
209 } else {
210 $this->single_activate();
211 }
212 } else {
213 $this->single_activate();
214 }
215 }
216
217 /**
218 * Fired when the plugin is deactivated.
219 *
220 * @since 1.0.0
221 * @param boolean $network_wide
222 *
223 * True if WPMU superadmin uses
224 * "Network Deactivate" action, false if
225 * WPMU is disabled or plugin is
226 * deactivated on an individual blog.
227 */
228 public function deactivate($network_wide) {
229
230 if ( function_exists( 'is_multisite' ) && is_multisite() ) {
231
232 if ( $network_wide ) {
233
234 // Get all blog ids
235 $blog_ids = $this->model->get_blog_ids();
236
237 foreach ( $blog_ids as $blog_id ) {
238
239 switch_to_blog( $blog_id );
240 $this->single_deactivate();
241 }
242
243 restore_current_blog();
244 } else {
245 $this->single_deactivate();
246 }
247 } else {
248 $this->single_deactivate();
249 }
250 }
251
252 /**
253 * flush rewrites on plugin activation so permalinks for them work from the beginning on
254 *
255 * @since 1.0.0
256 * @link http://codex.wordpress.org/Function_Reference/register_post_type#Flushing_Rewrite_on_Activation
257 */
258 public function post_types_rewrite_flush(){
259 // load custom post type
260 Advanced_Ads::get_instance()->create_post_types();
261 // flush rewrite rules
262 flush_rewrite_rules();
263 }
264
265 /**
266 * remove WP tag edit page for the ad group taxonomy
267 * needed, because we can’t remove it with `show_ui` without also removing the meta box
268 *
269 * @since 1.0.0
270 */
271 public function remove_taxonomy_menu_item() {
272 remove_submenu_page( 'edit.php?post_type=advanced_ads', 'edit-tags.php?taxonomy=advanced_ads_groups&amp;post_type=advanced_ads' );
273 }
274
275 /**
276 * shortcode to include ad in frontend
277 *
278 * @since 1.0.0
279 * @param arr $atts
280 */
281 public function shortcode_display_ad($atts){
282 $id = isset($atts['id']) ? (int) $atts['id'] : 0;
283
284 // use the public available function here
285 return get_ad( $id );
286 }
287
288 /**
289 * shortcode to include ad from an ad group in frontend
290 *
291 * @since 1.0.0
292 * @param arr $atts
293 */
294 public function shortcode_display_ad_group($atts){
295 $id = isset($atts['id']) ? (int) $atts['id'] : 0;
296
297 // use the public available function here
298 return get_ad_group( $id );
299 }
300
301 /**
302 * shortcode to display content of an ad placement in frontend
303 *
304 * @since 1.1.0
305 * @param arr $atts
306 */
307 public function shortcode_display_ad_placement($atts){
308 $id = isset($atts['id']) ? (string) $atts['id'] : '';
309
310 // use the public available function here
311 return get_ad_placement( $id );
312 }
313
314 /**
315 * return plugin options
316 * these are the options updated by the user
317 *
318 * @since 1.0.1
319 * @return array $options
320 * @todo parse default options
321 */
322 public function options() {
323 if ( ! isset( $this->options ) ) {
324 $this->options = get_option( ADVADS_SLUG, array() );
325 }
326
327 return $this->options;
328 }
329
330 /**
331 * update plugin options (not for settings page, but if automatic options are needed)
332 *
333 * @since 1.5.1
334 * @param array $options new options
335 */
336 public function update_options( array $options ) {
337 // do not allow to clear options
338 if ( $options === array() ) {
339 return;
340 }
341
342 $this->options = $options;
343 update_option( ADVADS_SLUG, $options );
344 }
345
346 /**
347 * return internal plugin options
348 * these are options set by the plugin
349 *
350 * @since 1.0.1
351 * @return array $options
352 * @todo parse default options
353 */
354 public function internal_options() {
355 if ( ! isset( $this->internal_options ) ) {
356 $defaults = array(
357 'version' => ADVADS_VERSION,
358 'installed' => time(), // when was this installed
359 );
360 $this->internal_options = get_option( ADVADS_SLUG . '-internal', array() );
361
362 // save defaults
363 if($this->internal_options === array()){
364 $this->internal_options = $defaults;
365 $this->update_internal_options($this->internal_options);
366 }
367
368 // for versions installed prior to 1.5.3 set installed date for now
369 if( ! isset( $this->internal_options['installed'] )){
370 $this->internal_options['installed'] = time();
371 $this->update_internal_options($this->internal_options);
372 }
373 }
374
375 return $this->internal_options;
376 }
377
378 /**
379 * update internal plugin options
380 *
381 * @since 1.5.1
382 * @param array $options new internal options
383 */
384 public function update_internal_options( array $options ) {
385 // do not allow to clear options
386 if ( $options === array() ) {
387 return;
388 }
389
390 $this->internal_options = $options;
391 update_option( ADVADS_SLUG . '-internal', $options );
392 }
393
394 /**
395 * get prefix used for frontend elements
396 *
397 * @since 1.6.8.2
398 */
399 public function get_frontend_prefix(){
400 $options = $this->options();
401
402 // get previously option if new one doesn’t exist yet
403 if( !isset( $options['front-prefix'] ) ){
404 $prefix = ( isset($options['id-prefix'])) ? esc_attr( $options['id-prefix'] ) : Advanced_Ads_Plugin::DEFAULT_FRONTEND_PREFIX;
405 } else {
406 $prefix = $options['front-prefix'];
407 }
408
409 return $prefix;
410 }
411
412 /**
413 * get priority used for injection inside content
414 *
415 * @since 1.6.10.2
416 */
417 public function get_content_injection_priority(){
418 $options = $this->options();
419
420 return isset( $options['content-injection-priority'] ) ? intval( $options['content-injection-priority'] ) : 100;
421 }
422
423 /**
424 * returns the capability needed to perform an action
425 *
426 * @since 1.6.14
427 * @param str $capability a capability to check, can be internal to Advanced Ads
428 * @return str $capability a valid WordPress capability
429 */
430 public static function user_cap( $capability = 'manage_options' ){
431
432 global $advanced_ads_capabilities;
433
434 // admins can do everything
435 // is also a fallback if no option or more specific capability is given
436 if( current_user_can( 'manage_options' ) ){
437 return 'manage_options';
438 }
439
440 return apply_filters( 'advanced-ads-capability', $capability );
441
442 // check, if capability is mapped to an existing WP capability
443 /*if( isset( $advanced_ads_capabilities[ $capability ] ) ){
444 return apply_filters( 'advanced-ads-capability', $advanced_ads_capabilities[ $capability ], $capability );
445 } else {
446 // if not, use 'manage_posts' capability
447 return apply_filters( 'advanced-ads-capability', 'manage_options', $capability );
448 }*/
449
450 }
451
452 }
453