|
// +----------------------------------------------------------------------+
/**
* Layout rendering class.
*
* @category Visualizer
* @package Render
*/
class Visualizer_Render_Layout extends Visualizer_Render {
/**
* Fallback time for live update option.
*
* @var float
*/
public static $live_option_fallback_hour = 0.16; // 10 minutes
/**
* Renders template.
*
* @since 1.0.0
*
* @abstract
* @access protected
*/
protected function _toHTML() {
// empty.
}
/**
* Show the layout by delegating the call to the layout-specific method with the params.
*
* @access public
*/
public static function show( $layout ) {
return call_user_func( array( __CLASS__, '_render' . str_replace( ' ', '', ucwords( str_replace( '-', ' ', $layout ) ) ) ), func_get_args() );
}
/**
* Show the DB query box.
*
* @access public
*/
public static function _renderDbQuery( $args ) {
global $wpdb;
$query = $args[1];
if ( ! $query ) {
$query = '
/* List Posts published per. month */
SELECT CONCAT( YEAR(post_date), "/", MONTH(post_date) ) as date, COUNT(*) AS post_count
FROM ' . $wpdb->prefix . 'posts
WHERE post_type = "post" AND post_status = "publish"
GROUP BY YEAR(post_date), MONTH(post_date)
ORDER BY YEAR(post_date) DESC, MONTH(post_date) DESC;';
}
?>
prefix; ?>
',
''
);
?>
',
''
);
?>
' . $header['label'] . '';
}
?>
';
foreach ( $result as $r ) {
echo '' . $r . ' ';
}
echo '';
}
?>
Visualizer_Plugin::ACTION_JSON_SET_DATA,
'security' => wp_create_nonce( Visualizer_Plugin::ACTION_JSON_SET_DATA . Visualizer_Plugin::VERSION ),
'chart' => $id,
),
admin_url( 'admin-ajax.php' )
)
);
$is_wc_source = get_post_meta( $id, Visualizer_Plugin::CF_IS_WOOCOMMERCE_SOURCE, true );
$url = get_post_meta( $id, Visualizer_Plugin::CF_JSON_URL, true );
$root = get_post_meta( $id, Visualizer_Plugin::CF_JSON_ROOT, true );
$paging = get_post_meta( $id, Visualizer_Plugin::CF_JSON_PAGING, true );
$headers = get_post_meta( $id, Visualizer_Plugin::CF_JSON_HEADERS, true );
if ( empty( $headers ) ) {
$headers = array();
}
if ( $headers && empty( $headers['method'] ) ) {
$headers['method'] = 'get';
}
$methods = apply_filters( 'visualizer_json_request_methods', array( 'GET', 'POST' ) );
// open the headers by default?
$headers_open = $headers && array_key_exists( 'auth', $headers ) && ( array_key_exists( 'username', $headers['auth'] ) && ! empty( $headers['auth']['username'] ) ) || ( ! empty( $headers['auth'] ) && is_string( $headers['auth'] ) );
?>
Visualizer_Plugin::ACTION_UPLOAD_DATA,
'nonce' => wp_create_nonce( 'visualizer-upload-data' ),
'chart' => $chart_id,
),
admin_url( 'admin-ajax.php' )
)
);
?>
', '', apply_filters( 'visualizer_pro_upsell_class', 'only-pro-feature', 'chart-permissions' ), 'vz-permissions' );
echo '';
Visualizer_Render_Sidebar::_renderSectionStart();
Visualizer_Render_Sidebar::_renderSectionDescription( esc_html__( 'Configure permissions for the chart.', 'visualizer' ) );
Visualizer_Render_Sidebar::_renderSectionEnd();
Visualizer_Render_Sidebar::_renderSectionStart( esc_html__( 'Who can see this chart?', 'visualizer' ), false );
Visualizer_Render_Sidebar::_renderSelectItem(
'',
'permissions[read]',
$permissions['read'],
array(
'all' => esc_html__( 'All Users', 'visualizer' ),
'users' => esc_html__( 'Select Users', 'visualizer' ),
'roles' => esc_html__( 'Select Roles', 'visualizer' ),
),
'',
false,
array( 'visualizer-permission', 'visualizer-permission-type', 'visualizer-permission-read' ),
array(
'permission-type' => 'read',
)
);
$options = apply_filters( 'visualizer_pro_get_permissions_data', array(), isset( $permissions['read'] ) ? $permissions['read'] : 'roles' );
Visualizer_Render_Sidebar::_renderSelectItem(
'',
'permissions[read-specific][]',
isset( $permissions['read-specific'] ) ? $permissions['read-specific'] : array(),
$options,
'',
true,
array( 'visualizer-permission', 'visualizer-permission-specific', 'visualizer-permission-read-specific' )
);
Visualizer_Render_Sidebar::_renderSectionEnd();
Visualizer_Render_Sidebar::_renderSectionStart( esc_html__( 'Who can edit this chart?', 'visualizer' ), false );
Visualizer_Render_Sidebar::_renderSelectItem(
'',
'permissions[edit]',
$permissions['edit'],
array(
'all' => esc_html__( 'All Users', 'visualizer' ),
'users' => esc_html__( 'Select Users', 'visualizer' ),
'roles' => esc_html__( 'Select Roles', 'visualizer' ),
),
'',
false,
array( 'visualizer-permission', 'visualizer-permission-type', 'visualizer-permission-edit' ),
array(
'permission-type' => 'edit',
)
);
$options = apply_filters( 'visualizer_pro_get_permissions_data', array(), isset( $permissions['edit'] ) ? $permissions['edit'] : 'roles' );
Visualizer_Render_Sidebar::_renderSelectItem(
'',
'permissions[edit-specific][]',
isset( $permissions['edit-specific'] ) ? $permissions['edit-specific'] : array(),
$options,
'',
true,
array( 'visualizer-permission', 'visualizer-permission-specific', 'visualizer-permission-edit-specific' )
);
Visualizer_Render_Sidebar::_renderSectionEnd();
echo apply_filters( 'visualizer_pro_upsell', '', 'chart-permissions', 'https://docs.themeisle.com/article/1280-how-to-customize-permissions' );
echo '
';
Visualizer_Render_Sidebar::_renderGroupEnd();
}
/**
* Show the Settings tab for this chart.
*
* @access public
*/
public static function _renderTabAdvanced( $args ) {
$chart_id = $args[1];
$sidebar = $args[2];
$chart_options = get_post_meta( $chart_id, Visualizer_Plugin::CF_SETTINGS, true );
$backend_title = isset( $chart_options['backend-title'] ) && ! empty( $chart_options['backend-title'] ) ? $chart_options['backend-title'] : '';
?>
Visualizer_Plugin::ACTION_UPLOAD_DATA,
'nonce' => wp_create_nonce( 'visualizer-upload-data' ),
'chart' => $chart_id,
),
admin_url( 'admin-ajax.php' )
)
);
// this will allow us to open the correct source tab by default.
$source_of_chart = strtolower( get_post_meta( $chart_id, Visualizer_Plugin::CF_SOURCE, true ) );
// Import from woocommerce report.
$is_woocommerce_source = strtolower( get_post_meta( $chart_id, Visualizer_Plugin::CF_IS_WOOCOMMERCE_SOURCE, true ) );
if ( ! empty( $is_woocommerce_source ) ) {
$source_of_chart .= '_wc';
}
// both import from wp and import from db have the same source so we need to differentiate.
$filter_config = get_post_meta( $chart_id, Visualizer_Plugin::CF_FILTER_CONFIG, true );
// if filter config is present, then its import from wp.
if ( ! empty( $filter_config ) ) {
$source_of_chart .= '_wp';
}
$editor_type = get_post_meta( $chart_id, Visualizer_Plugin::CF_EDITOR, true );
if (
$editor_type ||
! Visualizer_Module::is_pro() // Use Manual Source for non-pro users since it is the only unlocked source.
) {
$source_of_chart = 'visualizer_source_manual';
}
$type = get_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_TYPE, true );
$lib = get_post_meta( $chart_id, Visualizer_Plugin::CF_CHART_LIBRARY, true );
?>
Visualizer_Plugin::ACTION_SAVE_FILTER_QUERY,
'security' => wp_create_nonce( Visualizer_Plugin::ACTION_SAVE_FILTER_QUERY . Visualizer_Plugin::VERSION ),
'chart' => $chart_id,
), admin_url( 'admin-ajax.php' )
)
);
?>
esc_html__( 'Sales', 'visualizer' ),
'endpoint' => esc_attr( 'sales' ),
),
array(
'name' => esc_html__( 'Top Sellers', 'visualizer' ),
'endpoint' => esc_attr( 'top_sellers' ),
),
array(
'name' => esc_html__( 'Coupons Totals', 'visualizer' ),
'endpoint' => esc_attr( 'coupons/totals' ),
),
array(
'name' => esc_html__( 'Customers Totals', 'visualizer' ),
'endpoint' => esc_attr( 'customers/totals' ),
),
array(
'name' => esc_html__( 'Orders Totals', 'visualizer' ),
'endpoint' => esc_attr( 'orders/totals' ),
),
array(
'name' => esc_html__( 'Products Totals', 'visualizer' ),
'endpoint' => esc_attr( 'products/totals' ),
),
array(
'name' => esc_html__( 'Reviews Totals', 'visualizer' ),
'endpoint' => esc_attr( 'reviews/totals' ),
),
)
);
?>
this tutorial', 'visualizer' ); ?>
__( 'One-time', 'visualizer' ),
),
'json',
$chart_id
);
foreach ( $schedules as $num => $name ) {
$extra = self::is_hour_selected( $hours, $num ) ? 'selected' : '';
?>
>
%1$s', $api['name'], $api['endpoint'], selected( $wc_source, $api['endpoint'], false ) ); // phpcs:ignore
}
}
}
?>
>
>
Visualizer_Plugin::ACTION_SAVE_DB_QUERY,
'security' => wp_create_nonce( Visualizer_Plugin::ACTION_SAVE_DB_QUERY . Visualizer_Plugin::VERSION ),
'chart' => $chart_id,
), admin_url( 'admin-ajax.php' )
)
);
?>