NTER_KEY ); return $editor_visit_count < self::REQUIRED_VISIT_COUNT; } /** * Check if popup has already been displayed to this user * * @return bool True if already displayed */ private function has_popup_been_displayed(): bool { return (bool) get_user_meta( $this->get_current_user_id(), self::POPUP_DISPLAYED_OPTION, true ); } /** * Mark popup as displayed for current user */ private function set_popup_as_displayed(): void { $user_id = $this->get_current_user_id(); update_user_meta( $user_id, self::POPUP_DISPLAYED_OPTION, true ); } /** * Enqueue popup scripts */ private function enqueue_scripts(): void { $min_suffix = Utils::is_script_debug() ? '' : '.min'; $script_url = ELEMENTOR_ASSETS_URL . 'js/pro-free-trial-popup' . $min_suffix . '.js'; wp_enqueue_script( self::MODULE_NAME, $script_url, [ 'react', 'react-dom', 'elementor-common', 'elementor-v2-ui', ], ELEMENTOR_VERSION, true ); $popup_data = $this->extract_popup_data( $this->external_data ); wp_localize_script( self::MODULE_NAME, 'elementorProFreeTrialData', $popup_data ); wp_set_script_translations( self::MODULE_NAME, 'elementor' ); } /** * Extract popup data from external data * * @param array $external_data The full external data array * @return array Popup data or empty array if not found */ private function extract_popup_data( array $external_data ): array { return $external_data[ self::MODULE_NAME ][0]; } /** * Get current user ID * * @return int Current user ID */ private function get_current_user_id(): int { $current_user = wp_get_current_user(); return $current_user->ID ?? 0; } }
Fatal error: Uncaught Error: Class "Elementor\Modules\ProFreeTrialPopup\Module" not found in /htdocs/wp-content/plugins/elementor/core/modules-manager.php:53 Stack trace: #0 /htdocs/wp-content/plugins/elementor/includes/plugin.php(704): Elementor\Core\Modules_Manager->__construct() #1 /htdocs/wp-content/plugins/elementor/includes/plugin.php(622): Elementor\Plugin->init_components() #2 /htdocs/wp-includes/class-wp-hook.php(341): Elementor\Plugin->init('') #3 /htdocs/wp-includes/class-wp-hook.php(365): WP_Hook->apply_filters(NULL, Array) #4 /htdocs/wp-includes/plugin.php(522): WP_Hook->do_action(Array) #5 /htdocs/wp-settings.php(742): do_action('init') #6 /htdocs/wp-config.php(98): require_once('/htdocs/wp-sett...') #7 /htdocs/wp-load.php(50): require_once('/htdocs/wp-conf...') #8 /htdocs/wp-blog-header.php(13): require_once('/htdocs/wp-load...') #9 /htdocs/index.php(17): require('/htdocs/wp-blog...') #10 {main} thrown in /htdocs/wp-content/plugins/elementor/core/modules-manager.php on line 53