HEX
Server: Apache
System: Linux sg2plmcpnl492417.prod.sin2.secureserver.net 4.18.0-553.58.1.lve.el8.x86_64 #1 SMP Fri Jul 4 12:07:06 UTC 2025 x86_64
User: nyiet8349bzl (9207396)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/nyiet8349bzl/public_html/oldwebsite.sbsc.in/wp-content/themes/eikra/inc/general.php
<?php
/**
 * @author  RadiusTheme
 * @since   1.0
 * @version 3.8
 */

if ( ! isset( $content_width ) ) {
	$content_width = 1200;
}

function print_html( $html ) {
	return $html;
}

add_action( 'after_setup_theme', 'rdtheme_setup' );
if ( ! function_exists( 'rdtheme_setup' ) ) {
	function rdtheme_setup() {
		// Language
		load_theme_textdomain( 'eikra', RDTHEME_BASE_DIR . 'languages' );

		// Theme supports
		add_theme_support( 'title-tag' );
		add_theme_support( 'post-thumbnails' );
		add_theme_support( 'automatic-feed-links' );
		add_theme_support( 'html5', [ 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption' ] );
		add_theme_support( 'responsive-embeds' );

		add_theme_support( 'wp-block-styles' );


		// Course ordering support
		add_post_type_support( 'lp_course', 'page-attributes' );

		// Image sizes
		add_image_size( 'rdtheme-size1', 1200, 600, true ); // Single page thumbnail
		add_image_size( 'rdtheme-size2', 410, 260, true );  // Blog 2, Course Box, Gallery 1, Research 2
		add_image_size( 'rdtheme-size3', 360, 260, true );  // Gallery Small, Research 3
		add_image_size( 'rdtheme-size6', 800, 725, true );  // Gallery Large
		add_image_size( 'rdtheme-size8', 92, 92, true );    // Testimonial
		add_image_size( 'rdtheme-size5', 150, 100, true );  // Post List

		add_image_size( 'rdtheme-size4', 80, 62, true );    // widget sidebar thumbnail 2

		if ( ! RDTheme_Helper::is_LMS() ) {
			add_image_size( 'rdtheme-size9', 360, 370, true );
		}

		// Register menus
		register_nav_menus( [
			'primary'  => esc_html__( 'Primary', 'eikra' ),
			'topright' => esc_html__( 'Header Right', 'eikra' ),
		] );
	}
}

// Register Sidebars
add_action( 'widgets_init', 'rdtheme_register_sidebars' );
if ( ! function_exists( 'rdtheme_register_sidebars' ) ) {
	function rdtheme_register_sidebars() {
		$footer_widget_titles = [
			'1' => esc_html__( 'Footer 1', 'eikra' ),
			'2' => esc_html__( 'Footer 2', 'eikra' ),
			'3' => esc_html__( 'Footer 3', 'eikra' ),
			'4' => esc_html__( 'Footer 4', 'eikra' ),
		];

		register_sidebar( [
			'name'          => esc_html__( 'Sidebar', 'eikra' ),
			'id'            => 'sidebar',
			'before_widget' => '<div id="%1$s" class="widget %2$s single-sidebar padding-bottom1">',
			'after_widget'  => '</div>',
			'before_title'  => '<h3 class="widgettitle">',
			'after_title'   => '</h3>',
		] );

		register_sidebar( [
			'name'          => esc_html__( 'Top Bar 5 - Left', 'eikra' ),
			'id'            => 'top5-left',
			'before_widget' => '<div id="%1$s" class="widget %2$s">',
			'after_widget'  => '</div>',
			'before_title'  => '<h3 class="hidden">',
			'after_title'   => '</h3>',
		] );

		register_sidebar( [
			'name'          => esc_html__( 'Top Bar 5 - Right', 'eikra' ),
			'id'            => 'top5-right',
			'before_widget' => '<div id="%1$s" class="widget %2$s">',
			'after_widget'  => '</div>',
			'before_title'  => '<h3 class="hidden">',
			'after_title'   => '</h3>',
		] );

		for ( $i = 1; $i <= RDTheme::$options['footer_column']; $i ++ ) {
			register_sidebar( [
				'name'          => $footer_widget_titles[ $i ],
				'id'            => 'footer-' . $i,
				'before_widget' => '<div id="%1$s" class="widget %2$s">',
				'after_widget'  => '</div>',
				'before_title'  => '<h3 class="widgettitle">',
				'after_title'   => '</h3>',
			] );
		}

		register_sidebar( [
			'name'          => esc_html__( 'Footer Layout 2 Sidebar', 'eikra' ),
			'id'            => 'footer-layout-2',
			'before_widget' => '<div id="%1$s" class="widget col-lg-3 col-md-6 col-12 %2$s">',
			'after_widget'  => '</div>',
			'before_title'  => '<h3 class="widgettitle">',
			'after_title'   => '</h3>',
			'description'   => esc_html__( 'This widget has used for Footer layout 2 Sidebar. Please add ', 'eikra' ),
		] );

		register_sidebar( [
			'name'          => esc_html__( 'Sidebar - LearnPress Single Course', 'eikra' ),
			'id'            => 'sidebar-single-course',
			'before_widget' => '<div id="%1$s" class="widget %2$s single-sidebar padding-bottom1">',
			'after_widget'  => '</div>',
			'before_title'  => '<h3 class="widgettitle">',
			'after_title'   => '</h3>',
		] );
	}
}

// Pingback
add_action( 'wp_head', 'rdtheme_pingback' );
function rdtheme_pingback() {
	if ( is_singular() && pings_open() ) {
		printf( '<link rel="pingback" href="%s">', esc_url( get_bloginfo( 'pingback_url' ) ) );
	}
}

// Add body class
add_filter( 'body_class', 'rdtheme_body_classes' );
if ( ! function_exists( 'rdtheme_body_classes' ) ) {
	function rdtheme_body_classes( $classes ) {

		$eikra_theme = wp_get_theme();
		$classes[]   = $eikra_theme->Name . '-version-' . $eikra_theme->Version;

		// Header
		$classes[] = 'header-style-' . RDTheme::$header_style;
		$classes[] = 'footer-style-' . RDTheme::$footer_style;

		if ( RDTheme::$top_bar == 1 || RDTheme::$top_bar == 'on' ) {
			$classes[] = 'has-topbar topbar-style-' . RDTheme::$top_bar_style;
		}

		if ( RDTheme::$tr_header == 1 || RDTheme::$tr_header == 'on' ) {
			$classes[] = 'trheader';
		}

		// Sidebar
		$classes[] = ( RDTheme::$layout == 'full-width' ) ? 'no-sidebar' : 'has-sidebar';

		// LearnPress
		if ( isset( $_COOKIE["lpcourseview"] ) && $_COOKIE["lpcourseview"] == 'list' ) {
			$classes[] = 'rt-course-list-view';
		} else {
			$classes[] = 'rt-course-grid-view';
		}
		if ( function_exists( 'learn_press_is_courses' ) ) {
			if ( learn_press_is_courses() ) {
				$classes[] = 'rt-lp-grey-bg';
			}
		}

		if ( is_singular( 'lp_course' ) && RDTheme_Helper::is_LMS() ) {
			$classes[] = "rt-single-course-layout-" . RDTheme::$layout;
		}

		if ( defined( 'LEARNPRESS_VERSION' ) && version_compare( '4.2.5', LEARNPRESS_VERSION, '<' ) ) {
			$classes[] = "eikra-lps-updated";
		}

		// WooCommerce
		if ( isset( $_COOKIE["shopview"] ) && $_COOKIE["shopview"] == 'list' ) {
			$classes[] = 'product-list-view';
		} else {
			$classes[] = 'product-grid-view';
		}

		return $classes;
	}
}

// Footer Html
add_action( 'wp_footer', 'rdtheme_footer_html', 1 );
if ( ! function_exists( 'rdtheme_footer_html' ) ) {
	function rdtheme_footer_html() {
		// Back-to-top link
		if ( RDTheme::$options['back_to_top'] ) {
			echo '<a href="#" class="scrollToTop"><i class="fas fa-arrow-up"></i></a>';
		}
	}
}

// Course archive post per page limit(non-lms)
add_action( 'pre_get_posts', 'rdtheme_course_item_per_page' );
if ( ! function_exists( 'rdtheme_course_item_per_page' ) ) {
	function rdtheme_course_item_per_page( $query ) {

		if ( is_admin() || ! $query->is_main_query() || ! RDTheme_Helper::is_LMS() ) {
			return;
		}

		if ( is_post_type_archive( 'lp_course' ) || is_tax( 'course_category' ) ) {
			$query->set( 'posts_per_page', apply_filters( 'course_per_page', get_option( 'learn_press_archive_course_limit', 9 ) ) );

			return $query;
		}
	}
}

/*---------------------------------------------------------
#. Learnpress Template file
-----------------------------------------------------------*/
add_filter( 'learn_press_template_path', 'rdtheme_lp_template_path', 999 );
function rdtheme_lp_template_path( $template ) {
	if ( RDTheme_Helper::lp_is_v2() ) {
		return 'learnpress-v2';
	}

	return $template;
}

/*---------------------------------------------------------
#. Login/Registration Handling - LP and TML integration
-----------------------------------------------------------*/
if ( RDTheme_Helper::is_LMS() && class_exists( 'Theme_My_Login' ) ) {
	add_filter( 'login_redirect', 'rdtheme_lp_login_redirect', 20, 3 ); // After login, redirect to lp-profile page

	// TML new version compatibility
	if ( defined( 'THEME_MY_LOGIN_VERSION' ) ) {
		add_filter( 'template_include', 'rdtheme_lp_to_tml_redirect', 25 ); // Redirection handling
	} // TML old version compatibility
	else {
		add_filter( 'template_include', 'rdtheme_lp_to_tml_redirect_old_v', 20, 3 ); // Redirection handling
		add_filter( 'tml_action_template_message', 'rdtheme_tml_register_msg_old_v', 10, 2 ); // Hide tml register title msg
	}
}


function rdtheme_lp_login_redirect( $redirect_to, $request, $user ) {
	if ( $redirect_to == admin_url() ) {
		$redirect_to = learn_press_get_page_link( 'profile' );
	}

	return $redirect_to;
}

function rdtheme_lp_to_tml_redirect( $template ) {
	// For logged in user, redirect to lp-profile page
	if ( is_user_logged_in() && tml_is_action() ) {
		wp_redirect( learn_press_get_page_link( 'profile' ) );
		die();
	} // For guest, load tml-login page instead of lp-profile
    elseif ( learn_press_is_profile() && ! is_user_logged_in() ) {
		$profile = LP_Profile::instance();
		// check if own or other's profile page
		if ( $profile->is_guest() ) {
			$login_page = tml_get_action_url( 'login' );
			wp_redirect( $login_page );
			die();
		}
	}

	return $template;
}

function rdtheme_lp_to_tml_redirect_old_v( $template ) {
	// For logged in user, redirect to lp-profile page
	if ( is_user_logged_in() && Theme_My_Login::is_tml_page() ) {
		wp_redirect( learn_press_get_page_link( 'profile' ) );
		die();
	} // For guest, load tml-login page instead of lp-profile
    elseif ( learn_press_is_profile() && ! is_user_logged_in() ) {
		$profile = LP_Profile::instance();
		// check if own or other's profile page
		if ( $profile->is_guest() ) {
			$redirect = '';
			if ( ! empty( $_REQUEST['redirect_to'] ) ) {
				$redirect = $_REQUEST['redirect_to'];
			}

			$login_page_id     = Theme_My_Login::get_page_id( 'login' );
			$login_page_status = get_post_status( $login_page_id );

			// check if login page isn't in trash by user's mistake
			if ( $login_page_status == 'publish' ) {
				wp_redirect( wp_login_url( $redirect ) );
				die();
			}
		}
	}

	return $template;
}

function rdtheme_tml_register_msg_old_v( $message, $action ) {
	if ( $action == 'register' ) {
		$message = '';
	}

	return $message;
}

/*---------------------------------------------------------
#. LayerSlider and YITH compatibility fix
-----------------------------------------------------------*/
add_action( 'current_screen', 'rdtheme_remove_yith_script_from_ls' );
function rdtheme_remove_yith_script_from_ls() {
	if ( ! is_admin() ) {
		return;
	}

	if ( ! class_exists( 'YIT_Assets' ) ) {
		return;
	}

	$ls_screens = [
		'toplevel_page_layerslider',
		'layerslider-wp_page_layerslider-options',
		'layerslider-wp_page_layerslider-addons',
	];

	$current_screen = get_current_screen();

	if ( in_array( $current_screen->id, $ls_screens ) ) {
		remove_action( 'admin_enqueue_scripts', [ YIT_Assets::instance(), 'register_styles_and_scripts' ] );
		remove_action( 'admin_notices', 'yith_plugin_fw_promo_notices', 15 );
	}
}


/*---------------------------------------------------------
#. Event date migration
-----------------------------------------------------------*/

add_action( 'save_post', 'rt_save_metaboxes', 9999 );

function rt_save_metaboxes( $post_id ) {
	if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
		return $post_id;
	}
	if ( ! current_user_can( 'edit_page', $post_id ) ) {
		return $post_id;
	}
	if ( get_post_type( $post_id ) != 'ac_event' ) {
		return $post_id;
	}
	$start_date = get_post_meta( $post_id, 'ac_event_start_date', true );
	$end_date   = get_post_meta( $post_id, 'ac_event_end_date', true );
	if ( $start_date ) {
		update_post_meta( $post_id, 'rt_event_start_date', date( 'Ymd', strtotime( $start_date ) ) );
	}
	if ( $end_date ) {
		update_post_meta( $post_id, 'rt_event_end_date', date( 'Ymd', strtotime( $start_date ) ) );
	}
}

$is_migrate = get_option( 'is_rt_event_date_migrated', 'no' );
if ( 'no' == $is_migrate ) {
	add_action( 'template_redirect', 'rt_event_data_migration' );
}

function rt_event_data_migration() {
	$args      = [
		'post_type'      => 'ac_event',
		'posts_per_page' => - 1,
		'post_status'    => 'any',
	];
	$the_query = new WP_Query( $args );

	while ( $the_query->have_posts() ) :
		$the_query->the_post();
		$post_id    = get_the_ID();
		$start_date = get_post_meta( $post_id, 'ac_event_start_date', true );
		$end_date   = get_post_meta( $post_id, 'ac_event_end_date', true );

		if ( $start_date ) {
			update_post_meta( $post_id, 'rt_event_start_date', date( 'Ymd', strtotime( $start_date ) ) );
		}
		if ( $end_date ) {
			update_post_meta( $post_id, 'rt_event_end_date', date( 'Ymd', strtotime( $end_date ) ) );
		}

	endwhile;
	update_option( 'is_rt_event_date_migrated', 'yes' );
}

//LearnPress tab translation issues::
add_filter( 'learn-press/course-tabs', function ( $tabs ) {
	$course                      = learn_press_get_course();
	$tabs['overview']['title']   = esc_html__( 'Overview', 'eikra' );
	$tabs['curriculum']['title'] = esc_html__( 'Curriculum', 'eikra' );
	$tabs['instructor']['title'] = esc_html__( 'Instructor', 'eikra' );
	if ( $course->get_faqs() ) {
		$tabs['faqs']['title'] = esc_html__( 'FAQs', 'eikra' );
	}
	if ( class_exists( 'LP_Addon_Course_Review_Preload' ) ) {
		$tabs['reviews']['title'] = esc_html__( 'Reviews', 'eikra' );
	}

	return $tabs;

} );

//Elementor Header Footer Support
//==============================================

if ( ! function_exists( 'eikra_register_elementor_locations' ) ) {
	/**
	 * Register Elementor Locations.
	 *
	 * @param ElementorPro\Modules\ThemeBuilder\Classes\Locations_Manager $elementor_theme_manager theme manager.
	 *
	 * @return void
	 */
	function eikra_register_elementor_locations( $elementor_theme_manager ) {
		$hook_result = apply_filters_deprecated( 'elementor_hello_theme_register_elementor_locations', [ true ], '2.0', 'eikra_register_elementor_locations' );
		if ( apply_filters( 'eikra_register_elementor_locations', $hook_result ) ) {
			$elementor_theme_manager->register_all_core_location();
		}
	}
}
add_action( 'elementor/theme/register_locations', 'eikra_register_elementor_locations' );


//User Order
//================
function new_modify_user_table( $column ) {
	$column['c_order'] = __( 'Order', 'eikra' );

	return $column;
}

add_filter( 'manage_users_columns', 'new_modify_user_table' );
add_filter( 'manage_post_columns', 'new_modify_user_table' );
add_filter( 'manage_edit-lp_instructor_columns', 'new_modify_user_table' );

function eikra_users_modify_user_table_row( $val, $column_name, $user_id ) {
	if ( $column_name == 'c_order' ) {
		$c_order = get_user_meta( $user_id, 'rt_user_custom_order', true );
		$html    = "";
		$html    .= "<input style='width:80px' data-uid='" . $user_id . "' readonly name='rt-custom-order-input' type='number' value='" . $c_order . "' />";

		return $html;
	}

	return $val;
}

function eikra_instructor_modify_user_table_row( $column, $post_id ) {
	if ( 'c_order' == $column ) {
		$thispost = get_post( $post_id );
		$c_order  = $thispost->menu_order;
		$html     = "";
		$html     .= "<input style='width:80px' data-uid='" . $post_id . "' readonly name='rt-custom-order-input' type='number' value='" . $c_order . "' />";
		echo print_html( $html );
	}
}

add_filter( 'manage_users_custom_column', 'eikra_users_modify_user_table_row', 10, 3 );
add_action( 'manage_lp_instructor_posts_custom_column', 'eikra_instructor_modify_user_table_row', 10, 2 );

//User Sortable
function eikra_user_sortable_column( $columns ) {
	$columns['c_order'] = 'c_order';

	return $columns;
}

function eikra_users_sortable_column( $columns ) {
	$columns['c_order'] = 'u_order';

	return $columns;
}

add_filter( 'manage_edit-lp_instructor_sortable_columns', 'eikra_user_sortable_column' );
add_filter( 'manage_users_sortable_columns', 'eikra_users_sortable_column' );

function eikra_user_sort_column_data( $wpquery ) {
	if ( ! is_admin() ) {
		return;
	}

	$orderby = $wpquery->get( 'orderby' );

	if ( 'c_order' == $orderby ) {
		$wpquery->set( 'orderby', 'menu_order' );
	}
}

add_action( 'pre_get_posts', 'eikra_user_sort_column_data' );
function eikra_users_sort_column_data( $wpquery ) {
	if ( ! is_admin() ) {
		return;
	}

	$orderby = $wpquery->get( 'orderby' );

	if ( 'u_order' == $orderby ) {
		$wpquery->set( 'meta_key', 'rt_user_custom_order' );
		$wpquery->set( 'orderby', 'meta_value_num' );
	}
}

add_action( 'pre_get_users', 'eikra_users_sort_column_data' );

//End User Sortable

add_action( 'admin_footer', function () {
	global $pagenow;

	if ( in_array( $pagenow, [ 'users.php', 'edit.php' ] ) ) {
		$admin_url = admin_url( 'admin-ajax.php' );
		$nonce     = wp_create_nonce( '_u_order_nonce' );
		$mode      = $pagenow == 'users.php' ? 'user' : 'post';
		?>
        <script>
            jQuery(document).ready(function () {
                var rtCustomOrder = jQuery('input[name=rt-custom-order-input]');

                rtCustomOrder.dblclick(function () {
                    jQuery(this).attr("readonly", false);
                })

                rtCustomOrder.keypress(function (e) {
                    if (e.keyCode === 13) {
                        e.preventDefault();
                        updateUsersOrder(jQuery(this))
                    }
                })

                rtCustomOrder.on('blur', function () {
                    updateUsersOrder(jQuery(this));
                })

                function updateUsersOrder(element) {
                    var prevVal = element.attr('value');
                    var currentVal = element.val();

                    if (prevVal == currentVal) {
                        element.attr("readonly", true);
                        return false;
                    }

                    var uid = element.data('uid');
                    var value = element.val();
                    var readonly = element.attr('readonly');

                    if (readonly === 'readonly') {
                        return false;
                    }

                    var data = {
                        'action': 'eikra_user_order_update',
                        'id': uid,
                        'value': value,
                        'nonce': '<?php echo esc_attr( $nonce ) ?>',
                        'mode': '<?php echo esc_attr( $mode ); ?>'
                    }

                    jQuery.ajax({
                        url: '<?php echo esc_url( $admin_url ); ?>',
                        type: 'POST',
                        data: data,
                        success: function (data) {
                            element.attr("readonly", true);
                        }
                    });
                }
            })
        </script>
		<?php
	}
} );

add_action( 'wp_ajax_eikra_user_order_update', 'ajax_eikra_user_order_update' );
add_action( 'wp_ajax_nopriv_eikra_user_order_update', 'ajax_eikra_user_order_update' );

function ajax_eikra_user_order_update() {

	if ( ! current_user_can( 'edit_posts' ) || ! $_POST['id'] ) {
		die( __( 'You have no edit permission', 'eikra' ) );
	}
	if ( ! wp_verify_nonce( $_POST['nonce'], '_u_order_nonce' ) ) {
		die( __( 'Security check', 'eikra' ) );
	}
	if ( $_POST['value'] < 1 ) {
		die( __( 'Enter a order value', 'eikra' ) );
	}

	if ( $_POST['mode'] == 'user' ) {
		$status = update_user_meta( $_POST['id'], 'rt_user_custom_order', $_POST['value'] );
	} else {
		$my_post = [
			'ID'         => $_POST['id'],
			'menu_order' => $_POST['value'],
		];
		$status  = wp_update_post( $my_post );
	}

	wp_send_json_success( [
		'success' => $status ? 'ok' : 'error'
	] );
}