@@ -79,6 +79,10 @@ public function __construct( Visualizer_Plugin $plugin ) {
7979
8080 $ this ->_addFilter ( 'admin_footer_text ' , 'render_review_notice ' );
8181
82+ if ( ! defined ( 'TI_CYPRESS_TESTING ' ) ) {
83+ $ this ->_addFilter ( 'themeisle-sdk/survey/ ' . VISUALIZER_DIRNAME , 'get_survey_metadata ' , 10 , 2 );
84+ }
85+
8286 if ( defined ( 'TI_CYPRESS_TESTING ' ) ) {
8387 $ this ->load_cypress_hooks ();
8488 }
@@ -934,7 +938,7 @@ private function getQuery() {
934938 */
935939 public function renderSupportPage () {
936940 wp_enqueue_style ( 'visualizer-upsell ' , VISUALIZER_ABSURL . 'css/upsell.css ' , array (), Visualizer_Plugin::VERSION );
937- $ this -> load_survey ( );
941+ do_action ( ' themeisle_internal_page ' , VISUALIZER_DIRNAME , ' support ' );
938942 include_once VISUALIZER_ABSPATH . '/templates/support.php ' ;
939943 }
940944
@@ -1091,7 +1095,7 @@ public function renderLibraryPage() {
10911095 )
10921096 );
10931097
1094- $ this -> load_survey ( );
1098+ do_action ( ' themeisle_internal_page ' , VISUALIZER_DIRNAME , ' library ' );
10951099
10961100 if ( ! apply_filters ( 'visualizer_is_business ' , false ) ) {
10971101 do_action ( 'themeisle_sdk_load_banner ' , 'visualizer ' );
@@ -1230,71 +1234,74 @@ public static function checkChartStatus( $type ) {
12301234 /**
12311235 * Get the survey metadata.
12321236 *
1237+ * @param array $data The data for survey in Formbricks format.
1238+ * @param string $page_slug The slug of the loaded page.
1239+ *
12331240 * @return array The survey metadata.
12341241 */
1235- private function get_survey_metadata () {
1236- $ install_date = get_option ( 'visualizer_install ' , false );
1237- $ install_category = 0 ;
1238-
1239- if ( false !== $ install_date ) {
1240- $ days_since_install = round ( ( time () - $ install_date ) / DAY_IN_SECONDS );
1241-
1242- if ( 0 === $ days_since_install || 1 === $ days_since_install ) {
1243- $ install_category = 0 ;
1244- } elseif ( 1 < $ days_since_install && 8 > $ days_since_install ) {
1245- $ install_category = 7 ;
1246- } elseif ( 8 <= $ days_since_install && 31 > $ days_since_install ) {
1247- $ install_category = 30 ;
1248- } elseif ( 30 < $ days_since_install && 90 > $ days_since_install ) {
1249- $ install_category = 90 ;
1250- } elseif ( 90 <= $ days_since_install ) {
1251- $ install_category = 91 ;
1252- }
1253- }
1242+ public function get_survey_metadata ( $ data , $ page_slug ) {
1243+ $ install_date = get_option ( 'visualizer_install ' , time () );
1244+ $ install_days_number = intval ( ( time () - $ install_date ) / DAY_IN_SECONDS );
1245+
1246+ $ license_status = apply_filters ( 'product_visualizer_license_status ' , 'invalid ' );
1247+ $ license_plan = apply_filters ( 'product_visualizer_license_plan ' , false );
1248+ $ license_key = apply_filters ( 'product_visualizer_license_key ' , false );
12541249
12551250 $ plugin_data = get_plugin_data ( VISUALIZER_BASEFILE , false , false );
12561251 $ plugin_version = '' ;
1252+
12571253 if ( ! empty ( $ plugin_data ['Version ' ] ) ) {
12581254 $ plugin_version = $ plugin_data ['Version ' ];
12591255 }
12601256
1261- $ user_id = 'visualizer_ ' . preg_replace ( '/[^\w\d]*/ ' , '' , get_site_url () ); // Use a normalized version of the site URL as a user ID.
1257+ $ count_charts_cache_key = 'visualizer_count_charts ' ;
1258+ $ charts_number = get_transient ( $ count_charts_cache_key );
12621259
1263- $ license_data = get_option ( 'visualizer_pro_license_data ' , false );
1264- if ( false !== $ license_data && isset ( $ license_data ->key ) ) {
1265- $ user_id = 'visualizer_ ' . $ license_data ->key ;
1260+ if ( false === $ charts_number ) {
1261+ $ charts_number = $ this ->count_charts ( 100 );
1262+ set_transient ( $ count_charts_cache_key , $ charts_number , 100 === $ charts_number ? WEEK_IN_SECONDS : 6 * HOUR_IN_SECONDS );
1263+ } else {
1264+ $ charts_number = strval ( $ charts_number );
12661265 }
12671266
1268- return array (
1269- 'userId ' => $ user_id ,
1267+ $ data = array (
1268+ 'environmentId ' => ' cltef8cut1s7wyyfxy3rlxzs5 ' ,
12701269 'attributes ' => array (
1271- 'days_since_install ' => strval ( $ install_category ),
1272- 'free_version ' => $ plugin_version ,
1273- 'pro_version ' => defined ( 'VISUALIZER_PRO_VERSION ' ) ? VISUALIZER_PRO_VERSION : '' ,
1274- 'license_status ' => apply_filters ( 'product_visualizer_license_status ' , 'invalid ' ),
1270+ 'free_version ' => $ plugin_version ,
1271+ 'pro_version ' => defined ( 'VISUALIZER_PRO_VERSION ' ) ? VISUALIZER_PRO_VERSION : '' ,
1272+ 'license_status ' => $ license_status ,
1273+ 'install_days_number ' => $ install_days_number ,
1274+ 'charts_number ' => $ charts_number ,
12751275 ),
12761276 );
1277- }
1278-
1279- /**
1280- * Load the survey.
1281- */
1282- private function load_survey () {
12831277
1284- if ( defined ( ' TI_CYPRESS_TESTING ' ) ) {
1285- return ;
1278+ if ( ! empty ( $ license_plan ) ) {
1279+ $ data [ ' attributes ' ][ ' plan ' ] = $ license_plan ;
12861280 }
12871281
1288- $ survey_handler = apply_filters ( 'themeisle_sdk_dependency_script_handler ' , 'survey ' );
1289-
1290- if ( empty ( $ survey_handler ) ) {
1291- return ;
1282+ if ( ! empty ( $ license_key ) ) {
1283+ $ data ['attributes ' ]['license_key ' ] = apply_filters ( 'themeisle_sdk_secret_masking ' , $ license_key );
12921284 }
12931285
1294- $ metadata = $ this ->get_survey_metadata ();
1286+ return $ data ;
1287+ }
1288+
1289+ /**
1290+ * Count the charts.
1291+ *
1292+ * @param int $limit The count limit (optional).
1293+ *
1294+ * @return int The number of charts.
1295+ */
1296+ public function count_charts ( $ limit = -1 ) {
1297+ $ args = array (
1298+ 'post_type ' => Visualizer_Plugin::CPT_VISUALIZER ,
1299+ 'post_status ' => 'publish ' ,
1300+ 'posts_per_page ' => $ limit ,
1301+ 'fields ' => 'ids ' ,
1302+ );
12951303
1296- do_action ( 'themeisle_sdk_dependency_enqueue_script ' , 'survey ' );
1297- wp_enqueue_script ( 'visualizer_chart_survey ' , VISUALIZER_ABSURL . 'js/survey.js ' , array ( $ survey_handler ), $ metadata ['attributes ' ]['free_version ' ], true );
1298- wp_localize_script ( 'visualizer_chart_survey ' , 'visualizerSurveyData ' , $ metadata );
1304+ $ query = new WP_Query ( $ args );
1305+ return $ query ->post_count ;
12991306 }
13001307}
0 commit comments