PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.25
Advanced Ads – Ad Manager & AdSense v2.0.25
2.0.25 2.0.24 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 / upgrades / upgrade-2.0.0.php
advanced-ads / upgrades Last commit date
index.php 1 year ago upgrade-1.48.4.php 1 year ago upgrade-1.48.5.php 1 year ago upgrade-1.52.1.php 5 days ago upgrade-2.0.0.php 1 year ago upgrade-2.0.8.php 1 week ago upgrade-2.0.9.php 5 days ago upgrade-2.1.0.php 2 days ago
upgrade-2.0.0.php
135 lines
1 <?php
2 /**
3 * Update routine
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 2.0.0
8 */
9
10 use AdvancedAds\Constants;
11
12 /**
13 * Check for existing placements in posts.
14 *
15 * @param array $slugs Slugs to check.
16 *
17 * @return array
18 */
19 function advads_get_existing_placement_posts( $slugs ): array {
20 global $wpdb;
21
22 foreach ( $slugs as &$slug ) {
23 $slug = sanitize_title_for_query( $slug );
24 $slug = str_replace( '_', '-', $slug );
25 $slug = esc_sql( $slug );
26 }
27
28 $in_string = "'" . implode( "','", $slugs ) . "'";
29
30 // phpcs:disable
31 $posts = $wpdb->get_results(
32 $wpdb->prepare(
33 "
34 SELECT ID, post_name
35 FROM $wpdb->posts
36 WHERE post_name IN ($in_string)
37 AND post_type = %s
38 ",
39 Constants::POST_TYPE_PLACEMENT
40 )
41 );
42 // phpcs:enable
43
44 return empty( $posts ) ? [] : wp_list_pluck( $posts, 'ID', 'post_name' );
45 }
46
47 /**
48 * Save a placement as post.
49 *
50 * @param array $data Placement data array.
51 *
52 * @return int|WP_Error
53 */
54 function advads_save_new_placement( $data ) {
55 // Normalize options.
56 $options = $data['options'] ?? [];
57 $display_conditions = $options['placement_conditions']['display'] ?? [];
58 $visitor_conditions = $options['placement_conditions']['visitors'] ?? [];
59 unset( $options['placement_conditions'] );
60
61 // Find placement type.
62 $placement_type = empty( $data['type'] ) ? 'default' : $data['type'];
63 if ( ! wp_advads_has_placement_type( $placement_type ) ) {
64 wp_advads_create_placement_type( $placement_type );
65 }
66
67 $placement = wp_advads_create_new_placement( $placement_type );
68 $placement->set_type( $data['type'] );
69 $placement->set_item( $data['item'] );
70 $placement->set_slug( $data['slug'] );
71 $placement->set_title( $data['name'] );
72 $placement->set_status( 'publish' );
73 $placement->set_display_conditions( $display_conditions );
74 $placement->set_visitor_conditions( $visitor_conditions );
75 $placement->set_props( $options );
76
77 $placement->save();
78
79 return $placement->get_id();
80 }
81
82 /**
83 * Backup old Placements
84 *
85 * @param array $placements Placements.
86 *
87 * @return void
88 */
89 function advads_upgrade_2_0_0_make_backup( $placements ): void {
90 $backup_key = 'advads-ads-placements_backup';
91
92 if ( false !== get_option( $backup_key ) ) {
93 return;
94 }
95
96 update_option( $backup_key, $placements );
97 }
98
99 /**
100 * Migrate placements from options to custom post type.
101 *
102 * @since 2.0.0
103 *
104 * @return void
105 */
106 function advads_upgrade_2_0_0_placement_migration(): void {
107 $option_key = 'advads-ads-placements';
108 $placements = get_option( $option_key, [] );
109
110 // Early bail!!
111 if ( ! is_array( $placements ) || empty( $placements ) ) {
112 return;
113 }
114
115 advads_upgrade_2_0_0_make_backup( $placements );
116 $existing_posts = advads_get_existing_placement_posts( array_keys( $placements ) );
117
118 foreach ( $placements as $slug => $placement ) {
119 if ( ! is_array( $placement ) || array_key_exists( $slug, $existing_posts ) ) {
120 continue;
121 }
122
123 $post_id = advads_save_new_placement( array_merge( $placement, [ 'slug' => $slug ] ) );
124 if ( 0 === $post_id ) {
125 continue;
126 }
127
128 unset( $placements[ $slug ] );
129 }
130
131 update_option( $option_key, $placements );
132 }
133
134 advads_upgrade_2_0_0_placement_migration();
135