/wp-content/plugins/wordpress-seo/inc/class-wpseo-shortlinker.php
https://bitbucket.org/carloskikea/helpet · PHP · 103 lines · 51 code · 10 blank · 42 comment · 2 complexity · 50936943cec0b3bc74df07aa21e21386 MD5 · raw file
- <?php
- /**
- * WPSEO plugin file.
- *
- * @package WPSEO
- */
- /**
- * Helps with creating shortlinks in the plugin
- */
- class WPSEO_Shortlinker {
- /**
- * 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(
- array(
- 'php_version' => $this->get_php_version(),
- 'platform' => 'wordpress',
- 'platform_version' => $GLOBALS['wp_version'],
- 'software' => $this->get_software(),
- 'software_version' => WPSEO_VERSION,
- 'role' => $this->get_filtered_user_role(),
- ),
- $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 WPSEO_Shortlinker();
- 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_url( self::get( $url ) );
- }
- /**
- * 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] . '.' . (int) $version[2];
- }
- /**
- * 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 current user's role without leaking roles that shouldn't be public.
- *
- * @return string The filtered user role.
- */
- private function get_filtered_user_role() {
- $user = wp_get_current_user();
- $built_in_roles = array(
- 'administrator',
- 'wpseo_manager',
- 'wpseo_editor',
- 'editor',
- 'author',
- 'contributor',
- 'subscriber',
- );
- $filtered_roles = array_intersect( $built_in_roles, $user->roles );
- $role = current( $filtered_roles );
- if ( ! $role ) {
- $role = 'unknown';
- }
- return $role;
- }
- }