Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
roles ) || is_super_admin() ) { $defaults = array( 'post_type' => 'elementor_library', 'post_status' => 'publish', 'numberposts' => -1, ); $parsed_args = wp_parse_args( $args, $defaults ); $parsed_args['post_type'] = 'elementor_library'; // don't overwrite post type $posts = get_posts( $parsed_args ); if ( $posts ) { foreach ( $posts as $post ) { $post_list[ $post->ID ] = esc_html( $post->post_title ); } } } return $post_list; } endif; if ( ! function_exists( 'aae_validate_content_json' ) ) { function aae_validate_content_json( $input ) { // Check if the input is a valid string and not empty if ( ! is_string( $input ) || empty( $input ) ) { return false; // Invalid input } // Attempt to decode the JSON $decoded = json_decode( $input, true ); // Check for JSON decoding errors if ( json_last_error() !== JSON_ERROR_NONE ) { return false; // Invalid JSON } // Return the decoded JSON if valid, otherwise false return $decoded; } } /** * Get database settings of a widget by widget id and element * * @param array $elements * @param string $widget_id * * @return false|mixed|string */ if ( ! function_exists( 'wcf_addons_get_widget_element_settings' ) ) : function wcf_addons_get_widget_element_settings( $elements, $widget_id ) { if ( is_array( $elements ) ) { foreach ( $elements as $d ) { if ( $d && ! empty( $d['id'] ) && $d['id'] == $widget_id ) { return $d; } if ( $d && ! empty( $d['elements'] ) && is_array( $d['elements'] ) ) { $value = wcf_addons_get_widget_element_settings( $d['elements'], $widget_id ); if ( $value ) { return $value; } } } } return false; } endif; if ( ! function_exists( 'wcf_addons_get_widget_settings' ) ) { /** * Get database settings of a widget by widget id and post id * * @param number $post_id Post ID. * @param string $widget_id Widget ID. * * @return false|mixed|string */ function wcf_addons_get_widget_settings( $post_id, $widget_id ) { $document = \Elementor\Plugin::$instance->documents->get( $post_id ); if ( $document ) { $elementor_data = $document->get_elements_data(); } if ( json_last_error() !== JSON_ERROR_NONE ) { return array(); } if ( empty( $elementor_data ) || ! is_array( $elementor_data ) ) { return array(); } $element = wcf_addons_get_widget_element_settings( $elementor_data, $widget_id ); return ! empty( $element['settings'] ) && is_array( $element['settings'] ) ? $element['settings'] : array(); } } /** * Get local plugin data * * @param string $basename * * @return false|mixed|string */ if ( ! function_exists( 'wcf_addons_get_local_plugin_data' ) ) : function wcf_addons_get_local_plugin_data( $basename = '' ) { if ( empty( $basename ) ) { return false; } if ( ! function_exists( 'get_plugins' ) ) { include_once ABSPATH . 'wp-admin/includes/plugin.php'; } $plugins = get_plugins(); if ( ! isset( $plugins[ $basename ] ) ) { return false; } return $plugins[ $basename ]; } endif; /** * Get all widgets count * * @return numeric */ if ( ! function_exists( 'wcf_addons_get_all_widgets_count' ) ) : function wcf_addons_get_all_widgets_count() { $total = 0; $widgets = $GLOBALS['wcf_addons_config']['widgets']; foreach ( $widgets as $group ) { $total = $total + count( $group['elements'] ); } return $total; } endif; /** * Get active widgets count * * @return numeric */ if ( ! function_exists( 'wcf_addons_get_active_widgets_count' ) ) : function wcf_addons_get_active_widgets_count() { return get_option( 'wcf_save_widgets' ) ? count( get_option( 'wcf_save_widgets' ) ) : 0; } endif; /** * Get inactive widgets count * * @return numeric */ if ( ! function_exists( 'wcf_addons_get_inactive_widgets_count' ) ) : function wcf_addons_get_inactive_widgets_count() { return wcf_addons_get_all_widgets_count() - wcf_addons_get_active_widgets_count(); } endif; /** * Get all Extensions count * * @return numeric */ if ( ! function_exists( 'wcf_addons_get_all_extensions_count' ) ) : function wcf_addons_get_all_extensions_count() { $total = 0; $widgets = $GLOBALS['wcf_addons_config']['extensions']; foreach ( $widgets as $group ) { $total = $total + count( $group['elements'] ); } return $total; } endif; /** * Check the element status * * @return false|mixed|numeric */ if ( ! function_exists( 'wcf_addons_element_status' ) ) : function wcf_addons_element_status( $option_name, $key, $element = null ) { $status = checked( 1, wcf_addons_get_settings( $option_name, $key ), false ); if ( ! is_null( $element ) ) { if ( $element['is_pro'] || $element['is_extension'] ) { // pro elements if ( $element['is_pro'] && ! defined( 'WCF_ADDONS_PRO_VERSION' ) ) { $status = 'disabled'; } // extension elements if ( $element['is_extension'] && ! defined( 'WCF_ADDONS_EX_VERSION' ) ) { $status = 'disabled'; } } } return $status; } endif; if ( ! function_exists( 'wcf_addons_get_settings' ) ) { /** * Return saved settings */ function wcf_addons_get_settings( $option_name, $element = null ) { $elements = get_option( $option_name ); return ( isset( $element ) ? ( isset( $elements[ $element ] ) ? $elements[ $element ] : 0 ) : array_keys( array_filter( $elements ) ) ); } } if ( ! function_exists( 'wcf_set_postview' ) ) { /** * save single post view count */ function wcf_set_postview( $template ) { if ( ! is_singular() ) { return; } $postID = get_the_ID(); $count_key = 'wcf_post_views_count'; $count = get_post_meta( $postID, $count_key, true ); if ( $count == '' ) { $count = 0; delete_post_meta( $postID, $count_key ); add_post_meta( $postID, $count_key, '0' ); } else { ++$count; delete_post_meta( $postID, $count_key ); update_post_meta( $postID, $count_key, $count ); } return $template; } } if ( ! function_exists( 'wcf_get_nested_config_keys' ) ) { function wcf_get_nested_config_keys( $array, &$foundKeys, &$active ) { foreach ( $array as $key => $value ) { // Check if the current key is one we're looking for if ( isset( $value['is_active'] ) && $value['is_active'] == true ) { // Add to found keys list $foundKeys[] = $key; // Store the entire element in $active $active[ $key ] = true; } // If value is an array, recurse into it if ( is_array( $value ) ) { wcf_get_nested_config_keys( $value, $foundKeys, $active ); } } } } if ( ! function_exists( 'wcf_get_nested_active_config_keys' ) ) { function wcf_get_nested_active_config_keys( $array, &$foundKeys, &$active ) { foreach ( $array as $key => $value ) { // Check if the current key is one we're looking for if ( isset( $value['is_upcoming'] ) && isset( $value['is_pro'] ) && isset( $value['is_active'] ) && $value['is_active'] == true ) { // Add to found keys list if ( isset( $value['is_upcoming'] ) && $value['is_upcoming'] !== true ) { $foundKeys[] = $key; // Store the entire element in $active $active[ $key ] = true; } } // If value is an array, recurse into it if ( is_array( $value ) ) { wcf_get_nested_active_config_keys( $value, $foundKeys, $active ); } } } } if ( ! function_exists( 'wcf_get_db_updated_config' ) ) { function wcf_get_db_updated_config( array &$configs, array $dbActiveElements ) { // Loop through each item in the configs array foreach ( $configs as $key => &$element ) { // Check if the current element is an array and has an 'is_active' field if ( is_array( $element ) && isset( $element['is_active'] ) ) { // If the current key is in the dbActiveElements array, update is_active to true if ( in_array( $key, $dbActiveElements ) ) { $element['is_active'] = true; } } // Recursively call the function for any nested elements if ( is_array( $element ) ) { wcf_get_db_updated_config( $element, $dbActiveElements ); } } } } if ( ! function_exists( 'wcf_get_total_config_elements_by_key' ) ) { function wcf_get_total_config_elements_by_key( $array, &$foundKeys = 0 ) { foreach ( $array as $key => $value ) { // Check if the current key is one we're looking for if ( isset( $value['is_active'] ) && isset( $value['is_extension'] ) && isset( $value['is_pro'] ) ) { ++$foundKeys; } // If value is an array, recurse into it if ( is_array( $value ) ) { wcf_get_total_config_elements_by_key( $value, $foundKeys ); } } } } if ( ! function_exists( 'wcf_get_search_active_keys' ) ) { function wcf_get_search_active_keys( $array, $keysToFind, &$foundKeys, &$active ) { foreach ( $array as $key => $value ) { // Check if the current key is one we're looking for if ( in_array( $key, $keysToFind ) && is_array( $value ) && array_key_exists( 'is_extension', $value ) ) { // Add to found keys list $foundKeys[] = sanitize_text_field( $key ); // Store the entire element in $active $value['is_active'] = 1; $active[ $key ] = $value; } // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped if ( is_array( $value ) ) { wcf_get_search_active_keys( $value, $keysToFind, $foundKeys, $active ); } } } } if ( ! function_exists( 'wcf_get_addon_active_extension_by_key' ) ) { function wcf_get_addon_active_extension_by_key( $search ) { $ext = get_option( 'wcf_save_extensions' ); if ( is_array( $ext ) ) { $saved_ext = array_keys( $ext ); $found_key = array_search( $search, $saved_ext ); if ( $found_key !== false ) { return true; } } else { return true; } return false; } } if ( ! function_exists( 'wcfaddon_get_current_user_roles' ) ) { function wcfaddon_get_current_user_roles() { if ( is_user_logged_in() ) { $user = wp_get_current_user(); $roles = (array) $user->roles; if ( is_super_admin() ) { $roles[] = 'administrator'; // Add administrator role for super admins } return $roles; // This will returns an array } else { return array(); } } } if ( ! function_exists( 'wcfaddon_get_pronotice_html' ) ) { function wcfaddon_get_pronotice_html() { $img_src = esc_url( WCF_ADDONS_URL . 'assets/images/get-pro.png' ); // Replace '#' with the actual URL or dynamic value $upgrade_url = esc_url( 'https://animation-addons.com/' ); // Replace '#' with the actual upgrade URL return sprintf( '
%s

%s

%s

%s
', $img_src, esc_attr( __( 'Upgrade Notice', 'animation-addons-for-elementor' ) ), __( 'Upgrade to premium plan and unlock every feature!', 'animation-addons-for-elementor' ), __( 'Upgrade and get access to every feature.', 'animation-addons-for-elementor' ), $upgrade_url, __( 'Upgrade Animation Addon', 'animation-addons-for-elementor' ) ); } } if ( ! function_exists( 'aaeaddon_format_number_count' ) ) { function aaeaddon_format_number_count( $count ) { if ( $count >= 1000000000 ) { return number_format( $count / 1000000000, 1 ) . esc_html__( 'b', 'animation-addons-for-elementor' ); // Billion } elseif ( $count >= 1000000 ) { return number_format( $count / 1000000, 1 ) . esc_html__( 'm', 'animation-addons-for-elementor' ); // Million } elseif ( $count >= 1000 ) { return number_format( $count / 1000, 1 ) . esc_html__( 'k', 'animation-addons-for-elementor' ); // Thousand } return $count; // Less than 1000, return the count as is } } // Search Filtering function filter_search_by_date_and_category( $query ) { if ( $query->is_search() && $query->is_main_query() && ! is_admin() ) { // ==== Date range filter ==== $from_date = isset( $_GET['from_date'] ) ? sanitize_text_field( wp_unslash( $_GET['from_date'] ) ) : ''; $to_date = isset( $_GET['to_date'] ) ? sanitize_text_field( wp_unslash( $_GET['to_date'] ) ) : ''; if ( $from_date || $to_date ) { $date_query = array( 'inclusive' => true ); if ( $from_date ) { $date_query['after'] = $from_date; } if ( $to_date ) { $date_query['before'] = $to_date; } $query->set( 'date_query', array( $date_query ) ); } // ==== Category filter ==== if ( isset( $_GET['category'] ) && is_array( $_GET['category'] ) ) { $categories = array_filter( array_map( 'intval', $_GET['category'] ) ); if ( ! empty( $categories ) ) { $query->set( 'category__in', $categories ); } } } } add_action( 'pre_get_posts', 'filter_search_by_date_and_category' ); if ( ! function_exists( 'aae_addon_breadcrumbs' ) ) { /** * AAE Breadcrumbs. * * @param string $html_tag HTML tag to use for the breadcrumbs' container. * @param string $separator Separator to use between breadcrumbs. * * @return void */ function aae_addon_breadcrumbs( $html_tag = 'div', $separator = ' » ' ) { global $post; $breadcrumbs = array(); $home_url = get_home_url(); $breadcrumbs[] = '' . esc_html__( 'Home', 'animation-addons-for-elementor' ) . ''; if ( is_front_page() ) { echo '<' . esc_attr( $html_tag ) . ' class="aae-breadcrumbs">'; echo wp_kses_post( implode( $separator, $breadcrumbs ) ); echo ''; return; } if ( is_category() || ( is_single() && get_post_type() === 'post' ) ) { if ( is_category() ) { $category = get_queried_object(); if ( $category && ! is_wp_error( $category ) ) { if ( $category->parent ) { $category_parents = array(); $current_cat = $category; while ( $current_cat->parent ) { $current_cat = get_category( $current_cat->parent ); if ( $current_cat && ! is_wp_error( $current_cat ) ) { $category_parents[] = '' . esc_html( $current_cat->name ) . ''; } } $breadcrumbs = array_merge( $breadcrumbs, array_reverse( $category_parents ) ); } $breadcrumbs[] = esc_html( $category->name ); } } elseif ( is_single() && get_post_type() === 'post' ) { $cat = get_the_category(); if ( ! empty( $cat ) ) { $category = $cat[0]; if ( $category->parent ) { $category_parents = array(); $current_cat = $category; while ( $current_cat->parent ) { $current_cat = get_category( $current_cat->parent ); if ( $current_cat && ! is_wp_error( $current_cat ) ) { $category_parents[] = '' . esc_html( $current_cat->name ) . ''; } } $breadcrumbs = array_merge( $breadcrumbs, array_reverse( $category_parents ) ); } $breadcrumbs[] = '' . esc_html( $category->name ) . ''; $breadcrumbs[] = esc_html( get_the_title() ); } } } elseif ( is_page() ) { if ( $post->post_parent ) { $parent_id = $post->post_parent; $parent_crumbs = array(); while ( $parent_id ) { $page = get_post( $parent_id ); if ( $page ) { $parent_crumbs[] = '' . esc_html( get_the_title( $page->ID ) ) . ''; $parent_id = $page->post_parent; } else { break; } } $breadcrumbs = array_merge( $breadcrumbs, array_reverse( $parent_crumbs ) ); } $breadcrumbs[] = esc_html( get_the_title() ); } elseif ( is_singular() && ! is_page() ) { $post_type = get_post_type_object( get_post_type() ); if ( $post_type && $post_type->has_archive ) { $breadcrumbs[] = '' . esc_html( $post_type->labels->name ) . ''; } $taxonomies = get_object_taxonomies( get_post_type() ); foreach ( $taxonomies as $taxonomy ) { $terms = get_the_terms( get_the_ID(), $taxonomy ); if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) { $term = current( $terms ); if ( $term->parent ) { $term_parents = array(); $current_term = $term; while ( $current_term->parent ) { $current_term = get_term( $current_term->parent, $taxonomy ); if ( $current_term && ! is_wp_error( $current_term ) ) { $term_parents[] = '' . esc_html( $current_term->name ) . ''; } } $breadcrumbs = array_merge( $breadcrumbs, array_reverse( $term_parents ) ); } $breadcrumbs[] = '' . esc_html( $term->name ) . ''; break; } } $breadcrumbs[] = esc_html( get_the_title() ); } elseif ( is_archive() ) { if ( is_post_type_archive() ) { $breadcrumbs[] = esc_html( post_type_archive_title( '', false ) ); } elseif ( is_tax() || is_tag() ) { $term = get_queried_object(); if ( isset( $term->parent ) && $term->parent ) { $term_parents = array(); $current_term = $term; while ( $current_term->parent ) { $current_term = get_term( $current_term->parent, $term->taxonomy ); if ( $current_term && ! is_wp_error( $current_term ) ) { $term_parents[] = '' . esc_html( $current_term->name ) . ''; } } $breadcrumbs = array_merge( $breadcrumbs, array_reverse( $term_parents ) ); } $breadcrumbs[] = esc_html( $term->name ); } elseif ( is_day() ) { $breadcrumbs[] = esc_html( get_the_date( 'F j, Y' ) ); } elseif ( is_month() ) { $breadcrumbs[] = esc_html( get_the_date( 'F Y' ) ); } elseif ( is_year() ) { $breadcrumbs[] = esc_html( get_the_date( 'Y' ) ); } elseif ( is_author() ) { $breadcrumbs[] = esc_html__( 'Author: ', 'animation-addons-for-elementor' ) . esc_html( get_the_author() ); } else { $breadcrumbs[] = esc_html__( 'Archives', 'animation-addons-for-elementor' ); } } elseif ( is_search() ) { $breadcrumbs[] = esc_html__( 'Search Results for: ', 'animation-addons-for-elementor' ) . esc_html( get_search_query() ); } elseif ( is_404() ) { $breadcrumbs[] = esc_html__( '404 - Page not found', 'animation-addons-for-elementor' ); } echo '<' . esc_attr( $html_tag ) . ' class="aae-breadcrumbs">'; echo wp_kses_post( implode( $separator, $breadcrumbs ) ); echo ''; } } /** * Add AAE Loop to Elementor Edit Page * * @since 2.4.5 * @return void */ add_filter( 'elementor/frontend/admin_bar/settings', function ( $settings ) { foreach ( $settings['elementor_edit_page']['children'] as $id => $item ) { $post_type = get_post_type( $id ); if ( 'wcf-addons-template' === $post_type ) { switch ( get_post_meta( $id, 'wcf-addons-template-meta_type', true ) ) { case 'loop-builder': $settings['elementor_edit_page']['children'][ $id ]['sub_title'] = 'AAE Loop'; break; case 'footer': $settings['elementor_edit_page']['children'][ $id ]['sub_title'] = 'AAE Footer'; break; case 'header': $settings['elementor_edit_page']['children'][ $id ]['sub_title'] = 'AAE Header'; break; case 'popup': $settings['elementor_edit_page']['children'][ $id ]['sub_title'] = 'AAE Pop-Up'; break; case 'single': $settings['elementor_edit_page']['children'][ $id ]['sub_title'] = 'AAE Single'; break; case 'archive': $settings['elementor_edit_page']['children'][ $id ]['sub_title'] = 'AAE archive'; break; } } } return $settings; } );