pe'=> 1) ), array( 'type' =>'checkbox_bool', 'name' =>"check_for_btn", 'label' => 'Enable Button', 'tab' =>'customizer', 'default' =>0, 'options' =>array( array( 'label'=>'Yes', 'value'=>1, ) ), 'content_type'=>'html', 'required' => array('feature_layout_type'=> 1) ), array( 'type' =>'color-picker', 'name' =>"background_color_picker", 'label' =>'Background Color', 'tab' =>'design', 'default' =>'#f4f4f4', 'content_type'=>'css', 'required' => array('feature_layout_type'=> 1) ), array( 'type' =>'color-picker', 'name' =>"font_color_picker", 'label' =>'Text Color', 'tab' =>'design', 'default' =>'#333', 'content_type'=>'css', 'required' => array('feature_layout_type'=> 1) ), array( 'type' =>'select', 'name' =>'align_type', 'label' =>esc_html__('Content Alignment','accelerated-mobile-pages'), 'tab' =>'design', 'default' =>'center', 'options_details'=>array( 'center' =>'Center', 'left' =>'Left', 'right' =>'Right', ), 'content_type'=>'css', 'required' => array('feature_layout_type'=> 1) ), array( 'type' =>'text', 'name' =>"btn_size", 'label' =>'Button Font Size', 'tab' =>'design', 'default' =>'16px', 'content_type'=>'css', 'required' => array('feature_layout_type'=> 1) ), array( 'type' =>'select', 'name' =>'btn_weight', 'label' =>"Button Font Weight", 'tab' =>'design', 'default' =>'400', 'options_details'=>array( '300' =>'Light', '400' =>'Regular', '500' =>'Medium', '600' =>'Semi Bold', '700' =>'Bold', ), 'content_type'=>'css', 'required' => array('feature_layout_type'=> 1) ), array( 'type' =>'color-picker', 'name' =>"btn_color", 'label' =>'Button Text Color', 'tab' =>'design', 'default' =>'#fff', 'content_type'=>'css', 'required' => array('feature_layout_type'=> 1) ), array( 'type' =>'color-picker', 'name' =>"btn_bg_color", 'label' =>'Background Color', 'tab' =>'design', 'default' =>'#555', 'content_type'=>'css', 'required' => array('feature_layout_type'=> 1) ), array( 'type' =>'text', 'name' =>'bdr_rds', 'label' =>'Border Radius', 'tab' =>'design', 'default' =>'0px', 'content_type'=>'css', 'required' => array('feature_layout_type'=> 1) ), array( 'type' =>'text', 'name' =>"id", 'label' =>'ID', 'tab' =>'advanced', 'default' =>'', 'content_type'=>'html' ), array( 'type' =>'text', 'name' =>"user_class", 'label' =>'Class', 'tab' =>'advanced', 'default' =>'', 'content_type'=>'html' ), array( 'type' =>'spacing', 'name' =>"margin_css", 'label' =>'Margin', 'tab' =>'advanced', 'default' => array( 'top'=>'20px', 'right'=>'0px', 'bottom'=>'20px', 'left'=>'0px', ), 'content_type'=>'css', 'required' => array('feature_layout_type'=> 1) ), array( 'type' =>'spacing', 'name' =>"padding_css", 'label' =>'Padding', 'tab' =>'advanced', 'default' =>array( 'left'=>'0px', 'right'=>'0px', 'top'=>'0px', 'bottom'=>'0px' ), 'content_type'=>'css', 'required' => array('feature_layout_type'=> 1) ), ), 'front_template'=> $output, 'front_css'=> $css, 'front_common_css'=>'', 'repeater'=>array( 'tab'=>'customizer', 'fields'=>array( array( 'type' =>'text', 'name' =>"content_title", 'label' =>'Heading', 'tab' =>'customizer', 'default' =>'Your Feature Title', 'content_type'=>'html', 'required' => array('feature_layout_type'=> 1) ), array( 'type' =>'upload', 'name' =>"img_upload", 'label' =>'Image', 'tab' =>'customizer', 'default' =>'', 'content_type'=>'html', 'required' => array('feature_layout_type'=> 1) ), array( 'type' =>'text-editor', 'name' =>"content", 'label' =>'Content', 'tab' =>'customizer', 'default' =>'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut.', 'content_type'=>'html', 'required' => array('feature_layout_type'=> 1) ), array( 'type' => 'text', 'name' => "btn_txt", 'label' => 'Button Text', 'tab' => 'customizer', 'default' => 'Learn More', 'content_type' => 'html', 'helpmessage' => 'Leave empty if do not want to show button.', 'required' => array('feature_layout_type'=>'1', 'check_for_btn'=>'1'), ), array( 'type' =>'text', 'name' =>"btn_link", 'label' =>'URL', 'tab' =>'customizer', 'default' =>'#', 'content_type'=>'html', 'required' => array('feature_layout_type'=>'1', 'check_for_btn'=>'1'), ), array( 'type' =>'select', 'name' =>'page_link_open', 'label' =>"Open link in", 'tab' =>'customizer', 'default' =>'new_page', 'options_details'=>array( 'new_page' =>'New tab', 'same_page' =>'Same page' ), 'content_type'=>'html', 'required' => array('feature_layout_type'=>'1', 'check_for_btn'=>'1'), ), ), 'front_template'=> '{{if_condition_feature_layout_type==1}}
{{if_heading_tags}}<{{heading_tags}} class="t-txt">{{content_title}}{{ifend_heading_tags}} {{if_img_upload}}{{ifend_img_upload}}

