- Tema Autor
- #1
Hola, ¿como están todos? espero que genial. Hoy os traigo una serie de códigos que os puede servir de mucha ayuda para añadir funciones que no se pueden hacer desde el plugin Woocommerce.
Primero, debemos descargar un plugin que nos permita introducir código fácilmente en el header de nuestra web, podéis utilizar Code Snippets. O añadiéndolo en el archivo function.php de tu tema.
Dentro de Code Snippets insertamos estos códigos en el apartado PHP y le pondremos un título, además seleccionamos la pestaña de reproducirlos en todos los sitio. Y ya estarán disponibles.
Ahora os dejaré una serie de códigos para que lo tengáis como accesos rápidos por si los necesitáis.
AÑADIR UNA CASILLA DE CONFIRMACIÓN DE CONTRASEÑA EN "REGISTRO WOOCOMMERCE"
CAMBIAR CSS DEL EMAIL DE WOOCOMMERCE (CAMBIAR EL EMAIL POR DEFECTO)
HISTORIAL DE COMPRAR DEL CLIENTE
METATAG PARA FORMULARIOS DISPOSITIVOS MÓVILES (QUE LA PANTALLA NO AUMENTE CUANDO SELECCIONAMOS UN FORMULARIO EN MÓVIL)
¡Este lo introduciremos como HTML! Aunque sea HTML lo pongo por aquí 👌👌.
¡¡ESPERO QUE LES SIRVA!!
Primero, debemos descargar un plugin que nos permita introducir código fácilmente en el header de nuestra web, podéis utilizar Code Snippets. O añadiéndolo en el archivo function.php de tu tema.
Dentro de Code Snippets insertamos estos códigos en el apartado PHP y le pondremos un título, además seleccionamos la pestaña de reproducirlos en todos los sitio. Y ya estarán disponibles.
Ahora os dejaré una serie de códigos para que lo tengáis como accesos rápidos por si los necesitáis.
AÑADIR UNA CASILLA DE CONFIRMACIÓN DE CONTRASEÑA EN "REGISTRO WOOCOMMERCE"
PHP:
// ----- validate password match on the registration page
function registration_errors_validation($reg_errors, $sanitized_user_login, $user_email) {
global $woocommerce;
extract( $_POST );
if ( strcmp( $password, $password2 ) !== 0 ) {
return new WP_Error( 'registration-error', __( 'Las contraseñas no coinciden.', 'woocommerce' ) );
}
return $reg_errors;
}
add_filter('woocommerce_registration_errors', 'registration_errors_validation', 10,3);
// ----- add a confirm password fields match on the registration page
function wc_register_form_password_repeat() {
?>
<p class="form-row form-row-wide">
<label for="reg_password2"><?php _e( 'Confirma la contraseña', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="password" class="input-text" name="password2" id="reg_password2" value="<?php if ( ! empty( $_POST['password2'] ) ) echo esc_attr( $_POST['password2'] ); ?>" />
</p>
<?php
}
add_action( 'woocommerce_register_form', 'wc_register_form_password_repeat' );
// ----- Validate confirm password field match to the checkout page
function lit_woocommerce_confirm_password_validation( $posted ) {
$checkout = WC()->checkout;
if ( ! is_user_logged_in() && ( $checkout->must_create_account || ! empty( $posted['createaccount'] ) ) ) {
if ( strcmp( $posted['account_password'], $posted['account_confirm_password'] ) !== 0 ) {
wc_add_notice( __( 'Lascontraseñas no coinciden.', 'woocommerce' ), 'error' );
}
}
}
add_action( 'woocommerce_after_checkout_validation', 'lit_woocommerce_confirm_password_validation', 10, 2 );
// ----- Add a confirm password field to the checkout page
function lit_woocommerce_confirm_password_checkout( $checkout ) {
if ( get_option( 'woocommerce_registration_generate_password' ) == 'no' ) {
$fields = $checkout->get_checkout_fields();
$fields['account']['account_confirm_password'] = array(
'type' => 'password',
'label' => __( 'Confirmar contraseña', 'woocommerce' ),
'required' => true,
'placeholder' => _x( 'Confirmar contraseña', 'placeholder', 'woocommerce' )
);
$checkout->__set( 'checkout_fields', $fields );
}
}
add_action( 'woocommerce_checkout_init', 'lit_woocommerce_confirm_password_checkout', 10, 1 );
CAMBIAR CSS DEL EMAIL DE WOOCOMMERCE (CAMBIAR EL EMAIL POR DEFECTO)
PHP:
add_filter( 'woocommerce_email_styles', 'bbloomer_add_css_to_emails', 9999, 2 );
function bbloomer_add_css_to_emails( $css, $email ) {
$css .= '
#template_container {
background-color: #fff;
box-shadow: 5px 10px 20px #dedede !important;
border: none; }
#template_header_image {
width: 200px;
margin-bottom: 16px; }
';
return $css;
}
HISTORIAL DE COMPRAR DEL CLIENTE
PHP:
add_action( 'edit_user_profile', function( $profileuser ) {
if( ! current_user_can( 'administrator' ) ) { return; }
$orderhistory = get_posts( [
'numberposts' => -1,
'meta_key' => '_customer_user',
'meta_value' => $profileuser->ID,
'post_type' => wc_get_order_types(),
'post_status' => array_keys( wc_get_order_statuses() ),
] );
?>
<table class="form-table">
<tr>
<th>Historial de pedidos</th>
<td>
<?php
foreach( $orderhistory as $post ) {
$order = wc_get_order( $post->ID );
echo sprintf(
'<div>Order <a href="post.php?post=%d&action=edit">%s</a> (%s)</div>',
$post->ID, $order->get_order_number(), $order->get_status()
);
}
?>
</td>
</tr>
</table>
<?php
} );
METATAG PARA FORMULARIOS DISPOSITIVOS MÓVILES (QUE LA PANTALLA NO AUMENTE CUANDO SELECCIONAMOS UN FORMULARIO EN MÓVIL)
¡Este lo introduciremos como HTML! Aunque sea HTML lo pongo por aquí 👌👌.
HTML:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
¡¡ESPERO QUE LES SIRVA!!
Última edición: