【问题标题】:Format billing phone number on WooCommerce checkout在 WooCommerce 结帐时格式化帐单电话号码
【发布时间】:2019-02-14 23:05:11
【问题描述】:

对于 WooCommerce 结帐结算字段,如何使此字段需要 9 个数字并插入破折号以进行正确的电话格式设置?例如,不是在电话号码字段中输入 3053453212,而是显示:(305-345-3212)

【问题讨论】:

    标签: php wordpress woocommerce format checkout


    【解决方案1】:

    基于“Formatting a phone number in a form using jquery”应答码,以下是格式化 Woocommerce 计费电话的方法:

    add_action('wp_footer', 'format_checkout_billing_phone');
    function format_checkout_billing_phone() {
        if ( is_checkout() && ! is_wc_endpoint_url() ) :
        ?>
        <script type="text/javascript">
        jQuery( function($){
            $('#billing_phone').on( 'input focusout', function() {
                var p = $(this).val();
    
                p = p.replace(/[^0-9]/g, '');
                p = p.replace(/(\d{3})(\d{3})(\d{4})/, "$1-$2-$3");
                $(this).val(p);
            });
        });
        </script>
        <?php
        endif;
    }
    

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

    【讨论】:

      【解决方案2】:

      你可以试试这个

      /** 
      *  Require 9 digit number. Format to 000-000-0000 at submission
      *  stackoverflow/54700465
      */
      
      add_filter( 'woocommerce_billing_fields', 'wc_filter_phone', 10, 1 );
      function wc_filter_phone( $address_fields ) {
          $address_fields['billing_phone']['min-lenght="9"'];
          $format_number = preg_replace("/^(\d{3})(\d{3})(\d{4})$/", "$1-$2-$3", $address_fields);
          return $format_number;  
      }
      
      // End
      

      【讨论】:

      • 不走运 :( 不过我真的很感谢你尝试这个
      【解决方案3】:

      另一种对我有用的方法is given here

      $_POST['billing_phone'] = preg_replace("/^(\d{3})(\d{3})(\d{4})$/", "$1-$2-$3", $number);
      

      【讨论】:

        猜你喜欢
        • 2018-10-23
        • 2018-06-02
        • 1970-01-01
        • 2018-03-24
        • 1970-01-01
        • 1970-01-01
        • 2020-08-02
        相关资源
        最近更新 更多