Файловый менеджер - Редактировать - /home/admin/domains/octawebtools.com/public_html/wp-content/plugins/gutenverse/lib/framework/helper.php
�азад
<?php /** * Helper Functionality * * @author Jegstudio * @since 1.0.0 * @package gutenverse-framework */ if ( ! function_exists( 'gutenverse_get_event_banner' ) ) { /** * Get Event Banner * * @return mixed */ function gutenverse_get_event_banner() { $response = wp_remote_request( GUTENVERSE_FRAMEWORK_LIBRARY_URL . 'wp-json/gutenverse-banner/v1/bannerdata', array( 'method' => 'POST', ) ); if ( is_wp_error( $response ) || 200 !== $response['response']['code'] ) { return null; } $body = wp_remote_retrieve_body( $response ); $data = json_decode( $body ); if ( ! $data->banner || ! $data->bannerLibrary || ! $data->url || ! $data->expired ) { return null; } return $data; } } if ( ! function_exists( 'gutenverse_check_if_script_localized' ) ) { /** * Check if Script localized * * @param string $handle . * * @return boolean */ function gutenverse_check_if_script_localized( $handle ) { global $wp_scripts; if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) { return false; } if ( isset( $wp_scripts->registered[ $handle ] ) ) { $script = $wp_scripts->registered[ $handle ]; if ( ! empty( $script->extra['data'] ) ) { return true; } } return false; } } if ( ! function_exists( 'gutenverse_esc_data' ) ) { /** * Escape data * * @param mixed $value . * @param mixed $type . * * @return mixed */ function gutenverse_esc_data( $value, $type = 'string' ) { if ( ! $value ) { return false; } switch ( $type ) { case 'string': return esc_html( sanitize_text_field( wp_unslash( $value ) ) ); case 'integer': case 'int': return (int) $value; case 'float': case 'double': return (float) $value; case 'boolean': case 'bool': return (bool) $value; case 'content': return $value; case 'array': foreach ( $value as $key => $val ) { $type = gettype( $val ); $value[ $key ] = gutenverse_esc_data( $val, $type ); } return $value; case 'object': $value = (array) $value; foreach ( $value as $key => $val ) { $type = gettype( $val ); $value[ $key ] = gutenverse_esc_data( $val, $type ); } return (object) $value; default: return false; } } } if ( ! function_exists( 'gutenverse_jlog' ) ) { /** * Print Log */ function gutenverse_jlog() { $args = func_get_args(); foreach ( $args as $arg ) { echo '<pre>'; print_r( $arg ); echo '</pre>'; } } } if ( ! function_exists( 'gutenverse_rlog' ) ) { /** * Print Log */ function gutenverse_rlog() { $args = func_get_args(); foreach ( $args as $arg ) { error_log( print_r( $arg, true ) ); } } } if ( ! function_exists( 'gutenverse_is_block_editor' ) ) { /** * Check Current Page is Block Editor * * @return boolean */ function gutenverse_is_block_editor() { if ( function_exists( 'get_current_screen' ) && get_current_screen() ) { return get_current_screen()->is_block_editor; } return false; } } if ( ! function_exists( 'gutenverse_secure_permalink' ) ) { /** * Get Secure Permalink * * @param string $url . * * @return string|string[]|null */ function gutenverse_secure_permalink( $url ) { if ( is_ssl() ) { $url = preg_replace( '/^http:/i', 'https:', $url ); } else { $url = preg_replace( '/^https:/i', 'http:', $url ); } return $url; } } if ( ! function_exists( 'gutenverse_encode_url' ) ) { /** * Encode URL * * @param int $post_id . * * @return string */ function gutenverse_encode_url( $post_id ) { $url = get_permalink( $post_id ); return rawurlencode( $url ); } } if ( ! function_exists( 'gutenverse_print_html' ) ) { /** * Print HTML with wp_kses * * @param HTML $html . * @param string|array $condition . */ function gutenverse_print_html( $html, $condition = null ) { echo wp_kses( $html, wp_kses_allowed_html( $condition ) ); } } if ( ! function_exists( 'gutenverse_get_post_date' ) ) { /** * Get the post date * * @param \WP_Post $post Post object. * @param date_format $format string. * @param display $type string. * @param custom_format $custom string. * * @return string */ function gutenverse_get_post_date( $post, $format, $type, $custom ) { if ( 'ago' === $format ) { $output = gutenverse_get_ago_format( $type, $post ); } elseif ( 'custom' === $format ) { $output = gutenverse_get_date_format( $custom, $post, $type ); } elseif ( 'default' === $format ) { $output = gutenverse_get_date_format( '', $post, $type ); } else { $output = gutenverse_get_date_format( $format, $post, $type ); } return $output; } } if ( ! function_exists( 'gutenverse_get_date_format' ) ) { /** * Get date format * * @param date_format $format string. * @param \WP_Post $post Post object. * @param display $type string. * * @return string|int|false */ function gutenverse_get_date_format( $format = '', $post = null, $type = '' ) { if ( 'published' === $type ) { return get_the_date( $format, $post ); } return get_the_modified_date( $format, $post ); } } if ( ! function_exists( 'gutenverse_get_ago_format' ) ) { /** * Get ago format * * @param display $type string. * @param \WP_Post $post Post object. * * @return string */ function gutenverse_get_ago_format( $type, $post ) { if ( 'published' === $type ) { $output = gutenverse_ago_time( human_time_diff( get_the_time( 'U', $post ), time() ) ); } else { $output = gutenverse_ago_time( human_time_diff( get_the_modified_time( 'U', $post ), time() ) ); } return $output; } } if ( ! function_exists( 'gutenverse_ago_time' ) ) { /** * Get ago time * * @param ago_time $time string. * * @return string */ function gutenverse_ago_time( $time ) { return esc_html( sprintf( /* translators: 1: Time from now. */ esc_html__( '%s ago', 'gutenverse' ), $time ) ); } } if ( ! function_exists( 'gutenverse_post_class' ) ) { /** * Get post class * * @param string $class_name User defined class. * @param null $post_id Post ID. * * @return string */ function gutenverse_post_class( $class_name = '', $post_id = null ) { // Separates classes with a single space, collates classes for post DIV. return 'class="' . join( ' ', gutenverse_get_post_class( $class_name, $post_id ) ) . '"'; } } if ( ! function_exists( 'gutenverse_get_post_class' ) ) { /** * Custom implementation of get_post_class for Jeg Element * * @param string|array $class_name One or more classes to add to the class list. * @param int|WP_Post $post_id Optional. Post ID or post object. * * @return array Array of classes. */ function gutenverse_get_post_class( $class_name = '', $post_id = null ) { $post = get_post( $post_id ); $classes = array(); if ( $class_name ) { if ( ! is_array( $class_name ) ) { $class = preg_split( '#\s+#', $class_name ); } $classes = array_map( 'esc_attr', $class ); } else { // Ensure that we always coerce class to being an array. $class = array(); } if ( ! $post ) { return $classes; } $classes[] = 'post-' . $post->ID; if ( ! is_admin() ) { $classes[] = $post->post_type; } $classes[] = 'type-' . $post->post_type; $classes[] = 'status-' . $post->post_status; // Post Format. if ( post_type_supports( $post->post_type, 'post-formats' ) ) { $post_format = get_post_format( $post->ID ); if ( $post_format && ! is_wp_error( $post_format ) ) { $classes[] = 'format-' . sanitize_html_class( $post_format ); } else { $classes[] = 'format-standard'; } } $post_password_required = post_password_required( $post->ID ); // Post requires password. if ( $post_password_required ) { $classes[] = 'post-password-required'; } elseif ( ! empty( $post->post_password ) ) { $classes[] = 'post-password-protected'; } // Post thumbnails. if ( current_theme_supports( 'post-thumbnails' ) && has_post_thumbnail( $post->ID ) && ! is_attachment( $post ) && ! $post_password_required ) { $classes[] = 'has-post-thumbnail'; } // sticky for Sticky Posts. if ( is_sticky( $post->ID ) ) { if ( is_home() && ! is_paged() ) { $classes[] = 'sticky'; } elseif ( is_admin() ) { $classes[] = 'status-sticky'; } } // hentry for hAtom compliance. $classes[] = 'hentry'; // All public taxonomies. $taxonomies = get_taxonomies( array( 'public' => true ) ); foreach ( (array) $taxonomies as $taxonomy ) { if ( is_object_in_taxonomy( $post->post_type, $taxonomy ) ) { foreach ( (array) get_the_terms( $post->ID, $taxonomy ) as $term ) { if ( empty( $term->slug ) ) { continue; } $term_class = sanitize_html_class( $term->slug, $term->term_id ); if ( is_numeric( $term_class ) || ! trim( $term_class, '-' ) ) { $term_class = $term->term_id; } // 'post_tag' uses the 'tag' prefix for backward compatibility. if ( 'post_tag' === $taxonomy ) { $classes[] = 'tag-' . $term_class; } else { $classes[] = sanitize_html_class( $taxonomy . '-' . $term_class, $taxonomy . '-' . $term->term_id ); } } } } $classes = array_map( 'esc_attr', $classes ); return array_unique( $classes ); } } if ( ! function_exists( 'gutenverse_join_array' ) ) { /** * Merge array into string with comma (,) * * @param array $values . * @param bool $wrap . */ function gutenverse_join_array( $values, $wrap = true ) { return $wrap ? '<span>' . implode( ', ', $values ) . ' </span>' : implode( ', ', $values ); } } if ( ! function_exists( 'gutenverse_get_json' ) ) { /** * Get JSON data * * @param string $path . */ function gutenverse_get_json( $path ) { ob_start(); include $path; $data = ob_get_clean(); return json_decode( $data, true ); } } if ( ! function_exists( 'gutenverse_secure_iterable' ) ) { /** * Check if a value is iterable * * @param array $value . */ function gutenverse_secure_iterable( $value ) { return is_iterable( $value ) ? $value : array(); } } if ( ! function_exists( 'gutenverse_header_font' ) ) { /** * Header Font * * @param array $font_families Array of font family. * * @return void */ function gutenverse_header_font( $font_families ) { $families = array(); $upload_path = wp_upload_dir(); $upload_url = $upload_path['baseurl']; $custom_family = array(); foreach ( gutenverse_secure_iterable( $font_families ) as $font ) { $family = $font['value']; $type = $font['type']; $id = ! empty( $font['id'] ) ? $font['id'] : null; if ( 'google' === $type ) { $families[ $family ] = isset( $families[ $family ] ) ? $families[ $family ] : array(); if ( 'google' === $type && ! empty( $font['weight'] ) ) { array_push( $families[ $family ], $font['weight'] ); } } elseif ( 'custom_font_pro' === $type ) { array_push( $custom_family, $family ); } } $google_fonts = gutenverse_google_font_params( $families ); if ( ! empty( $google_fonts ) ) { $font_url = add_query_arg( array( 'family' => join( '|', $google_fonts ), 'display' => 'swap', ), '//fonts.googleapis.com/css' ); // Enqueue google font. wp_enqueue_style( 'gutenverse-google-font', $font_url, array(), GUTENVERSE_FRAMEWORK_VERSION ); } if ( ! empty( $custom_family ) ) { foreach ( $custom_family as $value ) { // Enqueue google font. $font_url = $upload_url . '/' . $value . '.css'; wp_enqueue_style( 'gutenverse-custom-font-' . uniqid( $value ), $font_url, array(), GUTENVERSE_FRAMEWORK_VERSION ); } } } } if ( ! function_exists( 'gutenverse_google_font_params' ) ) { /** * Get Google Font params * * @param array $families List of font families. * * @return array */ function gutenverse_google_font_params( $families ) { $result = array(); foreach ( $families as $family => $weights ) { $defaults = array( '400', '400italic', '700', '700italic' ); $weights = array_merge( $defaults, $weights ); $weights = join( ',', array_unique( $weights ) ); $result[] = ! empty( $weights ) ? "{$family}:{$weights}" : $family; } return $result; } } if ( ! function_exists( 'gutenverse_is_previewer' ) ) { /** * If current page is previewer */ function gutenverse_is_previewer() { return isset( $_GET['preview'] ); } } if ( ! function_exists( 'gutenverse_is_autosave' ) ) { /** * If current request is autosave */ function gutenverse_is_autosave() { return defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE; } } if ( ! function_exists( 'gutenverse_pro_installed' ) ) { /** * Check if gutenverse pro activated. */ function gutenverse_pro_installed() { require_once ABSPATH . 'wp-admin/includes/plugin.php'; $plugin = 'gutenverse-pro/gutenverse-pro.php'; $installed_plugins = get_plugins(); return isset( $installed_plugins[ $plugin ] ); } } if ( ! function_exists( 'gutenverse_css_path' ) ) { /** * Get Gutenverse CSS Path. * * @param string $file File name. * * @return string */ function gutenverse_css_path( $file = '' ) { $upload_dir = wp_upload_dir(); $upload_path = $upload_dir['basedir']; $custom_dir = $upload_path . '/gutenverse/css'; if ( '' === $file ) { return $custom_dir . $file; } else { return $custom_dir . '/' . $file; } } } if ( ! function_exists( 'gutenverse_remove_protocol' ) ) { /** * Get Gutenverse CSS Path. * * @param string $url File name. * * @return string * * @since 1.0.1 */ function gutenverse_remove_protocol( $url ) { return preg_replace( '(^https?:)', '', $url ); } } if ( ! function_exists( 'gutenverse_css_url' ) ) { /** * Get Gutenverse CSS Path. * * @param string $file File name. * * @return string */ function gutenverse_css_url( $file = '' ) { $upload_dir = wp_upload_dir(); $upload_path = $upload_dir['baseurl']; $custom_dir = $upload_path . '/gutenverse/css'; if ( '' === $file ) { return gutenverse_remove_protocol( $custom_dir . $file ); } else { return gutenverse_remove_protocol( $custom_dir . '/' . $file ); } } } if ( ! function_exists( 'gutenverse_compatible_check' ) ) { /** * Check if gutenverse is compatible. * * @param string $before_ver WordPress Version. */ function gutenverse_compatible_check( $before_ver = '5.9' ) { return defined( 'GUTENBERG_VERSION' ) || version_compare( $GLOBALS['wp_version'], $before_ver, '>=' ); } } if ( ! function_exists( 'gutenverse_get_menu' ) ) { /** * Get menu. * * @param int|string $menu_id Menu ID. */ function gutenverse_get_menu( $menu_id ) { return wp_nav_menu( array( 'menu' => esc_attr( $menu_id ), 'menu_class' => 'gutenverse-menu', 'container_class' => 'gutenverse-menu-container', 'echo' => false, ) ); } } if ( ! function_exists( 'gutenverse_get_template_part_pattern_data' ) ) { /** * Gutenverse Template Part Data. * * @param array $attributes Attributes . * @param array $post_type Post Type . * * @return Object */ function gutenverse_get_template_part_pattern_post_data( $attributes, $post_type ) { $theme = isset( $attributes['theme'] ) ? $attributes['theme'] : get_stylesheet(); $data = null; if ( isset( $attributes['slug'] ) && get_stylesheet() === $theme ) { $template_part_query = new WP_Query( array( 'post_type' => $post_type, 'post_status' => 'publish', 'post_name__in' => array( $attributes['slug'] ), 'tax_query' => array( array( 'taxonomy' => 'wp_theme', 'field' => 'name', 'terms' => $theme, ), ), 'posts_per_page' => 1, 'no_found_rows' => true, 'lazy_load_term_meta' => false, // Do not lazy load term meta, as template parts only have one term. ) ); $data = $template_part_query->have_posts() ? $template_part_query->next_post() : null; } return $data; } } if ( ! function_exists( 'gutenverse_template_part_content' ) ) { /** * Gutenverse Template Part Content. * * @param array $attributes Attributes. * @param string $template_part_id Template Part ID. * @param string $area Area. * * @return string */ function gutenverse_template_part_content( $attributes, &$template_part_id, &$area ) { $content = null; $theme = isset( $attributes['theme'] ) ? $attributes['theme'] : get_stylesheet(); if ( isset( $attributes['slug'] ) && get_stylesheet() === $theme ) { $template_part_id = $theme . '//' . $attributes['slug']; $template_part_query = new WP_Query( array( 'post_type' => 'wp_template_part', 'post_status' => 'publish', 'post_name__in' => array( $attributes['slug'] ), 'tax_query' => array( array( 'taxonomy' => 'wp_theme', 'field' => 'name', 'terms' => $theme, ), ), 'posts_per_page' => 1, 'no_found_rows' => true, 'lazy_load_term_meta' => false, // Do not lazy load term meta, as template parts only have one term. ) ); $template_part_post = $template_part_query->have_posts() ? $template_part_query->next_post() : null; if ( $template_part_post ) { // A published post might already exist if this template part was customized elsewhere // or if it's part of a customized template. $content = $template_part_post->post_content; $area_terms = get_the_terms( $template_part_post, 'wp_template_part_area' ); if ( ! is_wp_error( $area_terms ) && false !== $area_terms ) { $area = $area_terms[0]->name; } /** * Fires when a block template part is loaded from a template post stored in the database. * * @since 5.9.0 * * @param string $template_part_id The requested template part namespaced to the theme. * @param array $attributes The block attributes. * @param WP_Post $template_part_post The template part post object. * @param string $content The template part content. */ do_action( 'render_block_core_template_part_post', $template_part_id, $attributes, $template_part_post, $content ); } else { $template_part_file_path = ''; // Else, if the template part was provided by the active theme, // render the corresponding file content. if ( 0 === validate_file( $attributes['slug'] ) ) { $block_template = get_block_file_template( $template_part_id, 'wp_template_part' ); $content = $block_template->content; if ( isset( $block_template->area ) ) { $area = $block_template->area; } } if ( '' !== $content && null !== $content ) { /** * Fires when a block template part is loaded from a template part in the theme. * * @since 5.9.0 * * @param string $template_part_id The requested template part namespaced to the theme. * @param array $attributes The block attributes. * @param string $template_part_file_path Absolute path to the template path. * @param string $content The template part content. */ do_action( 'render_block_core_template_part_file', $template_part_id, $attributes, $template_part_file_path, $content ); } else { /** * Fires when a requested block template part does not exist in the database nor in the theme. * * @since 5.9.0 * * @param string $template_part_id The requested template part namespaced to the theme. * @param array $attributes The block attributes. * @param string $template_part_file_path Absolute path to the not found template path. */ do_action( 'render_block_core_template_part_none', $template_part_id, $attributes, $template_part_file_path ); } } } return $content; } } if ( ! function_exists( 'gutenverse_variable_font_name' ) ) { /** * Font Variable Name. * * @param string $id Id of variable. * @param string $child name of child variable. * * @return string */ function gutenverse_variable_font_name( $id, $child ) { return "--gutenverse-font-{$child}-{$id}"; } } if ( ! function_exists( 'gutenverse_variable_color_name' ) ) { /** * Color Variable Name. * * @param string $id Id of variable. * * @return string */ function gutenverse_variable_color_name( $id ) { return "--wp--preset--color--{$id}"; } } if ( ! function_exists( 'gutenverse_normal_appender' ) ) { /** * Normal Appender. * * @param string $style Style. * @param array $variable_style Array of Style Object. */ function gutenverse_normal_appender( $style, &$variable_style ) { $variable_style['Desktop'] .= $style; } } if ( ! function_exists( 'gutenverse_responsive_appender' ) ) { /** * Normal Appender. * * @param string $style Style. * @param string $device Device name. * @param array $variable_style Array of Style Object. */ function gutenverse_responsive_appender( $style, $device, &$variable_style ) { $variable_style[ $device ] .= $style; } } if ( ! function_exists( 'gutenverse_global_font_style_generator' ) ) { /** * Font Style Generator. * * @param array $fonts Font Content. * * @return string|void */ function gutenverse_global_font_style_generator( $fonts ) { $variable_style = array( 'Desktop' => '', 'Tablet' => '', 'Mobile' => '', ); foreach ( $fonts as $font ) { $id = $font['id']; $font = $font['font']; if ( isset( $font['font'] ) ) { $thefont = $font['font']; if ( $thefont ) { gutenverse_normal_appender( gutenverse_variable_font_name( $id, 'family' ) . ':"' . $thefont['value'] . '";', $variable_style ); } } if ( isset( $font['size'] ) ) { $size = $font['size']; if ( $size ) { foreach ( $variable_style as $device => $value ) { if ( isset( $size[ $device ] ) && isset( $size[ $device ]['point'] ) && $size[ $device ]['point'] && isset( $size[ $device ]['unit'] ) ) { $value = $size[ $device ]['point'] . $size[ $device ]['unit']; gutenverse_responsive_appender( gutenverse_variable_font_name( $id, 'size' ) . ':' . $value . ';', $device, $variable_style ); } } } } if ( isset( $font['weight'] ) ) { $weight = $font['weight']; if ( $weight ) { $check_weight = 'default' === $weight ? '400' : $weight; gutenverse_normal_appender( gutenverse_variable_font_name( $id, 'weight' ) . ':' . $check_weight . ';', $variable_style ); } } if ( isset( $font['transform'] ) ) { $transform = $font['transform']; if ( $transform && 'default' !== $transform ) { gutenverse_normal_appender( gutenverse_variable_font_name( $id, 'transform' ) . ':' . $transform . ';', $variable_style ); } } if ( isset( $font['style'] ) ) { $style = $font['style']; if ( $style && 'default' !== $style ) { gutenverse_normal_appender( gutenverse_variable_font_name( $id, 'style' ) . ':' . $style . ';', $variable_style ); } } if ( isset( $font['decoration'] ) ) { $decoration = $font['decoration']; if ( $decoration && 'default' !== $decoration ) { gutenverse_normal_appender( gutenverse_variable_font_name( $id, 'decoration' ) . ':' . $decoration . ';', $variable_style ); } } if ( isset( $font['lineHeight'] ) ) { $line_height = $font['lineHeight']; if ( $line_height ) { foreach ( $variable_style as $device => $value ) { if ( isset( $line_height[ $device ] ) && isset( $line_height[ $device ]['point'] ) ) { $value = $line_height[ $device ]['point'] . $line_height[ $device ]['unit']; gutenverse_responsive_appender( gutenverse_variable_font_name( $id, 'lineHeight' ) . ':' . $value . ';', $device, $variable_style ); } } } } if ( isset( $font['spacing'] ) ) { $spacing = $font['spacing']; if ( $spacing ) { foreach ( $variable_style as $device => $value ) { if ( isset( $spacing[ $device ] ) ) { $value = $spacing[ $device ]; gutenverse_responsive_appender( gutenverse_variable_font_name( $id, 'spacing' ) . ':' . $value . 'em;', $device, $variable_style ); } } } } } return 'body { ' . $variable_style['Desktop'] . ' } @media only screen and (max-width: ' . gutenverse_breakpoint( 'Tablet' ) . 'px) { body {' . $variable_style['Tablet'] . '}} @media only screen and (max-width: ' . gutenverse_breakpoint( 'Mobile' ) . 'px) { body {' . $variable_style['Mobile'] . '}}'; } } if ( ! function_exists( 'gutenverse_global_color_style_generator' ) ) { /** * Color Style Generator. * * @param array $colors Color Content. * * @return string|void */ function gutenverse_global_color_style_generator( $colors ) { $variable_style = ''; foreach ( $colors as $value ) { $variable_style .= gutenverse_variable_color_name( $value['slug'] ) . ':' . $value['color'] . ';'; } return 'body { ' . $variable_style . ' }'; } } if ( ! function_exists( 'gutenverse_breakpoint' ) ) { /** * Font Style Generator. * * @param string $device Get Default Breakpoint. * * @return string */ function gutenverse_breakpoint( $device ) { $settings_data = get_option( 'gutenverse-settings', array() ); $tablet_breakpoint = 1024; $mobile_breakpoint = 767; if ( isset( $settings_data['editor_settings'] ) ) { if ( ! empty( $settings_data['editor_settings']['tablet_breakpoint'] ) ) { $tablet_breakpoint = $settings_data['editor_settings']['tablet_breakpoint']; } if ( ! empty( $settings_data['editor_settings']['mobile_breakpoint'] ) ) { $mobile_breakpoint = $settings_data['editor_settings']['mobile_breakpoint']; } } switch ( $device ) { case 'Desktop': return ''; case 'Tablet': return $tablet_breakpoint; case 'Mobile': return $mobile_breakpoint; } } } if ( ! function_exists( 'gutenverse_autoblock_recovery' ) ) { /** * Check if autoblock recovery is enabled. */ function gutenverse_autoblock_recovery() { $settings_data = get_option( 'gutenverse-settings', array() ); $autoblock_recovery = true; if ( isset( $settings_data['editor_settings'] ) && isset( $settings_data['editor_settings']['autoblock_recovery'] ) ) { $autoblock_recovery = $settings_data['editor_settings']['autoblock_recovery']; } return $autoblock_recovery; } } if ( ! function_exists( 'gutenverse_missing_blocks' ) ) { /** * Check if missing block editor warning is enabled. */ function gutenverse_missing_blocks() { $settings_data = get_option( 'gutenverse-settings', array() ); $missing_block_warn = true; if ( isset( $settings_data['editor_settings'] ) && isset( $settings_data['editor_settings']['missing_block_warn'] ) ) { $missing_block_warn = $settings_data['editor_settings']['missing_block_warn']; } return $missing_block_warn; } } if ( ! function_exists( 'gutenverse_get_global_variable' ) ) { /** * Get global variables of a theme * * @param string $type which variable to get, default = all. * * @return array */ function gutenverse_get_global_variable( $type = null ) { // Get value from old option. $global_variable = get_option( 'gutenverse-global-variable' ); // Get value from new options. $current_theme = get_stylesheet(); $global_fonts = get_option( 'gutenverse-global-variable-font-' . $current_theme, array() ); $global_colors = get_option( 'gutenverse-global-variable-color-' . $current_theme, array() ); $inc_old_fonts = false; if ( ! empty( $global_variable['fonts'] ) ) { $global_fonts = array_merge( $global_fonts, $global_variable['fonts'] ); $inc_old_fonts = true; } if ( ! empty( $global_variable['colors'] ) ) { $global_colors = array_merge( $global_colors, $global_variable['colors'] ); } if ( 'font' === $type || 'fonts' === $type ) { return $global_fonts; } if ( 'color' === $type || 'colors' === $type ) { return $global_colors; } return array( 'colors' => $global_colors, 'fonts' => $global_fonts, 'old_fonts' => $inc_old_fonts, ); } } if ( ! function_exists( 'gutenverse_get_theme_settings' ) && class_exists( 'WP_Theme_Json_Resolver' ) ) { /** * Get theme settings * * @return array */ function gutenverse_get_theme_settings() { return WP_Theme_JSON_Resolver::get_merged_data( 'theme' )->get_settings(); } } if ( ! function_exists( 'gutenverse_child_template' ) ) { /** * Check if using child theme * NOTE : WP function is_child_theme() is not used here because there is known issue for PHP 7+ * https://developer.wordpress.org/reference/functions/is_child_theme/ * * @param string $base : url base. * @param string $slug : theme slug. * * @return array */ function gutenverse_child_template( $base, $slug ) { $is_child_theme = get_template_directory() !== get_stylesheet_directory(); $template_exist = file_exists( get_stylesheet_directory() . '/' . $base . '/' . $slug . '.html' ); return $is_child_theme && $template_exist; } } if ( ! function_exists( 'gutenverse_str_contains' ) ) { /** * Determine if a string contains a given substring * * @param string $haystack : The string to search in. * @param string $needle : The substring to search for in the haystack. * * @return array */ function gutenverse_str_contains( $haystack, $needle ) { return '' !== $needle && mb_strpos( $haystack, $needle ) !== false; } } if ( ! function_exists( 'gutenverse_delete_sceduler' ) ) { /** * Delete Sceduler * * @param string $sceduler_name . */ function gutenverse_delete_sceduler( $sceduler_name ) { $timestamp = wp_next_scheduled( $sceduler_name ); if ( $timestamp ) { wp_unschedule_event( $timestamp, $sceduler_name ); } } } if ( ! function_exists( 'gutenverse_permission_check_admin' ) ) { /** * Check admin permissions. * * @return bool|WP_Error */ function gutenverse_permission_check_admin() { if ( ! current_user_can( 'manage_options' ) ) { return new WP_Error( 'forbidden_permission', esc_html__( 'Forbidden Access', 'gutenverse' ), array( 'status' => 403 ) ); } return true; } } if ( ! function_exists( 'gutenverse_permission_check_author' ) ) { /** * Check author permissions. * * @return bool|WP_Error */ function gutenverse_permission_check_author() { if ( ! current_user_can( 'edit_posts' ) ) { return new WP_Error( 'forbidden_permission', esc_html__( 'Forbidden Access', 'gutenverse' ), array( 'status' => 403 ) ); } return true; } } if ( ! function_exists( 'gutenverse_remove_folder' ) ) { /** * Check author permissions. * * @param string $dir Directory. */ function gutenverse_remove_folder( $dir ) { if ( is_dir( $dir ) ) { if ( substr( $dir, strlen( $dir ) - 1, 1 ) !== '/' ) { $dir .= '/'; } $files = glob( $dir . '*', GLOB_MARK ); foreach ( $files as $file ) { if ( is_dir( $file ) ) { gutenverse_remove_folder( $file ); } else { wp_delete_file( $file ); } } global $wp_filesystem; require_once ABSPATH . 'wp-admin/includes/file.php'; WP_Filesystem(); $wp_filesystem->rmdir( $dir ); } } } if ( ! function_exists( 'gutenverse_upgrade_pro' ) ) { /** * Referral URL. */ function gutenverse_upgrade_pro() { $referral = apply_filters( 'gutenverse_theme_referral_code', null ); if ( ! empty( $referral ) ) { return GUTENVERSE_FRAMEWORK_REFERRAL_URL . '/' . $referral; } else { return GUTENVERSE_UPGRADE_URL; } } } /** * Check if variable is empty and not contain 0 * * @param mixed $value . * * @return boolean */ function gutenverse_truly_empty( &$value = '' ) { return empty( $value ) && '0' !== $value && 0 !== $value; }
| ver. 1.4 |
Github
|
.
| PHP 8.1.32 | Генераци� �траницы: 0 |
proxy
|
phpinfo
|
�а�тройка