Server IP : 172.67.214.6 / Your IP : 216.73.216.73 Web Server : LiteSpeed System : Linux premium900.web-hosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 User : redwjova ( 1790) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/redwjova/sort.llc/wp-content/plugins/ultimate-post/classes/ |
Upload File : |
<?php /** * Cache Designs/Templates/Starter Sites. * @package ULTP\Caches * @since v.1.0.0 */ namespace ULTP; defined('ABSPATH') || exit; /* * Caches class. */ class Caches { /* * Setup class. * @since v.1.0.0 */ public function __construct() { add_action('rest_api_init', array($this, 'caches_register_rest_route')); } /** * GET/UPDATE templates/starter sites based on the API action */ public function caches_register_rest_route() { register_rest_route( 'ultp/v2', '/fetch_premade_data/', array( array( 'methods' => 'POST', 'callback' => array( $this, 'fetch_premade_data_callback'), 'permission_callback' => function () { return current_user_can( 'edit_others_posts' ); }, 'args' => array() ) ) ); } /** * Fetch Premade Data Callback * @since 4.0.0 * @param ARRAY * @return ARRAY | Premade Data ( templates/starter sites ) */ public function fetch_premade_data_callback($request) { $post = $request->get_params(); $type = isset($post['type']) ? ultimate_post()->ultp_rest_sanitize_params($post['type']) : ''; if ( $type == 'fetch_all_data' ) { $this->fetch_all_data_callback([]); return [ 'success'=> true, 'message'=> __('Data Fetched!!!', 'ultimate-post') ]; } else { try { $upload_dir_url = wp_upload_dir(); $dir = trailingslashit($upload_dir_url['basedir']) . 'ultp/'; /* sync after 3 days */ if ( file_exists(trailingslashit(wp_upload_dir()['basedir']) . 'ultp/starter_lists.json') && time() - filemtime(trailingslashit(wp_upload_dir()['basedir']) . 'ultp/starter_lists.json') >= 2 * DAY_IN_SECONDS ) { $this->fetch_all_data_callback([]); } if ( $type == 'get_starter_lists_nd_design' ) { return array( 'success' => true, 'success2' => is_admin(), 'data' => array( "starter_lists" => file_exists( $dir . "starter_lists.json" ) ? ultimate_post()->get_path_file_contents($dir . "starter_lists.json") : $this->reset_premade_json_file('starter_lists'), "design" => file_exists( $dir . "design.json" ) ? ultimate_post()->get_path_file_contents($dir . "design.json") : $this->reset_premade_json_file('design') ) ); } else { $_path = $dir . $type . '.json'; return array( 'success' => true, 'data' => file_exists( $_path ) ? ultimate_post()->get_path_file_contents($_path) : $this->reset_premade_json_file($type) ); } } catch ( \Exception $e ) { return [ 'success'=> false, 'message'=> $e->getMessage() ]; } } } /** * ResetData from API * * @since v.2.4.4 * @param ARRAY * @return ARRAY | Data of the Design */ public function fetch_all_data_callback($request) { $upload = wp_upload_dir(); $upload_dir = trailingslashit($upload['basedir']) . 'ultp/'; if ( file_exists($upload_dir . '/template_nd_design.json') ) { wp_delete_file($upload_dir . '/template_nd_design.json'); } if ( file_exists($upload_dir . '/premade.json') ) { wp_delete_file($upload_dir . '/premade.json'); } if ( file_exists($upload_dir . '/design.json') ) { wp_delete_file($upload_dir . '/design.json'); } if ( file_exists($upload_dir . '/starter_lists.json') ) { wp_delete_file($upload_dir . '/starter_lists.json'); } $this->reset_premade_json_file('all'); return array('success' => true, 'message' => __('Data Fetched!!!', 'ultimate-post')); } /** * Get and save Source Data from the file or API * @since v.1.0.0 updated from 4.0.0 * @param STRING | Type (STRING) * @return ARRAY | Exception Message */ public function reset_premade_json_file( $type = 'all' ) { global $wp_filesystem; if (! $wp_filesystem ) { require_once( ABSPATH . 'wp-admin/includes/file.php' ); } WP_Filesystem(); $file_names = $type == 'all' ? array( 'starter_lists', 'design' ) : array( $type ); foreach ( $file_names as $key => $name ) { if ( $name == 'starter_lists' ) { $response = wp_remote_post( 'https://postxkit.wpxpo.com/wp-json/importer/site_lists', array( 'method' => 'POST', 'timeout' => 120, 'body' => array( 'ultp_ver' => ULTP_VER, ) ) ); } else { $response = wp_remote_post( 'https://ultp.wpxpo.com/wp-json/restapi/v2/design', array( 'method' => 'POST', 'timeout' => 120 ) ); } if ( !is_wp_error( $response ) ) { $path_url = $this->create_directory_for_premade( $name ); $wp_filesystem->put_contents($path_url. $name.'.json', $response['body']); if ( $type != 'all' ) { return $response['body']; } } } } /** * Create a Directory in Upload Folder * @since v.1.0.0 updated from 4.0.0 * @param File_Name * @return STRING | Directory Path */ public function create_directory_for_premade( $type = '' ) { try { global $wp_filesystem; if ( ! $wp_filesystem ) { require_once( ABSPATH . 'wp-admin/includes/file.php' ); } $upload_dir_url = wp_upload_dir(); $dir = trailingslashit($upload_dir_url['basedir']) . 'ultp/'; WP_Filesystem( false, $upload_dir_url['basedir'], true ); if ( ! $wp_filesystem->is_dir( $dir ) ) { $wp_filesystem->mkdir( $dir ); } if ( !file_exists($dir . $type. '.json') ) { fopen( $dir . $type. '.json', "w" ); //phpcs:ignore } return $dir; } catch ( \Exception $e ) { return [ 'success'=> false, 'message'=> $e->getMessage() ]; } } }