我一直在尝试将计费电话号码作为必需的组件,但无法以任何方式影响它。这是我到目前为止所尝试过的
在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”将手机设置为必需
但尽管如此,计费电话仍然是可选的,我可以在不添加电话号码的情况下结账。我有什么遗漏的吗?
最终我找到了解决方案。以下文件定义计费字段 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 对象。这可以设置为必需