即使Woocommerce电话号码和邮政编码字段的输入类型设置为“数字”,某些字母仍然会持续出现

时间:2018-10-18 17:23:33

标签: validation woocommerce hook-woocommerce

我设法使用此代码对网站的结算结帐字段进行了一些调整

add_filter( 'woocommerce_default_address_fields', 'custom_woocommerce_default_address_fields' );
function custom_woocommerce_default_address_fields( $address_fields ) {
    $address_fields['first_name']['custom_attributes'] = array('maxlength' => 35);
    $address_fields['last_name']['custom_attributes'] = array('maxlength' => 35);
    $address_fields['address_1']['custom_attributes'] = array('maxlength' => 50);
    $address_fields['address_2']['custom_attributes'] = array('maxlength' => 50);
    $address_fields['city']['custom_attributes'] = array('maxlength' => 35);


    $address_fields['postcode']['custom_attributes'] = array('maxlength' => 4, 'type' => 'number' );
    $address_fields['phone']['custom_attributes'] = array('maxlength' => 11, 'type' => 'number' );

    unset($address_fields['company']);
    unset($address_fields['address_2']);

    return $address_fields;
}

注意我在邮政编码和电话号码字段上所做的两件事。我都为两个字段都设置了特定的最大长度。我还将它们的输入类型设置为“数字”,因为我注意到也可以在这些字段中输入字母,而这些字段应该只是数字。但是,当我运行此代码时,什么也没有发生。

我还尝试将我为这些字段所做的自定义分开,例如:

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields )
{        
     $fields['billing']['billing_phone']['type'] = 'number';   
     $fields['billing']['billing_postcode']['type'] = 'number';
     $fields['billing']['billing_phone']['maxlength'] = 11;   
     $fields['billing']['billing_postcode']['maxlength'] = 4; 

     return $fields;    
}

但是,只有 ['type'] ='number'是这两个签出字段中的可见变化。我认为可以,但是在我尝试键入所有字母时,字母 e r 仍然会持续出现在邮政编码和电话字段中。这是一个错误还是有可能克服这个问题?我只想在这两个计费字段中同时实现maxlength和输入type = number。

0 个答案:

没有答案