HEX
Server: nginx/1.27.1
System: Linux in-4 5.15.0-131-generic #141-Ubuntu SMP Fri Jan 10 21:18:28 UTC 2025 x86_64
User: ilikadirect (1186)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source
Upload Files
File: /storage/v6964/ilikadirect/public_html/wp-content/plugins/appexperts/app-expert.php
<?php
/*
Plugin Name: AppExperts
Description: Integrate App Experts builder functionality with your wordpress website
Version: 1.2.1
Author: AppExperts
Author URI: https://appexperts.io/
License: GPLv2 or later
Text Domain: app-expert
*/
if (!defined('ABSPATH')) {
	exit();
}

define('APP_EXPERT_PATH',   plugin_dir_path(__FILE__));
define('APP_EXPERT_URL',  plugin_dir_url(__FILE__));
define('APP_EXPERT_PLUGIN_VERSION',  '1.1');  // used in assets
define('APP_EXPERT_API_NAMESPACE',  'app-expert/v1');


if (!class_exists('App_Expert')) {
	class App_Expert
	{
		public function __construct()
		{
			register_activation_hook(__FILE__, array($this, 'plugin_activated'));

			$this->register_freemius();			
			$this->includes();			
		}		

		public function register_freemius(){

				// Create a helper function for easy SDK access.
				function app_experts_fs() {
					global $app_experts_fs;
			
					if ( ! isset( $app_experts_fs ) ) {
						// Include Freemius SDK.
						require_once dirname(__FILE__) . '/freemius/start.php';
			
						$app_experts_fs = fs_dynamic_init( array(
							'id'                  => '8460',
							'slug'                => 'appexperts',
							'type'                => 'plugin',
							'public_key'          => 'pk_45a4ed26beae8ad2f14c9618984f9',
							'is_premium'          => false,
							'has_addons'          => false,
							'has_paid_plans'      => false,
							'menu'                => array(
								'slug'           => 'appexperts',
								'override_exact' => true,
								'account'        => false,
								'contact'        => false,
								'support'        => false,
								'parent'         => array(
									'slug' => 'options-general.php',
								),
							),
							// Set the SDK to work in a sandbox mode (for development & testing).
							// IMPORTANT: MAKE SURE TO REMOVE SECRET KEY BEFORE DEPLOYMENT.
							'secret_key'          => 'sk_sxbpc(F9V5!SU^^nER:Zmufa5N0S8',
						) );
					}
			
					return $app_experts_fs;
				}
			
				// Init Freemius.
				app_experts_fs();
				// Signal that SDK was initiated.
				do_action( 'app_experts_fs_loaded' );
			
				function app_experts_fs_settings_url() {
					return admin_url( 'options-general.php?page=App+Experts' );
				}
			
				app_experts_fs()->add_filter('connect_url', 'app_experts_fs_settings_url');
				app_experts_fs()->add_filter('after_skip_url', 'app_experts_fs_settings_url');
				app_experts_fs()->add_filter('after_connect_url', 'app_experts_fs_settings_url');
				app_experts_fs()->add_filter('after_pending_connect_url', 'app_experts_fs_settings_url');
			
		}
			
		public function includes()
		{
			require_once APP_EXPERT_PATH . 'includes/authentication/app-expert-api-token.php';
			require_once APP_EXPERT_PATH . 'includes/authentication/app-expert-jwt.php';
			require_once APP_EXPERT_PATH . 'includes/authentication/app-expert-authentication.php';
			require_once APP_EXPERT_PATH . 'includes/authentication/app-expert-login.php';

			// Woocommerce
			require_once APP_EXPERT_PATH . 'includes/woocommerce/app-expert-woocommerce-authentication.php';
			require_once APP_EXPERT_PATH . 'includes/woocommerce/app-expert-woocommerce-checkout.php';
			
			
			require_once APP_EXPERT_PATH . 'vendor/autoload.php';
			add_action('rest_api_init', array($this, 'init_app_expert_endpoints'));

			// Front Pages
			require_once APP_EXPERT_PATH . 'includes/app-expert-page-manager.php';
			
			// Admin settings page
			require_once APP_EXPERT_PATH . 'includes/admin/app-expert-settings-page.php';
			
			// category images
			require_once APP_EXPERT_PATH . 'includes/admin/app-expert-category-images.php';
		}

		public function init_app_expert_endpoints()
		{

			require_once APP_EXPERT_PATH . 'includes/controller/response-meta-data/app-expert-i-response-meta-data.php';
			require_once APP_EXPERT_PATH . 'includes/controller/response-meta-data/app-expert-response-meta-data.php';
			require_once APP_EXPERT_PATH . 'includes/controller/response-meta-data/app-expert-term-meta-data.php';
			require_once APP_EXPERT_PATH . 'includes/controller/response-meta-data/app-expert-image-meta-data.php';
			require_once APP_EXPERT_PATH . 'includes/controller/response-meta-data/app-expert-gallery-videos-meta-data.php';
			require_once APP_EXPERT_PATH . 'includes/controller/response-meta-data/app-expert-supports-gallery-meta-data.php';
			require_once APP_EXPERT_PATH . 'includes/controller/response-meta-data/app-expert-tag-meta-data.php';
			require_once APP_EXPERT_PATH . 'includes/controller/response-meta-data/app-expert-category-meta-data.php';
			require_once APP_EXPERT_PATH . 'includes/controller/response-meta-data/app-expert-author-meta-data.php';
			require_once APP_EXPERT_PATH . 'includes/controller/response-meta-data/app-expert-cpt-term-meta-data.php';
			require_once APP_EXPERT_PATH . 'includes/controller/response-meta-data/app-expert-tax-image-meta-data.php';
			require_once APP_EXPERT_PATH . 'includes/controller/response-meta-data/app-expert-tax-post-types-meta-data.php';
			require_once APP_EXPERT_PATH . 'includes/controller/response-meta-data/app-expert-post-translation-meta-data.php';

			require_once APP_EXPERT_PATH . 'includes/handler/app-expert-hierarchy-handler.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-response.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-request.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-posts-controller.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-categories-controller.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-tags-controller.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-pages-controller.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-users-controller.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-forgot-password-controller.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-change-password-controller.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-register-controller.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-comments-controller.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-types-controller.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-taxonomies-controller.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-cpt-controller.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-ct-controller.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-search-controller.php';
			require_once APP_EXPERT_PATH . 'includes/controller/app-expert-settings-controller.php';

			require_once APP_EXPERT_PATH . 'includes/handler/app-expert-cpt-handler.php';
			require_once APP_EXPERT_PATH . 'includes/handler/app-expert-ct-handler.php';
			
			// Woocommerce
			require_once APP_EXPERT_PATH . 'includes/woocommerce/controller/app-expert-wc-rest-products-controller.php';
                        require_once APP_EXPERT_PATH . 'includes/woocommerce/controller/app-expert-wc-orders-controller.php';
                        
                        // WPML
                        /*if (in_array('sitepress-multilingual-cms/sitepress.php', apply_filters('active_plugins', get_option('active_plugins'))) &&
                            in_array('woocommerce-multilingual/wpml-woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) {*/
                            
                            require_once APP_EXPERT_PATH . 'includes/controller/app-expert-wpml-controller.php';
                        //}

		}

		public function plugin_activated()
		{
			$settings = get_option('app_expert_settings');

			if (!isset($settings['secret_key']) || empty($settings['secret_key'])) {

				$settings['secret_key'] = wp_hash(get_site_url() . mt_rand(0, 10000));
				update_option('app_expert_settings', $settings);
			}
			
			
			// Add custom page renderer page
			if (!get_page_by_path(App_Expert_Page_Manager::PAGE_RENDERER_SLUG)) {
				$post_details = array(
					'post_title'    => 'App Experts Page Renderer',
					'post_content'  => 'You are not authorized to access this page directly',
					'post_status'   => 'publish',
					'post_author'   => 1,
					'post_type' => 'page',
					'post_slug' => App_Expert_Page_Manager::PAGE_RENDERER_SLUG
				);
				wp_insert_post($post_details);
			}

			// Add custom checkout page
			if (!get_page_by_path(App_Expert_Woocommerce_Checkout::MOBILE_CHECKOUT_PAGE_SLUG)) {

				$post_details = array(
					'post_title'    => 'Mobile App Checkout Page',
					'post_content'  => '[woocommerce_checkout]',
					'post_status'   => 'publish',
					'post_author'   => 1,
					'post_type' => 'page',
					'post_slug' => App_Expert_Woocommerce_Checkout::MOBILE_CHECKOUT_PAGE_SLUG
				);
				wp_insert_post($post_details);
			}

			// Add custom checkout page
			if (!get_page_by_path(App_Expert_Woocommerce_Checkout::MOBILE_THANK_YOU_PAGE_SLUG)) {

				$post_details = array(
					'post_title'    => 'Mobile App Woocommerce Thank You',
					'post_content'  => 'You are not authorized to access this page directly',
					'post_status'   => 'publish',
					'post_author'   => 1,
					'post_type' => 'page',
					'post_slug' => App_Expert_Woocommerce_Checkout::MOBILE_THANK_YOU_PAGE_SLUG
				);
				wp_insert_post($post_details);
			}
		}
	}
}

new App_Expert();