Woocommerce 无法将计费电话设置为“必需”

问题描述 投票:0回答:1

我一直在尝试将计费电话号码作为必需的组件,但无法以任何方式影响它。这是我到目前为止所尝试过的

在functions.php中使用钩子

add_filter('woocommerce_billing_fields', 'no_billing_phone_validation' );
function no_billing_phone_validation( $fields ) {
    $fields['billing_phone']['required'] = true;
    return $fields;
}

在我的主题中将手机设置为必需

并使用插件“Checkout Field Editor for WooCommerce”将手机设置为必需

但尽管如此,计费电话仍然是可选的,我可以在不添加电话号码的情况下结账。我有什么遗漏的吗?

wordpress woocommerce wordpress-theming hook-woocommerce
1个回答
0
投票

最终我找到了解决方案。以下文件定义计费字段 woocommerce/src/blocks/domains/services/checkoutfields.php 的对象。该文件具有以下对象

        'phone'      => array(
            'label'          => __( 'Phone', 'woocommerce' ),
            'optionalLabel'  => __(
                'Phone (optional)',
                'woocommerce'
            ),
            'required'       => true,
            'hidden'         => false,
            'type'           => 'tel',
            'autocomplete'   => 'tel',
            'autocapitalize' => 'characters',
            'index'          => 100,
        ),

令人困惑的是,如果我将 required 设置为 true,这实际上并没有使该字段成为必填字段。一定有某种功能可以覆盖其他地方的功能。所以我所做的就是删除phone 对象并创建一个相同的phone2 对象。这可以设置为必需

© www.soinside.com 2019 - 2024. All rights reserved.