PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.8.25
Advanced Ads – Ad Manager & AdSense v1.8.25
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 8 years ago ad-ajax.php 9 years ago ad-debug.php 8 years ago ad-model.php 9 years ago ad-select.php 9 years ago ad.php 8 years ago ad_ajax_callbacks.php 8 years ago ad_group.php 8 years ago ad_placements.php 8 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 8 years ago ad_type_plain.php 8 years ago checks.php 8 years ago display-conditions.php 8 years ago filesystem.php 8 years ago frontend_checks.php 8 years ago plugin.php 8 years ago upgrades.php 9 years ago utils.php 8 years ago visitor-conditions.php 8 years ago widget.php 8 years ago
ad-ajax.php
99 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 foreach ( (array) $deferedAds as $request ) {
50 $result = $this->select_one( $request );
51 $result['elementId'] = ! empty( $request['elementId'] ) ? $request['elementId'] : null;
52 $response[] = $result;
53 }
54 echo json_encode( $response );
55 die();
56 }
57
58 $response = $this->select_one( $_REQUEST );
59 echo json_encode( $response );
60 die();
61 }
62
63 /**
64 * Provides a single ad (ad, group, placement) given ID and selection method.
65 *
66 * @param $request array
67 */
68 private function select_one( $request ) {
69 // init handlers
70 $selector = Advanced_Ads_Select::get_instance();
71 $methods = $selector->get_methods();
72 $method = isset( $request['ad_method'] ) ? (string) $request['ad_method'] : null;
73 $id = isset( $request['ad_id'] ) ? (string) $request['ad_id'] : null;
74 $arguments = isset( $request['ad_args'] ) ? $request['ad_args'] : array();
75 if (is_string($arguments)) {
76 $arguments = stripslashes($arguments);
77 $arguments = json_decode($arguments, true);
78 }
79 if ( ! empty( $request['elementId'] ) ) {
80 $arguments['cache_busting_elementid'] = $request['elementId'];
81 }
82
83 $response = array();
84 if ( isset( $methods[ $method ] ) && isset( $id ) ) {
85 $advads = Advanced_Ads::get_instance();
86 $l = count( $advads->current_ads );
87
88 // build content
89 $content = $selector->get_ad_by_method( $id, $method, $arguments );
90 $adIds = array_slice( $advads->current_ads, $l ); // ads loaded by this request
91
92 return array( 'status' => 'success', 'item' => $content, 'id' => $id, 'method' => $method, 'ads' => $adIds );
93 } else {
94 // report error
95 return array( 'status' => 'error', 'message' => 'No valid ID or METHOD found.' );
96 }
97 }
98 }
99