{{content}}

{{if_condition_check_for_btn==1}} {{if_btn_txt}} {{btn_txt}} {{ifend_btn_txt}} {{ifend_condition_check_for_btn_1}}
{{ifend_condition_feature_layout_type_1}}' ), ); ?>gs $settings ) { $fonts = $this->get_typekit_fonts(); $button_label = esc_html__( 'Get Project ID', 'elementor-pro' ); $found_label = '{{count}} ' . esc_html__( 'Fonts Families Found in project. Please note that typekit takes a few minutes to sync once you publish or update a project.', 'elementor-pro' ); if ( $fonts && is_array( $fonts ) ) { $button_label = esc_html__( 'Sync Project', 'elementor-pro' ); } $settings->add_section( Settings::TAB_INTEGRATIONS, 'typekit', [ 'callback' => function() { echo '

' . esc_html__( 'Adobe Fonts (TypeKit)', 'elementor-pro' ) . '

'; esc_html_e( 'TypeKit partners with the world’s leading type foundries to bring thousands of beautiful fonts to designers every day.', 'elementor-pro' ); }, 'fields' => [ self::TYPEKIT_KIT_ID_OPTION_NAME => [ 'label' => esc_html__( 'Project ID', 'elementor-pro' ), 'field_args' => [ 'type' => 'text', 'desc' => sprintf( /* translators: 1: Link opening tag, 2: Link closing tag. */ esc_html__( 'Enter Your %1$sTypeKit Project ID%2$s.', 'elementor-pro' ), '', '' ), ], 'setting_args' => [ 'sanitize_callback' => [ $this, 'sanitize_kit_id_settings' ], ], ], 'validate_api_data' => [ 'field_args' => [ 'type' => 'raw_html', 'html' => sprintf( '

