403Webshell
Server IP : 104.21.21.239  /  Your IP : 216.73.217.39
Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.5
System : Linux ip-172-31-69-123.ec2.internal 6.1.176-223.369.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 24 13:34:27 UTC 2026 x86_64
User : ec2-user ( 1000)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/lifamfest/wp-content/plugins/simple-history/examples/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/lifamfest/wp-content/plugins/simple-history/examples/examples.php
<?php

// No external calls allowed
exit;


/**
 * Misc
 */

// Add $_GET, $_POST, and more info to each logged event
define("SIMPLE_HISTORY_LOG_DEBUG", true);


/**
 * Some examples of filter usage and so on
 */

// Modify who can read a logger
// Modify the if part to give users access or no access to a logger
add_filter( 'simple_history/loggers_user_can_read/can_read_single_logger', function( $user_can_read_logger, $logger_instance, $user_id ) {

	// in this example user with id 3 gets access to the post logger
	// while user with id 8 does not get any access to it
	if ( $logger_instance->slug == "SimplePostLogger" && $user_id === 3 ) {
		$user_can_read_logger = true;
	} else if ( $logger_instance->slug == "SimplePostLogger" && $user_id === 9 ) {
		$user_can_read_logger = false;
	}

	return $user_can_read_logger;

}, 10, 3 );


// Do not log some post types, for example pages and attachments in this case
add_filter( "simple_history/log/do_log", function( $do_log = null, $level = null, $message = null, $context = null, $logger = null) {

	$post_types_to_not_log = array(
		"page",
		"attachment"
	);

	if ( ( isset($logger->slug) && ($logger->slug === "SimplePostLogger" || $logger->slug === "SimpleMediaLogger") ) && ( isset($context["post_type"]) && in_array($context["post_type"], $post_types_to_not_log ) ) ) {

		$do_log = false;

	}

	return $do_log;

}, 10, 5);

// Disable all logging
add_filter( "simple_history/log/do_log", "__return_false" );

/**
 * Example that modifies the parameters sent to the message template
 * This example will change the post type from "post" or "page" or similar to "my own page type"
 */
add_filter( "simple_history/logger/interpolate/context", function($context, $message, $row) {

        if ( empty( $row ) ) {
                return $context;
        }

        if ( $row->logger == "SimplePostLogger" && $row->context_message_key == "post_updated" ) {
                $context["post_type"] = "my own page type";
        }

        return $context;

}, 10, 3);



/**
 * Change capability required to manage the options page of simple history.
 * Default capability is "manage_options"
 */
add_filter("simple_history/view_settings_capability", function($capability) {

    $capability = "manage_options";
    return $capability;

});


/**
 * Change capability required to view main simple history page.
 * Default capability is "edit_pages". Change to for example "manage options"
 * to only allow admins to view the history log.
 */
add_filter("simple_history/view_history_capability", function($capability) {

    $capability = "manage_options";
    return $capability;

});


// Skip adding things to the context table during logging.
// Useful if you don't want to add cool and possible super useful info to your logged events.
// Also nice to have if you want to make sure your database does not grow.
add_filter("simple_history/log_insert_context", function($context, $data) {

	unset($context["_user_id"]);
	unset($context["_user_login"]);
	unset($context["_user_email"]);
	unset($context["server_http_user_agent"]);

	return $context;

}, 10, 2);

// Hide some columns from the detailed context view popup window
add_filter("simple_history/log_html_output_details_table/row_keys_to_show", function($logRowKeysToShow, $oneLogRow) {

	$logRowKeysToShow["id"] = false;
	$logRowKeysToShow["logger"] = false;
	$logRowKeysToShow["level"] = false;
	$logRowKeysToShow["message"] = false;

	return $logRowKeysToShow;

}, 10, 2);


// Hide some more columns from the detailed context view popup window
add_filter("simple_history/log_html_output_details_table/context_keys_to_show", function($logRowContextKeysToShow, $oneLogRow) {

	$logRowContextKeysToShow["plugin_slug"] = false;
	$logRowContextKeysToShow["plugin_name"] = false;
	$logRowContextKeysToShow["plugin_title"] = false;
	$logRowContextKeysToShow["plugin_description"] = false;

	return $logRowContextKeysToShow;

}, 10, 2);



