File: /storage/v6964/iskcon/public_html/wp-content/themes/legal-services-firm/functions.php
<?php
/**
* Legal Services Firm functions and definitions
*
* @package Legal Services Firm
*/
if ( ! defined( 'LEGAL_SERVICES_FIRM_VERSION' ) ) {
// Replace the version number of the theme on each release.
define( 'LEGAL_SERVICES_FIRM_VERSION', '1.0.0' );
}
function legal_services_firm_setup() {
add_theme_support( 'automatic-feed-links' );
add_theme_support( 'title-tag' );
add_theme_support( 'post-thumbnails' );
add_theme_support( 'woocommerce' );
add_theme_support( "align-wide" );
add_theme_support( "responsive-embeds" );
register_nav_menus(
array(
'menu-1' => esc_html__( 'Primary', 'legal-services-firm' ),
'social-menu' => esc_html__('Social Menu', 'legal-services-firm'),
)
);
add_theme_support(
'html5',
array(
'search-form',
'comment-form',
'comment-list',
'gallery',
'caption',
'style',
'script',
)
);
add_theme_support(
'custom-background',
apply_filters(
'legal_services_firm_custom_background_args',
array(
'default-color' => '#fafafa',
'default-image' => '',
)
)
);
add_theme_support( 'customize-selective-refresh-widgets' );
add_theme_support(
'custom-logo',
array(
'height' => 250,
'width' => 250,
'flex-width' => true,
'flex-height' => true,
)
);
add_theme_support( 'post-formats', array(
'image',
'video',
'gallery',
'audio',
));
}
add_action( 'after_setup_theme', 'legal_services_firm_setup' );
/**
* Set the content width in pixels, based on the theme's design and stylesheet.
*
* Priority 0 to make it available to lower priority callbacks.
*
* @global int $legal_services_firm_content_width
*/
function legal_services_firm_content_width() {
$GLOBALS['content_width'] = apply_filters( 'legal_services_firm_content_width', 640 );
}
add_action( 'after_setup_theme', 'legal_services_firm_content_width', 0 );
/**
* Register widget area.
*
* @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
*/
function legal_services_firm_widgets_init() {
register_sidebar(
array(
'name' => esc_html__( 'Sidebar', 'legal-services-firm' ),
'id' => 'sidebar-1',
'description' => esc_html__( 'Add widgets here.', 'legal-services-firm' ),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
)
);
register_sidebar(
array(
'name' => esc_html__( 'Footer 1', 'legal-services-firm' ),
'id' => 'footer-1',
'description' => esc_html__( 'Add widgets here.', 'legal-services-firm' ),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
)
);
register_sidebar(
array(
'name' => esc_html__( 'Footer 2', 'legal-services-firm' ),
'id' => 'footer-2',
'description' => esc_html__( 'Add widgets here.', 'legal-services-firm' ),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
)
);
register_sidebar(
array(
'name' => esc_html__( 'Footer 3', 'legal-services-firm' ),
'id' => 'footer-3',
'description' => esc_html__( 'Add widgets here.', 'legal-services-firm' ),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
)
);
}
add_action( 'widgets_init', 'legal_services_firm_widgets_init' );
function legal_services_firm_social_menu()
{
if (has_nav_menu('social-menu')) :
wp_nav_menu(array(
'theme_location' => 'social-menu',
'container' => 'ul',
'menu_class' => 'social-menu menu',
'menu_id' => 'menu-social',
));
endif;
}
/**
* Enqueue scripts and styles.
*/
function legal_services_firm_scripts() {
// Google Fonts
$query_args = array(
'family' => rawurlencode('Oswald:wght@200..700|Roboto:wght@0,100..900;1,100..900'),
'display' => 'swap',
);
wp_enqueue_style('legal-services-firm-google-fonts', add_query_arg($query_args, 'https://fonts.googleapis.com/css'), array(), null);
// Font Awesome CSS
wp_enqueue_style('font-awesome-5', get_template_directory_uri() . '/revolution/assets/vendors/font-awesome-5/css/all.min.css', array(), '5.15.3');
// Owl Carousel CSS
wp_enqueue_style('owl-carousel-style', get_template_directory_uri() . '/revolution/assets/css/owl.carousel.css', array(), wp_get_theme()->get('Version'));
// Main stylesheet
wp_enqueue_style('legal-services-firm-style', get_stylesheet_uri(), array(), wp_get_theme()->get('Version'));
// Add custom inline styles
require get_parent_theme_file_path('/custom-style.php');
wp_add_inline_style('legal-services-firm-style', $legal_services_firm_custom_css);
// RTL styles if needed
if (file_exists(get_stylesheet_directory() . '/rtl.css')) {
wp_style_add_data('legal-services-firm-style', 'rtl', 'replace');
}
// Navigation script
wp_enqueue_script('legal-services-firm-navigation', get_template_directory_uri() . '/js/navigation.js', array(), wp_get_theme()->get('Version'), true);
// Owl Carousel script
wp_enqueue_script('owl-carousel-jquery', get_template_directory_uri() . '/revolution/assets/js/owl.carousel.js', array('jquery'), wp_get_theme()->get('Version'), true);
// Custom script
wp_enqueue_script('legal-services-firm-custom-js', get_template_directory_uri() . '/revolution/assets/js/custom.js', array('jquery'), wp_get_theme()->get('Version'), true);
// Comments reply script
if (is_singular() && comments_open() && get_option('thread_comments')) {
wp_enqueue_script('comment-reply');
}
}
add_action('wp_enqueue_scripts', 'legal_services_firm_scripts');
if (!function_exists('legal_services_firm_related_post')) :
/**
* Display related posts from same category
*
*/
function legal_services_firm_related_post($post_id){
$legal_services_firm_categories = get_the_category($post_id);
if ($legal_services_firm_categories) {
$legal_services_firm_category_ids = array();
$legal_services_firm_category = get_category($legal_services_firm_category_ids);
$legal_services_firm_categories = get_the_category($post_id);
foreach ($legal_services_firm_categories as $legal_services_firm_category) {
$legal_services_firm_category_ids[] = $legal_services_firm_category->term_id;
}
$legal_services_firm_count = $legal_services_firm_category->category_count;
if ($legal_services_firm_count > 1) { ?>
<?php
$legal_services_firm_related_post_wrap = absint(get_theme_mod('legal_services_firm_enable_related_post', 1));
if($legal_services_firm_related_post_wrap == 1){ ?>
<div class="related-post">
<h2 class="post-title"><?php esc_html_e(get_theme_mod('legal_services_firm_related_post_text', __('Related Post', 'legal-services-firm'))); ?></h2>
<?php
$legal_services_firm_cat_post_args = array(
'category__in' => $legal_services_firm_category_ids,
'post__not_in' => array($post_id),
'post_type' => 'post',
'posts_per_page' => get_theme_mod( 'legal_services_firm_related_post_count', '3' ),
'post_status' => 'publish',
'orderby' => 'rand',
'ignore_sticky_posts' => true
);
$legal_services_firm_featured_query = new WP_Query($legal_services_firm_cat_post_args);
?>
<div class="rel-post-wrap">
<?php
if ($legal_services_firm_featured_query->have_posts()) :
while ($legal_services_firm_featured_query->have_posts()) : $legal_services_firm_featured_query->the_post();
?>
<div class="card-item rel-card-item">
<div class="card-content">
<?php if ( has_post_thumbnail() ) { ?>
<div class="card-media">
<?php legal_services_firm_post_thumbnail(); ?>
</div>
<?php } else {
// Fallback default image
$legal_services_firm_default_post_thumbnail = get_template_directory_uri() . '/revolution/assets/images/slider.png';
echo '<img class="default-post-img" src="' . esc_url( $legal_services_firm_default_post_thumbnail ) . '" alt="' . esc_attr( get_the_title() ) . '">';
} ?>
<div class="entry-title">
<h3>
<a href="<?php the_permalink() ?>">
<?php the_title(); ?>
</a>
</h3>
</div>
<div class="entry-meta">
<?php
legal_services_firm_posted_on();
legal_services_firm_posted_by();
?>
</div>
</div>
</div>
<?php
endwhile;
?>
<?php
endif;
wp_reset_postdata();
?>
</div>
<?php } ?>
<?php
}
}
}
endif;
add_action('legal_services_firm_related_posts', 'legal_services_firm_related_post', 10, 1);
/**
* Checkbox sanitization callback example.
*
* Sanitization callback for 'checkbox' type controls. This callback sanitizes `$legal_services_firm_checked`
* as a boolean value, either TRUE or FALSE.
*/
function legal_services_firm_sanitize_checkbox($legal_services_firm_checked)
{
// Boolean check.
return ((isset($legal_services_firm_checked) && true == $legal_services_firm_checked) ? true : false);
}
/**
* Implement the Custom Header feature.
*/
require get_template_directory() . '/revolution/inc/custom-header.php';
/**
* Custom template tags for this theme.
*/
require get_template_directory() . '/revolution/inc/template-tags.php';
/**
* Functions which enhance the theme by hooking into WordPress.
*/
require get_template_directory() . '/revolution/inc/template-functions.php';
/**
* Customizer additions.
*/
require get_template_directory() . '/revolution/inc/customizer.php';
/**
* Load Jetpack compatibility file.
*/
if ( defined( 'JETPACK__VERSION' ) ) {
require get_template_directory() . '/revolution/inc/jetpack.php';
}
/**
* Breadcrumb File.
*/
require get_template_directory() . '/revolution/inc/breadcrumbs.php';
////////////////////////////////////////////// Function for Translation Error //////////////////////////////////////////////////////
function legal_services_firm_enqueue_function() {
/**
* GET START.
*/
require get_template_directory() . '/getstarted/legal_services_firm_about_page.php';
/**
* DEMO IMPORT.
*/
require get_template_directory() . '/demo-import/legal_services_firm_config_file.php';
define('LEGAL_SERVICES_FIRM_FREE_SUPPORT',__('https://wordpress.org/support/theme/legal-services-firm/','legal-services-firm'));
define('LEGAL_SERVICES_FIRM_PRO_SUPPORT',__('https://www.revolutionwp.com/support/revolution-wp/','legal-services-firm'));
define('LEGAL_SERVICES_FIRM_REVIEW',__('https://wordpress.org/support/theme/legal-services-firm/reviews/','legal-services-firm'));
define('LEGAL_SERVICES_FIRM_BUY_NOW',__('https://www.revolutionwp.com/products/law-firm-wordpress-theme','legal-services-firm'));
define('LEGAL_SERVICES_FIRM_LIVE_DEMO',__('https://demo.revolutionwp.com/legal-services-firm-pro/','legal-services-firm'));
define('LEGAL_SERVICES_FIRM_PRO_DOC',__('https://demo.revolutionwp.com/wpdocs/legal-services-firm-pro/','legal-services-firm'));
define('LEGAL_SERVICES_FIRM_LITE_DOC',__('https://demo.revolutionwp.com/wpdocs/legal-services-firm-free/','legal-services-firm'));
}
add_action( 'after_setup_theme', 'legal_services_firm_enqueue_function' );
function legal_services_firm_remove_customize_register() {
global $wp_customize;
$wp_customize->remove_setting( 'display_header_text' );
$wp_customize->remove_control( 'display_header_text' );
}
add_action( 'customize_register', 'legal_services_firm_remove_customize_register', 11 );
/************************************************************************************/
/**
* WooCommerce custom filters
*/
add_filter('loop_shop_columns', 'legal_services_firm_loop_columns');
if (!function_exists('legal_services_firm_loop_columns')) {
function legal_services_firm_loop_columns() {
$legal_services_firm_columns = get_theme_mod( 'legal_services_firm_per_columns', 3 );
return $legal_services_firm_columns;
}
}
/************************************************************************************/
add_filter( 'loop_shop_per_page', 'legal_services_firm_per_page', 20 );
function legal_services_firm_per_page( $legal_services_firm_cols ) {
$legal_services_firm_cols = get_theme_mod( 'legal_services_firm_product_per_page', 9 );
return $legal_services_firm_cols;
}
/************************************************************************************/
add_filter( 'woocommerce_output_related_products_args', 'legal_services_firm_products_args' );
function legal_services_firm_products_args( $legal_services_firm_args ) {
$legal_services_firm_args['posts_per_page'] = get_theme_mod( 'custom_related_products_number', 6 );
$legal_services_firm_args['columns'] = get_theme_mod( 'custom_related_products_number_per_row', 3 );
return $legal_services_firm_args;
}
/************************************************************************************/
/**
* Custom logo
*/
function legal_services_firm_custom_css() {
?>
<style type="text/css" id="custom-theme-colors" >
:root {
--legal_services_firm_logo_width: <?php echo absint(get_theme_mod('legal_services_firm_logo_width')); ?> ;
}
.site-branding img {
max-width:<?php echo esc_html(get_theme_mod('legal_services_firm_logo_width')); ?>px ;
}
</style>
<?php
}
add_action( 'wp_head', 'legal_services_firm_custom_css' );
function legal_services_firm_sanitize_choices( $legal_services_firm_input, $legal_services_firm_setting ) {
global $wp_customize;
$legal_services_firm_control = $wp_customize->get_control( $legal_services_firm_setting->id );
if ( array_key_exists( $legal_services_firm_input, $legal_services_firm_control->choices ) ) {
return $legal_services_firm_input;
} else {
return $legal_services_firm_setting->default;
}
}
function legal_services_firm_sanitize_phone_number( $legal_services_firm_phone ) {
return preg_replace( '/[^\d+]/', '', $legal_services_firm_phone );
}
//Excerpt
function legal_services_firm_excerpt_function($legal_services_firm_excerpt_count = 35) {
$legal_services_firm_excerpt = get_the_excerpt();
$legal_services_firm_text_excerpt = wp_strip_all_tags($legal_services_firm_excerpt);
$legal_services_firm_excerpt_limit = (int) get_theme_mod('legal_services_firm_excerpt_limit', $legal_services_firm_excerpt_count);
$legal_services_firm_words = preg_split('/\s+/', $legal_services_firm_text_excerpt);
$legal_services_firm_trimmed_words = array_slice($legal_services_firm_words, 0, $legal_services_firm_excerpt_limit);
$legal_services_firm_theme_excerpt = implode(' ', $legal_services_firm_trimmed_words);
return $legal_services_firm_theme_excerpt;
}
// changelog
function get_changelog_from_readme() {
$legal_services_firm_file_path = get_template_directory() . '/readme.txt'; // Adjust path if necessary
if (file_exists($legal_services_firm_file_path)) {
$legal_services_firm_content = file_get_contents($legal_services_firm_file_path);
// Extract changelog section
$legal_services_firm_changelog_start = strpos($legal_services_firm_content, "== Changelog ==");
$legal_services_firm_changelog = substr($legal_services_firm_content, $legal_services_firm_changelog_start);
// Split changelog into versions
preg_match_all('/\*\s([\d\.]+)\s-\s(.+?)\n((?:\t-\s.+?\n)+)/', $legal_services_firm_changelog, $legal_services_firm_matches, PREG_SET_ORDER);
return $legal_services_firm_matches;
}
return [];
}
// Add admin notice
function legal_services_firm_admin_notice() {
global $pagenow;
$theme_args = wp_get_theme();
$meta = get_option( 'legal_services_firm_admin_notice' );
$name = $theme_args->__get( 'Name' );
$current_screen = get_current_screen();
if( !$meta ){
if( is_network_admin() ){
return;
}
if( ! current_user_can( 'manage_options' ) ){
return;
}
if($current_screen->base != 'appearance_page_legal_services_firm_guide' ) { ?>
<div class="notice notice-success">
<h2><?php esc_html_e('Hey, Thank you for installing Legal Services Firm Theme!', 'legal-services-firm'); ?><span><a class="info-link" href="<?php echo esc_url( admin_url( 'themes.php?page=legal-services-firm-getstart-page' ) ); ?>"><?php esc_html_e('Click Here for more Details', 'legal-services-firm'); ?></a></span></h2>
<p class="dismiss-link"><strong><a href="?legal_services_firm_admin_notice=1"><?php esc_html_e( 'Dismiss', 'legal-services-firm' ); ?></a></strong></p>
</div>
<?php
}
}
}
add_action( 'admin_notices', 'legal_services_firm_admin_notice' );
if( ! function_exists( 'legal_services_firm_update_admin_notice' ) ) :
/**
* Updating admin notice on dismiss
*/
function legal_services_firm_update_admin_notice(){
if ( isset( $_GET['legal_services_firm_admin_notice'] ) && $_GET['legal_services_firm_admin_notice'] = '1' ) {
update_option( 'legal_services_firm_admin_notice', true );
}
}
endif;
add_action( 'admin_init', 'legal_services_firm_update_admin_notice' );
add_action('after_switch_theme', 'legal_services_firm_setup_options');
function legal_services_firm_setup_options () {
update_option('legal_services_firm_admin_notice', FALSE );
}