wordpress - todos - woocommerce español
Separar página de registro en el sitio web de WooCommerce (3)
edite su archivo form-login.php
y form-login.php
el formulario de inicio de sesión y el formulario de registro en dos secciones diferentes, diga la sección A y B.
ahora verifica un parámetro GET
en la página que definirá qué sección mostrar. De forma predeterminada, se mostrará el inicio de sesión, si se encuentra el parámetro y es "registro", muestra la sección de registro
if( isset( $_GET[''action'']) && $_GET[''action''] == "register"){
// Section for registration
}else {
// Section for Login form
}
puede proporcionar un enlace para registrarse como
<a href="'' .get_permalink(woocommerce_get_page_id(''myaccount'')). ''?action=register"> register </a>
¿Alguien puede ayudarme a crear una página de registro separada en WooCommerce en lugar de mostrarla en la página de my-account
?
En la página de my-account
, quiero mostrar un enlace que llevará al comprador a la página de registro.
El código para form-login.php
es
--- SECCIÓN DE INICIO ---
<?php
/**
* Login Form
*
* @author WooThemes
* @package WooCommerce/Templates
* @version 2.2.6
*/
if ( ! defined( ''ABSPATH'' ) ) {
exit; // Exit if accessed directly
}
?>
<?php wc_print_notices(); ?>
<?php do_action( ''woocommerce_before_customer_login_form'' ); ?>
<?php if ( get_option( ''woocommerce_enable_myaccount_registration'' ) === ''yes'' ) : ?>
<div class="col2-set" id="customer_login">
<div class="col-1">
<?php endif; ?>
<h2><?php _e( ''Login'', ''woocommerce'' ); ?></h2>
<form method="post" class="login">
<?php do_action( ''woocommerce_login_form_start'' ); ?>
<p class="form-row form-row-wide">
<label for="username"><?php _e( ''Username or email address'', ''woocommerce'' ); ?> <span class="required">*</span></label>
<input type="text" class="input-text" name="username" id="username" value="<?php if ( ! empty( $_POST[''username''] ) ) echo esc_attr( $_POST[''username''] ); ?>" />
</p>
<p class="form-row form-row-wide">
<label for="password"><?php _e( ''Password'', ''woocommerce'' ); ?> <span class="required">*</span></label>
<input class="input-text" type="password" name="password" id="password" />
</p>
<?php do_action( ''woocommerce_login_form'' ); ?>
<p class="form-row">
<?php wp_nonce_field( ''woocommerce-login'' ); ?>
<input type="submit" class="button" name="login" value="<?php esc_attr_e( ''Login'', ''woocommerce'' ); ?>" />
<label for="rememberme" class="inline">
<input name="rememberme" type="checkbox" id="rememberme" value="forever" /> <?php _e( ''Remember me'', ''woocommerce'' ); ?>
</label>
</p>
<p class="lost_password">
<a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php _e( ''Lost your password?'', ''woocommerce'' ); ?></a>
</p>
<?php do_action( ''woocommerce_login_form_end'' ); ?>
</form>
<?php if ( get_option( ''woocommerce_enable_myaccount_registration'' ) === ''yes'' ) : ?>
</div>
<div class="col-2">
<h2><?php _e( ''Register'', ''woocommerce'' ); ?></h2>
<form method="post" class="register">
<?php do_action( ''woocommerce_register_form_start'' ); ?>
<?php if ( ''no'' === get_option( ''woocommerce_registration_generate_username'' ) ) : ?>
<p class="form-row form-row-wide">
<label for="reg_username"><?php _e( ''Username'', ''woocommerce'' ); ?> <span class="required">*</span></label>
<input type="text" class="input-text" name="username" id="reg_username" value="<?php if ( ! empty( $_POST[''username''] ) ) echo esc_attr( $_POST[''username''] ); ?>" />
</p>
<?php endif; ?>
<p class="form-row form-row-wide">
<label for="reg_email"><?php _e( ''Email address'', ''woocommerce'' ); ?> <span class="required">*</span></label>
<input type="email" class="input-text" name="email" id="reg_email" value="<?php if ( ! empty( $_POST[''email''] ) ) echo esc_attr( $_POST[''email''] ); ?>" />
</p>
<?php if ( ''no'' === get_option( ''woocommerce_registration_generate_password'' ) ) : ?>
<p class="form-row form-row-wide">
<label for="reg_password"><?php _e( ''Password'', ''woocommerce'' ); ?> <span class="required">*</span></label>
<input type="password" class="input-text" name="password" id="reg_password" />
</p>
<?php endif; ?>
<!-- Spam Trap -->
<div style="<?php echo ( ( is_rtl() ) ? ''right'' : ''left'' ); ?>: -999em; position: absolute;"><label for="trap"><?php _e( ''Anti-spam'', ''woocommerce'' ); ?></label><input type="text" name="email_2" id="trap" tabindex="-1" /></div>
<?php do_action( ''woocommerce_register_form'' ); ?>
<?php do_action( ''register_form'' ); ?>
<p class="form-row">
<?php wp_nonce_field( ''woocommerce-register'' ); ?>
<input type="submit" class="button" name="register" value="<?php esc_attr_e( ''Register'', ''woocommerce'' ); ?>" />
</p>
<?php do_action( ''woocommerce_register_form_end'' ); ?>
</form>
</div>
</div>
<?php endif; ?>
<?php do_action( ''woocommerce_after_customer_login_form'' ); ?>
--- SECCIÓN FINAL ---
¿Puedo poner este fragmento?
--- SECCIÓN DE INICIO ---
if( isset( $_GET[''action'']) && $_GET[''action''] == "register"){
// Section for registration
}else {
// Section for Login form
}
--- END START
y esta URL
--- SECCIÓN DE INICIO ---
<a href="'' .get_permalink(woocommerce_get_page_id(''myaccount'')). ''?action=register"> register </a>
--- SECCIÓN FINAL ---
Finalmente descubrí el código para tener páginas de registro e inicio de sesión separadas a través de enlaces individuales en el encabezado.
Deberá editar 2 archivos en su tema secundario:
-
functions.php
y -
form-login.php
He adjuntado archivos txt para el código
1) functions.php : Desea crear un enlace de registro en el encabezado que vincula a la página de inicio de sesión pero también establece una acción que indica que ha hecho clic en registrarse. Así que esto:
$aux_links_output .= ''''. __("Login", "swiftframework") .''''. "/n";
se convierte en esto:
$aux_links_output .= ''''. __("Login", "swiftframework") .''''. "/n";
$aux_links_output .= ''''. __("Register", "swiftframework") .''''. "/n";
2) código de form-login.php : aquí quiere crear una instrucción if, else. Si hizo clic en registrarse, regrese a la página de registro, de lo contrario vaya a la página de inicio de sesión:
<?php if( isset( $_GET[''action'']) && $_GET[''action''] == "register") : ?>
Sección para el registro
<?php else : ?>
Sección para el formulario de inicio de sesión
<?php endif; ?>
Tenga cuidado con las envolturas
Gracias