在管理顶部栏上添加通知气泡

时间:2020-06-28 作者:ashik4u

如何为添加通知气泡Pending/On Hold/Processing order 在管理顶栏上?

Like This

2 个回复
最合适的回答,由SO网友:Sabbir Hasan 整理而成

我会给你一些关于如何做到这一点的想法,因为你没有提到计数数据将从哪里来。向主题/子主题添加以下代码functions.php 文件

function custom_admin_bar_menu() {
    $pending_count = wc_orders_count(\'pending\');
    $on_hold_count = wc_orders_count(\'on-hold\');
    $processing_count = wc_orders_count(\'processing\');

    if ( current_user_can( \'manage_options\' ) ) {
        global $wp_admin_bar;

        //Add an icon with count
        $wp_admin_bar->add_menu( array(
            \'id\'    => \'custom-1\', //Change this to yours
            \'title\' => \'<span class="ab-icon dashicons dashicons-cart"></span><span class="ab-label">\'.$pending_count.\'</span>\',
            \'href\'  => get_admin_url( NULL, \'edit.php?post_status=wc-pending&post_type=shop_order\' ),//Replace with your resired destination
        ) );

        //Add another icon with count
        $wp_admin_bar->add_menu( array(
            \'id\'    => \'custom-2\', //Change this to yours
            \'title\' => \'<span class="ab-icon dashicons dashicons-chart-line"></span><span class="ab-label">\'.$on_hold_count.\'</span>\',
            \'href\'  => get_admin_url( NULL, \'edit.php?post_status=wc-on-hold&post_type=shop_order\' ),//Replace with your resired destination
        ) );

        //Add another icon with count
        $wp_admin_bar->add_menu( array(
            \'id\'    => \'custom-3\', //Change this to yours
            \'title\' => \'<span class="ab-icon dashicons dashicons-carrot"></span><span class="ab-label">\'.$processing_count.\'</span>\',
            \'href\'  => get_admin_url( NULL, \'edit.php?post_status=wc-processing&post_type=shop_order\' ),//Replace with your resired destination
        ) );

        //You can add more as per your need.
    }
}
add_action( \'admin_bar_menu\', \'custom_admin_bar_menu\' , 500 );
The0 在…内<span class="ab-label">0</span> 表示计数。您可以通过使用变量和一些自定义查询轻松地替换它。

SO网友:revive

对于那些正在寻找一个可以根据所需计数进行调整的工作示例的人,或者一个可以在自定义菜单项上显示重力表单中未读条目的片段的人。。。看看这个。

此代码段获取count\\u entries()调用中数组()中所有表单ID的计数,以便父菜单项显示所有未读条目的计数

然后在构建菜单时,我更改count\\u entries()调用和URL中的ID-请参见代码段中的注释。这允许子菜单项分别显示其特定未读条目的计数

function register_my_custom_menu_page() {
    $search_criteria = array(
        \'status\'     => \'active\', //Active forms 
        \'field_filters\' => array( //which fields to search
            array(
                \'key\' => \'is_read\', \'value\' => false, // let\'s just get the count for entries that we haven\'t read yet.
            )
          )
        );

    // Add the form IDs to the array below, the parent menu will show ALL unread entries for these forms
    $notification_count = GFAPI::count_entries( array(1,4,5,6,11,13), $search_criteria );
    
    add_menu_page(
        \'Full Quote Form submissions\', // Page Title
        // here we\'re going to use the var $notification_count to get ALL the form IDS and their counts... just for the parent menu item
        $notification_count ? sprintf( \'Quotes <span class="awaiting-mod">%d</span>\', $notification_count ) : \'View Quotes\',
        \'manage_options\', // Capabilities 
        \'admin.php?page=gf_entries&id=13\', // menu slug
        \'\', // callback function
        \'dashicons-format-aside\', // icon URL
        6 // position
    );
    add_submenu_page( 
        \'admin.php?page=gf_entries&id=13\', // this needs to match menu slug of the parent
        \'View Full Quotes\', // name of the page
        // The ID on the next line, 13 in this example, matches the form ID in the URL on the LAST line. Notice we\'re NOT using the var $notification_count from above, as that contains the entry count for ALL the forms
        GFAPI::count_entries( 13, $search_criteria ) ? sprintf( \'Full Quotes <span class="awaiting-mod">%d</span>\', GFAPI::count_entries( 13, $search_criteria ) ) : \'Full Quotes\',
        \'manage_options\', 
        // make sure to change the ID on the end of this URL to the form you want to point to, AND make sure it matches the ID two lines above in the count_entries() call
        \'admin.php?page=gf_entries&id=13\'
    );
    add_submenu_page( 
        \'admin.php?page=gf_entries&id=13\', // this needs to match menu slug of the parent
        \'View Short Quotes\', // name of the page
        // The ID on the next line, 1 in this example, matches the form ID in the URL on the LAST line.     
        GFAPI::count_entries( 1, $search_criteria ) ? sprintf( \'Short Quotes <span class="awaiting-mod">%d</span>\', GFAPI::count_entries( 1, $search_criteria ) ) : \'Short Quotes\',
        \'manage_options\', 
        // make sure to change the ID on the end of this URL to the form you want to point to, AND make sure it matches the ID two lines above in the count_entries() call
        \'admin.php?page=gf_entries&id=1\'
    );
    add_submenu_page( 
        \'admin.php?page=gf_entries&id=13\', // this needs to match menu slug of the parent
        \'Sell Your Equipment\', // name of the page
        // The ID on the next line, 5 in this example, matches the form ID in the URL on the LAST line.             
        GFAPI::count_entries( 5, $search_criteria ) ? sprintf( \'Selling Equip <span class="awaiting-mod">%d</span>\', GFAPI::count_entries( 5, $search_criteria ) ) : \'Selling Equip\',
        \'manage_options\', 
        // make sure to change the ID on the end of this URL to the form you want to point to, AND make sure it matches the ID two lines above in the count_entries() call
        \'admin.php?page=gf_entries&id=5\'
    );
    add_submenu_page( 
        \'admin.php?page=gf_entries&id=13\', // this needs to match menu slug of the parent
        \'Equipment Wanted\', // name of the page
        // The ID on the next line, 6 in this example, matches the form ID in the URL on the LAST line.             
        GFAPI::count_entries( 6, $search_criteria ) ? sprintf( \'Equip Wanted <span class="awaiting-mod">%d</span>\', GFAPI::count_entries( 6, $search_criteria ) ) : \'Equip Wanted\',
        \'manage_options\', 
        // make sure to change the ID on the end of this URL to the form you want to point to, AND make sure it matches the ID two lines above in the count_entries() call  
        \'admin.php?page=gf_entries&id=6\'
    );
    add_submenu_page( 
        \'admin.php?page=gf_entries&id=13\', // this needs to match menu slug of the parent
        \'Appraisal Requests\', // name of the page
        // The ID on the next line, 11 in this example, matches the form ID in the URL on the LAST line.                
        GFAPI::count_entries( 11, $search_criteria ) ? sprintf( \'Appraisal Requests <span class="awaiting-mod">%d</span>\', GFAPI::count_entries( 11, $search_criteria ) ) : \'Appraisal Requests\',
        \'manage_options\', 
        // make sure to change the ID on the end of this URL to the form you want to point to, AND make sure it matches the ID two lines above in the count_entries() call
        \'admin.php?page=gf_entries&id=11\'
    );
    add_submenu_page( 
        \'admin.php?page=gf_entries&id=13\', // this needs to match menu slug of the parent
        \'Contact Form\',  // name of the page
        // The ID on the next line, 4 in this example, matches the form ID in the URL on the LAST line.             
        GFAPI::count_entries( 4, $search_criteria ) ? sprintf( \'Contact Form <span class="awaiting-mod">%d</span>\', GFAPI::count_entries( 4, $search_criteria ) ) : \'Contact Form\',
        \'manage_options\', 
        // make sure to change the ID on the end of this URL to the form you want to point to, AND make sure it matches the ID two lines above in the count_entries() call
        \'admin.php?page=gf_entries&id=4\'
    );
    
}
add_action( \'admin_menu\', \'register_my_custom_menu_page\' );