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