at path:
ROOT
/
wp-content
/
plugins
/
tutor
/
helpers
/
TemplateImportHelper.php
run:
R
W
Run
DateTimeHelper.php
6.09 KB
2026-04-14 05:34:27
R
W
Run
Delete
Rename
HttpHelper.php
3.72 KB
2026-04-14 05:34:27
R
W
Run
Delete
Rename
PluginInstaller.php
3.17 KB
2026-04-14 05:34:27
R
W
Run
Delete
Rename
QueryHelper.php
36.72 KB
2026-04-14 05:34:27
R
W
Run
Delete
Rename
SessionHelper.php
1.81 KB
2026-04-14 05:34:27
R
W
Run
Delete
Rename
TemplateImportHelper.php
3.5 KB
2026-04-14 05:34:27
R
W
Run
Delete
Rename
ValidationHelper.php
10.91 KB
2026-04-14 05:34:27
R
W
Run
Delete
Rename
error_log
up
📄
TemplateImportHelper.php
Save
<?php /** * TemplateImportHelper methods * * @package Tutor\Helpers * @author Tutor <support@themeum.com> * @link https://tutor.com * @since 3.6.0 */ namespace Tutor\Helpers; use Tutor\Traits\JsonResponse; /** * TemplateImportHelper methods */ class TemplateImportHelper { use JsonResponse; /** * Template list endpoint. * * @since 3.6.0 * * @var string */ public $template_list_endpoint; /** * Template download endpoint. * * @since 3.6.0 * * @var string */ public $template_download_endpoint; /** * Constructor. * * @since 3.6.0 * * @return void */ public function __construct() { $this->template_list_endpoint = self::make_url( 'theme-templates' ); $this->template_download_endpoint = self::make_url( 'theme-template-download' ); } /** * Get base url. * * @since 3.6.0 * * @return string The base URL for the template import API. */ private static function get_base_url() { $url = 'https://tutorlms.com/wp-json/themeum-products/v1/tutor'; if ( defined( 'TEMPLATE_IMPORT_BASE_URL' ) && TEMPLATE_IMPORT_BASE_URL ) { $url = TEMPLATE_IMPORT_BASE_URL; } return $url; } /** * Make url * * @since 3.6.0 * * @param string $url_path url path. * * @return string full url. */ public static function make_url( $url_path ) { return self::get_base_url() . '/' . ltrim( $url_path, '/' ); } /** * Get Template list. * * @since 3.6.0 * * @throws \Exception If there is an error fetching or decoding the templates. */ public function get_template_list() { try { $response = wp_remote_get( $this->template_list_endpoint, array( 'headers' => array( 'Secret-Key' => 't344d5d71sae7dcb546b8cf55e594808', ), ) ); $response_status_code = wp_remote_retrieve_response_code( $response ); if ( is_wp_error( $response ) ) { throw new \Exception( 'Failed to fetch templates: ' . $response->get_error_message() ); } $template_list = json_decode( wp_remote_retrieve_body( $response ), true ); if ( json_last_error() !== JSON_ERROR_NONE ) { throw new \Exception( 'Failed to decode JSON response: ' . json_last_error_msg() ); } if ( 200 !== $response_status_code ) { throw new \Exception( 'Failed to fetch templates: ' . $template_list['response'] ); } return $template_list['body_response']; } catch ( \Exception $e ) { return array(); } } /** * Get Template download url * * @since 3.6.0 * * @param string $template_id The ID of the template to download. * * * return string The download URL for the specified template. */ public function get_template_download_url( $template_id ) { $tutor_license_info = get_option( 'tutor_license_info' ); $website_url = get_site_url(); $args = array( 'body' => array( 'slug' => $template_id, 'website_url' => $website_url, 'license_key' => $tutor_license_info['license_key'] ?? '', ), 'headers' => array( 'Secret-Key' => 't344d5d71sae7dcb546b8cf55e594808', ), ); $response = wp_remote_post( $this->template_download_endpoint, $args ); $response_body = wp_remote_retrieve_body( $response ); $data = json_decode( $response_body, true ); if ( is_wp_error( $response ) ) { self::json_response( $data['response'], null, 400 ); } if ( empty( $data['body_response'] ) ) { self::json_response( $data['response'], null, 400 ); } $template_download_url = $data['body_response']; return $template_download_url; } }