PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.7
Independent Analytics – WordPress Analytics Plugin v1.7
2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / inc / super_secret_content_generator.php
independent-analytics / inc Last commit date
models 4 years ago queries 4 years ago utils 4 years ago chart.php 4 years ago db.php 4 years ago delete_data_ajax.php 4 years ago filters.php 4 years ago filters_ajax.php 4 years ago rest_api.php 4 years ago settings.php 4 years ago settings_ajax.php 4 years ago super_secret_content_generator.php 4 years ago table.php 4 years ago table_referrers.php 4 years ago table_views.php 4 years ago track_resource_changes.php 4 years ago
super_secret_content_generator.php
224 lines
1 <?php
2
3 namespace IAWP;
4
5 class Super_Secret_Content_Generator
6 {
7 public function __construct()
8 {
9 add_action('admin_init', [$this, 'admin_init']);
10 add_action('init', [$this, 'init']);
11 }
12
13 public function generate_views()
14 {
15 $potential_referrers = ['https://google.com', 'https://facebook.com', 'https://stackoverflow.com', null];
16 $potential_page_types = ['singular', 'author_archive', 'date_archive', 'post_type_archive', 'term_archive', 'search', 'home', '404'];
17 $now = (new \DateTime())->getTimestamp();
18 $month_ago = (new \DateTime('-1 month'))->getTimestamp();
19 $two_years_ago = (new \DateTime('-2 years'))->getTimestamp();
20
21 foreach (range(1, 200) as $i) {
22 $random_referrer = $potential_referrers[array_rand($potential_referrers)];
23 $random_page_type = $potential_page_types[array_rand($potential_page_types)];
24 $random_date = date('Y-m-d H:i:s', mt_rand($two_years_ago, $month_ago));
25 $random_page = mt_rand(1, 3);
26 $method_name = 'generate_' . $random_page_type;
27 $this->$method_name($random_page_type, $random_date, $random_page, $random_referrer);
28 }
29
30 foreach (range(1, 50) as $i) {
31 $random_referrer = $potential_referrers[array_rand($potential_referrers)];
32 $random_page_type = $potential_page_types[array_rand($potential_page_types)];
33 $random_date = date('Y-m-d H:i:s', mt_rand($month_ago, $now));
34 $random_page = mt_rand(1, 3);
35 $method_name = 'generate_' . $random_page_type;
36 $this->$method_name($random_page_type, $random_date, $random_page, $random_referrer);
37 }
38 }
39
40 private function generate_singular($page_type, $date, $page, $referrer)
41 {
42 $post_ids = get_posts([
43 'fields' => 'ids', // Only get post IDs
44 'posts_per_page' => -1,
45 'post_type' => ['post', 'recipes'],
46 ]);
47 $page_ids = get_all_page_ids();
48 $singular_ids = array_merge($post_ids, $page_ids);
49 foreach ($singular_ids as $singular_id) {
50 IAWP()->db->record_view([
51 'resource' => $page_type,
52 'singular_id' => $singular_id,
53 'page' => $page,
54 ], $referrer, $date);
55 }
56 }
57
58 private function generate_author_archive($page_type, $date, $page, $referrer)
59 {
60 IAWP()->db->record_view([
61 'resource' => $page_type,
62 'author_id' => get_current_user_id(),
63 'page' => $page,
64 ], $referrer, $date);
65 }
66
67 private function generate_date_archive($page_type, $date, $page, $referrer)
68 {
69 $posts = get_posts([
70 'posts_per_page' => -1,
71 'post_type' => ['post', 'recipes'],
72 ]);
73 $post_date = new \DateTime($posts[0]->post_date);
74 $date_formats = [$post_date->format('Y'), $post_date->format('Y-m'), $post_date->format('Y-m-d')];
75
76 foreach ($date_formats as $format) {
77 IAWP()->db->record_view([
78 'resource' => $page_type,
79 'date_archive' => $format,
80 'page' => $page,
81 ], $referrer, $date);
82 }
83 }
84
85 private function generate_post_type_archive($page_type, $date, $page, $referrer)
86 {
87 IAWP()->db->record_view([
88 'resource' => $page_type,
89 'post_type' => 'recipes',
90 'page' => $page,
91 ], $referrer, $date);
92 }
93
94 private function generate_term_archive($page_type, $date, $page, $referrer)
95 {
96 $term = get_term_by('slug', 'breakfast', 'meals');
97 $term_id = $term->term_id;
98
99 IAWP()->db->record_view([
100 'resource' => $page_type,
101 'term_id' => $term_id,
102 'page' => $page,
103 ], $referrer, $date);
104 }
105
106 private function generate_search($page_type, $date, $page, $referrer)
107 {
108 $potential_search_queries = ['Food', 'Dinner idea', 'Bacon'];
109 $random_search_query = $potential_search_queries[array_rand($potential_search_queries)];
110
111 IAWP()->db->record_view([
112 'resource' => $page_type,
113 'search_query' => $random_search_query,
114 'page' => $page,
115 ], $referrer, $date);
116 }
117
118 private function generate_home($page_type, $date, $page, $referrer)
119 {
120 IAWP()->db->record_view([
121 'resource' => $page_type,
122 'page' => $page,
123 ], $referrer, $date);
124 }
125
126 private function generate_404($page_type, $date, $page, $referrer)
127 {
128 $potential_paths = ['/not-real', '/does/not/exist', '/bad/url'];
129 $random_paths = $potential_paths[array_rand($potential_paths)];
130
131 IAWP()->db->record_view([
132 'resource' => $page_type,
133 'not_found_url' => get_site_url() . $random_paths,
134 'page' => $page,
135 ], $referrer, $date);
136 }
137
138 public function admin_init()
139 {
140 $already_run = get_cat_ID('Easy recipes') > 0;
141
142 if ($already_run) {
143 return;
144 }
145
146 wp_insert_category([
147 'cat_name' => 'Easy recipes',
148 'category_description' => 'Our easiest and quickest recipes',
149 'category_nicename' => 'easy-recipes',
150 'category_parent' => null,
151 ]);
152
153 flush_rewrite_rules();
154 }
155
156 public function init()
157 {
158 register_post_type('recipes', [
159 'label' => 'recipes',
160 'labels' => [
161 'name' => 'Recipes',
162 'singular_name' => 'Recipe',
163 'menu_name' => 'Recipes',
164 ],
165 'public' => true,
166 'has_archive' => true,
167 'publicly_queryable' => true,
168 ]);
169
170 wp_insert_term(
171 'Term: Vegan',
172 'post_tag'
173 );
174
175 register_taxonomy('meals', 'post', [
176 'labels' => [
177 'name' => 'Meals',
178 'singular_name' => 'Meal',
179 ],
180 'public' => true,
181 'show_admin_column' => true,
182 ]);
183
184 wp_insert_term(
185 'breakfast',
186 'meals'
187 );
188
189 flush_rewrite_rules();
190
191 $already_run = get_cat_ID('Easy recipes') > 0;
192
193 if ($already_run) {
194 return;
195 }
196
197 $category_id = get_cat_ID('Easy recipes');
198 $tag_id = get_term_by('slug', 'Term: Vegan', 'post_tag')->term_id;
199 $tax_id = get_term_by('slug', 'breakfast', 'meals')->term_id;
200
201 wp_insert_post([
202 'post_title' => 'First post: Burgers',
203 'post_content' => 'A burger recipe',
204 'post_status' => 'publish',
205 ]);
206
207 wp_insert_post([
208 'post_title' => 'Second post: Sprouts',
209 'post_content' => 'My secret sprouts recipe',
210 'post_status' => 'publish',
211 'post_category' => [$category_id],
212 'tags_input' => [$tag_id],
213 'tax_input' => ['sometax' => [$tax_id]],
214 ]);
215
216 wp_insert_post([
217 'post_title' => 'About Page',
218 'post_content' => 'Learn something about me on this page',
219 'post_status' => 'publish',
220 'post_type' => 'page',
221 ]);
222 }
223 }
224