HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: /var/www/html/shootinschool/wp-content/plugins/hashbar-wp-notification-bar/admin/plugin-options.php
<?php
add_action( 'admin_menu', 'hashbar_wpnb_add_admin_menu' );
add_action( 'admin_menu', 'hashbar_wpnb_upgrade_menu_tweaks', 101 );
add_action( 'admin_init', 'hashbar_wpnb_settings_init' );


function hashbar_wpnb_add_admin_menu() { 

	add_submenu_page( 'edit.php?post_type=wphash_ntf_bar', __('Settings', 'hashbar'), __('Settings', 'hashbar'), 'manage_options', 'hashbar_options_page', 'hashbar_wpnb_options_page' );
	if(hashbar_wpnb_get_opt('enable_analytics')){
		add_submenu_page( 'edit.php?post_type=wphash_ntf_bar', __('HashBar Analytics', 'hashbar'), __('Analytics', 'hashbar'), 'manage_options', 'hashbar_analytics_page', 'hashbar_wpnb_analytics_page' );
	}

}
function hashbar_wpnb_upgrade_menu_tweaks() { 
	if( !is_plugin_active('hashbar-pro/init.php') ){
		add_submenu_page(
            'edit.php?post_type=wphash_ntf_bar', 
            __('Upgrade to Pro', 'hashbar'),
            __('Upgrade to Pro', 'hashbar'), 
            'manage_options', 
            'https://hasthemes.com/wordpress-notification-bar-plugin/?utm_source=admin&utm_medium=mainmenu&utm_campaign=free#hasbar-price'
        );
	}
}

add_action( 'admin_footer', 'hashbar_wpnb_enqueue_admin_head_scripts', );
function hashbar_wpnb_enqueue_admin_head_scripts() {
	printf( '<style>%s</style>', '#adminmenu #menu-posts-wphash_ntf_bar a.hashbar-upgrade-pro { font-weight: 600; background-color: #ff6e30; color: #ffffff; text-align: center; margin-top: 3px; }' );
	printf( '<script>%s</script>', '(function ($) {
		$("#menu-posts-wphash_ntf_bar .wp-submenu a").each(function() {
			if($(this)[0].href === "https://hasthemes.com/wordpress-notification-bar-plugin/?utm_source=admin&utm_medium=mainmenu&utm_campaign=free#hasbar-price") {
				$(this).addClass("hashbar-upgrade-pro").attr("target", "_blank");
			}
		})
	})(jQuery);' );
}


function hashbar_wpnb_settings_init(  ) { 

	register_setting( 'options_group_1', 'hashbar_wpnb_opt' );

	add_settings_section(
		'hashbar_wpnb_options_group_1_section', 
		'', 
		null, 
		'options_group_1'
	);

	add_settings_field( 
		'dont_show_bar_after_close', 
		__( 'Don\'t Show Again', 'hashbar' ), 
		'hashbar_wpnb_checkbox_render', 
		'options_group_1', 
		'hashbar_wpnb_options_group_1_section' 
	);

	add_settings_field( 
		'keep_closed_bar', 
		__( 'Keep Notification Bar Closed', 'hashbar' ), 
		'hashbar_wpnb_bar_closed_checkbox_render', 
		'options_group_1', 
		'hashbar_wpnb_options_group_1_section' 
	);

	add_settings_field( 
		'cookies_expire_time', 
		__( 'Cookies expire time.', 'hashbar' ), 
		'hashbar_cookies_expire_time_render', 
		'options_group_1', 
		'hashbar_wpnb_options_group_1_section'
	);

	add_settings_field( 
		'enable_analytics', 
		__( 'Enable Analytics', 'hashbar' ), 
		'hashbar_wpnb_analytics_checkbox_render', 
		'options_group_1', 
		'hashbar_wpnb_options_group_1_section' 
	);

	add_settings_field( 
		'count_onece_byip', 
		__( 'Count Only 1 From Each IP', 'hashbar' ), 
		'hashbar_wpnb_count_onece_byip_checkbox_render', 
		'options_group_1', 
		'hashbar_wpnb_options_group_1_section' 
	);

	add_settings_field(
		'analytics_from', 
		__( 'User Tracking Options', 'hashbar' ), 
		'hashbar_wpnb_analytics_from_options_render', 
		'options_group_1', 
		'hashbar_wpnb_options_group_1_section' 
	);

	add_settings_field( 
		'mobile_device_breakpoint', 
		__( 'Mobile device breakpoint (px)', 'hashbar' ), 
		'hashbar_wpnb_text_render', 
		'options_group_1', 
		'hashbar_wpnb_options_group_1_section' 
	);

	// dismiss the admin notice for user
	$user_id = get_current_user_id();
    if ( isset( $_GET['hthb-notice-dismissed'] ) ){ // phpcs:ignore
        add_user_meta( $user_id, 'hthb_notice_dismissed', 'true', true );
    }

}


