¡Descubre la comunidad que estabas esperando!

Únete hoy mismo y empieza a disfrutar de discusiones fascinantes, contenido exclusivo y conexiones con personas afines.

¡No te quedes fuera! La comunidad está esperando por ti.


¡REGÍSTRATE YA!

Tutoriales Códigos de interés para Woocommerce

Aprende paso a paso con nuestros tutoriales detallados y fáciles de seguir 🛠️. Desde WordPress y desarrollo web 🖥️ hasta estrategias de marketing digital 📊 y trucos de inteligencia artificial 🤖. ¡Domina nuevas habilidades y potencia tu conocimiento con nuestras guías expertas! 🚀
Comunicador
Miembro del equipo
Coordinador
Registrado
9 Oct 2023
Mensajes
675
USDT
$ㅤ0
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 . 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:
Explorador Activo
Registrado
29 Dic 2023
Mensajes
25
USDT
$ㅤ0
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 . 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!!
Se te agradece, buscaba el de confirmar contraseña, excelente.
 
Comunicador
Miembro del equipo
Coordinador
Registrado
9 Oct 2023
Mensajes
675
USDT
$ㅤ0
Muchas gracias @Cristina_24 , siempre es un placer ayudarles en todo laque sea posible! Cualquier cosa que puedas aportar al foro adelante! Además dude contar con nuestra ayuda siempre que lo necesites claro! Un abrazo!
 
Navegante
Registrado
9 Oct 2023
Mensajes
73
USDT
$ㅤ0
Hola ando peliando con el tema Bridge por que requiero aparte de tener el boton Añadir al carrito Comprar ahora estuve investigando y me encontre este codigo
/* buy now button woocommerce code by WPcookie
* update:
*/
add_action( 'wp_footer', function(){ if(!is_admin()) {

// Change button color from here
$color = "";

?>
<style>
a.custom-checkout-btn {
margin: 0px 5px!important;
}
</style>
<?php
if ( $color != "" ){
?>
<style>
a.custom-checkout-btn {
background: <?php echo $color; ?>!important;
transition: 0.4s filter ease;
}
a.custom-checkout-btn:hover {
filter: saturate(2);
}
</style>
<?php }}});

add_action( 'woocommerce_after_add_to_cart_button', 'add_custom_addtocart_and_checkout' );
function add_custom_addtocart_and_checkout() {
global $product;

// conditional tags
$condition = $product->is_type( 'simple' ) || $product->is_type( 'variable' );

$addtocart_url = wc_get_checkout_url().'?add-to-cart='.$product->get_id();
$button_class = 'single_add_to_cart_button button alt custom-checkout-btn';

// Change the text of the buy now button from here
$button_text = __("Buy now", "woocommerce");

if( $product->is_type( 'simple' ) ) :
?>
<script>
jQuery(function($) {
var url = '<?php echo $addtocart_url; ?>',
qty = 'input.qty',
button = 'a.custom-checkout-btn';

// On input/change quantity event
$(qty).on('input change', function() {
$(button).attr('href', url + '&quantity=' + $(this).val() );
});
});
</script>
<?php
elseif( $product->is_type( 'variable' ) ) :
$addtocart_url = wc_get_checkout_url().'?add-to-cart=';
?>
<script>
jQuery(function($) {
var url = '<?php echo $addtocart_url; ?>',
vid = 'input[name="variation_id"]',
pid = 'input[name="product_id"]',
qty = 'input.qty',
button = 'a.custom-checkout-btn';
setTimeout( function(){
if( $(vid).val() != '' ){
$(button).attr('href', url + $(vid).val() + '&quantity=' + $(qty).val() );
}
}, 300 );
$(qty).on('input change', function() {
if( $(vid).val() != '' ){
$(button).attr('href', url + $(vid).val() + '&quantity=' + $(this).val() );
}
});
$('.variations_form').on('change blur', 'table.variations select', function() {
if( $(vid).val() != '' ){
$(button).attr('href', url + $(vid).val() + '&quantity=' + $(qty).val() );
}
});
});
</script>
<?php
endif;
if ($condition) {
echo '<a href="'.$addtocart_url.'" class="'.$button_class.'">'.$button_text.'</a>';
}
}

