Agregue un campo de teléfono móvil en Mi cuenta> editar cuenta en Woocommerce

4 minutos de lectura

avatar de usuario
ahmadwp

mi pregunta: Cómo agregar un campo de teléfono móvil en Woocommerce my-account/edit-account/ página (plantilla relacionada: form-edit-account.php expediente)

Como en el siguiente hilo de respuesta:
Guardar el valor de un número de teléfono de campo personalizado en WooCommerce Mi cuenta > Detalles de la cuenta

Pero este código de respuesta está incompleto ya que faltan algunas funciones enganchadas. Se agradece cualquier ayuda para completar algo, es decir, la visualización del campo.

  • gracias, pero no puede encontrar mi respuesta? su respuesta necesita editar 2 archivos. 1: funciones.php y 2. formulario-editar-cuenta.php. pero necesito 1 código para functions.php.

    – ahmadwp

    29 de junio de 2018 a las 16:55

  • Finalmente he respondido… Así que esta es una solución completa probada

    – LoicTheAztec

    29 de junio de 2018 a las 17:02

Tiene 3 opciones para mostrar un campo de teléfono móvil personalizado en la página Mi cuenta > Editar cuenta:

1) Como el primer campo usando woocommerce_edit_account_form_start gancho de acción (ver más abajo).

2) Después de los campos existentes usando woocommerce_edit_account_form gancho de acción:

// Display the mobile phone field
// add_action( 'woocommerce_edit_account_form_start', 'add_billing_mobile_phone_to_edit_account_form' ); // At start
add_action( 'woocommerce_edit_account_form', 'add_billing_mobile_phone_to_edit_account_form' ); // After existing fields
function add_billing_mobile_phone_to_edit_account_form() {
    $user = wp_get_current_user();
    ?>
     <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
        <label for="billing_mobile_phone"><?php _e( 'Mobile phone', 'woocommerce' ); ?> <span class="required">*</span></label>
        <input type="text" class="woocommerce-Input woocommerce-Input--phone input-text" name="billing_mobile_phone" id="billing_mobile_phone" value="<?php echo esc_attr( $user->billing_mobile_phone ); ?>" />
    </p>
    <?php
}

// Check and validate the mobile phone
add_action( 'woocommerce_save_account_details_errors','billing_mobile_phone_field_validation', 20, 1 );
function billing_mobile_phone_field_validation( $args ){
    if ( isset($_POST['billing_mobile_phone']) && empty($_POST['billing_mobile_phone']) )
        $args->add( 'error', __( 'Please fill in your Mobile phone', 'woocommerce' ),'');
}

// Save the mobile phone value to user data
add_action( 'woocommerce_save_account_details', 'my_account_saving_billing_mobile_phone', 20, 1 );
function my_account_saving_billing_mobile_phone( $user_id ) {
    if( isset($_POST['billing_mobile_phone']) && ! empty($_POST['billing_mobile_phone']) )
        update_user_meta( $user_id, 'billing_mobile_phone', sanitize_text_field($_POST['billing_mobile_phone']) );
}

El código va en el archivo function.php de su tema secundario activo (o tema activo). Probado y funciona.

3) En un lugar específicoanulando myaccount/form-edit-account.php archivo de plantilla a través del tema como se explica en esta documentación. y en este hilo de respuesta

En este caso, deberá agregar el siguiente código html en la plantilla (como en este hilo de respuesta):

 <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
    <label for="billing_mobile_phone"><?php _e( 'Mobile phone', 'woocommerce' ); ?> <span class="required">*</span></label>
    <input type="text" class="woocommerce-Input woocommerce-Input--phone input-text" name="billing_mobile_phone" id="billing_mobile_phone" value="<?php echo esc_attr( $user->billing_mobile_phone ); ?>" />
</p>

En este último caso, deberá agregar en el archivo function.php de su tema las 2 últimas funciones enganchadas de la sección 2 (validación y guardado).

  • gracias. pero este código funciona para el campo personalizado. Necesito agregar un teléfono móvil (woocommerce predeterminado)> el campo estándar billing_phone se muestra en la página de edición de la cuenta.

    – ahmadwp

    29 de junio de 2018 a las 17:15

  • Acaba de cambiar la clave meta en todas partes desde billing_mobile_phone a billing_phone en el código… Ahora, si desea manejar el teléfono de facturación en todas partes, desde los campos de mi cuenta hasta los campos de pago, eso es algo diferente, que se puede manejar de diferentes maneras.

    – LoicTheAztec

    29 de junio de 2018 a las 17:17


  • lo siento, mi inglés no es bueno; Necesito cambiar a teléfono móvil (woocommerce predeterminado)> campo original billing_phone – editar la página de la cuenta de escritura y cambio a solo lectura

    – ahmadwp

    29 de junio de 2018 a las 18:19

  • en la página de edición de la cuenta de woocommerce, los campos que existen incluyen: correo electrónico, nombre, apellido, nombre para mostrar y contraseña. Quiero agregar billing_phone o cualquier campo de facturación como código postal, empresa (campos de pago) Agregar aquí

    – ahmadwp

    29 de junio de 2018 a las 18:56


  • en mi tienda. el registro de clientes durante el pago está deshabilitado. y necesita iniciar sesión y completar el pago. los clientes se registran antes de comprar con la página de registro (creada con el complemento de formas de gravedad) los clientes ven el nombre de facturación, el apellido y el correo electrónico y muestran el nombre en la página de la cuenta como configuración predeterminada de woocommerce. quiero que el cliente vea billing_phone también, en la página de edición de cuenta. como nombre, apellido y correo electrónico.

    – ahmadwp

    29 de junio de 2018 a las 19:08


¿Ha sido útil esta solución?