function hashbar_wpnb_checkbox_render(  ) { 

	$options = get_option( 'hashbar_wpnb_opt' );
	$checkbox_val = isset($options['dont_show_bar_after_close']) ? $options['dont_show_bar_after_close'] : '';
	?>
	<input class="pro" type='checkbox' name='hashbar_wpnb_opt[dont_show_bar_after_close]'  <?php checked($checkbox_val, 1) ?> value='1'>
	<p class="description"><?php echo esc_html__('If check this option. The notification will not appear again on a page, after closing the notification.', 'hashbar');?></p>
	<?php

}

function hashbar_wpnb_bar_closed_checkbox_render(){
	$options = get_option( 'hashbar_wpnb_opt' );
	$checkbox_val = isset($options['keep_closed_bar']) ? $options['keep_closed_bar'] : '';
	?>
	<input type='checkbox' name='hashbar_wpnb_opt[keep_closed_bar]'  <?php checked($checkbox_val, 1) ?> value='1'>
	<p class="description"><?php echo esc_html__( 'When you close the notification bar once then it will always keep closed in all pages of your site.<br>This option will be effective for the notifications which have set "Load as minimized = No" from the notification metabox options.','hashbar' ); ?></p>
	<?php
}

function hashbar_wpnb_analytics_checkbox_render(){
	$options = get_option( 'hashbar_wpnb_opt' );
	$checkbox_val = isset($options['enable_analytics']) ? $options['enable_analytics'] : '';
	?>
	<input type='checkbox' name='hashbar_wpnb_opt[enable_analytics]'  <?php checked($checkbox_val, 1) ?> value='1'>
	<p class="description"><?php echo esc_html__('Enable Analytics to get the analytical report about your notifications.', 'hashbar');?></p>
	<?php
}

function hashbar_wpnb_count_onece_byip_checkbox_render(){
	$options = get_option( 'hashbar_wpnb_opt' );
	$checkbox_val = isset($options['count_onece_byip']) ? $options['count_onece_byip'] : '';
	?>
	<input type='checkbox' name='hashbar_wpnb_opt[count_onece_byip]'  <?php checked($checkbox_val, 1) ?> value='1'>
	<p class="description"><?php echo esc_html__('Enable to count the views and clicks only once from each IP-address.', 'hashbar');?></p>
	<?php
}

function hashbar_wpnb_analytics_from_options_render(){
	$options = get_option( 'hashbar_wpnb_opt' );
	$checkbox_val = isset($options['analytics_from']) ? $options['analytics_from'] : '';
	?>
	<select name="hashbar_wpnb_opt[analytics_from]">
	  <option value="everyone" <?php echo $checkbox_val == 'everyone' ? 'selected' : ''; ?>><?php echo esc_html__('Everyone', 'hashbar') ?></option>
	  <option value="guests" <?php echo $checkbox_val == 'guests' ? 'selected' : ''; ?>><?php echo esc_html__('Guest Users Only', 'hashbar') ?></option>
	  <option value="registered_users" <?php echo $checkbox_val == 'registered_users' ? 'selected' : ''; ?>><?php echo esc_html__('Rigestered Users Only', 'hashbar') ?></option>
	</select>
	<?php
}

function hashbar_wpnb_text_render(  ) {

	$options = get_option( 'hashbar_wpnb_opt' );
	$text_val = isset($options['mobile_device_breakpoint']) ? $options['mobile_device_breakpoint'] : '';
	?>
	<input type='text' name='hashbar_wpnb_opt[mobile_device_breakpoint]' value="<?php echo esc_attr($text_val); ?>">
	<p class="description">Sets the breakpoint between mobile and desktop devices. Below this breakpoint mobile layout will appear (Default: 767).</p>
	<?php

}

