|
// +----------------------------------------------------------------------+
/**
* Layout rendering class.
*
* @category Visualizer
* @package Render
*/
class Visualizer_Render_Layout extends Visualizer_Render {
/**
* 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 ) {
$query = $args[1];
?>
' . $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(),
'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' );
echo '
';
Visualizer_Render_Sidebar::_renderGroupEnd();
}
/**
* Show the Settings tab for this chart.
*
* @access public
*/
public static function _renderTabAdvanced( $args ) {
$sidebar = $args[2];
?>
Visualizer_Plugin::ACTION_UPLOAD_DATA,
'nonce' => wp_create_nonce(),
'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 ) {
$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 ) {
// phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
$extra = $num == $hours ? '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' )
)
);
?>