HEX
Server: Apache
System: Linux digivps 5.15.0-163-generic #173-Ubuntu SMP Tue Oct 14 17:51:00 UTC 2025 x86_64
User: root (0)
PHP: 8.3.15
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,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_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/biographybirthday.com/wp-content/plugins/post-views-counter/js/counter.js
PostViewsCounterManual = {
	/**
	 * Initialize counter.
	 *
	 * @param {object} args
	 *
	 * @return {void}
	 */
	init: function( args ) {
		let params = {
			action:	'pvc-view-posts',
			pvc_nonce: args.nonce,
			ids: args.ids
		};

		let newParams = Object.keys( params ).map( function( el ) {
			// add extra "data" array
			return encodeURIComponent( el ) + '=' + encodeURIComponent( params[el] );
		} ).join( '&' ).replace( /%20/g, '+' );

		const _this = this;

		return fetch( args.url, {
			method: 'POST',
			mode: 'cors',
			cache: 'no-cache',
			credentials: 'same-origin',
			headers: {
				'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8'
			},
			body: newParams
		} ).then( function( response ) {
			// invalid response?
			if ( ! response.ok )
				throw Error( response.statusText );

			return response.json();
		} ).then( function( response ) {
			try {
				if ( typeof response === 'object' && response !== null )
					_this.triggerEvent( 'pvcCheckPost', response );
			} catch( error ) {
				console.log( 'Invalid JSON data' );
				console.log( error );
			}
		} ).catch( function( error ) {
			console.log( 'Invalid response' );
			console.log( error );
		} );
	},

	/**
	 * Prepare the data to be sent with the request.
	 *
	 * @param {string} eventName
	 * @param {object} data
	 *
	 * @return {void}
	 */
	triggerEvent: function( eventName, data ) {
		const newEvent = new CustomEvent( eventName, {
			bubbles: true,
			detail: data
		} );

		// trigger event
		document.dispatchEvent( newEvent );
	}
}