【问题标题】:Hide WooCommerce billing and shipping fields in WordPress user profile在 WordPress 用户配置文件中隐藏 WooCommerce 计费和运输字段
【发布时间】:2018-09-04 17:04:52
【问题描述】:

我找不到一种简单的方法来隐藏一些在 WordPress 后端的用户配置文件中可见的 WooCommerce 计费和运输字段。

例如,我想在 WordPress 用户配置文件中隐藏 billing_address_2shipping_address_2。有没有使用代码 sn-p 的好方法?我尝试使用下面的代码将第六行隐藏在 css 中,但我也无法让它工作。

#fieldset-billing.form-table tr:nth-child(6) {
     display: none;
}

如何在 WordPress 用户个人资料中隐藏 WooCommerce 计费和运输字段?

【问题讨论】:

    标签: php css wordpress woocommerce field


    【解决方案1】:

    用户个人资料屏幕中显示的帐单和运输字段通过钩子woocommerce_customer_meta_fields 过滤。

    要删除运输字段,您可以编写:

    add_filter( 'woocommerce_customer_meta_fields', 'xbs_remove_shipping_fields' );
    function xbs_remove_shipping_fields( $show_fields ) {
        unset( $show_fields['shipping'] );
        return $show_fields;
    }
    

    要删除所有字段,您可以返回一个空的array

    【讨论】:

    • 谢谢!我尝试了 sn-p,它适用于“运输”或“计费”,但是当我尝试“计费状态”时它不起作用..有什么想法吗?
    • show_fields 数组有 2 个键:billingshipping,每个都包含一个带有 titlefields 键的数组。如果只想隐藏billing_state,则必须取消设置['billing']['fields']['billing_state'] 键。
    【解决方案2】:

    您可以将其添加到 functions.php 文件中,然后取消设置,这样它们就不会被注册。

    add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
    
    function custom_override_checkout_fields( $fields ) {
         unset($fields['order']['billing_address_2']);     
         unset($fields['order']['shipping_address_2']);
    
         return $fields;
    }
    

    从帐户页面中删除:

    function custom_remove_checkout_fields($fields) {
        unset($fields['order']['billing_address_2']);     
        unset($fields['order']['shipping_address_2']);
        return $fields;
    }
    
    add_filter( 'woocommerce_default_address_fields', 'custom_remove_checkout_fields' );
    

    如果它出现在另一个地方,你可以添加另一个钩子但调用

    add_filter( 'woocommerce_billing_fields', 'new_function_name' );
    

    其他可用的钩子你可以在文件class-wc-countries.php中看到

    有关更多信息和其他选项,您可以访问:https://docs.woocommerce.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/

    【讨论】:

    • 谢谢,但它们仍然在后端的 WordPress 用户个人资料页面上可见..
    • 我已经更新了原始答案以显示如何删除帐户页面。
    • @Sjors 你能标出哪一个是答案并提供帮助。
    【解决方案3】:

    要从 WordPress 后端用户配置文件中隐藏帐单和送货地址2 字段,请尝试以下操作:

    add_action('admin_head', 'custom_admin_user_styles');
    function custom_admin_user_styles() {
        ?>
        <style>
            table#fieldset-billing tr:nth-child(5),
            table#fieldset-shipping tr:nth-child(6){
                display: none !important;
            }
        </style>';
        <?php
    }
    

    代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试和工作。

    【讨论】:

    • 如果第 5 个或第 6 个孩子不是这些字段之一会怎样?添加一个新的或删除另一个,第 5 个和第 6 个孩子将是不同的字段。
    • @JoshChristensen 如果需要,您可以检查自己并为每个人更改正确的......但这已经过测试并且有效。
    • 感谢 Josh 和 Loic 的帮助。我知道隐藏行不是最可持续的解决方案,但我根本无法让删除功能适用于 WP 个人资料页面。也许另一个插件在那里引起了问题..
    【解决方案4】:
    add_filter( 'woocommerce_customer_meta_fields', '__return_empty_array' );
    

    将上面的代码行添加到主题的functions.php 文件中。完美运行。

    【讨论】:

      【解决方案5】:

      只需使用 CSS 将其隐藏即可。 .class 或#ID

      .class{
          display: none!important
      }
      

      【讨论】:

      • 如果你问的话,这是最简单的方法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-05
      • 2019-02-14
      • 2017-02-16
      • 2015-08-14
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      相关资源
      最近更新 更多