修改管理员 post 列表 buttons/dropdown

Modifying admin post list buttons/dropdown

我创建了自己的自定义 post 类型搜索过滤器,而不是有另一个菜单,我想将 select 选项附加到默认的 woocommerce 状态过滤器下拉列表 select。

我还想将 FilterSearch Orders 按钮的文本更改为 Go

这是我添加自己的下拉菜单的方法 select 但我想追加。

add_action( 'restrict_manage_posts', 'wpse45436_admin_posts_filter_restrict_manage_posts' );


function wpse45436_admin_posts_filter_restrict_manage_posts(){
    $type = 'shop_order';
    if (isset($_GET['post_type'])) {
        $type = $_GET['post_type'];
    }

    //only add filter to post type you want
    if ('shop_order' == $type){
        //change this to the list of values you want to show
        //in 'label' => 'value' format
        $values = array(
            'Ordered From Supplier' => 'ordered_supplier', 
            'Ready for Dispatch' => 'ready_dispatched',
            'Despatched' => 'despatched',
            'Delivered' => 'delivered',
            'Returns' => 'returns',
        );
        ?>
        <select name="shop_order_status_2" class="chzn-done">
        <option value="" selected><?php _e('Show All Order Statuses ', 'wose45436'); ?></option>

        <?php
            $current_v = isset($_GET['shop_order_status_2'])? $_GET['shop_order_status_2']:'';
            foreach ($values as $label => $value) {
                printf
                    (
                        '<option value="%s"%s>%s</option>',
                        $value,
                        $value == $current_v? ' selected="selected"':'',
                        $label
                    );
                }
        ?>
        </select>
        <?php
    }
}

我该如何做到这一点?我使用什么过滤器?

我相信您可以通过过滤 gettext() 来更改按钮文本。这是允许翻译按钮文本的原因,但它也可以被劫持用于此类目的。

add_filter( 'gettext', 'so_29631694_modify_filter_button_text' );

function so_29631694_modify_filter_button_text( $translated_text, $untranslated_text, $domain ){
    if( is_admin() && 'Filter' == $untranslated_text){
        $translated_text = 'Go';
    }
    return $translated_text;
}

或者你可以做一点 jQuery:

$('order-query-submit').attr('value', 'Go');