PluginProbe ʕ •ᴥ•ʔ
WP Job Manager / 2.4.6
WP Job Manager v2.4.6
2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.1.0 1.1.1 1.1.2 1.1.3 1.10.0 1.11.0 1.11.1 1.12.0 1.12.1 1.13.0 1.14.0 1.15.0 1.16.0 1.16.1 1.17.0 1.18.0 1.19.0 1.2.0 1.20.0 1.20.1 1.21.0 1.21.1 1.21.2 1.21.3 1.21.4 1.22.0 1.22.1 1.22.2 1.22.3 1.23.0 1.23.1 1.23.10 1.23.11 1.23.12 1.23.13 1.23.2 1.23.3 1.23.4 1.23.5 1.23.6 1.23.7 1.23.8 1.23.9 1.24.0 1.24.0.1 1.25.0 1.25.0.1 1.25.1 1.25.1.1 1.25.2 1.25.2.1 1.25.3 1.25.3.1 1.26.0 1.26.0.1 1.26.1 1.26.1.1 1.26.2 1.26.2.1 1.27.0 1.27.0.1 1.28.0 1.28.0.1 1.29.0 1.29.0.1 1.29.1 1.29.1.1 1.29.2 1.29.2.1 1.29.3 1.29.3.1 1.3.0 1.3.1 1.30.0 1.30.0.1 1.30.1 1.30.1.1 1.30.2 1.30.2.1 1.31.0 1.31.0.1 1.31.1 1.31.1.1 1.31.2 1.31.3 1.32.0 1.32.1 1.32.2 1.32.3 1.33.0 1.33.1 1.33.2 1.33.3 1.33.4 1.33.5 1.34.0 1.34.1 1.34.2 1.34.3 1.34.4 1.34.5 1.35.0 1.35.1 1.35.2 1.35.3 1.36.0 1.36.1 1.36.2 1.37.0 1.38.0 1.38.1 1.39.0 1.4.0 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.5.0 1.5.1 1.5.2 1.6.0 1.7.0 1.7.1 1.7.3 1.8.0 1.8.1 1.8.2 1.9.0 1.9.1 1.9.2 1.9.3 2.0.0 2.1.0 2.1.1 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.4.1
wp-job-manager / includes / class-dev-tools.php
wp-job-manager / includes Last commit date
3rd-party 2 months ago abstracts 3 months ago admin 2 weeks ago emails 2 weeks ago forms 2 weeks ago helper 3 months ago promoted-jobs 2 weeks ago ui 2 weeks ago widgets 2 weeks ago class-access-token.php 2 years ago class-dev-tools.php 2 years ago class-guest-session.php 2 years ago class-guest-user.php 2 years ago class-job-dashboard-shortcode.php 6 months ago class-job-listing-stats.php 2 years ago class-job-overlay.php 2 years ago class-stats-dashboard.php 2 years ago class-stats-script.php 3 months ago class-stats.php 3 months ago class-wp-job-manager-ajax.php 2 months ago class-wp-job-manager-api.php 6 years ago class-wp-job-manager-blocks.php 2 weeks ago class-wp-job-manager-cache-helper.php 3 months ago class-wp-job-manager-category-walker.php 6 years ago class-wp-job-manager-com-api.php 2 years ago class-wp-job-manager-data-cleaner.php 2 years ago class-wp-job-manager-data-exporter.php 3 months ago class-wp-job-manager-dependency-checker.php 2 years ago class-wp-job-manager-email-notifications.php 2 years ago class-wp-job-manager-forms.php 5 years ago class-wp-job-manager-geocode.php 2 weeks ago class-wp-job-manager-install.php 2 years ago class-wp-job-manager-post-types.php 2 weeks ago class-wp-job-manager-recaptcha.php 6 months ago class-wp-job-manager-rest-api.php 2 months ago class-wp-job-manager-shortcodes.php 2 weeks ago class-wp-job-manager-usage-tracking-data.php 2 years ago class-wp-job-manager-usage-tracking.php 2 years ago class-wp-job-manager-widget.php 2 weeks ago class-wp-job-manager.php 3 months ago trait-singleton.php 2 years ago
class-dev-tools.php
108 lines
1 <?php
2 /**
3 * Tools for testing and development.
4 *
5 * @package wp-job-manager
6 */
7
8 namespace WP_Job_Manager;
9
10 if ( ! defined( 'ABSPATH' ) ) {
11 exit;
12 }
13
14 /**
15 * Tools for testing and development.
16 *
17 * @internal
18 */
19 class Dev_Tools {
20
21 /**
22 * Initialize the class, add WP-CLI commands.
23 */
24 public static function init() {
25 if ( defined( 'WP_CLI' ) && WP_CLI ) {
26 \WP_CLI::add_command( 'jm dev stats generate', [ self::class, 'generate_stat_data' ] );
27 }
28 }
29
30 /**
31 * Generate stats for a job.
32 *
33 * ## OPTIONS
34 *
35 * <job_id>
36 * : The ID of the job to generate stats for.
37 *
38 * ## EXAMPLES
39 *
40 * wp jm dev stats generate 123
41 *
42 * @when after_wp_load
43 *
44 * @param array $args
45 */
46 public static function generate_stat_data( $args ) {
47 $job_id = absint( $args[0] );
48
49 $job = get_post( $job_id );
50
51 if ( ! $job_id || ! $job || 'job_listing' !== $job->post_type ) {
52 \WP_CLI::error( 'Invalid job ID' );
53 }
54
55 $stats = Stats::instance();
56
57 $start_date = get_post_datetime( $job );
58
59 $days = $start_date->diff( new \DateTime() )->days;
60
61 $trend = 1;
62 $views = 0;
63
64 $log = '';
65
66 $stats->delete_stats( $job_id );
67
68 $records = [];
69
70 for ( $i = 0; $i <= $days + 1; $i++ ) {
71 $views = (int) max( 0, $views + $trend * wp_rand( 0, 1000 ) );
72 $trend = wp_rand( 0, 10 ) / 10 - 0.5;
73 $unique_views = wp_rand( (int) ( $views * 0.3 ), (int) ( $views * 0.8 ) );
74 $impressions = wp_rand( (int) ( $views * 1.6 ), (int) ( $views * 2.6 ) );
75 $date = $start_date->modify( "+{$i} days" )->format( 'Y-m-d' );
76
77 $log .= $views . ' ';
78
79 $records[] = [
80 'name' => Job_Listing_Stats::VIEW,
81 'post_id' => $job_id,
82 'count' => $views,
83 'date' => $date,
84 ];
85
86 $records[] = [
87 'name' => Job_Listing_Stats::VIEW_UNIQUE,
88 'post_id' => $job_id,
89 'count' => $unique_views,
90 'date' => $date,
91 ];
92
93 $records[] = [
94 'name' => Job_Listing_Stats::SEARCH_IMPRESSION,
95 'post_id' => $job_id,
96 'count' => $impressions,
97 'date' => $date,
98 ];
99
100 }
101
102 $stats->batch_log_stats( $records );
103
104 \WP_CLI::log( \WP_CLI::colorize( 'Stats generated from %C' . $start_date->format( 'Y-m-d' ) . '%n for %C' . $days . ' days%n: ' ) . $log );
105
106 }
107 }
108