// Allow only the users specified in $allowed_users to show the history page, the history widget on the dashboard, or the history settings page
add_filter("simple_history/show_dashboard_page", "function_show_history_dashboard_or_page");
add_filter("simple_history/show_dashboard_widget", "function_show_history_dashboard_or_page");
add_filter("simple_history/show_settings_page", "function_show_history_dashboard_or_page");
function function_show_history_dashboard_or_page($show) {

	$allowed_users = array(
		"[email protected]",
		"[email protected]"
	);

	$user = wp_get_current_user();

	if ( ! in_array( $user->user_email, $allowed_users ) ) {
		$show = false;
	}

	return $show;

}


// Skip loading of loggers
add_filter("simple_history/logger/load_logger", function($load_logger, $oneLoggerFile) {

	// Don't load loggers for comments or menus, i.e. don't log changes to comments or to menus
	if ( in_array($oneLoggerFile, array("SimpleCommentsLogger", "SimpleMenuLogger")) ) {
		$load_logger = false;
	}

	return $load_logger;

}, 10, 2);

/**
 * Load only the loggers that are specified in the $do_log_us array
 */
add_filter("simple_history/logger/load_logger", function($load_logger, $logger_basename) {

	$load_logger = false;
	$do_log_us = array("SimplePostLogger", "SimplePluginLogger", "SimpleLogger");

	if ( in_array( $logger_basename, $do_log_us ) ) {
		$load_logger = true;
	}

	return $load_logger;

}, 10, 2 );


// Skip the loading of dropins
add_filter("simple_history/dropin/load_dropin", function($load_dropin, $dropinFileBasename) {

	// Don't load the RSS feed dropin
	if ( $dropinFileBasename == "SimpleHistoryRSSDropin" ) {
		$load_dropin = false;
	}

	// Don't load the dropin that polls for changes
	if ( $dropinFileBasename == "SimpleHistoryNewRowsNotifier" ) {
		$load_dropin = false;
	}

	return $load_dropin;

}, 10, 2);


// Don't log failed logins
add_filter("simple_history/simple_logger/log_message_key", function($doLog, $loggerSlug, $messageKey, $SimpleLoggerLogLevelsLevel, $context) {

	// Don't log login attempts to non existing users
	if ( "SimpleUserLogger" == $loggerSlug && "user_unknown_login_failed" == $messageKey ) {
		$doLog = false;
	}

	// Don't log failed logins to existing users
	if ( "SimpleUserLogger" == $loggerSlug && "user_login_failed" == $messageKey ) {
		$doLog = false;
	}

	return $doLog;

}, 10, 5);

// Never clear the log (default is 60 days)
add_filter("simple_history/db_purge_days_interval", "__return_zero");

// Clear items that are older than a 7 days (i.e. keep only the most recent 7 days in the log)
add_filter( "simple_history/db_purge_days_interval", function( $days ) {

	$days = 7;

	return $days;

} );

// Don't let anyone - even with the correct secret - view the RSS feed
add_filter("simple_history/rss_feed_show", "__return_false");

// Skip loading of a dropin completely (in this case the RSS dropin)
add_filter("simple_history/dropin/load_dropin_SimpleHistoryRSSDropin", "__return_false");

/**
 * Example of logging
 */

// This is the easiest and safest way to add messages to the log:
apply_filters("simple_history_log", "This is a logged message");
apply_filters("simple_history_log", "This is a message with some context added", ["isATestMessage" => "yup", "debugRequestData" => $_REQUEST]);
apply_filters("simple_history_log", "This is another logged message, with another severity level", null, "debug");

// Below is the function way of adding things to the log
// Remember to check that the SimpleLogger function exists before trying to log anything,
// or else your site will break if you disable the Simple History plugin
// (Use the apply_filters method above if you want to stay safer!)
if (function_exists("SimpleLogger")) {
	SimpleLogger()->info("This is a message added to the log");
}

// Add a message to the history log
SimpleLogger()->info("This is a message sent to the log");

