在Woocommerce结帐帐单电话字段

时间:2017-09-28 02:40:11

标签: php wordpress woocommerce checkout orders

在WooCommerce中,我想使用str_replace()替换billing_phone字段中的一些字符。

我尝试了以下代码:

add_action( 'woocommerce_checkout_process', 'phone_replace' );
function phone_replace( $order_id ) {
    if (! empty( $_POST['billing_phone'] ) ) {
        str_replace( array('۱'), array('1'), $_POST['billing_phone'] );
    }
}

但它不起作用。

这是正确的钩子吗?

1 个答案:

答案 0 :(得分:1)

要在结算电话上使用str_replace(),右侧挂钩始终相同:

add_action( 'woocommerce_checkout_update_order_meta', 'update_order_meta_billing_phone' );
function update_order_meta_billing_phone( $order_id ) {
    if ( ! empty( $_POST['billing_phone'] ) ) {
        // Check and update
        $billing_phone = str_replace( array('۱'), array('1'), $_POST['billing_phone'] );
        update_post_meta( $order_id, '_billing_phone', sanitize_text_field( $phone_sabet ) );

        ## User data billing phone ##

        // Get the user ID
        $user_id = get_post_meta( $order_id, '_customer_user', true );
        // Get the billing phone user data
        $user_billing_phone = get_user_meta( $user_id, 'billing_phone', true );
        // Check and update
        if( ! empty ( $user_billing_phone ) ) {
            $user_billing_phone = str_replace( array('۱'), array('1'), $user_billing_phone );
            update_user_meta( $user_id, 'billing_phone', $user_billing_phone );
        } else {
            update_user_meta( $user_id, 'billing_phone', $billing_phone );
        }
    }
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

经过测试和工作