从WooCommerce结账地址字段中删除逗号

时间:2019-05-06 作者:Skovsgaard

我客户的WooCommerce商店正在将订单导出为逗号分隔的文件,以便在C5中创建包装标签和记帐。

当用户在签出时输入带有逗号的地址时,这会破坏CSV导出。示例:“60 Brickyard Road,Lapeer”。导入时,“Road”后的逗号会混淆C5。

在将地址值保存到订单之前,如何过滤掉任何逗号?

2 个回复
最合适的回答,由SO网友:LoicTheAztec 整理而成

提交订单后(保存数据之前),您可以使用以下内容删除/替换address\\u 1和address\\u 2 billing and shipping字段中的COMA:

// Checkout/Order: Remove/replace comas from adresses fields
add_action(\'woocommerce_checkout_create_order\', \'remove_comas_from_address_fields\', 10, 2 );
function remove_comas_from_address_fields( $order, $data ) {
    $replacement = \'\';

    if ( $billing_address_1 = $order->get_billing_address_1() ) {
        $order->set_billing_address_1( str_replace( \',\', $replacement, $billing_address_1 ) );
    }

    if ( $billing_address_2 = $order->get_billing_address_2() ) {
        $order->set_billing_address_2( str_replace( \',\', $replacement, $billing_address_2 ) );
    }

    if ( $shipping_address_1 = $order->get_shipping_address_1() ) {
        $order->set_shipping_address_1( str_replace( \',\', $replacement, $shipping_address_1 ) );
    }

    if ( $shipping_address_2 = $order->get_shipping_address_2() ) {
        $order->set_shipping_address_2( str_replace( \',\', $replacement, $shipping_address_2 ) );
    }
}
代码进入功能。活动子主题(或活动主题)的php文件。已测试并正常工作。

如果您愿意,您也可以同时保留您的答案代码。这样,一切都将在操纵的情况下安全。

SO网友:Skovsgaard

我用以下代码设法禁止在两个地址字段中使用逗号。将其添加到您的函数中。php文件。

add_action( \'wp_footer\', \'checkout_field_name_validator_script\');
function checkout_field_name_validator_script() {
    // Only on checkout page
    if( ! ( is_checkout() && ! is_wc_endpoint_url() ) ) return;
    ?>
    <script>
    jQuery(function($){
        var b = \'#billing_\',    s = \'#shipping_\',
            a = \'address_1\',     c = \',\';

        // Address fields
        $(b+a+c+s+a).bind(\'keyup blur\',function(){
            $(this).val($(this).val().replace(/,/g,\'\'));
        });

    });
    </script>
    <?php
}
感谢并感谢用户"LoicTheAztec" 在里面this post.

Important - 这仅适用于前端。要验证和过滤输入,请参阅接受的答案。

相关推荐

自升级到php7.2后,ACF中继器分页停止工作

自从更新到php7.2以来,分页功能已停止在使用ACF中继器构建的库上工作。我怀疑这是count()函数的问题我找到了一些与此相关的文章,但无法解决如何更新代码以解决此问题。如果有人能帮忙,我将不胜感激。下面是我的代码<?php /* * Paginate Advanced Custom Field repeater */ if( get_query_var(\'page\') ) { $page = get_query_var( \'pa