PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.24
Advanced Ads – Ad Manager & AdSense v2.0.24
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 / includes / class-entities.php
advanced-ads / includes Last commit date
abstracts 1 day ago admin 1 week ago ads 1 week ago compatibility 1 week ago crons 1 week ago frontend 1 week ago groups 1 day ago importers 1 day ago installation 1 year ago interfaces 5 months ago license 3 months ago placements 1 week ago rest 1 day ago traits 1 week ago utilities 1 week ago cap_map.php 3 years ago class-assets-registry.php 4 weeks ago class-autoloader.php 1 week ago class-cache-invalidator.php 1 week ago class-constants.php 1 year ago class-content-injector.php 4 weeks ago class-entities.php 3 months ago class-modal.php 1 year ago class-modules.php 1 year ago class-options.php 1 year ago class-plugin.php 1 week ago class-post-data.php 10 months ago class-shortcodes.php 1 week ago class-upgrades.php 1 day ago class-widget.php 11 months ago default-hooks.php 5 months ago functions-ad.php 1 week ago functions-components.php 3 months ago functions-conditional.php 1 year ago functions-core.php 1 year ago functions-group.php 1 day ago functions-placement.php 1 week ago functions.php 1 week ago index.php 2 years ago load_modules.php 2 years ago
class-entities.php
251 lines
1 <?php
2 /**
3 * The class handles the registration of custom post types and taxonomies in the plugin.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.47.0
8 */
9
10 namespace AdvancedAds;
11
12 use AdvancedAds\Framework\Interfaces\Integration_Interface;
13
14 defined( 'ABSPATH' ) || exit;
15
16 /**
17 * Entities.
18 */
19 class Entities implements Integration_Interface {
20
21 /**
22 * Hook into WordPress.
23 *
24 * @return void
25 */
26 public function hooks(): void {
27 $this->register_ad_post_type();
28 $this->register_placement_post_type();
29 $this->register_group_taxonomy();
30 }
31
32 /**
33 * Register ad post type.
34 *
35 * @return void
36 */
37 private function register_ad_post_type(): void {
38 // Early bail!!
39 if ( post_type_exists( Constants::POST_TYPE_AD ) ) {
40 return;
41 }
42
43 $labels = [
44 'name' => __( 'Ads', 'advanced-ads' ),
45 'singular_name' => __( 'Ad', 'advanced-ads' ),
46 'add_new' => __( 'New Ad', 'advanced-ads' ),
47 'add_new_item' => __( 'Add New Ad', 'advanced-ads' ),
48 'edit' => __( 'Edit', 'advanced-ads' ),
49 'edit_item' => __( 'Edit Ad', 'advanced-ads' ),
50 'new_item' => __( 'New Ad', 'advanced-ads' ),
51 'view' => __( 'View', 'advanced-ads' ),
52 'view_item' => __( 'View the Ad', 'advanced-ads' ),
53 'search_items' => __( 'Search Ads', 'advanced-ads' ),
54 'not_found' => __( 'No Ads found', 'advanced-ads' ),
55 'not_found_in_trash' => __( 'No Ads found in Trash', 'advanced-ads' ),
56 'parent' => __( 'Parent Ad', 'advanced-ads' ),
57 ];
58
59 $supports = [ 'title', 'author' ];
60 if ( defined( 'ADVANCED_ADS_ENABLE_REVISIONS' ) ) {
61 $supports[] = 'revisions';
62 }
63
64 $args = [
65 'labels' => $labels,
66 'public' => false,
67 'show_ui' => true,
68 'show_in_rest' => true,
69 'show_in_menu' => false,
70 'hierarchical' => false,
71 'capabilities' => [
72 // Meta capabilities.
73 'edit_post' => 'advanced_ads_edit_ads',
74 'read_post' => 'advanced_ads_edit_ads',
75 'delete_post' => 'advanced_ads_edit_ads',
76 'edit_page' => 'advanced_ads_edit_ads',
77 'read_page' => 'advanced_ads_edit_ads',
78 'delete_page' => 'advanced_ads_edit_ads',
79 // Primitive capabilities used outside of map_meta_cap().
80 'edit_posts' => 'advanced_ads_edit_ads',
81 'publish_posts' => 'advanced_ads_edit_ads',
82 'read_private_posts' => 'advanced_ads_edit_ads',
83 // Primitive capabilities used within map_meta_cap().
84 'read' => 'advanced_ads_edit_ads',
85 'delete_posts' => 'advanced_ads_edit_ads',
86 'delete_private_posts' => 'advanced_ads_edit_ads',
87 'delete_published_posts' => 'advanced_ads_edit_ads',
88 'edit_private_posts' => 'advanced_ads_edit_ads',
89 'edit_published_posts' => 'advanced_ads_edit_ads',
90 'create_posts' => 'advanced_ads_edit_ads',
91 ],
92 'has_archive' => false,
93 'query_var' => false,
94 'rewrite' => false,
95 'supports' => $supports,
96 'taxonomies' => [ Constants::TAXONOMY_GROUP ],
97 ];
98
99 register_post_type(
100 Constants::POST_TYPE_AD,
101 apply_filters( 'advanced-ads-post-type-ad', $args )
102 );
103
104 register_post_status(
105 Constants::AD_STATUS_EXPIRED,
106 [
107 'label' => __( 'Expired', 'advanced-ads' ),
108 'private' => true,
109 ]
110 );
111 }
112
113 /**
114 * Register placement post type.
115 *
116 * @return void
117 */
118 private function register_placement_post_type(): void {
119 // Early bail!!
120 if ( post_type_exists( Constants::POST_TYPE_PLACEMENT ) ) {
121 return;
122 }
123
124 $labels = [
125 'name' => __( 'Ad Placements', 'advanced-ads' ),
126 'singular_name' => __( 'Ad Placement', 'advanced-ads' ),
127 'add_new' => __( 'New Placement', 'advanced-ads' ),
128 'add_new_item' => __( 'Add New Placement', 'advanced-ads' ),
129 'edit' => __( 'Edit', 'advanced-ads' ),
130 'edit_item' => __( 'Edit Placement', 'advanced-ads' ),
131 'new_item' => __( 'New Placement', 'advanced-ads' ),
132 'view' => __( 'View', 'advanced-ads' ),
133 'view_item' => __( 'View the Ad Placement', 'advanced-ads' ),
134 'search_items' => __( 'Search Placements', 'advanced-ads' ),
135 'not_found' => __( 'No Ad Placements found', 'advanced-ads' ),
136 'not_found_in_trash' => __( 'No Ad Placements found in Trash', 'advanced-ads' ),
137 ];
138
139 $args = [
140 'labels' => $labels,
141 'description' => __( 'Placements are physically places in your theme and posts. You can use them if you plan to change ads and ad groups on the same place without the need to change your templates.', 'advanced-ads' ),
142 'public' => false,
143 'show_ui' => true,
144 'show_in_rest' => true,
145 'show_in_menu' => false,
146 'hierarchical' => false,
147 'capabilities' => [
148 // Meta capabilities.
149 'edit_post' => 'advanced_ads_manage_placements',
150 'read_post' => 'advanced_ads_manage_placements',
151 'delete_post' => 'advanced_ads_manage_placements',
152 'edit_page' => 'advanced_ads_manage_placements',
153 'read_page' => 'advanced_ads_manage_placements',
154 'delete_page' => 'advanced_ads_manage_placements',
155 // Primitive capabilities used outside of map_meta_cap().
156 'edit_posts' => 'advanced_ads_manage_placements',
157 'publish_posts' => 'advanced_ads_manage_placements',
158 'read_private_posts' => 'advanced_ads_manage_placements',
159 // Primitive capabilities used within map_meta_cap().
160 'read' => 'advanced_ads_manage_placements',
161 'delete_posts' => 'advanced_ads_manage_placements',
162 'delete_private_posts' => 'advanced_ads_manage_placements',
163 'delete_published_posts' => 'advanced_ads_manage_placements',
164 'edit_private_posts' => 'advanced_ads_manage_placements',
165 'edit_published_posts' => 'advanced_ads_manage_placements',
166 'create_posts' => 'advanced_ads_manage_placements',
167 ],
168 'has_archive' => false,
169 'query_var' => false,
170 'rewrite' => false,
171 'supports' => [ 'title' ],
172 ];
173
174 register_post_type(
175 Constants::POST_TYPE_PLACEMENT,
176 apply_filters( 'advanced-ads-post-type-placement', $args )
177 );
178 }
179
180 /**
181 * Register group taxonomy.
182 *
183 * @return void
184 */
185 private function register_group_taxonomy(): void {
186 // Early bail!!
187 if ( taxonomy_exists( Constants::TAXONOMY_GROUP ) ) {
188 return;
189 }
190
191 $labels = [
192 'name' => _x( 'Ad Groups & Rotations', 'ad group general name', 'advanced-ads' ),
193 'singular_name' => _x( 'Ad Group', 'ad group singular name', 'advanced-ads' ),
194 'search_items' => __( 'Search Groups', 'advanced-ads' ),
195 'all_items' => __( 'All Ad Groups', 'advanced-ads' ),
196 'parent_item' => __( 'Parent Ad Groups', 'advanced-ads' ),
197 'parent_item_colon' => __( 'Parent Ad Groups:', 'advanced-ads' ),
198 'edit_item' => __( 'Edit Ad Group', 'advanced-ads' ),
199 'update_item' => __( 'Update Ad Group', 'advanced-ads' ),
200 'add_new_item' => __( 'New Ad Group', 'advanced-ads' ),
201 'new_item_name' => __( 'New Ad Groups Name', 'advanced-ads' ),
202 'menu_name' => __( 'Groups', 'advanced-ads' ),
203 'not_found' => __( 'No Ad Group found', 'advanced-ads' ),
204 ];
205
206 $args = [
207 'public' => false,
208 'hierarchical' => true,
209 'labels' => $labels,
210 'show_ui' => true,
211 'show_in_nav_menus' => false,
212 'show_in_rest' => true,
213 'show_in_menu' => false,
214 'show_tagcloud' => false,
215 'show_admin_column' => true,
216 'query_var' => false,
217 'rewrite' => false,
218 'capabilities' => [
219 'manage_terms' => 'advanced_ads_edit_ads',
220 'edit_terms' => 'advanced_ads_edit_ads',
221 'delete_terms' => 'advanced_ads_edit_ads',
222 'assign_terms' => 'advanced_ads_edit_ads',
223 ],
224 ];
225
226 register_taxonomy(
227 Constants::TAXONOMY_GROUP,
228 Constants::POST_TYPE_AD,
229 apply_filters( 'advanced-ads-group-taxonomy-params', $args )
230 );
231 }
232
233 /**
234 * Placement description
235 *
236 * @return string
237 */
238 public static function get_placement_description(): string {
239 return __( 'Placements are customizable ad spots on your site. Use them to see and change all the assigned ads and groups on this page. Furthermore, you can set up exclusive features like Cache Busting, Lazy Loading, AdBlocker fallbacks, or Parallax effects.', 'advanced-ads' );
240 }
241
242 /**
243 * Group description
244 *
245 * @return string
246 */
247 public static function get_group_description(): string {
248 return __( 'Ad Groups are a flexible method to bundle ads. Use them to create ad rotations, run split tests, and organize your ads in the backend. An ad can belong to multiple ad groups.', 'advanced-ads' );
249 }
250 }
251