function wpdatatable_save_chart_get_shortcode()
{
    $chart_data = $_POST['chart_data'];
    $wpDataChart = WPDataChart::factory($chart_data, false);
    $wpDataChart->save();
    echo json_encode(array('id' => $wpDataChart->getId(), 'shortcode' => $wpDataChart->getShortCode()));
    exit;
}
          /**
           * Handler for the chart shortcode
           */
	  function wpdatachart_shortcode_handler( $atts, $content = null ){
              global $wpdb;
              
		   extract( shortcode_atts( array(
		      'id' => '0'
		      ), $atts ) );
                   
		   if( !$id ){ return false; }
                   
		   do_action( 'wpdatatables_before_render_chart', $id );
                   
                   $wpDataChart = new WPDataChart();
                   $wpDataChart->setId( $id );
                   $wpDataChart->loadFromDB();
                   return $wpDataChart->renderChart();
                   
          }
/**
 * Create/edit chart wizard
 */
function wpdatatables_chart_wizard()
{
    global $wdt_admin_translation_array;
    if (!current_user_can('manage_options')) {
        wp_die(__('You do not have sufficient permissions to access this page.'));
    }
    $tpl = new PDTTpl();
    // Google Chart JS
    wp_enqueue_script('wdt_google_charts', '//www.google.com/jsapi');
    // Highcharts JS
    wp_enqueue_script('wdt_highcharts', '//code.highcharts.com/highcharts.js');
    wp_enqueue_script('wdt_highcharts3d', '//code.highcharts.com/highcharts-3d.js');
    // Admin JS
    wp_enqueue_script('wpdatatables-admin', WDT_JS_PATH . 'wpdatatables/wpdatatables_admin.js');
    // Selecter
    wp_enqueue_script('wpdatatables-selecter', WDT_JS_PATH . 'selecter/jquery.fs.selecter.min.js');
    wp_enqueue_style('wpdatatables-selecter', WDT_CSS_PATH . 'jquery.fs.selecter.css');
    // iCheck
    wp_enqueue_script('wpdatatables-icheck', WDT_JS_PATH . 'icheck/icheck.min.js');
    wp_enqueue_style('wpdatatables-icheck', WDT_CSS_PATH . 'icheck.minimal.css');
    // Popup
    wp_enqueue_script('wpdatatables-popup', WDT_JS_PATH . 'popup/jquery.remodal.min.js');
    wp_enqueue_style('wpdatatables-popup', WDT_CSS_PATH . 'jquery.remodal.css');
    // JsRender
    wp_enqueue_script('wpdatatables-jsrender', WDT_JS_PATH . 'jsrender/jsrender.min.js');
    // ImagePicker
    wp_enqueue_script('wpdatatables-image-picker', WDT_JS_PATH . 'image-picker/image-picker.min.js');
    wp_enqueue_style('wpdatatables-image-picker', WDT_CSS_PATH . 'image-picker.css');
    // Chart wizard JS
    wp_enqueue_script('wpdatatables-chart-wizard', WDT_JS_PATH . 'wpdatatables/wpdatatables_chart_wizard.js');
    // Google Chart wpDataTable JS library
    wp_enqueue_script('wpdatatables-google-chart', WDT_JS_PATH . 'wpdatatables/wpdatatables_google_charts.js');
    // Highchart wpDataTable JS library
    wp_enqueue_script('wpdatatables-highcharts', WDT_JS_PATH . 'wpdatatables/wpdatatables_highcharts.js');
    wp_localize_script('wpdatatables-edit', 'wpdatatables_edit_strings', $wdt_admin_translation_array);
    // Edit or add new
    $chart_id = isset($_GET['chart_id']) ? filter_var($_GET['chart_id'], FILTER_SANITIZE_NUMBER_INT) : false;
    if (!empty($chart_id)) {
        $chartObj = new WPDataChart();
        $chartObj->setId($chart_id);
        $chartObj->loadFromDB();
        $chartObj->prepareData();
        $chartObj->shiftStringColumnUp();
    }
    $tpl->setTemplate('chart_wizard.inc.php');
    $tpl->addData('chart_id', $chart_id);
    if (!empty($chart_id)) {
        $tpl->addData('wpShowTitle', __('wpDataTables Chart Edit Wizard', 'wpdatatables'));
        $tpl->addData('chartObj', $chartObj);
    } else {
        $tpl->addData('wpShowTitle', __('wpDataTables Chart Create Wizard', 'wpdatatables'));
    }
    $tpl->addData('chartDataJson', json_encode(array()));
    $chart_wizard_page = $tpl->returnData();
    $chart_wizard_page = apply_filters('wpdatatables_filter_chart_wizard_page', $chart_wizard_page);
    echo $chart_wizard_page;
    do_action('wpdatatables_chart_wizard_page');
}