Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Agregar valor en mini-cart-php de WooCommerce

Estas en el tema de Agregar valor en mini-cart-php de WooCommerce en el foro de WordPress en Foros del Web. Hola, buenos días Tengo un pequeño problema y no he podido corregirlo. Es una adaptación que requiero hacer en el archivo de WooCommerce mini-cart.php, pero ...
  #1 (permalink)  
Antiguo 09/11/2016, 10:18
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Agregar valor en mini-cart-php de WooCommerce

Hola, buenos días

Tengo un pequeño problema y no he podido corregirlo. Es una adaptación que requiero hacer en el archivo de WooCommerce mini-cart.php, pero ni el soporte de WooCommerce me ha podido ayudar (dicen que corresponde al desarrollador del template) y el desarrollador del template lleva más de 5 días sin darme una respuesta :/

Entonces estoy tratando de modificar el archivo por mi cuenta, y sí, estoy consiente de que no es el mejor camino pero es necesario que temporalmente salga del bache donde estoy por ahora.

Bueno, el problema es el siguiente: tengo un widget del lado derecho que me muestra un resumen del carrito de compras, desplegando los productos que han sido agregados con información como el título, thumbnail, cantidad y precio con descuento o sin descuento. Al final me muestra un subtotal de estos productos. Pueden verlo en el siguiente enlace: http://serverbideas.com/photos/semil...odeable-01.jpg


Lo que quiero agregar es, adicional a lo anterior, el subtotal por cada producto agregado al carrito, es decir, tomando como muestra la imagen anterior:

título = Amaranto con fresa
thumbnail = imagen del producto
cantidad = 10 kilos
precio = $75.00 $63.75 (el primero corresponde al precio sin descuento, el segundo con descuento)

todo lo anterior es correcto, sólo quiero agregar, por cada producto el total de este, en este ejemplo sería:

total = 63.75 * 10 = $637.50

el código que trael el archivo mini-cart.php es el siguiente:

Código PHP:
if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly
}

?>

<?php do_action'woocommerce_before_mini_cart' ); ?>

<ul class="cart_list product_list_widget <?php echo $args['list_class']; ?>">

    <?php if ( ! WC()->cart->is_empty() ) : ?>

        <?php
            
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
                
$_product     apply_filters'woocommerce_cart_item_product'$cart_item['data'], $cart_item$cart_item_key );
                
$product_id   apply_filters'woocommerce_cart_item_product_id'$cart_item['product_id'], $cart_item$cart_item_key );

                if ( 
$_product && $_product->exists() && $cart_item['quantity'] > && apply_filters'woocommerce_widget_cart_item_visible'true$cart_item$cart_item_key ) ) {
                    
$product_name      apply_filters'woocommerce_cart_item_name'$_product->get_title(), $cart_item$cart_item_key );
                    
$thumbnail         apply_filters'woocommerce_cart_item_thumbnail'$_product->get_image(), $cart_item$cart_item_key );
                    
$product_price     apply_filters'woocommerce_cart_item_price'WC()->cart->get_product_price$_product ), $cart_item$cart_item_key );
                    
$product_permalink apply_filters'woocommerce_cart_item_permalink'$_product->is_visible() ? $_product->get_permalink$cart_item ) : ''$cart_item$cart_item_key );
                    
?>
                    <li class="<?php echo esc_attrapply_filters'woocommerce_mini_cart_item_class''mini_cart_item'$cart_item$cart_item_key ) ); ?>">
                        <?php
                        
echo apply_filters'woocommerce_cart_item_remove_link'sprintf(
                            
'<a href="%s" class="remove" title="%s" data-product_id="%s" data-product_sku="%s">&times;</a>',
                            
esc_urlWC()->cart->get_remove_url$cart_item_key ) ),
                            
__'Remove this item''woocommerce' ),
                            
esc_attr$product_id ),
                            
esc_attr$_product->get_sku() )
                        ), 
$cart_item_key );
                        
