[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.117.145.141: ~ $
<?php

namespace WPForms\Admin\Tools\Views;

use WPForms\Logger\Log;
use WPForms\Logger\ListTable;

/**
 * Class Logs.
 *
 * @since 1.6.6
 */
class Logs extends View {

	/**
	 * View slug.
	 *
	 * @since 1.6.6
	 *
	 * @var string
	 */
	protected $slug = 'logs';

	/**
	 * ListTable instance.
	 *
	 * @since 1.6.6
	 *
	 * @var ListTable
	 */
	private $list_table = [];

	/**
	 * Init view.
	 *
	 * @since 1.6.6
	 */
	public function init() {

		$this->logs_controller();
	}

	/**
	 * Get view label.
	 *
	 * @since 1.6.6
	 *
	 * @return string
	 */
	public function get_label() {

		return esc_html__( 'Logs', 'wpforms-lite' );
	}

	/**
	 * Checking user capability to view.
	 *
	 * @since 1.6.6
	 *
	 * @return bool
	 */
	public function check_capability() {

		return wpforms_current_user_can();
	}

	/**
	 * Get ListTable instance.
	 *
	 * @since 1.6.6
	 *
	 * @return ListTable
	 */
	private function get_list_table(): ListTable {

		if ( empty( $this->list_table ) ) {
			$log_obj = wpforms()->obj( 'log' );

			if ( $log_obj ) {
				$this->list_table = $log_obj->get_list_table();
			}
		}

		return $this->list_table;
	}

	/**
	 * Display view content.
	 *
	 * @since 1.6.6
	 */
	public function display() {
		?>

		<form action="<?php echo esc_url( $this->get_link() ); ?>" method="POST">
			<?php $this->nonce_field(); ?>
			<div class="wpforms-setting-row tools">
				<h4><?php esc_html_e( 'Log Settings', 'wpforms-lite' ); ?></h4>
				<p><?php esc_html_e( 'Enable and configure the logging functionality while debugging behavior of various parts of the plugin, including form and entry processing.', 'wpforms-lite' ); ?></p>
			</div>
			<div class="wpforms-setting-row tools wpforms-setting-row-toggle wpforms-clear" id="wpforms-setting-row-logs-enable">
				<div class="wpforms-setting-label">
					<label for="wpforms-setting-logs-enable"><?php esc_html_e( 'Enable Logs', 'wpforms-lite' ); ?></label>
				</div>
				<div class="wpforms-setting-field">
					<span class="wpforms-toggle-control">
						<input type="checkbox" id="wpforms-setting-logs-enable" name="logs-enable" value="1" <?php checked( wpforms_setting( 'logs-enable' ) ); ?>>
						<label class="wpforms-toggle-control-icon" for="wpforms-setting-logs-enable"></label>
						<label for="wpforms-setting-logs-enable" class="wpforms-toggle-control-status" data-on="On" data-off="Off">
							<?php wpforms_setting( 'logs-enable' ) ? esc_html_e( 'On', 'wpforms-lite' ) : esc_html_e( 'Off', 'wpforms-lite' ); ?>
						</label>
					</span>
					<p class="desc">
						<?php esc_html_e( 'Start logging WPForms-related events. This is recommended only while debugging.', 'wpforms-lite' ); ?>
					</p>
				</div>
			</div>
			<div class="wpforms-logs-settings <?php echo wpforms_setting( 'logs-enable' ) ? '' : 'wpforms-hidden'; ?>">
				<?php
					$this->types_block();
					$this->user_roles_block();
					$this->users_block();
				?>
			</div>

			<p class="submit">
				<button class="wpforms-btn wpforms-btn-md wpforms-btn-orange" name="wpforms-settings-submit">
					<?php esc_html_e( 'Save Settings', 'wpforms-lite' ); ?>
				</button>
			</p>
		</form>

		<?php
		$logs_list_table = $this->get_list_table();

		if ( wpforms_setting( 'logs-enable' ) || $logs_list_table->get_total() ) {
			$logs_list_table->display_page();
		}
	}

	/**
	 * Types block.
	 *
	 * @since 1.6.6
	 */
	private function types_block() {
		?>

		<div
				class="wpforms-setting-row tools wpforms-setting-row-select wpforms-clear"
			 	id="wpforms-setting-row-log-types">
			<div class="wpforms-setting-label">
				<label for="wpforms-setting-logs-types"><?php esc_html_e( 'Log Types', 'wpforms-lite' ); ?></label>
			</div>
			<div class="wpforms-setting-field">
				<span class="choicesjs-select-wrap">
					<select id="wpforms-setting-logs-types" class="choicesjs-select" name="logs-types[]" multiple size="1">
						<?php
						$log_types = wpforms_setting( 'logs-types', [] );

						foreach ( Log::get_log_types() as $slug => $name ) {
							?>
							<option value="<?php echo esc_attr( $slug ); ?>" <?php selected( in_array( $slug, $log_types, true ) ); ?> >
								<?php echo esc_html( $name ); ?>
							</option>
						<?php } ?>
					</select>
				</span>
				<p class="desc"><?php esc_html_e( 'Select the types of events you want to log. Everything is logged by default.', 'wpforms-lite' ); ?></p>
			</div>
		</div>
	<?php
	}

	/**
	 * User roles block.
	 *
	 * @since 1.6.6
	 */
	private function user_roles_block() {
		?>

		<div
				class="wpforms-setting-row tools wpforms-setting-row-select wpforms-clear"
			 	id="wpforms-setting-row-log-user-roles">
			<div class="wpforms-setting-label">
				<label for="wpforms-setting-logs-user-roles"><?php esc_html_e( 'User Roles', 'wpforms-lite' ); ?></label>
			</div>
			<div class="wpforms-setting-field">
				<span class="choicesjs-select-wrap">
					<?php
					$logs_user_roles = wpforms_setting( 'logs-user-roles', [] );
					$roles           = wp_list_pluck( get_editable_roles(), 'name' );

					?>
					<select id="wpforms-setting-logs-user-roles" class="choicesjs-select" name="logs-user-roles[]" multiple size="1">
						<?php foreach ( $roles as $slug => $name ) { ?>
							<option value="<?php echo esc_attr( $slug ); ?>" <?php selected( in_array( $slug, $logs_user_roles, true ) ); ?> >
								<?php echo esc_html( $name ); ?>
							</option>
						<?php } ?>
					</select>
					<span class="hidden" id="wpforms-setting-logs-user-roles-selectform-spinner">
						<i class="fa fa-cog fa-spin fa-lg"></i>
					</span>
				</span>
				<p class="desc">
					<?php esc_html_e( 'Select the user roles you want to log. All roles are logged by default.', 'wpforms-lite' ); ?>
				</p>
			</div>
		</div>
	<?php
	}

	/**
	 * Users block.
	 *
	 * @since 1.6.6
	 */
	private function users_block() {
		?>

		<div
				class="wpforms-setting-row tools wpforms-setting-row-select wpforms-clear"
			 	id="wpforms-setting-row-log-users">
			<div class="wpforms-setting-label">
				<label for="wpforms-setting-logs-users"><?php esc_html_e( 'Users', 'wpforms-lite' ); ?></label>
			</div>
			<div class="wpforms-setting-field">
				<span class="choicesjs-select-wrap">
					<select id="wpforms-setting-logs-users" class="choicesjs-select" name="logs-users[]" multiple size="1">
						<?php
						$users      = get_users( [ 'fields' => [ 'ID', 'display_name' ] ] );
						$users      = wp_list_pluck( $users, 'display_name', 'ID' );
						$logs_users = wpforms_setting( 'logs-users', [] );

						foreach ( $users as $slug => $name ) {
							?>
							<option value="<?php echo esc_attr( $slug ); ?>" <?php selected( in_array( $slug, $logs_users, true ) ); ?> >
								<?php echo esc_html( $name ); ?>
							</option>
						<?php } ?>
					</select>
					<span class="hidden" id="wpforms-setting-logs-users-selectform-spinner">
						<i class="fa fa-cog fa-spin fa-lg"></i>
					</span>
				</span>
				<p class="desc">
					<?php esc_html_e( 'Log events for specific users only. All users are logged by default.', 'wpforms-lite' ); ?>
				</p>
			</div>
		</div>
	<?php
	}

	/**
	 * Controller.
	 *
	 * @since 1.6.6
	 */
	private function logs_controller() {

		if ( $this->verify_nonce() ) {
			$this->update_settings();
		}

		$logs_list_table = $this->get_list_table();

		$logs_list_table->process_admin_ui();
	}

	/**
	 * Update settings.
	 *
	 * @since 1.8.7
	 *
	 * @return void
	 */
	public function update_settings() {

		$settings                = get_option( 'wpforms_settings' );
		$was_enabled             = ! empty( $settings['logs-enable'] ) ? $settings['logs-enable'] : 0;
		$settings['logs-enable'] = filter_input( INPUT_POST, 'logs-enable', FILTER_VALIDATE_BOOLEAN );
		$logs_types              = filter_input( INPUT_POST, 'logs-types', FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_REQUIRE_ARRAY );
		$logs_user_roles         = filter_input( INPUT_POST, 'logs-user-roles', FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_REQUIRE_ARRAY );
		$logs_users              = filter_input( INPUT_POST, 'logs-users', FILTER_SANITIZE_NUMBER_INT, FILTER_REQUIRE_ARRAY );

		if ( $was_enabled ) {
			$settings['logs-types']      = $logs_types ? $logs_types : [];
			$settings['logs-user-roles'] = $logs_user_roles ? $logs_user_roles : [];
			$settings['logs-users']      = $logs_users ? array_map( 'absint', $logs_users ) : [];
		}

		wpforms_update_settings( $settings );
	}
}

Filemanager

Name Type Size Permission Actions
ActionScheduler.php File 1.37 KB 0644
ActionSchedulerList.php File 2.39 KB 0644
CodeSnippets.php File 2.78 KB 0644
Export.php File 8.82 KB 0644
Import.php File 11.35 KB 0644
Importer.php File 9.67 KB 0644
Logs.php File 8.2 KB 0644
System.php File 13.26 KB 0644
View.php File 1.7 KB 0644