252 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			252 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Admin Bar
 | |
|  *
 | |
|  * @package     EDD
 | |
|  * @subpackage  Admin/Bar
 | |
|  * @copyright   Copyright (c) 2018, Easy Digital Downloads, LLC
 | |
|  * @license     http://opensource.org/licenses/gpl-2.0.php GNU Public License
 | |
|  * @since       3.0
 | |
|  */
 | |
| 
 | |
| // Exit if accessed directly
 | |
| defined( 'ABSPATH' ) || exit;
 | |
| 
 | |
| /**
 | |
|  * Maybe add the store status to the WordPress admin bar
 | |
|  *
 | |
|  * @since 3.0
 | |
|  */
 | |
| function edd_maybe_add_store_mode_admin_bar_menu( $wp_admin_bar ) {
 | |
| 
 | |
| 	// Bail if no admin bar.
 | |
| 	if ( empty( $wp_admin_bar ) ) {
 | |
| 		return;
 | |
| 	}
 | |
| 
 | |
| 	// Bail if user cannot manage shop settings.
 | |
| 	if ( ! current_user_can( 'manage_shop_settings' ) ) {
 | |
| 		return;
 | |
| 	}
 | |
| 
 | |
| 	$indicator     = '';
 | |
| 	$notifications = EDD()->notifications->countActiveNotifications();
 | |
| 
 | |
| 	if ( $notifications ) {
 | |
| 		$count     = $notifications < 10 ? $notifications : '!';
 | |
| 		$indicator = ' <div class="wp-core-ui wp-ui-notification edd-menu-notification-counter">' . $count . '</div>';
 | |
| 	}
 | |
| 
 | |
| 	// Add the menu
 | |
| 	$wp_admin_bar->add_menu(
 | |
| 		array(
 | |
| 			'id'    => 'edd-store-menu',
 | |
| 			'title' => 'EDD' . $indicator,
 | |
| 			'href'  => edd_get_admin_url(
 | |
| 				array(
 | |
| 					'page' => 'edd-reports',
 | |
| 				)
 | |
| 			),
 | |
| 		)
 | |
| 	);
 | |
| 
 | |
| 	if ( ! empty( $count ) ) {
 | |
| 		$wp_admin_bar->add_menu( array(
 | |
| 			'parent' => 'edd-store-menu',
 | |
| 			'id'     => 'edd-store-notifications',
 | |
| 			'title'  => __( 'Notifications', 'easy-digital-downloads' ) . ' <div class="wp-core-ui wp-ui-notification edd-menu-notification-indicator"></div>',
 | |
| 			'href'  => edd_get_admin_url(
 | |
| 				array(
 | |
| 					'page'          => 'edd-reports',
 | |
| 					'notifications' => 'true',
 | |
| 				)
 | |
| 			),
 | |
| 		) );
 | |
| 	}
 | |
| 
 | |
| 	$wp_admin_bar->add_menu( array(
 | |
| 		'parent' => 'edd-store-menu',
 | |
| 		'id'     => 'edd-store-reports',
 | |
| 		'title'  => __( 'Store Reports', 'easy-digital-downloads' ),
 | |
| 		'href'  => edd_get_admin_url(
 | |
| 			array(
 | |
| 				'page' => 'edd-reports',
 | |
| 			)
 | |
| 		),
 | |
| 	) );
 | |
| 
 | |
| 	$wp_admin_bar->add_menu( array(
 | |
| 		'parent' => 'edd-store-menu',
 | |
| 		'id'     => 'edd-store-settings',
 | |
| 		'title'  => __( 'Store Settings', 'easy-digital-downloads' ),
 | |
| 		'href'  => edd_get_admin_url(
 | |
| 			array(
 | |
| 				'page' => 'edd-settings',
 | |
| 			)
 | |
| 		),
 | |
| 	) );
 | |
| 
 | |
| 	$wp_admin_bar->add_menu( array(
 | |
| 		'parent' => 'edd-store-menu',
 | |
| 		'id'     => 'edd-store-prodcuts',
 | |
| 		'title'  => sprintf( __( 'All %1$s', 'easy-digital-downloads' ), edd_get_label_plural() ),
 | |
| 		'href'  => edd_get_admin_url(),
 | |
| 	) );
 | |
| 
 | |
| 	// String.
 | |
| 	$text = ! edd_is_test_mode()
 | |
| 		? __( 'Live',      'easy-digital-downloads' )
 | |
| 		: __( 'Test Mode', 'easy-digital-downloads' );
 | |
| 
 | |
| 	// Mode.
 | |
| 	$mode = ! edd_is_test_mode()
 | |
| 		? 'live'
 | |
| 		: 'test';
 | |
| 
 | |
| 	$wp_admin_bar->add_menu( array(
 | |
| 		'parent' => 'edd-store-menu',
 | |
| 		'id'     => 'edd-store-status',
 | |
| 		'title'  => sprintf( __( 'Store Status: %s', 'easy-digital-downloads' ), '<span class="edd-mode edd-mode-' . esc_attr( $mode ) . '">' . $text . '</span>' ),
 | |
| 		'href'  => edd_get_admin_url(
 | |
| 			array(
 | |
| 				'page' => 'edd-settings',
 | |
| 				'tab'  => 'gateways',
 | |
| 			)
 | |
| 		),
 | |
| 	) );
 | |
| 
 | |
| 	$pass_manager = new \EDD\Admin\Pass_Manager();
 | |
| 	if ( false === $pass_manager->has_pass() ) {
 | |
| 		$url = edd_link_helper(
 | |
| 			'https://easydigitaldownloads.com/lite-upgrade/',
 | |
| 			array(
 | |
| 				'utm_medium'  => 'admin-bar',
 | |
| 				'utm_content' => 'upgrade-to-pro',
 | |
| 			)
 | |
| 		);
 | |
| 		$wp_admin_bar->add_menu( array(
 | |
| 			'parent' => 'edd-store-menu',
 | |
| 			'id'     => 'edd-upgrade',
 | |
| 			'title'  => esc_html__( 'Upgrade to Pro', 'easy-digital-downloads' ),
 | |
| 			'href'   => $url,
 | |
| 			'meta'   => array(
 | |
| 				'target' => '_blank',
 | |
| 				'rel'    => 'noopener noreferrer',
 | |
| 			),
 | |
| 		) );
 | |
| 	}
 | |
| 
 | |
| 	// Is development environment?
 | |
| 	$is_dev = edd_is_dev_environment();
 | |
| 	if ( ! empty( $is_dev ) ) {
 | |
| 		$wp_admin_bar->add_menu( array(
 | |
| 			'id'     => 'edd-is-dev',
 | |
| 			'title'  => sprintf( __( 'Development Domain %s', 'easy-digital-downloads' ), '<span class="edd-mode">' . $is_dev . '</span>' ),
 | |
| 			'parent' => 'edd-store-menu',
 | |
| 			'href'  => edd_get_admin_url(
 | |
| 				array(
 | |
| 					'page' => 'edd-settings',
 | |
| 					'tab'  => 'gateways',
 | |
| 				)
 | |
| 			),
 | |
| 		) );
 | |
| 	}
 | |
| }
 | |
