File: /var/www/agighana.org_backup/Authorize_Application.php
<?php
/**
* Class Google\Site_Kit\Core\Admin\Authorize_Application
*
* @package Google\Site_Kit
* @copyright 2024 Google LLC
* @license https://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
* @link https://sitekit.withgoogle.com
*/
namespace Google\Site_Kit\Core\Admin;
use Google\Site_Kit\Context;
use Google\Site_Kit\Core\Assets\Assets;
use Google\Site_Kit\Core\Util\Method_Proxy_Trait;
/**
* Class to handle all wp-admin Authorize Application related functionality.
*
* @since 1.126.0
* @access private
* @ignore
*/
final class Authorize_Application {
use Method_Proxy_Trait;
/**
* Plugin context.
*
* @since 1.126.0
* @var Context
*/
private $context;
/**
* Assets instance.
*
* @since 1.126.0
* @var Assets
*/
private $assets;
/**
* Constructor.
*
* @since 1.126.0
*
* @param Context $context Plugin context.
* @param Assets $assets Optional. Assets API instance. Default is a new instance.
*/
public function __construct(
Context $context,
Assets $assets = null
) {
$this->context = $context;
$this->assets = $assets ?: new Assets( $this->context );
}
/**
* Registers functionality through WordPress hooks.
*
* @since 1.126.0
*/
public function register() {
add_action( 'admin_enqueue_scripts', $this->get_method_proxy( 'enqueue_assets' ) );
add_action( 'admin_footer', $this->get_method_proxy( 'render_custom_footer' ) );
}
/**
* Checks if the current screen is the Authorize Application screen.
*
* @since 1.126.0
*
* @return bool True if the current screen is the Authorize Application screen, false otherwise.
*/
protected function is_authorize_application_screen() {
$current_screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null;
if ( $current_screen instanceof \WP_Screen && 'authorize-application' === $current_screen->id ) {
return true;
}
return false;
}
/**
* Checks if the current service is a Google service.
*
* @since 1.126.0
*
* @return bool True if the current service is a Google service, false otherwise.
*/
protected function is_google_service() {
$success_url = isset( $_GET['success_url'] ) ? esc_url_raw( wp_unslash( $_GET['success_url'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification
$success_url = sanitize_text_field( $success_url );
$parsed_url = wp_parse_url( $success_url );
if ( empty( $parsed_url['host'] ) ) {
return false;
}
// Check if the domain is a '*.google.com' domain.
return preg_match( '/\.google\.com$/', $parsed_url['host'] ) === 1;
}
/**
* Enqueues assets for the Authorize Application screen.
*
* @since 1.126.0
*/
private function enqueue_assets() {
if ( $this->is_authorize_application_screen() && $this->is_google_service() ) {
$this->assets->enqueue_asset( 'googlesitekit-authorize-application-css' );
}
}
/**
* Renders custom footer for the Authorize Application screen if the service is a Google service.
*
* @since 1.126.0
*/
private function render_custom_footer() {
if ( $this->is_authorize_application_screen() && $this->is_google_service() ) {
echo '<div class="googlesitekit-authorize-application__footer"><p>' . esc_html__( 'Powered by Site Kit', 'google-site-kit' ) . '</p></div>';
}
}
}