PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.10.7
Advanced Ads – Ad Manager & AdSense v1.10.7
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-ajax.php
advanced-ads / classes Last commit date
EDD_SL_Plugin_Updater.php 7 years ago ad-ajax.php 8 years ago ad-debug.php 8 years ago ad-model.php 8 years ago ad-select.php 9 years ago ad.php 7 years ago ad_ajax_callbacks.php 7 years ago ad_group.php 7 years ago ad_placements.php 7 years ago ad_type_abstract.php 8 years ago ad_type_content.php 8 years ago ad_type_dummy.php 8 years ago ad_type_group.php 8 years ago ad_type_image.php 7 years ago ad_type_plain.php 8 years ago checks.php 7 years ago compatibility.php 7 years ago display-conditions.php 7 years ago filesystem.php 8 years ago frontend_checks.php 7 years ago plugin.php 7 years ago upgrades.php 9 years ago utils.php 7 years ago visitor-conditions.php 7 years ago widget.php 7 years ago
ad-ajax.php
111 lines
1 <?php
2
3 /**
4 * Provide public ajax interface.
5 *
6 * @since 1.5.0
7 */
8 class Advanced_Ads_Ajax {
9
10 private function __construct()
11 {
12 add_action( 'wp_ajax_advads_ad_select', array( $this, 'advads_ajax_ad_select' ) );
13 add_action( 'wp_ajax_nopriv_advads_ad_select', array( $this, 'advads_ajax_ad_select' ) );
14 }
15
16 private static $instance;
17
18 public static function get_instance()
19 {
20 if ( ! isset(self::$instance) ) {
21 self::$instance = new self;
22 }
23
24 return self::$instance;
25 }
26
27 /**
28 * Simple wp ajax interface for ad selection.
29 */
30 public function advads_ajax_ad_select() {
31 // set proper header
32 header( 'Content-Type: application/json; charset: utf-8' );
33
34 // allow modules / add ons to test (this is rather late but should happen before anything important is called)
35 do_action( 'advanced-ads-ajax-ad-select-init' );
36
37 $adIds = isset( $_REQUEST['ad_ids'] ) ? $_REQUEST['ad_ids'] : null;
38 if ( is_string( $adIds ) ) {
39 $adIds = json_decode( $adIds, true );
40 }
41 if (is_array($adIds)) { // ads loaded previously and passed by query
42 Advanced_Ads::get_instance()->current_ads += $adIds;
43 }
44
45 $deferedAds = isset( $_REQUEST['deferedAds'] ) ? $_REQUEST['deferedAds'] : null;
46 if ( $deferedAds ) { // load all ajax ads with a single request
47 $response = array();
48
49 $requests_by_blog = array();
50 foreach ( (array) $deferedAds as $request ) {
51 $blog_id = isset( $request['blog_id'] ) ? $request['blog_id'] : get_current_blog_id();
52 $requests_by_blog[ $blog_id ][] = $request;
53 }
54 foreach ( $requests_by_blog as $blog_id => $requests ) {
55 if ( $blog_id !== get_current_blog_id() ) { Advanced_Ads::get_instance()->switch_to_blog( $blog_id ); }
56
57 foreach ( $requests as $request ) {
58 $result = $this->select_one( $request );
59 $result['elementId'] = ! empty( $request['elementId'] ) ? $request['elementId'] : null;
60 $response[] = $result;
61 }
62
63 if ( $blog_id !== get_current_blog_id() ) { Advanced_Ads::get_instance()->restore_current_blog(); }
64 }
65
66 echo json_encode( $response );
67 die();
68 }
69
70 $response = $this->select_one( $_REQUEST );
71 echo json_encode( $response );
72 die();
73 }
74
75 /**
76 * Provides a single ad (ad, group, placement) given ID and selection method.
77 *
78 * @param $request array
79 */
80 private function select_one( $request ) {
81 // init handlers
82 $selector = Advanced_Ads_Select::get_instance();
83 $methods = $selector->get_methods();
84 $method = isset( $request['ad_method'] ) ? (string) $request['ad_method'] : null;
85 $id = isset( $request['ad_id'] ) ? (string) $request['ad_id'] : null;
86 $arguments = isset( $request['ad_args'] ) ? $request['ad_args'] : array();
87 if (is_string($arguments)) {
88 $arguments = stripslashes($arguments);
89 $arguments = json_decode($arguments, true);
90 }
91 if ( ! empty( $request['elementId'] ) ) {
92 $arguments['cache_busting_elementid'] = $request['elementId'];
93 }
94
95 $response = array();
96 if ( isset( $methods[ $method ] ) && isset( $id ) ) {
97 $advads = Advanced_Ads::get_instance();
98 $l = count( $advads->current_ads );
99
100 // build content
101 $content = $selector->get_ad_by_method( $id, $method, $arguments );
102 $adIds = array_slice( $advads->current_ads, $l ); // ads loaded by this request
103
104 return array( 'status' => 'success', 'item' => $content, 'id' => $id, 'method' => $method, 'ads' => $adIds, 'blog_id' => get_current_blog_id() );
105 } else {
106 // report error
107 return array( 'status' => 'error', 'message' => 'No valid ID or METHOD found.' );
108 }
109 }
110 }
111