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);