【问题标题】:How to hide some Custom Fields from Woocommerce Admin order page如何从 Woocommerce 管理订单页面隐藏一些自定义字段
【发布时间】:2021-10-19 14:12:12
【问题描述】:

当以管理员身份登录并查看 Woocommerce 中的订单时,会有一个包含所有自定义字段的部分。在整个列表中,我只希望它显示其中两个。我如何从这个视图中隐藏其余部分?我不想删除它们,只是从这个视图中隐藏。

【问题讨论】:

    标签: wordpress woocommerce custom-fields woocommerce-theming


    【解决方案1】:

    对于您想要隐藏的每个自定义字段,将以下 4 行代码添加到 functions.php 或使用 Snippets 插件:

        add_filter('is_protected_meta', 'my_is_protected_meta_filter1', 10, 2);
        function my_is_protected_meta_filter1($protected, $meta_key) {
            return $meta_key == 'automatewoo_cart_id' ? true : $protected;
        }
    

    如果要隐藏多个,请再次添加上面的行并将'my_is_protected_meta_filter1'更改为'my_is_protected_meta_filter2'等

    【讨论】:

      【解决方案2】:

      如果您使用的是 ACF pro,您可以使用一个挂钩来删除后端的字段,但它没有记录在案。..

      如果 is_admin() 返回 true,您可以使用挂钩删除特定字段。

      您可能需要稍微尝试一下才能让它工作,ACF 钩子是

      acf/get_fields  
      

      所以,例如:

      add_filter('acf/get_fields', 'your_function_name', 20, 2);
      function your_function_name($fields, $parent) {
        // remove the fields you don't want
        return $fields;
      }
      

      $fields 可以是嵌套的字段数组 => sub_fields。

      你需要设置优先级> 10在内部ACF过滤器之后运行

      【讨论】:

        【解决方案3】:

        对于 Woocommerce 中的订单,帖子类型为“shop_order”,因此您的代码应为:

        add_action( 'add_meta_boxes', 'remove_shop_order_meta_boxe', 90 );
        function remove_shop_order_meta_boxe() {
            remove_meta_box( 'postcustom', 'shop_order', 'normal' );
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-06-21
          • 1970-01-01
          • 2019-04-14
          • 2020-08-12
          • 2017-12-13
          • 2017-03-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多