PHP 8.2.31
Preview: PaymentGatewaySuggestions.php Size: 5.07 KB
/home/nshryvcy/himaltourism.com/wp-content/plugins/woocommerce/src/Admin/API/PaymentGatewaySuggestions.php

<?php
/**
 * REST API Payment Gateway Suggestions Controller
 *
 * Handles requests to install and activate depedent plugins.
 */

namespace Automattic\WooCommerce\Admin\API;

use Automattic\WooCommerce\Admin\Features\PaymentGatewaySuggestions\DefaultPaymentGateways;
use Automattic\WooCommerce\Admin\Features\PaymentGatewaySuggestions\Init as Suggestions;

defined( 'ABSPATH' ) || exit;

/**
 * PaymentGatewaySuggetsions Controller.
 *
 * @internal
 * @extends WC_REST_Data_Controller
 */
class PaymentGatewaySuggestions extends \WC_REST_Data_Controller {
	/**
	 * Endpoint namespace.
	 *
	 * @var string
	 */
	protected $namespace = 'wc-admin';

	/**
	 * Route base.
	 *
	 * @var string
	 */
	protected $rest_base = 'payment-gateway-suggestions';

	/**
	 * Register routes.
	 */
	public function register_routes() {

		register_rest_route(
			$this->namespace,
			'/' . $this->rest_base,
			array(
				array(
					'methods'             => \WP_REST_Server::READABLE,
					'callback'            => array( $this, 'get_suggestions' ),
					'permission_callback' => array( $this, 'get_permission_check' ),
					'args'                => array(
						'force_default_suggestions' => array(
							'type'        => 'boolean',
							'description' => __( 'Return the default payment suggestions when woocommerce_show_marketplace_suggestions and woocommerce_setting_payments_recommendations_hidden options are set to no', 'woocommerce' ),
						),
					),
				),
				'schema' => array( $this, 'get_item_schema' ),
			)
		);

		register_rest_route(
			$this->namespace,
			'/' . $this->rest_base . '/dismiss',
			array(
				array(
					'methods'             => \WP_REST_Server::CREATABLE,
					'callback'            => array( $this, 'dismiss_payment_gateway_suggestion' ),
					'permission_callback' => array( $this, 'get_permission_check' ),
				),
				'schema' => array( $this, 'get_item_schema' ),
			)
		);

	}

	/**
	 * Check if a given request has access to manage plugins.
	 *
	 * @param  WP_REST_Request $request Full details about the request.
	 * @return WP_Error|boolean
	 */
	public function get_permission_check( $request ) {
		if ( ! current_user_can( 'install_plugins' ) ) {
			return new \WP_Error( 'woocommerce_rest_cannot_update', __( 'Sorry, you cannot manage plugins.', 'woocommerce' ), array( 'status' => rest_authorization_required_code() ) );
		}
		return true;
	}

	/**
	 * Return suggested payment gateways.
	 *
	 * @param WP_REST_Request $request Full details about the request.
	 * @return \WP_Error|\WP_HTTP_Response|\WP_REST_Response
	 */
	public function get_suggestions( $request ) {

		$should_display = Suggestions::should_display();
		$force_default  = $request->get_param( 'force_default_suggestions' );

		if ( $should_display ) {
			return Suggestions::get_suggestions();
		} elseif ( false === $should_display && true === $force_default ) {
			return rest_ensure_response( Suggestions::get_suggestions( DefaultPaymentGateways::get_all() ) );
		}

		return rest_ensure_response( array() );
	}

	/**
	 * Dismisses suggested payment gateways.
	 *
	 * @return \WP_Error|\WP_HTTP_Response|\WP_REST_Response
	 */
	public function dismiss_payment_gateway_suggestion() {
		$success = Suggestions::dismiss();
		return rest_ensure_response( $success );
	}

	/**
	 * Get the schema, conforming to JSON Schema.
	 *
	 * @return array
	 */
	public function get_item_schema() {
		$schema = array(
			'$schema'    => 'http://json-schema.org/draft-04/schema#',
			'title'      => 'payment-gateway-suggestions',
			'type'       => 'array',
			'properties' => array(
				'content'                 => array(
					'description' => __( 'Suggestion description.', 'woocommerce' ),
					'type'        => 'string',
					'context'     => array( 'view', 'edit' ),
					'readonly'    => true,
				),
				'id'                      => array(
					'description' => __( 'Suggestion ID.', 'woocommerce' ),
					'type'        => 'string',
					'context'     => array( 'view', 'edit' ),
					'readonly'    => true,
				),
				'image'                   => array(
					'description' => __( 'Gateway image.', 'woocommerce' ),
					'type'        => 'string',
					'context'     => array( 'view', 'edit' ),
					'readonly'    => true,
				),
				'is_visible'              => array(
					'description' => __( 'Suggestion visibility.', 'woocommerce' ),
					'type'        => 'boolean',
					'context'     => array( 'view', 'edit' ),
					'readonly'    => true,
				),
				'plugins'                 => array(
					'description' => __( 'Array of plugin slugs.', 'woocommerce' ),
					'type'        => 'array',
					'context'     => array( 'view', 'edit' ),
					'readonly'    => true,
				),
				'recommendation_priority' => array(
					'description' => __( 'Priority of recommendation.', 'woocommerce' ),
					'type'        => 'integer',
					'context'     => array( 'view', 'edit' ),
					'readonly'    => true,
				),
				'title'                   => array(
					'description' => __( 'Gateway title.', 'woocommerce' ),
					'type'        => 'string',
					'context'     => array( 'view', 'edit' ),
					'readonly'    => true,
				),
			),
		);

		return $this->add_additional_fields_schema( $schema );
	}
}

Directory Contents

Dirs: 2 × Files: 40

Name Size Perms Modified Actions
Reports DIR
- drwxr-xr-x 2026-03-03 06:10:19
Edit Download
Templates DIR
- drwxr-xr-x 2026-03-03 06:10:19
Edit Download
2.15 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
3.40 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
2.11 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
939 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.12 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
4.15 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.82 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.70 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
8.15 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
17.71 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
4.12 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
6.67 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
6.02 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
5.74 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
3.36 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
6.04 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
2.10 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
4.83 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
2.39 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
25.72 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.82 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.80 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
16.32 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
31.51 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
6.01 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
7.71 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
9.19 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
5.07 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
19.88 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
4.46 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
4.36 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
458 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
3.06 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
1.30 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
9.70 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
9.51 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
5.97 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
879 B lrw-r--r-- 2026-03-03 06:10:19
Edit Download
4.90 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download
6.09 KB lrw-r--r-- 2026-03-03 06:10:19
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).