Current File : /home/inlingua/www/bestbuyind/wp-content/plugins/vayu-blocks/inc/vayu-sites/app.php
<?php
//  Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

class VAYU_BLOCKS_SITES_APP{

	/**
	 * Constructor
	 *
	 * @since 1.0.0
	 */
	public function __construct() {
		add_action( 'rest_api_init', array( $this, 'register_routes' ) );

    add_action( 'wp_ajax_vayu_blocks_sites_ajax_handler_data', array( $this, 'import_data') );
    add_action( 'wp_ajax_vayu_blocks_sites_ajax_import_xml', array( $this, 'import_xml') );	
    add_action( 'wp_ajax_vayu_blocks_sites_ajax_cutomizer', array( $this, 'init_cutomizer') );
    add_action( 'wp_ajax_vayu_blocks_sites_aimport_options', array( $this, 'init_options') );
    add_action( 'wp_ajax_vayu_blocks_sites_import_widgets', array( $this, 'init_widgets' ) );
    add_action( 'wp_ajax_vayu_blocks_sites_core', array( $this, 'init_site_url' ) );

  }

  public function register_routes() {
    if(current_user_can('manage_options')){
      register_rest_route( 'ai/v1', 'vayu-site-builder', array(
        'methods' => 'POST',
        'callback' => array( $this, 'tp_install' ),
        'permission_callback' => '__return_true',
    ) );

      }

  }

  public function tp_install(WP_REST_Request $request){
      $request = $request->get_params();
      $params  = $request['params'];
    //  wp_send_json_success($params);
      new VAYU_BLOCKS_SITES_BUILDER_SETUP($params);
      return json_encode( array('status'=>true));
  }

  public function import_data() {
        if ( ! isset( $_POST['vsecurity'] ) || ! wp_verify_nonce( $_POST['vsecurity'], 'vayu_nonce' ) ) {
          wp_send_json_error( array( 'message' => 'Invalid nonce.' ) );
          wp_die();
      }


      if(isset( $_POST['data'] ) && current_user_can('manage_options')){

            $return = sanitize_url(  json_decode( wp_unslash( $_POST['data'] ))->data );
            VAYU_BLOCKS_SITES_IMPORT::instance()->get_import_data($return);
            wp_send_json_success( $return );
          } else{
            wp_send_json_success( array('status'=>false) );

          }
  }


  public function import_xml() {
    if ( ! isset( $_POST['vsecurity'] ) || ! wp_verify_nonce( $_POST['vsecurity'], 'vayu_nonce' ) ) {
      wp_send_json_error( array( 'message' => 'Invalid nonce.' ) );
      wp_die();
  }

  if(isset( $_POST['data'] ) && current_user_can('manage_options')){

          $return = sanitize_url(  json_decode( wp_unslash( $_POST['data'] ))->data );

        VAYU_BLOCKS_SITES_IMPORT::instance()->import_xml_data($return);
        wp_send_json_success( $return );
      } else{
        wp_send_json_success( array('status'=>false) );

      }
  }

  public  function init_cutomizer() {

    if ( ! isset( $_POST['vsecurity'] ) || ! wp_verify_nonce( $_POST['vsecurity'], 'vayu_nonce' ) ) {
      wp_send_json_error( array( 'message' => 'Invalid nonce.' ) );
      wp_die();
  }
    
  if(isset( $_POST['data'] ) && current_user_can('manage_options')){

            $data = wp_unslash( $_POST['data']);
            $data = json_decode($data)->data;
          VAYU_BLOCKS_SITES_IMPORT::instance()->import_customizer($data);
      }

 }

  public function init_options() {

    if ( ! isset( $_POST['vsecurity'] ) || ! wp_verify_nonce( $_POST['vsecurity'], 'vayu_nonce' ) ) {
      wp_send_json_error( array( 'message' => 'Invalid nonce.' ) );
      wp_die();
  }

    if(isset( $_POST['data'] ) && current_user_can('manage_options')){
      $data = wp_unslash( $_POST['data']);
          $data = json_decode($data)->data;
        VAYU_BLOCKS_SITES_IMPORT::instance()->import_options($data);
        exit();
    }
  }

  public function init_widgets() {


    if ( ! isset( $_POST['vsecurity'] ) || ! wp_verify_nonce( $_POST['vsecurity'], 'vayu_nonce' ) ) {
      wp_send_json_error( array( 'message' => 'Invalid nonce.' ) );
      wp_die();
  }


    if(isset( $_POST['data'] ) && current_user_can('manage_options')){

            $data = stripslashes( $_POST['data']);
              $data = json_decode($data)->data;
          VAYU_BLOCKS_SITES_IMPORT::instance()->import_widgets($data);
          exit();
      }
 }

  public function init_site_url(){

    if ( ! isset( $_POST['vsecurity'] ) || ! wp_verify_nonce( $_POST['vsecurity'], 'vayu_nonce' ) ) {
      wp_send_json_error( array( 'message' => 'Invalid nonce.' ) );
      wp_die();
  }


    if(isset( $_POST['data'] ) && current_user_can('manage_options')){

            $data = stripslashes( $_POST['data']);

            $data = json_decode($data)->data;
            $core = new VAYU_BLOCKS_SITES_BUILDER_CORE();
            $core->core_data($data);
          }

  }

}

$obj = New VAYU_BLOCKS_SITES_APP();