HEX
Server: Apache/2.4.65 (Debian)
System: Linux 88f31f35b0b8 6.1.0-38-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.147-1 (2025-08-02) x86_64
User: www-data (33)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/adnkronos/src/Admin/AccountPage.php
<?php

namespace AdnKronos\Admin;

use AdnKronos\Api\AdnkApiClient;
use AdnKronos\Options\AccountOptions;

/**
 * Registers and renders the account/consent settings page
 * at /wp-admin/?page=adnk-plugin-account.
 */
class AccountPage {

    /** @var AccountOptions */
    private $accountOptions;

    /** @var AdnkApiClient */
    private $apiClient;

    public function __construct(AccountOptions $accountOptions, AdnkApiClient $apiClient) {
        $this->accountOptions = $accountOptions;
        $this->apiClient      = $apiClient;
    }

    public function register() {
        add_action('admin_menu', array($this, 'addMenu'));
        add_action('admin_init', array($this, 'registerSettings'));
    }

    public function addMenu() {
        add_submenu_page(
            'adnk-plugin-settings',
            'Impostazioni Account',
            'Impostazioni Account',
            'manage_options',
            'adnk-plugin-account',
            array($this, 'render')
        );
    }

    public function registerSettings() {
        register_setting(
            AccountOptions::OPTION_KEY,
            AccountOptions::OPTION_KEY,
            array($this, 'sanitize')
        );
    }

    /**
     * @param array $options
     * @return array
     */
    public function sanitize($options) {
        if (!$options) {
            return $options;
        }

        if (!empty($options['consent_send_statistical_data'])) {
            $options['consent_send_statistical_data'] = 'on';
        } else {
            unset($options['consent_send_statistical_data']);
        }

        return $options;
    }

    public function render() {
        $this->apiClient->verifySite(get_home_url());
        $siteActive = get_option('adn_site_active', 0);
        $consent    = $this->accountOptions->get('consent_send_statistical_data');
        $logoUrl    = ADNK_PLUGIN_URL . 'assets/img/logoadnkronos.jpg';
        $logoSvgUrl = ADNK_PLUGIN_URL . 'assets/img/logo-adnkronos.svg';
        $optKey     = AccountOptions::OPTION_KEY;
        ?>
        <div id="adk">
            <div class="container wrap">
                <h1>
                    <img src="<?php echo esc_url($logoUrl); ?>">
                    <?php esc_html_e('AdnKronos Feed Importer Options', 'adnkronos'); ?>
                </h1>
                <p></p>
                <nav class="nav-tab-wrapper">
                    <a href="?page=adnk-plugin-settings" class="nav-tab"><?php esc_html_e('Impostazioni di Importazione', 'adnkronos'); ?></a>
                    <a href="?page=adnk-plugin-account" class="nav-tab nav-tab-active"><?php esc_html_e('Account Settings', 'adnkronos'); ?></a>
                </nav>
                <div class="tab-content">
                    <div class="row">
                        <div class="col-9">
                            <form method="post" action="options.php">
                                <?php settings_fields($optKey); ?>

                                <div class="card card-static mt-4">
                                    <div class="card-header">
                                        <strong><?php esc_html_e('Consenso invio dati statistici', 'adnkronos'); ?></strong>
                                    </div>
                                    <div class="card-body">
                                        <p>
                                            Il sistema non raccoglie dati di navigazione degli utenti, siano essi visitatori
                                            del sito o gestori.<br />
                                            Le statistiche raccolte sono relative al numero di articoli importati e pubblicati
                                            per categoria, non rientrano pertanto nella categoria dei "dati sensibili" o
                                            "dati personali".<br />
                                            Il consenso รจ necessario per poter abilitare tutti i feed.
                                        </p>
                                        <input type="checkbox"
                                               name="<?php echo esc_attr($optKey); ?>[consent_send_statistical_data]"
                                               <?php checked($consent, 'on'); ?>>
                                        <?php esc_html_e("Acconsento all'invio dei dati", 'adnkronos'); ?>
                                    </div>
                                </div>

                                <?php if (!$siteActive) { ?>
                                <div class="card card-static mt-4">
                                    <div class="card-header">
                                        <strong><?php esc_html_e('Verifica il tuo dominio', 'adnkronos'); ?></strong>
                                    </div>
                                    <div class="card-body">
                                        <p>
                                            Per verificare il tuo dominio
                                            <a target="_blank" href="<?php echo esc_url(ADNK_API_BASE_URL); ?>?domain=<?php echo urlencode(esc_url(get_site_url())); ?>">
                                                compila la richiesta cliccando qui registrando il tuo dominio
                                                <?php echo esc_url(get_site_url()); ?>
                                            </a>!
                                        </p>
                                    </div>
                                </div>
                                <?php } ?>

                                <?php submit_button(); ?>
                            </form>
                        </div>
                        <div class="col-3">
                            <div class="card card-static border-primary mt-4">
                                <div class="card-body">
                                    <p class="card-text">
                                        <img width="200px" src="<?php echo esc_url($logoSvgUrl); ?>">
                                        <br /><br />
                                        <b>ROMA</b> Piazza Mastai n.9 - 00153<br />
                                        T: +39 06 5807666 <br /> F: +39 06 5807815<br />
                                        <br />
                                        <b>MILANO</b> Via Manin, 37 - 20121<br />
                                        T: +39 02 763661
                                    </p>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <?php
    }

}