| add_action( 'admin_bar_menu', 'edd_maybe_add_store_mode_admin_bar_menu', 9999 );
 | |
| 
 | |
| /**
 | |
|  * Styling for text-mode button
 | |
|  *
 | |
|  * @since 3.0
 | |
|  */
 | |
| function edd_store_mode_admin_bar_print_link_styles() {
 | |
| 
 | |
| 	// Bail if user cannot manage shop settings
 | |
| 	if ( ! current_user_can( 'manage_shop_settings' ) ) {
 | |
| 		return;
 | |
| 	} ?>
 | |
| 
 | |
| 	<style type="text/css" id="edd-store-menu-styling">
 | |
| 		#wp-admin-bar-edd-store-status .edd-mode {
 | |
| 			line-height: inherit;
 | |
| 		}
 | |
| 		#wp-admin-bar-edd-store-status .edd-mode-live {
 | |
| 			color: #32CD32;
 | |
| 		}
 | |
| 		#wp-admin-bar-edd-store-menu .edd-mode-test {
 | |
| 			color: #FF8C00;
 | |
| 		}
 | |
| 
 | |
| 		#wpadminbar .edd-menu-notification-counter {
 | |
| 			display: inline-block !important;
 | |
| 			min-width: 18px !important;
 | |
| 			height: 18px !important;
 | |
| 			border-radius: 9px !important;
 | |
| 			margin: 7px 0 0 2px !important;
 | |
| 			vertical-align: top !important;
 | |
| 			font-size: 11px !important;
 | |
| 			line-height: 1.6 !important;
 | |
| 			text-align: center !important;
 | |
| 		}
 | |
| 
 | |
| 		#wpadminbar .edd-menu-notification-indicator {
 | |
| 			float: right !important;
 | |
| 			margin: 10px 0 0 !important;
 | |
| 			width: 8px !important;
 | |
| 			height: 8px !important;
 | |
| 			border-radius: 4px !important;
 | |
| 		}
 | |
| 
 | |
| 		#wpadminbar .edd-menu-notification-indicator:after {
 | |
| 			display: block !important;
 | |
| 			content: "";
 | |
| 			position: absolute !important;
 | |
| 			width: inherit !important;
 | |
| 			height: inherit !important;
 | |
| 			border-radius: inherit !important;
 | |
| 			background-color: inherit !important;
 | |
| 			animation: edd-menu-notification-indicator-pulse 1.5s infinite !important;
 | |
| 		}
 | |
| 
 | |
| 		@keyframes edd-menu-notification-indicator-pulse {
 | |
| 			0% {
 | |
| 				transform: scale(1);
 | |
| 				opacity: 1;
 | |
| 			}
 | |
| 			100% {
 | |
| 				transform: scale(3);
 | |
| 				opacity: 0;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		#wpadminbar #wp-admin-bar-edd-upgrade a {
 | |
| 			background-color: #00a32a;
 | |
| 			color: #fff;
 | |
| 			margin-top: 5px;
 | |
| 		}
 | |
| 
 | |
| 		#wpadminbar #wp-admin-bar-edd-upgrade a:hover {
 | |
| 			background-color: #008a20;
 | |
| 		}
 | |
| 
 | |
| 		#wpadminbar .edd-menu-form-last {
 | |
| 			border-bottom: 1px solid #3c4146 !important;
 | |
| 			margin-bottom: 6px !important;
 | |
| 			padding-bottom: 6px !important;
 | |
| 		}
 | |
| 
 | |
| 		<?php if ( ! is_admin() ) : ?>
 | |
| 		#wpadminbar .wp-ui-notification.edd-menu-notification-counter,
 | |
| 		#wpadminbar .wp-ui-notification.edd-menu-notification-indicator {
 | |
| 			color: #fff;
 | |
| 			background-color: #d63638;
 | |
| 		}
 | |
| 		<?php endif; ?>
 | |
| 
 | |
| 	</style>
 | |
| 
 | |
| <?php
 | |
| }
 | |
| add_action( 'wp_print_styles', 'edd_store_mode_admin_bar_print_link_styles' );
 | |
| add_action( 'admin_print_styles', 'edd_store_mode_admin_bar_print_link_styles' );
 |