/var/www/hkosl.com/aga/wp-content/plugins/wordpress-seo/inc/class-wpseo-shortlinker.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
/**
 * WPSEO plugin file.
 *
 * @package WPSEO
 */

/**
 * Helps with creating shortlinks in the plugin.
 */
class WPSEO_Shortlinker {

    
/**
     * Collects the additional data necessary for the shortlink.
     *
     * @return array The shortlink data.
     */
    
protected function collect_additional_shortlink_data() {
        return array(
            
'php_version'      => $this->get_php_version(),
            
'platform'         => 'wordpress',
            
'platform_version' => $GLOBALS['wp_version'],
            
'software'         => $this->get_software(),
            
'software_version' => WPSEO_VERSION,
            
'days_active'      => $this->get_days_active(),
        );
    }

    
/**
     * Builds a URL to use in the plugin as shortlink.
     *
     * @param string $url The URL to build upon.
     *
     * @return string The final URL.
     */
    
public function build_shortlink$url ) {
        return 
add_query_arg$this->collect_additional_shortlink_data(), $url );
    }

    
/**
     * Returns a version of the URL with a utm_content with the current version.
     *
     * @param string $url The URL to build upon.
     *
     * @return string The final URL.
     */
    
public static function get$url ) {
        
$shortlinker = new self();

        return 
$shortlinker->build_shortlink$url );
    }

    
/**
     * Echoes a version of the URL with a utm_content with the current version.
     *
     * @param string $url The URL to build upon.
     */
    
public static function show$url ) {
        echo 
esc_urlself::get$url ) );
    }

    
/**
     * Gets the shortlink's query params.
     *
     * @return array The shortlink's query params.
     */
    
public static function get_query_params() {
        
$shortlinker = new self();

        return 
$shortlinker->collect_additional_shortlink_data();
    }

    
/**
     * Gets the current site's PHP version, without the extra info.
     *
     * @return string The PHP version.
     */
    
private function get_php_version() {
        
$version explode'.'PHP_VERSION );

        return (int) 
$version[0] . '.' . (int) $version[1];
    }

    
/**
     * Get our software and whether it's active or not.
     *
     * @return string The software name + activation state.
     */
    
private function get_software() {
        if ( 
WPSEO_Utils::is_yoast_seo_premium() ) {
            return 
'premium';
        }

        return 
'free';
    }

    
/**
     * Gets the number of days the plugin has been active.
     *
     * @return int The number of days the plugin is active.
     */
    
private function get_days_active() {
        
$date_activated WPSEO_Options::get'first_activated_on' );
        
$datediff       = ( time() - $date_activated );
        
$days           = (int) round$datediff DAY_IN_SECONDS );
        switch ( 
$days ) {
            case 
0:
            case 
1:
                
$cohort '0-1';
                break;
            case ( 
$days ):
                
$cohort '2-5';
                break;
            case ( 
$days 30 ):
                
$cohort '6-30';
                break;
            default:
                
$cohort '>30';
        }
        return 
$cohort;
    }
}