HEX
Server: nginx/1.18.0
System: Linux vcwordpress 5.15.0-174-generic #184-Ubuntu SMP Fri Mar 13 18:41:50 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/soreal.space/wp-content/themes/soreal/inc/custom-functions.php
<?php
/**
 * Custom functions file SoReal
 */

// Disable Gutenberg editor.
add_filter( 'use_block_editor_for_post', '__return_false', 10 );
// Disable Gutenberg editor for widgets.
add_filter( 'use_widgets_block_editor', '__return_false' );


// Add options page
if ( function_exists( 'acf_add_options_page' ) ) {
	acf_add_options_page(
		array(
			'page_title' => 'Theme Settings',
			'menu_title' => 'Theme Settings',
			'menu_slug'  => 'theme-general-settings',
			'capability' => 'edit_posts',
			'redirect'   => false,
		)
	);
    
	acf_add_options_sub_page(
		array(
			'page_title'  => 'Header Options',
			'menu_title'  => 'Header Options',
			'parent_slug' => 'theme-general-settings',
		)
	);
	acf_add_options_sub_page(
		array(
			'page_title'  => 'Footer Options',
			'menu_title'  => 'Footer Options',
			'parent_slug' => 'theme-general-settings',
		)
	);
}

function cc_mime_types( $mimes ) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
add_filter( 'upload_mimes', 'cc_mime_types' );

function add_custom_mime_types( $mimes ) {
    $mimes['ico'] = 'image/x-icon';
    return $mimes;
}

/**
 * Enqueue style and script
 */
function soreal_enqueue_styles() {
	wp_enqueue_style('slickcss', get_template_directory_uri() . '/assets/css/slick.css', array(), '1.0', 'all');
	wp_enqueue_style('slickthemecss', get_template_directory_uri() . '/assets/css/slick-theme.css', array(), '1.0', 'all');
	wp_enqueue_style('tailwindcss', get_template_directory_uri() . '/output.css', array(), '1.0', 'all');
	wp_enqueue_style('custom-styles', get_template_directory_uri() . '/assets/css/custom-styles.css', array(), '1.0', 'all');
	wp_enqueue_style('contact-form', get_template_directory_uri() . '/assets/css/contact-form.css', array(), '1.0', 'all');
	//woff fonts
	wp_enqueue_style('fa-brands-400', get_template_directory_uri() . '/assets/fonts/fa-brands-400.woff2', array(), '1.0', 'all');
	wp_enqueue_style('fa-regular-400', get_template_directory_uri() . '/assets/fonts/fa-regular-400.woff2', array(), '1.0', 'all');
	wp_enqueue_style('fa-solid-900', get_template_directory_uri() . '/assets/fonts/fa-solid-900.woff2', array(), '1.0', 'all');
	wp_enqueue_style('fa-v4compatibility', get_template_directory_uri() . '/assets/fonts/fa-v4compatibility.woff2', array(), '1.0', 'all');
	//ttf fonts
	wp_enqueue_style('fa-brands-ttf', get_template_directory_uri() . '/assets/fonts/fa-brands-400.ttf', array(), '1.0', 'all');
	wp_enqueue_style('fa-regular-ttf', get_template_directory_uri() . '/assets/fonts/fa-regular-400.ttf', array(), '1.0', 'all');
	wp_enqueue_style('fa-solid-900-ttf', get_template_directory_uri() . '/assets/fonts/fa-solid-900.ttf', array(), '1.0', 'all');
	wp_enqueue_style('fa-v4compatibility-ttf', get_template_directory_uri() . '/assets/fonts/fa-v4compatibility.ttf', array(), '1.0', 'all');

	wp_enqueue_script( 'jquery.min-js', get_template_directory_uri() . '/assets/js/jquery.min.js', array(), _S_VERSION, true );
	wp_enqueue_script( 'tailwind-config', get_template_directory_uri() . '/tailwind.config.js', array(), _S_VERSION, true );
	wp_enqueue_script( 'all.min-js', get_template_directory_uri() . '/assets/js/all.min.js', array(), _S_VERSION, true );
	wp_enqueue_script( 'slick.min-js', get_template_directory_uri() . '/assets/js/slick.min.js', array(), _S_VERSION, true );
}
add_action('wp_enqueue_scripts', 'soreal_enqueue_styles');

/**
 * Register footer menu
 * 
 * @return void
 */
function register_footer_menu() {
	register_nav_menu('footer-menu', __('Footer Menu'));
}
add_action('init', 'register_footer_menu');
class Custom_Walker_Nav_Menu extends Walker_Nav_Menu {
    function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) {
        $classes = empty($item->classes) ? array() : (array) $item->classes;
        $class_names = join(' ', apply_filters('nav_menu_css_class', array_filter($classes), $item, $args));
        $class_names = $class_names ? ' class="' . esc_attr($class_names) . '"' : '';

        $output .= '<li id="menu-item-'. $item->ID . '"' . $class_names .'>';

        $attributes  = ! empty($item->attr_title) ? ' title="'  . esc_attr($item->attr_title) .'"' : '';
        $attributes .= ! empty($item->target)     ? ' target="' . esc_attr($item->target     ) .'"' : '';
        $attributes .= ! empty($item->xfn)        ? ' rel="'    . esc_attr($item->xfn        ) .'"' : '';
        $attributes .= ! empty($item->url)        ? ' href="'   . esc_attr($item->url        ) .'"' : '';

        // Add the custom class here
        $attributes .= " class='text-white relative hover:underline transition-all after:absolute after:bg-white after:-right-3 after:top-1 after:bottom-1 after:w-[1px] last:after:hidden'";

        $item_output = $args->before;
        $item_output .= '<a'. $attributes .'>';
        $item_output .= $args->link_before . apply_filters('the_title', $item->title, $item->ID) . $args->link_after;
        $item_output .= '</a>';
        $item_output .= $args->after;

        $output .= apply_filters('walker_nav_menu_start_el', $item_output, $item, $depth, $args);
    }
}

/**
 * SMTP Configuration
 *
 * @param [type] $phpmailer
 * @return void
 */
function configure_smtp( $phpmailer ) {
    $phpmailer->isSMTP();
    $phpmailer->Host       = SMTP_HOST;
    $phpmailer->SMTPAuth   = SMTP_AUTH;
    $phpmailer->Port       = SMTP_PORT;
    $phpmailer->Username   = SMTP_USER;
    $phpmailer->Password   = SMTP_PASS;
    $phpmailer->SMTPSecure = SMTP_SECURE;
    $phpmailer->From       = SMTP_FROM;
    $phpmailer->FromName   = SMTP_NAME;
}

add_action( 'phpmailer_init', 'configure_smtp' );


function enqueue_variation_loader_script() {
    // Enqueue the external JavaScript file
    wp_enqueue_script('variation-loader', get_template_directory_uri() . '/assets/js/variation-loader.js', array(), null, true);

    // Pass the PHP-generated URL to the JavaScript file
    $build_url = get_template_directory_uri() . '/Build';
    wp_localize_script('variation-loader', 'variationLoaderData', array(
        'buildUrl' => $build_url,
    ));
}
add_action('wp_enqueue_scripts', 'enqueue_variation_loader_script', 0);