WooCommerce - 重命名管理员订单列表中的批量操作完成状态

WooCommerce - Renaming bulk actions complete status in admin order list

我已经使用此代码将我的订单状态 'completed' 重命名为 'paid'

function wc_renaming_order_status( $order_statuses ) {
    foreach ( $order_statuses as $key => $status ) {
        $new_order_statuses[ $key ] = $status;
        if ( 'wc-completed' === $key ) {
            $order_statuses['wc-completed'] = _x( 'Paid', 'Order status', 'woocommerce' );
        }
    }
    return $order_statuses;
}
add_filter( 'wc_order_statuses', 'wc_renaming_order_status' );

现在我需要在我的订单列表管理员中重命名批量选项。 我用过这段代码:

add_action('admin_footer-edit.php', 'custom_bulk_admin_footer');
function custom_bulk_admin_footer() {

    global $post_type;

     if($post_type == 'shop_order') {
?>
<script type="text/javascript">
  jQuery(document).ready(function() {
    jQuery('<option>').val('shipped').text('<?php _e('Mark as shipped')?>').appendTo("select[name='action']");
    jQuery('<option>').val('shipped').text('<?php _e('Mark as shipped')?>').appendTo("select[name='action2']");
  });
</script>
<?php
 }
}

但仅适用于添加新选项,我真正需要的是将批量选项 'Mark as completed' 重命名为 'Mark as paid'

我该如何解决这个问题?

谢谢

可以使用 wordpress gettex() 本机功能。你会得到这个:

这是代码:

add_filter('gettext', 'wc_renaming_bulk_status', 20, 3);
function wc_renaming_bulk_status( $translated_text, $untranslated_text, $domain ) {

    if( is_admin()) {
        if( $untranslated_text == 'Mark complete' )
            $translated_text = __( 'Mark paid','theme_text_domain' );
    }
    return $translated_text;
}

此代码位于您的活动子主题(或主题)的 function.php 文件中或任何插件文件中。

此代码已经过测试并且有效。