laipower/wp-content/plugins/easy-digital-downloads/includes/admin/admin-bar.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' );