当前位置: 首页 > 知识库问答 >
问题:

删除了仍需要的WooCommerce结账字段

裴宜春
2023-03-14

我正在删除特定的Woocoomerce签出字段,因为提货订单不需要这些字段。

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );

function custom_override_checkout_fields( $fields ) {
    unset($fields['billing']['billing_company']);
    unset($fields['billing']['billing_address_1']);
    unset($fields['billing']['billing_address_2']);
    unset($fields['billing']['billing_city']);
    unset($fields['billing']['billing_postcode']);
    unset($fields['billing']['billing_country']);
    unset($fields['billing']['billing_state']);
    unset($fields['order']['order_comments']);
    return $fields;
}

这可以很好地删除字段,但不允许我签出。我收到以下错误:

我还尝试将必需的数组项更改为FALSE,但没有成功。

$fields['billing']['billing_company']['required'] = false;
$fields['billing']['billing_address_1']['required'] = false;
$fields['billing']['billing_address_2']['required'] = false;
$fields['billing']['billing_city']['required'] = false;
$fields['billing']['billing_postcode']['required'] = false;
$fields['billing']['billing_country']['required'] = false;
$fields['billing']['billing_state']['required'] = false;

我正在使用店面主题以及Woocommerce 3.1。2.

共有2个答案

长孙明知
2023-03-14

“unset字段”也有类似的问题,所以只需尝试将优先级设置为“100”或类似的示例:add_filter('woocommerce_checkout_fields','checkout_fields',100);

资料来源:

if(!function_exists('checkout_fields')){
    function checkout_fields($fields){
        unset($fields['billing']['billing_address_1']);
        unset($fields['billing']['billing_address_2']);
        unset($fields['billing']['billing_city']);
        unset($fields['billing']['billing_postcode']);
        unset($fields['billing']['billing_country']);
        unset($fields['billing']['billing_state']);
        return $fields;
    }
    add_filter('woocommerce_checkout_fields', 'checkout_fields', 100);
}
王飞虎
2023-03-14

在版本3之后的WooCommerce中,这是一件令人恼火的事情。要么降级到早期版本,要么允许这些细节通过特别是国家。您可以使用css或JS来隐藏表单输入,但在WooCommerce设置中设置所需的国家。

 类似资料:
  • WooCommerce自定义结账字段的插件有Custom Checkout Fields for WooCommerce等,如果你想要更多的自由,就用代码来解决吧。本文介绍一种用代码来自定义WooCommerce结账字段的方法。 WooCommerce自定义结账字段代码 代码单独保存一个文件引入,或直接放到子主题的functions.php中,第二种方式请将 defined('WPINC') or

  • 您好,我有一个关于woocommerce中自定义结账字段的问题。我在结帐表单中创建了一个自定义字段,一切都很顺利。该字段包含客户卡号。我还设法将字段值(第一次输入时)保存在wp usermeta中,这样它就不会只与订单一起出现,而是与客户详细信息一起保存。 现在我想做以下几点。一旦注册客户返回商店,进入结帐表单,新字段(如果不是empyt)将自动显示,而不是每次都要求客户插入他们的卡号。 我添加到

  • 我很难打印我的自定义字段值到电子邮件通知,订单管理和感谢页面。我浏览了StackOverflow,尝试了我找到的每一个答案,但不幸的是不起作用,我无法解决问题:我试图传递额外结账字段的值,它只打印带有空白值的强标签,在电子邮件中什么都没有显示,这是我到目前为止的代码: 不管我怎么做,代码只打印标签,而不打印签出表单中的任何值。我知道这个问题已经被问了很多次,但我尝试了6天以上的每一个答案都没有任何

  • 问题 你想去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。 解决方案 strip() 方法能用于删除开始或结尾的字符。 lstrip() 和 rstrip() 分别从左和从右执行删除操作。 默认情况下,这些方法会去除空白字符,但是你也可以指定其他字符。比如: >>> # Whitespace stripping >>> s = ' hello world \n' >>> s.strip()

  • 使用基于WooCommerce结帐应答代码中的选择字段添加动态费用,我成功地在复选框更改中添加了新费用: 未选中时,如何删除费用? 这是一个礼品包装选项,如果选择额外的费用将在结账时添加到总额中。如果未选择,则应删除费用并更新结账。

  • 向结账表单添加WooCommerce自定义结账字段,可以使用插件WooCommerce checkout manager或者filter:woocommerce_checkout_fields,本文介绍的方法非上述两种,而是使用woocommerce_form_field()函数在订单备注之后添加自定义结账字段,并将字段显示在订单详情、订单邮件和后台中的方法。 2021年10月更新:WooComm