function hashbar_cookies_expire_time_render(  ) {
	$options = get_option( 'hashbar_wpnb_opt' );
	$cookies_expire_time = isset($options['cookies_expire_time']) ? $options['cookies_expire_time'] : 7;
	$cookies_expire_type = isset($options['cookies_expire_type']) ? $options['cookies_expire_type'] : 'days';
	?>
	<input type='number' name='hashbar_wpnb_opt[cookies_expire_time]' value="<?php echo esc_attr($cookies_expire_time); ?>" min="0" style="width: 87px;">
	<select name="hashbar_wpnb_opt[cookies_expire_type]">
		<option value="days" <?php echo $cookies_expire_type == 'days' ? 'selected' : ''; ?>>Days</option>
		<option value="hours" <?php echo $cookies_expire_type == 'hours' ? 'selected' : ''; ?>>Hours</option>
		<option value="minutes" <?php echo $cookies_expire_type == 'minutes' ? 'selected' : ''; ?>>Minutes</option>
	</select>
	<p class="description">Specify the duration of the expiration time for the cookie when a user closes the notification bar. <br> After the expiration time has passed, the notification will reappear for that user. (Default: 7 Days).</p>
	<?php
}

function hashbar_wpnb_options_page(  ) { 

	?>
	<form id="hashbar" action='options.php' method='post'>

		<h2><?php echo esc_html__( 'HashBar Global Options', 'hashbar' ) ?></h2>

		<?php
		settings_fields( 'options_group_1' );
		do_settings_sections( 'options_group_1' );
		submit_button();
		?>
	</form>
	<?php

}

