WooCommerce - 在管理员顺序列表中重命名批量操作完成状态

时间:2016-09-11 17:36:00

标签: php wordpress woocommerce status orders

我已经重新命名了我的订单状态'已完成'付款'使用此代码

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
 }
}

但仅适用于添加新选项,我真正需要的是重命名批量选项&#39; Mark as completed&#39;标记为已付款&#39;

我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:3)

可以使用wordpress gettex()原生函数。你会得到这个:

enter image description here

这是代码:

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文件或任何插件文件。

此代码经过测试且有效。