@@ -44,6 +44,57 @@ public function __construct( Visualizer_Plugin $plugin ) {
44
44
45
45
$ this ->_addAction ( 'init ' , 'setupCustomPostTypes ' );
46
46
$ this ->_addAction ( 'plugins_loaded ' , 'loadTextDomain ' );
47
+ $ this ->_addFilter ( 'visualizer_logger_data ' , 'getLoggerData ' );
48
+ $ this ->_addFilter ( 'visualizer_get_chart_counts ' , 'getChartCountsByTypeAndMeta ' );
49
+ }
50
+ /**
51
+ * Fetches the SDK logger data.
52
+ *
53
+ * @param array $data The default data that needs to be sent.
54
+ *
55
+ * @access public
56
+ */
57
+ public function getLoggerData ( $ data ) {
58
+ return $ this ->getChartCountsByTypeAndMeta ();
59
+ }
60
+
61
+ /**
62
+ * Fetches the types of charts created and their counts.
63
+ *
64
+ * @param array $meta_keys An array of name vs. meta keys - to return how many charts have these keys.
65
+ * @access private
66
+ */
67
+ public function getChartCountsByTypeAndMeta ( $ meta_keys = array () ) {
68
+ $ charts = array ();
69
+ $ charts ['chart_types ' ] = array ();
70
+ // the initial query arguments to fetch charts
71
+ $ query_args = array (
72
+ 'post_type ' => Visualizer_Plugin::CPT_VISUALIZER ,
73
+ 'posts_per_page ' => 300 ,
74
+ 'fields ' => 'ids ' ,
75
+ 'no_rows_found ' => false ,
76
+ 'update_post_meta_cache ' => false ,
77
+ 'update_post_term_cache ' => false ,
78
+
79
+ );
80
+
81
+ $ query = new WP_Query ( $ query_args );
82
+ while ( $ query ->have_posts () ) {
83
+ $ chart_id = $ query ->next_post ();
84
+ $ type = get_post_meta ( $ chart_id , Visualizer_Plugin::CF_CHART_TYPE , true );
85
+ $ charts ['chart_types ' ][ $ type ] = isset ( $ charts ['chart_types ' ][ $ type ] ) ? $ charts ['chart_types ' ][ $ type ] + 1 : 1 ;
86
+ if ( ! empty ( $ meta_keys ) ) {
87
+ foreach ( $ meta_keys as $ name => $ key ) {
88
+ $ data = get_post_meta ( $ chart_id , $ key , true );
89
+ if ( ! empty ( $ data ) ) {
90
+ $ charts [ $ name ] = isset ( $ charts [ $ name ] ) ? $ charts [ $ name ] + 1 : 1 ;
91
+ } else {
92
+ $ charts [ $ name ] = 0 ;
93
+ }
94
+ }
95
+ }
96
+ }
97
+ return $ charts ;
47
98
}
48
99
49
100
/**
0 commit comments