Al anexarlo me esta pasando que me muestra dos botones 1711747363121.png

Alguien que me pueda ayduar a solucionar
 
Comunicador
Miembro del equipo
Coordinador
Registrado
9 Oct 2023
Mensajes
675
USDT
$ㅤ0
Gracias por añadir este código! Vamos a añadir bastantes más ya que veo que ha gustado!!
 
Colaborador
Registrado
9 Oct 2023
Mensajes
201
USDT
$ㅤ0
Hola ando peliando con el tema Bridge por que requiero aparte de tener el boton Añadir al carrito Comprar ahora estuve investigando y me encontre este codigo
/* buy now button woocommerce code by WPcookie
* update:
*/
add_action( 'wp_footer', function(){ if(!is_admin()) {

// Change button color from here
$color = "";

?>
<style>
a.custom-checkout-btn {
margin: 0px 5px!important;
}
</style>
<?php
if ( $color != "" ){
?>
<style>
a.custom-checkout-btn {
background: <?php echo $color; ?>!important;
transition: 0.4s filter ease;
}
a.custom-checkout-btn:hover {
filter: saturate(2);
}
</style>
<?php }}});

add_action( 'woocommerce_after_add_to_cart_button', 'add_custom_addtocart_and_checkout' );
function add_custom_addtocart_and_checkout() {
global $product;

// conditional tags
$condition = $product->is_type( 'simple' ) || $product->is_type( 'variable' );

$addtocart_url = wc_get_checkout_url().'?add-to-cart='.$product->get_id();
$button_class = 'single_add_to_cart_button button alt custom-checkout-btn';

// Change the text of the buy now button from here
$button_text = __("Buy now", "woocommerce");

if( $product->is_type( 'simple' ) ) :
?>
<script>
jQuery(function($) {
var url = '<?php echo $addtocart_url; ?>',
qty = 'input.qty',
button = 'a.custom-checkout-btn';

// On input/change quantity event
$(qty).on('input change', function() {
$(button).attr('href', url + '&quantity=' + $(this).val() );
});
});
</script>
<?php
elseif( $product->is_type( 'variable' ) ) :
$addtocart_url = wc_get_checkout_url().'?add-to-cart=';
?>
<script>
jQuery(function($) {
var url = '<?php echo $addtocart_url; ?>',
vid = 'input[name="variation_id"]',
pid = 'input[name="product_id"]',
qty = 'input.qty',
button = 'a.custom-checkout-btn';
setTimeout( function(){
if( $(vid).val() != '' ){
$(button).attr('href', url + $(vid).val() + '&quantity=' + $(qty).val() );
}
}, 300 );
$(qty).on('input change', function() {
if( $(vid).val() != '' ){
$(button).attr('href', url + $(vid).val() + '&quantity=' + $(this).val() );
}
});
$('.variations_form').on('change blur', 'table.variations select', function() {
if( $(vid).val() != '' ){
$(button).attr('href', url + $(vid).val() + '&quantity=' + $(qty).val() );
}
});
});
</script>
<?php
endif;
if ($condition) {
echo '<a href="'.$addtocart_url.'" class="'.$button_class.'">'.$button_text.'</a>';
}
}

Al anexarlo me esta pasando que me muestra dos botones Ver archivo adjunto 535

Alguien que me pueda ayduar a solucionar

Puede ser algún otro plugin que agregaste que te tiene con dos o hasta 3 botones veo yo ahi...
Crea porfa un tema aparte para no distorsionar este tema principal....
También si puedes dejar el sitio web para revisarlo sería bueno...
Salu2!
 
Comunicador
Miembro del equipo
Coordinador
Registrado
9 Oct 2023
Mensajes
675
USDT
$ㅤ0
Gracias a vosotros intentaré añadir muchos más para que las ecommerce sean más funcionales y personalizables!
 
Arriba