403Webshell
Server IP : 3.93.235.159  /  Your IP : 216.73.216.140
Web Server : Apache
System : Linux ip-172-26-0-169 5.10.0-46-cloud-amd64 #1 SMP Debian 5.10.262-1 (2026-07-31) x86_64
User : bitnami ( 1000)
PHP Version : 8.2.9
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /bitnami/wordpress/wp-content/plugins/send-app/modules/admin/components/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /bitnami/wordpress/wp-content/plugins/send-app/modules/admin/components/feedback.php
<?php

namespace Send_App\Modules\Admin\Components;

use Send_App\Core\API;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

class Feedback {
	public function __construct() {
		add_action( 'current_screen', function () {
			if ( ! $this->is_plugins_screen() ) {
				return;
			}

			add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_feedback_assets' ] );
			add_action( 'admin_footer', [ $this, 'print_deactivate_feedback_dialog' ] );
		} );

		add_action( 'wp_ajax_send_app_deactivate_feedback', [ $this, 'ajax_send_app_deactivate_feedback' ] );
	}

	private function is_plugins_screen(): bool {
		$screen = get_current_screen();
		if ( ! $screen ) {
			return false;
		}
		return in_array( $screen->id, [ 'plugins' ], true );
	}

	public function enqueue_feedback_assets() {
		$script_asset_path = SEND_ASSETS_PATH . 'js/send-app-feedback.asset.php';

		$script_asset = require $script_asset_path;

		wp_register_script(
			'send-app-feedback',
			SEND_ASSETS_URL . 'js/send-app-feedback.js',
			$script_asset['dependencies'],
			$script_asset['version'],
			true
		);
		wp_set_script_translations( 'send-app-feedback', 'send-app' );
		wp_enqueue_script( 'send-app-feedback' );

		$style_asset_path = SEND_ASSETS_PATH . 'css/send-app-feedback.asset.php';

		$style_asset = require $style_asset_path;

		wp_enqueue_style(
			'send-app-feedback',
			SEND_ASSETS_URL . 'css/send-app-feedback.css',
			$style_asset['dependencies'],
			$style_asset['version']
		);
	}

	public function print_deactivate_feedback_dialog() {
		?>
		<dialog id="send-app-deactivate-feedback-modal">
			<div id="send-app-deactivate-feedback-dialog-header">
				<img src="<?php echo esc_url( SEND_ASSETS_URL . 'images/send-icon.svg' ); ?>" alt="" aria-hidden="true" class="send-app-feedback-icon" />
				<span id="send-app-deactivate-feedback-dialog-header-title"><?php echo esc_html__( 'Quick Feedback', 'send-app' ); ?></span>
			</div>
			<form id="send-app-deactivate-feedback-dialog-form" method="post">
				<?php wp_nonce_field( 'send_app_deactivate_feedback' ); ?>
				<input type="hidden" name="action" value="send_app_deactivate_feedback" />

				<div id="send-app-deactivate-feedback-dialog-form-caption"><?php echo esc_html__( 'If you have a moment, please share why you are deactivating Send:', 'send-app' ); ?></div>
				<div id="send-app-deactivate-feedback-dialog-form-body">
					<div class="send-app-deactivate-feedback-dialog-input-wrapper">
						<input id="send-app-deactivate-feedback-no_longer_needed" class="send-app-deactivate-feedback-dialog-input" type="radio" name="reason_key" value="no_longer_needed" />
						<label for="send-app-deactivate-feedback-no_longer_needed" class="send-app-deactivate-feedback-dialog-label"><?php echo esc_html__( 'I no longer need the plugin', 'send-app' ); ?></label>
					</div>
					<div class="send-app-deactivate-feedback-dialog-input-wrapper">
						<input id="send-app-deactivate-feedback-found_a_better_plugin" class="send-app-deactivate-feedback-dialog-input" type="radio" name="reason_key" value="found_a_better_plugin" />
						<label for="send-app-deactivate-feedback-found_a_better_plugin" class="send-app-deactivate-feedback-dialog-label"><?php echo esc_html__( 'I found a better plugin', 'send-app' ); ?></label>
					</div>
					<div class="send-app-deactivate-feedback-dialog-input-wrapper">
						<input id="send-app-deactivate-feedback-couldnt_get_the_plugin_to_work" class="send-app-deactivate-feedback-dialog-input" type="radio" name="reason_key" value="couldnt_get_the_plugin_to_work" />
						<label for="send-app-deactivate-feedback-couldnt_get_the_plugin_to_work" class="send-app-deactivate-feedback-dialog-label"><?php echo esc_html__( 'I couldn\'t get the plugin to work', 'send-app' ); ?></label>
					</div>
					<div class="send-app-deactivate-feedback-dialog-input-wrapper">
						<input id="send-app-deactivate-feedback-temporary_deactivation" class="send-app-deactivate-feedback-dialog-input" type="radio" name="reason_key" value="temporary_deactivation" />
						<label for="send-app-deactivate-feedback-temporary_deactivation" class="send-app-deactivate-feedback-dialog-label"><?php echo esc_html__( 'It\'s a temporary deactivation', 'send-app' ); ?></label>
					</div>
					<div class="send-app-deactivate-feedback-dialog-input-wrapper">
						<input id="send-app-deactivate-feedback-other" class="send-app-deactivate-feedback-dialog-input" type="radio" name="reason_key" value="other" />
						<label for="send-app-deactivate-feedback-other" class="send-app-deactivate-feedback-dialog-label"><?php echo esc_html__( 'Other', 'send-app' ); ?></label>
						<div class="send-app-feedback-text-wrapper">
							<div class="send-app-feedback-hint"><?php echo esc_html__( 'Reason', 'send-app' ); ?></div>
							<input class="send-app-feedback-text" type="text" name="reason_other" placeholder="<?php echo esc_attr__( 'Type the reason for deactivation', 'send-app' ); ?>" />
						</div>
					</div>
				</div>

				<div class="send-app-dialog-buttons-wrapper">
					<button type="button" class="send-app-dialog-skip"><?php echo esc_html__( 'Skip & Deactivate', 'send-app' ); ?></button>
					<button type="button" class="send-app-dialog-submit"><?php echo esc_html__( 'Submit & Deactivate', 'send-app' ); ?></button>
				</div>
			</form>
		</dialog>
		<?php
	}

	public function ajax_send_app_deactivate_feedback() {
		$wpnonce = isset( $_POST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_POST['_wpnonce'] ) ) : '';
		if ( ! wp_verify_nonce( $wpnonce, 'send_app_deactivate_feedback' ) ) {
			wp_send_json_error();
		}

		if ( ! current_user_can( 'activate_plugins' ) ) {
			wp_send_json_error( 'Permission denied' );
		}

		$reason_key  = isset( $_POST['reason_key'] ) ? sanitize_text_field( wp_unslash( $_POST['reason_key'] ) ) : '';
		$reason_text = '';
		if ( $reason_key ) {
			$field_name = 'reason_' . $reason_key;
			$reason_text = isset( $_POST[ $field_name ] ) ? sanitize_text_field( wp_unslash( $_POST[ $field_name ] ) ) : '';
		}

		API::make_request( 'POST', 'user-feedback/deactivation', [
			'type'  => $reason_key,
			'text' => $reason_text,
		] );

		wp_send_json_success();
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit