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();