Nombre del complemento: WooCommerce
plugins\woocommerce\templates\global\form-login.php
<label for="username"><?php _e( 'Email', 'woocommerce' ); ?> <span class="required">*</span></label>Muestra el correo electrónico en lugar del nombre de usuario o el correo electrónico que quería
incluye\class-wc-form-handler.php
if ( empty( $username ) ) { throw new Exception( '<strong>' . __( 'Error:', 'woocommerce' ) . '</strong> ' . __( 'Email is required.', 'woocommerce' ) ); }Muestra la validación del correo electrónico correcto pero también inicia sesión con el nombre de usuario
Quiero que inicie sesión solo con correo electrónico y contraseña antes de pagar
Si observa detenidamente
wp-content/plugins/woocommerce/includes/class-wc-form-handler.phpen la línea número 878, hay un filtrowoocommerce_process_login_errors, que acepta errores de validación, nombre de usuario y contraseña. Entonces puede sobrescribir esto con esta ayuda de filtro.
Aquí está el código:
// define the woocommerce_process_login_errors callback function filter_woocommerce_process_login_errors($validation_error, $post_username, $post_password) { //if (strpos($post_username, '@') == FALSE) if (!filter_var($post_username, FILTER_VALIDATE_EMAIL)) //<--recommend option { throw new Exception( '<strong>' . __( 'Error', 'woocommerce' ) . ':</strong> ' . __( 'Please Enter a Valid Email ID.', 'woocommerce' ) ); } return $validation_error; } // add the filter add_filter('woocommerce_process_login_errors', 'filter_woocommerce_process_login_errors', 10, 3); El código va en el archivo functions.php de su tema secundario activo (o tema). O también en cualquier complemento de archivos php.
El código está probado y funciona. en WooCommerce 2.6.X
¡Espero que esto ayude!