[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.220.193.90: ~ $
<?php

// phpcs:ignore Generic.Commenting.DocComment.MissingShort
/** @noinspection PhpIllegalPsrClassPathInspection */

namespace WPForms\Logger;

/**
 * Class Log.
 *
 * @since 1.6.3
 */
class Log {

	/**
	 * Repository.
	 *
	 * @since 1.6.3
	 *
	 * @var Repository
	 */
	private $repository;

	/**
	 * List table.
	 *
	 * @since 1.6.3
	 *
	 * @var ListTable
	 */
	private $list_table;

	/**
	 * Register log hooks.
	 *
	 * @since 1.6.3
	 */
	public function hooks() {

		$this->repository = new Repository();

		add_action( 'shutdown', [ $this->repository, 'save' ] );

		add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_styles' ] );
		add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_scripts' ] );
		add_action( 'wp_ajax_wpforms_get_log_record', [ $this, 'get_record' ] );
	}

	/**
	 * Enqueue styles.
	 *
	 * @since 1.6.3
	 */
	public function enqueue_styles() {

		if ( ! $this->is_logger_page() ) {
			return;
		}

		$min = wpforms_get_min_suffix();

		wp_enqueue_style(
			'wpforms-tools-logger',
			WPFORMS_PLUGIN_URL . "assets/css/logger{$min}.css",
			[],
			WPFORMS_VERSION
		);
	}

	/**
	 * Enqueue styles.
	 *
	 * @since 1.6.3
	 */
	public function enqueue_scripts() {

		if ( ! $this->is_logger_page() ) {
			return;
		}

		$min = wpforms_get_min_suffix();

		wp_enqueue_script(
			'wpforms-tools-logger',
			WPFORMS_PLUGIN_URL . "assets/js/admin/logger/logger{$min}.js",
			[ 'jquery', 'jquery-confirm', 'wp-util' ],
			WPFORMS_VERSION,
			true
		);
	}

	/**
	 * Get log types.
	 *
	 * @since 1.6.3
	 *
	 * @return array
	 */
	public static function get_log_types() {

		return [
			'conditional_logic' => esc_html__( 'Conditional Logic', 'wpforms-lite' ),
			'entry'             => esc_html__( 'Entries', 'wpforms-lite' ),
			'error'             => esc_html__( 'Errors', 'wpforms-lite' ),
			'log'               => esc_html__( 'Log', 'wpforms-lite' ),
			'payment'           => esc_html__( 'Payment', 'wpforms-lite' ),
			'provider'          => esc_html__( 'Providers', 'wpforms-lite' ),
			'security'          => esc_html__( 'Security', 'wpforms-lite' ),
			'spam'              => esc_html__( 'Spam', 'wpforms-lite' ),
			'translation'       => esc_html__( 'Translation', 'wpforms-lite' ),
		];
	}

	/**
	 * Determine if it is a Logs page.
	 *
	 * @since 1.6.3
	 *
	 * @return bool
	 */
	private function is_logger_page() {

		return wpforms_is_admin_page( 'tools', 'logs' );
	}

	/**
	 * Create new record.
	 *
	 * @since 1.6.3
	 *
	 * @param string       $title    Record title.
	 * @param string       $message  Record message.
	 * @param array|string $types    Array, string, or string separated by comma types.
	 * @param int          $form_id  Record form ID.
	 * @param int          $entry_id Record entry ID.
	 * @param int          $user_id  Record user ID.
	 */
	public function add( $title, $message, $types, $form_id = 0, $entry_id = 0, $user_id = 0 ) {

		$this->repository->add( $title, $message, $types, $form_id, $entry_id, $user_id );
	}

	/**
	 * Check if the database table exists.
	 * Used in \WPForms_Install::maybe_create_tables() during plugin installation.
	 *
	 * @since 1.8.7
	 *
	 * @return bool
	 */
	public function table_exists(): bool {

		// phpcs:ignore WPForms.Formatting.EmptyLineBeforeReturn.RemoveEmptyLineBeforeReturnStatement
		return $this->repository->table_exists();
	}

	/**
	 * Create table for logs.
	 *
	 * @since 1.6.3
	 */
	public function create_table() {

		if ( $this->table_exists() ) {
			return;
		}

		$this->repository->create_table();
	}

	/**
	 * Get ListView.
	 *
	 * @since 1.6.3
	 *
	 * @return ListTable
	 */
	public function get_list_table() { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks

		if ( ! $this->list_table ) {
			$this->list_table = new ListTable( $this->repository );

			add_action( 'admin_print_scripts', [ $this->list_table, 'popup_template' ] );
		}

		return $this->list_table;
	}

	/**
	 * Json config for detail information about log record.
	 *
	 * @since 1.6.3
	 */
	public function get_record() {

		if (
			! check_ajax_referer( 'wpforms-admin', 'nonce', false ) ||
			! wpforms_current_user_can()
		) {
			wp_send_json_error( esc_html__( 'You do not have permission.', 'wpforms-lite' ) );
		}

		$id = filter_input( INPUT_GET, 'recordId', FILTER_VALIDATE_INT );

		if ( ! $id ) {
			wp_send_json_error( esc_html__( 'Record ID not found', 'wpforms-lite' ), 404 );
		}

		$item = $this->repository->record( $id );

		if ( $item === null ) {
			wp_send_json_error( esc_html__( 'No such record.', 'wpforms-lite' ), 404 );
		}

		wp_send_json_success(
			[
				'ID'        => absint( $item->get_id() ),
				'title'     => esc_html( $item->get_title() ),
				'message'   => wp_kses( $item->get_message(), [ 'pre' => [] ] ),
				'types'     => esc_html( implode( ', ', $item->get_types( 'label' ) ) ),
				'create_at' => esc_html( $item->get_date( 'full' ) ),
				'form_id'   => absint( $item->get_form_id() ),
				'entry_id'  => absint( $item->get_entry_id() ),
				'user_id'   => absint( $item->get_user_id() ),
				'form_url'  => admin_url( sprintf( 'admin.php?page=wpforms-builder&view=fields&form_id=%d', absint( $item->get_form_id() ) ) ),
				'entry_url' => admin_url( sprintf( 'admin.php?page=wpforms-entries&view=details&entry_id=%d', absint( $item->get_entry_id() ) ) ),
				'user_url'  => esc_url( get_edit_user_link( $item->get_user_id() ) ),
			]
		);
	}
}

Filemanager

Name Type Size Permission Actions
ListTable.php File 12.85 KB 0644
Log.php File 5.28 KB 0644
Record.php File 4.28 KB 0644
RecordQuery.php File 1.82 KB 0644
Records.php File 1.94 KB 0644
Repository.php File 5.95 KB 0644