代码之家  ›  专栏  ›  技术社区  ›  Mostafa

在Woocommerce结账电话字段上使用str_replace

  •  1
  • Mostafa  · 技术社区  · 7 年前

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

    我尝试了以下代码:

    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 回复  |  直到 7 年前
        1
  •  2
  •   LoicTheAztec    7 年前

    使用 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 );
            }
        }
    }
    

    测试和工作