HEX
Server: Apache
System: Linux server11 5.10.0-33-amd64 #1 SMP Debian 5.10.226-1 (2024-10-03) x86_64
User: web78 (5081)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/clients/client1/web78/web/wp-content/plugins/quick-adsense/includes/settings.php
<?php
/**
 * The plugin settings page.
 */

/**
 * Add a settings page link to the plugin listing in the plugins admin page.
 */
add_action(
	'plugin_action_links_quick-adsense/quick-adsense.php',
	function ( $links ) {
		$links = array_merge(
			[ '<a href="' . esc_url( admin_url( '/admin.php?page=quick-adsense' ) ) . '">Settings</a>' ],
			$links
		);
		return $links;
	}
);

/**
 * Create the Admin menu entry for the settings page.
 */
add_action(
	'admin_menu',
	function () {
		add_menu_page(
			'Quick Adsense Options',
			'Quick Adsense',
			'manage_options',
			'quick-adsense',
			function () {
				// phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
				// Contains textareas which need to allow output of scripts, iframes etc necessary to output ads and trackers.
				echo quick_adsense_load_file( 'templates/page-settings.php' );
				// phpcs:enable
			}
		);
	}
);

/**
 * Add scripts and styles for Settings page.
 */
add_action(
	'admin_enqueue_scripts',
	function ( $hook ) {
		global $wp_scripts;
		if ( ( 'toplevel_page_quick-adsense' === $hook ) && ( current_user_can( 'manage_options' ) ) ) {
			wp_enqueue_script( 'quick-adsense-chart-scripts', plugins_url( '../assets/js/chart.min.js', __FILE__ ), [ 'jquery', 'jquery-ui-core', 'jquery-ui-accordion', 'jquery-ui-dialog' ], '3.7.1', false );
			wp_enqueue_style( 'quick-adsense-jquery-ui-styles', plugins_url( '../assets/css/jquery-ui.min.css', __FILE__ ), [], '1.9.1' );
			wp_enqueue_style( 'quick-adsense-admin-styles', plugins_url( '../assets/css/admin.css', __FILE__ ), [], '2.8.2' );
			wp_enqueue_script( 'quick-adsense-admin-scripts', plugins_url( '../assets/js/admin.js', __FILE__ ), [ 'jquery', 'jquery-ui-core', 'jquery-ui-tabs', 'wp-util' ], '2.8.2', false );
			wp_localize_script(
				'quick-adsense-admin-scripts',
				'quick_adsense',
				[
					'ajax_url' => admin_url( 'admin-ajax.php' ),
					'nonce'    => wp_create_nonce( 'quick-adsense-nonce' ),
				]
			);
		}
	}
);

/**
 * Register settings and sections.
 */
add_action(
	'admin_init',
	function () {
		if ( current_user_can( 'manage_options' ) ) {
			register_setting(
				'quick_adsense_settings',
				'quick_adsense_settings',
				function ( $input ) {
					delete_transient( 'quick_adsense_adstxt_adsense_autocheck_content' );
					return $input;
				}
			);
			$settings                      = get_option( 'quick_adsense_settings' );
			$settings['alignment_options'] = [
				[
					'text'  => 'Left',
					'value' => '1',
				],
				[
					'text'  => 'Center',
					'value' => '2',
				],
				[
					'text'  => 'Right',
					'value' => '3',
				],
				[
					'text'  => 'None',
					'value' => '4',
				],
			];
			add_settings_section(
				'quick_adsense_general',
				'',
				function () use ( $settings ) {
					echo wp_kses(
						quick_adsense_load_file( 'templates/section-general.php', $settings ),
						quick_adsense_get_allowed_html()
					);
				},
				'quick-adsense-general'
			);
			$settings['location'] = 'onpost';
			add_settings_section(
				'quick_adsense_onpost',
				'',
				function () use ( $settings ) {
					// phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
					// Contains textareas which need to allow output of scripts, iframes etc necessary to output ads and trackers.
					echo quick_adsense_load_file( 'templates/section-onpost-content.php', $settings );
					// phpcs:enable
				},
				'quick-adsense-onpost'
			);
			$settings['location'] = 'widgets';
			add_settings_section(
				'quick_adsense_widgets',
				'',
				function () use ( $settings ) {
					// phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
					// Contains textareas which need to allow output of scripts, iframes etc necessary to output ads and trackers.
					echo quick_adsense_load_file( 'templates/section-widgets.php', $settings );
					// phpcs:enable
				},
				'quick-adsense-widgets'
			);
			$settings['location'] = 'header_footer_codes';
			add_settings_section(
				'quick_adsense_header_footer_codes',
				'',
				function () use ( $settings ) {
					// phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
					// Contains textareas which need to allow output of scripts, iframes etc necessary to output ads and trackers.
					echo quick_adsense_load_file( 'templates/section-header-footer.php', $settings );
					// phpcs:enable					
				},
				'quick-adsense-header-footer-codes'
			);
		}
	}
);

add_action(
	'wp_ajax_quick_adsense_onpost_ad_reset_stats',
	function () {
		if ( isset( $_POST['nonce'] ) && wp_verify_nonce( sanitize_key( $_POST['nonce'] ), 'quick-adsense-nonce' ) && ( isset( $_POST['index'] ) ) && ( current_user_can( 'manage_options' ) ) ) {
			delete_option( 'quick_adsense_onpost_ad_' . sanitize_key( $_POST['index'] ) . '_stats' );
			wp_send_json_success();
		}
		wp_send_json_error();
	}
);


add_action(
	'wp_ajax_quick_adsense_onpost_ad_get_stats_chart',
	function () {
		if ( isset( $_POST['nonce'] ) && wp_verify_nonce( sanitize_key( $_POST['nonce'] ), 'quick-adsense-nonce' ) && ( isset( $_POST['index'] ) ) && ( current_user_can( 'manage_options' ) ) ) {
			$stats      = get_option( 'quick_adsense_onpost_ad_' . sanitize_key( $_POST['index'] ) . '_stats' );
			$stats_data = [];
			for ( $i = 0; $i < 30; $i++ ) {
				$clicks      = 0;
				$impressions = 0;
				if ( isset( $stats ) && is_array( $stats ) && isset( $stats[ gmdate( 'dmY', strtotime( '-' . $i . ' day' ) ) ] ) ) {
					$clicks      = $stats[ gmdate( 'dmY', strtotime( '-' . $i . ' day' ) ) ]['c'];
					$impressions = $stats[ gmdate( 'dmY', strtotime( '-' . $i . ' day' ) ) ]['i'];
				}
				$stats_data[] = [
					'x'  => gmdate( 'm/d/Y', strtotime( '-' . $i . ' day' ) ),
					'y'  => $impressions,
					'y1' => $clicks,
				];
			}
			wp_send_json_success(
				quick_adsense_load_file(
					'templates/block-stats-chart.php',
					[
						'stats_data' => wp_json_encode( $stats_data ),
					]
				)
			);
		}
		wp_send_json_error();
	}
);