', esc_html( $found_label ), self::TYPEKIT_KIT_ID_OPTION_NAME . '_fetch', wp_create_nonce( self::TYPEKIT_KIT_ID_OPTION_NAME ), $button_label ), ], ], ], ] ); } public function register_fonts_in_control( $fonts ) { $typekit_fonts = $this->get_kit_fonts(); if ( $typekit_fonts ) { return array_merge( $typekit_fonts, $fonts ); } return $fonts; } public function print_font_link( $font ) { if ( $this->kit_enqueued ) { return; } if ( $this->is_font_in_kit( $font ) ) { $kit_url = sprintf( self::TYPEKIT_FONTS_LINK, $this->get_typekit_kit_id() ); echo ''; $this->kit_enqueued = true; } } private function is_font_in_kit( $font ) { $kit_fonts = $this->get_kit_fonts(); if ( ! $kit_fonts || ! is_array( $kit_fonts ) ) { return false; } return in_array( $font, array_keys( $kit_fonts ) ); } public function integrations_admin_ajax_handler() { check_ajax_referer( self::TYPEKIT_KIT_ID_OPTION_NAME, '_nonce' ); if ( ! current_user_can( Fonts_Manager::CAPABILITY ) ) { wp_send_json_error( 'Permission denied' ); } $kit_id = Utils::_unstable_get_super_global_value( $_POST, 'kit_id' ); if ( ! $kit_id ) { wp_send_json_error(); } $fonts = []; try { update_option( 'elementor_' . self::TYPEKIT_KIT_ID_OPTION_NAME, sanitize_text_field( $kit_id ) ); $fonts = $this->fetch_typekit_data(); } catch ( \Exception $exception ) { wp_send_json_error(); } wp_send_json_success( [ 'fonts' => $fonts, 'count' => count( $fonts ), ] ); } protected function actions() { parent::actions(); if ( is_admin() ) { add_action( 'elementor/admin/after_create_settings/' . Settings::PAGE_ID, [ $this, 'register_admin_fields' ], 100 ); } add_filter( 'elementor/fonts/additional_fonts', [ $this, 'register_fonts_in_control' ] ); add_action( 'elementor/fonts/print_font_links/' . $this->get_type(), [ $this, 'print_font_link' ] ); add_action( 'wp_ajax_elementor_pro_admin_fetch_fonts', [ $this, 'integrations_admin_ajax_handler' ] ); } }
Fatal error: Uncaught Error: Class "ElementorPro\Modules\AssetsManager\AssetTypes\Fonts\Typekit_Fonts" not found in /htdocs/wp-content/plugins/elementor-pro/modules/assets-manager/asset-types/fonts-manager.php:613 Stack trace: #0 /htdocs/wp-content/plugins/elementor-pro/modules/assets-manager/module.php(48): ElementorPro\Modules\AssetsManager\AssetTypes\Fonts_Manager->__construct() #1 /htdocs/wp-content/plugins/elementor/core/base/module.php(85): ElementorPro\Modules\AssetsManager\Module->__construct() #2 /htdocs/wp-content/plugins/elementor-pro/core/modules-manager.php(91): Elementor\Core\Base\Module::instance() #3 /htdocs/wp-content/plugins/elementor-pro/plugin.php(375): ElementorPro\Core\Modules_Manager->__construct() #4 /htdocs/wp-includes/class-wp-hook.php(324): ElementorPro\Plugin->on_elementor_init('') #5 /htdocs/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters('', Array) #6 /htdocs/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #7 /htdocs/wp-content/plugins/elementor/includes/plugin.php(685): do_action('elementor/init') #8 /htdocs/wp-includes/class-wp-hook.php(324): Elementor\Plugin->init('') #9 /htdocs/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #10 /htdocs/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #11 /htdocs/wp-settings.php(700): do_action('init') #12 /htdocs/wp-config.php(106): require_once('/htdocs/wp-sett...') #13 /htdocs/wp-load.php(50): require_once('/htdocs/wp-conf...') #14 /htdocs/wp-blog-header.php(13): require_once('/htdocs/wp-load...') #15 /htdocs/index.php(17): require('/htdocs/wp-blog...') #16 {main} thrown in /htdocs/wp-content/plugins/elementor-pro/modules/assets-manager/asset-types/fonts-manager.php on line 613