// Add log entries with different severities
SimpleLogger()->warning("User 'Jessie' deleted user 'Kim'");
SimpleLogger()->debug("Ok, cron job is running!");

// Add a message to the history log
// and then add a second log entry with same info and Simple History
// will make these two become an "occasionGroup",
// i.e. collapsing their entries into one expandable log item
SimpleLogger()->info("This is a message sent to the log");
SimpleLogger()->info("This is a message sent to the log");

// Log entries can have placeholders and context
// This makes log entried translatable and filterable
SimpleLogger()->notice(
	"User {username} edited page {pagename}",
	array(
		"username" => "jessie",
		"pagename" => "My test page",
		"_initiator" => SimpleLoggerLogInitiators::WP_USER,
		"_user_id" => 5,
		"_user_login" => "jess",
		"_user_email" => "[email protected]"
	)
);

// Log entried can have custom occasionsID
// This will group items together and a log entry will only be shown once
// in the log overview, even if the logged messages are different
for ($i = 0; $i < rand(1, 50); $i++) {
	SimpleLogger()->notice("User {username} edited page {pagename}", array(
		"username" => "example_user_{$i}",
		"pagename" => "My test page",
		"_occasionsID" => "postID:24884,action:edited"
	));
}

// Events can have different "initiators",
// i.e. who was responsible for the logged event
// Initiator "WORDPRESS" means that WordPress did something on it's own
SimpleLogger()->info(
	"WordPress updated itself from version {from_version} to {to_version}",
	array(
		"from_version" => "3.8",
		"to_version" => "3.8.1",
		"_initiator" => SimpleLoggerLogInitiators::WORDPRESS
	)
);

// Initiator "WP_USER" means that a logged in user did someting
SimpleLogger()->info(
	"Updated plugin {plugin_name} from version {plugin_from_version} to version {plugin_to_version}",
	array(
		"plugin_name" => "Ninja Forms",
		"plugin_from_version" => "1.1",
		"plugin_to_version" => "1.1.2",
		"_initiator" => SimpleLoggerLogInitiators::WP_USER
	)
);

// // Initiator "WEB_USER" means that an unknown internet user did something
SimpleLogger()->warning("An attempt to login as user 'administrator' failed to login because the wrong password was entered", array(
	"_initiator" => SimpleLoggerLogInitiators::WEB_USER
));


// Use the "context array" to add  more data to your logged event
// Data can be used later on to show detailed info about a log entry
// and does not need to be shown on the overview screen
SimpleLogger()->info("Edited product '{pagename}'", array(
	"pagename" => "We are hiring!",
	"_postType" => "product",
	"_userID" => 1,
	"_userLogin" => "jessie",
	"_userEmail" => "[email protected]",
	"_occasionsID" => "username:1,postID:24885,action:edited"
));


// Test log cron things
/*
wp_schedule_event( time(), "hourly", "simple_history_cron_testhook");
*/
/*
wp_clear_scheduled_hook("simple_history_cron_testhook");
add_action( 'simple_history_cron_testhook', 'simple_history_cron_testhook_function' );
function simple_history_cron_testhook_function() {
	SimpleLogger()->info("This is a message inside a cron function");
}
*/

/*
add_action("init", function() {

	global $wp_current_filter;

	$doing_cron = get_transient( 'doing_cron' );
	$const_doing_cron = defined('DOING_CRON') && DOING_CRON;

	if ($const_doing_cron) {

		$current_filter = current_filter();

		SimpleLogger()->info("This is a message inside init, trying to log crons", array(
			"doing_cron" => simpleHistory::json_encode($doing_cron),
			"current_filter" => $current_filter,
			"wp_current_filter" => $wp_current_filter,
			"wp_current_filter" => simpleHistory::json_encode( $wp_current_filter ),
			"const_doing_cron" => simpleHistory::json_encode($const_doing_cron)
		));

	}

}, 100);
*/


/*
add_action("init", function() {

	#SimpleLogger()->info("This is a regular info message" . time());

}, 100);
// */

Youez - 2016 - github.com/yon3zu
LinuXploit