?>
                        <?php if ( ! $_product->is_visible() ) : ?>
                            <?php echo str_replace( array( 'http:''https:' ), ''$thumbnail ) . $product_name '&nbsp;'?>
                        <?php else : ?>
                            <a href="<?php echo esc_url$product_permalink ); ?>">
                                <?php echo str_replace( array( 'http:''https:' ), ''$thumbnail ) . $product_name '&nbsp;'?>
                            </a>
                        <?php endif; ?>
                        <?php echo WC()->cart->get_item_data$cart_item ); ?>

                        <?php echo apply_filters'woocommerce_widget_cart_item_quantity''<span class="quantity">' sprintf'%s &times; %s'$cart_item['quantity'], $product_price ) . '</span>'$cart_item$cart_item_key ); ?>
                    </li>
                    <?php
                
}
            }
        
?>

    <?php else : ?>

        <li class="empty"><?php _e'No products in the cart.''woocommerce' ); ?></li>

    <?php endif; ?>

</ul><!-- end product list -->

<?php if ( ! WC()->cart->is_empty() ) : ?>

    <p class="total"><strong><?php _e'Subtotal''woocommerce' ); ?>:</strong> <?php echo WC()->cart->get_cart_subtotal(); ?></p>

    <?php do_action'woocommerce_widget_shopping_cart_before_buttons' ); ?>

    <p class="buttons">
        <a href="<?php echo esc_urlwc_get_cart_url() ); ?>" class="button wc-forward"><?php _e'View Cart''woocommerce' ); ?></a>
        <a href="<?php echo esc_urlwc_get_checkout_url() ); ?>" class="button checkout wc-forward"><?php _e'Checkout''woocommerce' ); ?></a>
    </p>

<?php endif; ?>

<?php do_action'woocommerce_after_mini_cart' ); ?>
Entonces, no sé si me equivoque, pero no veo que sea algo tan complicado, es sólo traer un valor más, trate de modificar esta línea:

Código PHP:
<?php echo apply_filters'woocommerce_widget_cart_item_quantity''<span class="quantity">' sprintf'%s &times; %s'$cart_item['quantity'], $product_price ) . '</span>'$cart_item$cart_item_key ); ?>
multiplicando $cart_item['quantity'] * $product_price, pero product price parece que me trae solo una cadena '$75.00 $63.75', es decir ambos precios juntos, traté de separarlos pero no funcionó (no sé porque)...

entonces quiero creer que hay alguna variable como $cart_item[''] que contenga el precio con descuento y así poder utilizarla.

Espero puedan apoyarme, de antemano les agradezco por sus comentarios.

Saludos!!
  #2 (permalink)  
Antiguo 11/11/2016, 15:56
Avatar de zanguanga
Moderadora
 
Fecha de Ingreso: julio-2009
Ubicación: España
Mensajes: 1.686
Antigüedad: 14 años, 9 meses
Puntos: 429
Respuesta: Agregar valor en mini-cart-php de WooCommerce

No te entiendo
Cita:
sólo quiero agregar, por cada producto el total de este, en este ejemplo sería:

total = 63.75 * 10 = $637.50
Ya lo tienes en la captura que envías ¿no?

__________________
Mi blog personal | Mi G+
  #3 (permalink)  
Antiguo 15/11/2016, 10:10
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Agregar valor en mini-cart-php de WooCommerce

Hola zanguanga, muchas gracias por responder

Al final, los $637.50 que se muestran en la imagen son el total por todos los productos que hayan en el carrito, en este caso como sólo hay un propducto, es el subtotal de ese mismo.

Si yo agrego más productos ese subtotal cambia. Sin embargo por cada producto añadido, el cliente no puede ver el sutotal de cada uno de estos. Puedes ver el ejemplo en la siguiente imagen: http://serverbideas.com/photos/semilleria.jpg

Ahí existen dos productos añadidos al carrito:

Ajonjolí negro:
Cant: 2
Precio normal: 99.00
Precio con descuento: 84.15

Chía pinta:
Cant: 5
Pecio normal: 103.00
Precio con descuento: 82.40

Subtotal: 610.00

Siendo los subtotales de cada producto los que no aparecen,
168.30 el subtotal de Ajonjolí negro
412.00 el subtotal de Chía pinta

Dando 580.30 (estoy notando que el subtotal es incorrecto...)

Etiquetas: php, valor, woocommerce
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:32.