function hashbar_wpnb_analytics_page(){
	$total_traking 		= false != get_transient( 'total_hthb_analytics_count' ) ? get_transient( 'total_hthb_analytics_count' ) : array(); 
	$postwise_traking   = false != get_transient( 'postwise_hthb_analytics_count' ) ? get_transient( 'postwise_hthb_analytics_count' ) : array();
	$country_traking    = false != get_transient( 'countrywise_hthb_analytics_count' ) ? get_transient( 'countrywise_hthb_analytics_count' ) : array();

	$trk_lenght   = count($total_traking);
	$total_clicks = $trk_lenght > 0 && !is_null($total_traking[0]['totalclicks']) ? $total_traking[0]['totalclicks'] : 0;
	$total_views  = $trk_lenght > 0 && !is_null($total_traking[0]['totalviews']) ? $total_traking[0]['totalviews'] : 0;
	$total_clthrt = $trk_lenght > 0 && !is_null($total_traking[0]['totalviews']) && !is_null($total_traking[0]['totalclicks'])? round(($total_traking[0]['totalclicks']/$total_traking[0]['totalviews'])*100, 2) : 0;

	?>
	<div class="hthb--site-wrapper-reveal">
	    <div class="hthb--container">
	    	<div class="hthb-analytics-title">
    			<h2><?php echo esc_html__( 'Analytics Overview','hashbar'); ?></h2>
    		</div>
	        <div class="hthb--row">
	            <div class="hthb--col-lg-4 hthb--col-md-4 hthb--col-sm-6 ">
	                <div class="hthb-card__box">
	                    <div class="hthb-card__icon">
	                        <img src="<?php echo esc_url(HASHBAR_WPNB_URI.'/admin/img/click-icons.png'); ?>" alt="">
	                    </div>
	                    <div class="hthb-card__content">
	                        <h6 class="hthb-card__title"><?php echo esc_html__( 'Total Clicks','hashbar') ?></h6>
	                        <h4 class="hthb-card__nubmer"><?php echo esc_html($total_clicks); ?></h4>
	                    </div>
	                    <div class="hthb-card__inner-image">
	                        <img src="<?php echo esc_url(HASHBAR_WPNB_URI.'/admin/img/views-icons-bg.png'); ?>" alt="">
	                    </div>
	                </div>
	            </div>
	            <div class="hthb--col-lg-4 hthb--col-md-4 hthb--col-sm-6 ">
	                <div class="hthb-card__box hthb-card__box--two">
	                    <div class="hthb-card__icon hthb-card__icon--two">
	                        <img src="<?php echo esc_url(HASHBAR_WPNB_URI.'/admin/img/views-icons.png'); ?>" alt="">
	                    </div>
	                    <div class="hthb-card__content">
	                        <h6 class="hthb-card__title"><?php echo esc_html__( 'Total Views','hashbar') ?></h6>
	                        <h4 class="hthb-card__nubmer hthb-card__nubmer--two"><?php echo esc_html($total_views); ?></h4>
	                    </div>
	                    <div class="hthb-card__inner-image">
	                        <img src="<?php echo esc_url(HASHBAR_WPNB_URI.'/admin/img/click-icons-bg.png'); ?>" alt="">
	                    </div>
	                </div>
	            </div>
	            <div class="hthb--col-lg-4 hthb--col-md-4 hthb--col-sm-6 ">
	                <div class="hthb-card__box hthb-card__box--three">
	                    <div class="hthb-card__icon hthb-card__icon--three">
	                        <img src="<?php echo esc_url(HASHBAR_WPNB_URI.'/admin/img/rate-icons.png'); ?>" alt="">
	                    </div>
	                    <div class="hthb-card__content">
	                        <h6 class="hthb-card__title"><?php echo esc_html__( 'Click Through Rate','hashbar') ?></h6>
	                        <h4 class="hthb-card__nubmer hthb-card__nubmer--three"><?php echo esc_html($total_clthrt); ?>%</h4>
	                    </div>
	                    <div class="hthb-card__inner-image">
	                        <img src="<?php echo esc_url(HASHBAR_WPNB_URI.'/admin/img/rate-icons-bg.png'); ?>" alt="">
	                    </div>
	                </div>
	            </div>
	        </div>
	    </div>
	</div>

	<div class="hthb-traking-by-notification-area">
	    <div class="hthb--container">
	        <div class="hthb--row">
	            <div class="hthb--col-lg-8">
	                <div class="hthb-traking">
	                    <h6 class="hthb-traking__heading"><?php echo esc_html__( 'Track the analytics for each notification bar','hashbar') ?></h6>

	                    <div class="hthb-traking__wrap">
	                        <div class="hthb-traking__header">
	                            <div class="hthb-traking__header-item hthb-traking__header-item--name">
	                                <?php echo esc_html__( 'Name','hashbar'); ?>
	                            </div>
	                            <div class="hthb-traking__header-item hthb-traking__header-item--views">
	                                <?php echo esc_html__( 'Total Views','hashbar'); ?>
	                            </div>
	                            <div class="hthb-traking__header-item hthb-traking__header-item--clicks">
	                                <?php echo esc_html__( 'Total Clicks','hashbar'); ?>
	                            </div>
	                            <div class="hthb-traking__header-item hthb-traking__header-item--through-rate">
	                                <?php echo esc_html__( 'CTR','hashbar'); ?>
	                            </div>
	                        </div>
	                        <div class="hthb-traking__body">
	                        	<?php 
	                        	$args = array( 'post_type' => 'wphash_ntf_bar', 'posts_per_page' => -1 );
        						$ntf_analytics_query = new WP_Query($args);
	                        	while( $ntf_analytics_query->have_posts() ):

	                        		$ntf_analytics_query->the_post();
	                        		$post_id = get_the_id(); ?>

	                        		<?php if('publish' == get_post_status($post_id)):?>
			                            <div class="hthb-traking__items">
			                                <div class="hthb-traking__item hthb-traking__item--title">
			                                    <?php echo esc_html(get_the_title($post_id)); ?>
			                                </div>
			                                <div class="hthb-traking__item hthb-traking__item--total-views-number">0</div>
			                                <div class="hthb-traking__item hthb-traking__item--total-clicks-number">0</div>
			                                <div class="hthb-traking__item hthb-traking__item--through-rate-numbmer">0 %</div>
			                            </div>
		                        	<?php endif; ?>

		                        <?php endwhile; ?>
	                        </div>
	                    </div>
	                </div>
	                <a target="_blank" class="hthb-pro-link" href="<?php echo esc_url('https://hasthemes.com/plugins/wordpress-notification-bar-plugin/') ?>"><?php echo esc_html__('Upgrade to Pro','hashbar') ?></a>
	            </div>
	            <div class="hthb--col-lg-4 ">
	                <div class="hthb-top-countries">
	                    <h6 class="hthb-top-countries__heading"><?php echo esc_html__( 'Top 10 Countries','hashbar') ?></h6>
	                    <?php foreach ($country_traking as $countrywise_count):?>
		                    <div class="hthb-top-countries__list-wrap">
		                        <div class="hthb-top-countries__item">
		                            <div class="hthb-top-countries__name"><?php echo esc_html($countrywise_count['country']); ?></div>
		                        </div>
		                    </div>
		                <?php endforeach; ?>
	                </div>
	            </div>
	        </div>
	    </div>
	</div>
	<?php
}

?>