Un usuario preguntó 👇
Hola, cómo cambiar el ícono de la cesta adicional en la página del producto y simplemente el texto «agregar al carrito». Utilizo el tema «dokan» y veo este código
Dokan: add-to-cart.php (woocommerce / loop / add-to-cart.php)
<?php
/**
* Loop Add to Cart
*
* This template can be overridden by copying it to yourtheme/woocommerce/loop/add-to-cart.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @author WooThemes
* @package WooCommerce/Templates
* @version 3.3.1
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
global $product;
$icon_class = ( $product->get_type() == 'simple' ) ? 'fa-shopping-cart' : 'fa-shopping-cart';
echo apply_filters( 'woocommerce_loop_add_to_cart_link',
sprintf( '<a href="%s" rel="nofollow" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="cat btn add_to_cart_button %s" title="%s">%s</a>',
esc_url( $product->add_to_cart_url() ),
esc_attr( isset( $quantity ) ? $quantity : 1 ),
esc_attr( $product->get_id() ),
esc_attr( $product->get_sku() ),
esc_attr( isset( $class ) ? $class : 'button' ),
esc_html( $product->add_to_cart_text() ),
sprintf( '<i class="fa %s"></i>', $icon_class )
),
$product );
captura de pantalla 1
https://i.paste.pics/c9ac7bcd6610bffc3bc68b8e99856b53.png
captura de pantalla 2
https://i.paste.pics/185212311efd92d171debf0ac54d47c9.png
Espero que alguien pueda ayudarme muchas gracias
(@crslz)
hace 1 año
Hola,
En lugar de modificar este archivo, ¿qué pasaría si eliminara este archivo de plantilla (la infracción) de su tema? para que el archivo de plantilla estándar se cargue desde el plugin woocommerce.
¿Entonces realmente obtienes el botón predeterminado con texto? Nota: no solo requerirá cambios de código en el archivo de plantilla, sino también el CSS requerido.
Sobre
Lanzador de hilos
(@ arwah12)
hace 1 año
hola @crslz oo, cómo eliminar archivos de plantilla en el tema y reemplazar el woocommerce predeterminado ¿Qué código necesito agregar a la función theme.php o en ccs? No entiendo cómo manejarlo gracias
(@crslz)
hace 1 año
Me refiero al siguiente archivo
tu tema/woocommerce/loop/add-to-cart.php.
El plugin de woocommerce contiene archivos de tema predeterminados, si usa estos archivos en su tema (copia con modificaciones), anularán los archivos predeterminados del plugin de woocommerce.
Entonces, si elimina el archivo de su tema, el archivo predeterminado (del plugin woocommerce) se cargará de todos modos
NOTA: antes de eliminarlo, haga una copia de este archivo en su computadora como archivo de respaldo.
Lanzador de hilos
(@ arwah12)
hace 1 año
Hola @crslz, gracias por la pronta respuesta. Eliminé todos los archivos de código y la pantalla está en blanco. ¿Tengo que eliminar el formulario «loop / add-to-cart.php»? Gracias
(@mohitmishra)
hace 1 año
Hola @ arwah12, Hay otra forma de cambiar el texto del botón, agregue el siguiente código en el archivo functions.php para los temas.
add_filter( 'woocommerce_product_add_to_cart_text', 'mwb_change_the_button_text', 10, 2 );
/**
* This function is used for change the button text.
*
* @name mwb_change_the_button_text
* @since 1.0.0
* @param string $button_text this is button text by default.
* @param array $product This is the array of the product.
* @author Mohit Mishra
* @link https://makewebbetter.com
*/
function mwb_change_the_button_text( $button_text , $product ) {
if ( 'simple' === $product->get_type() ) { // here we are apply these change to the simple products only.
$button_text = esc_html__( 'Your button text',
'text_domain' );
}
return $button_text;
}
Lanzador de hilos
(@ arwah12)
hace 1 año
hola @mohitmishra Traté de agregar su código a los temas functions.php pero solo funciona, ¿queda algo?
add_filter( 'woocommerce_product_add_to_cart_text', 'mwb_change_the_button_text', 10, 2 );
/**
* This function is used for change the button text.
*
* @name mwb_change_the_button_text
* @since 1.0.0
* @param string $button_text this is button text by default.
* @param array $product This is the array of the product.
* @author Mohit Mishra
* @link https://makewebbetter.com
*/
function mwb_change_the_button_text( $button_text , $product ) {
if ( 'simple' === $product->get_type() ) { // here we are apply these change to the simple products only.
$button_text = esc_html__( 'Add to Cart',
'text_domain' );
}
return $button_text;
}
gracias
(@mohitmishra)
hace 1 año
Hola, @ arwah12 Pon el siguiente código en tu functions.php Estoy seguro de que esto reducirá tu problema.
// Change the woocommerce add to cart button icon.
add_filter( 'woocommerce_loop_add_to_cart_link', 'mwb_change_add_to_cart_button', 10, 2 );
/**
* This function will chnagr the Add to cart button icon.
*
* @name mwb_change_add_to_cart_button
* @since 1.0.0
* @param string $add_to_cart Button for the Add to cart.
* @param array $product Array of the products.
* @author Mohit Mishra
* @link https://makewebbetter.com
*/
function mwb_change_add_to_cart_button( $add_to_cart, $product ) {
return sprintf( '<a href="%s" rel="nofollow" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="cat btn add_to_cart_button %s" title="%s">%s</a>',
esc_url( $product->add_to_cart_url() ),
esc_attr( isset( $quantity ) ? $quantity : 1 ),
esc_attr( $product->get_id() ),
esc_attr( $product->get_sku() ),
esc_attr( isset( $class ) ? $class : 'button' ),
esc_html( $product->add_to_cart_text() ),
esc_html__( $product->add_to_cart_text(),'text_domain' )// put your textdomain here.
);
}
(@ puckett20)
hace 1 año
Hola amigos,
Perdón por la publicación newb Pero tengo la misma tarea Intentando cambiar un ícono al texto Buscar el código que publicaste arriba Pero no tienes suerte. No existe tal código, ¿hay alguna diferencia para cada tema? O busco en el lugar equivocado
(@crslz)
hace 1 año
@ arwah12: dices: «Borré todos los archivos de código». ¿Solo tenías que borrar 1 archivo? el archivo ‘add-to-cart.php’ de su carpeta de temas.
@ puckett20: es cierto que esto puede ser un poco diferente para cada tema. Sa carpeta de temas, la original contiene un archivo de la carpeta woocommerce transcrito con adaptaciones. Es por eso que recomiendo eliminar este archivo para que el archivo predeterminado se cargue desde el plugin woocommerce. Entonces debería ver el botón ‘agregar al carrito’. Pero como ya mencioné, todavía se necesitan ajustes de CSS en el diseño para que esto se encargue completamente, y eso será diferente para cada tema.
(@mohitmishra)
hace 1 año
@ puckett20 Puedes probar el código que di arriba. Esto te ayudará.
(@crslz)
hace 1 año
@mohitmishra your Hook solo funcionará para cambiar el texto existente, sin cambiar un icono agregado desde un archivo de plantilla a otro formato html.
(@mohitmishra)
hace 1 año
@crslz Usé el filtro que siempre estará presente en el plugin con cart-template.php por defecto. Por eso siempre estará presente allí. El nombre del filtro es «woocommerce_loop_add_to_cart_link». Si se utiliza, puede cambiar el icono del botón.
Esta respuesta fue modificada hace 1 año por.
(@crslz)
hace 1 año
@mohitmishra Estaba hablando de este. sobrescribirá el último código que agregó.
Solo entonces tiene el código del archivo original (carpeta woocommerce). Luego, el archivo de la carpeta de la plantilla (la infracción) y este gancho lo ajustarán nuevamente.
(@mohitmishra)
hace 1 año
@crslz Sí, si el filtro está en el archivo de plantilla, mi código funcionará bien. Pero si alguien elimina el filtro, su mejor opción es anular la plantilla.
Lanzador de hilos
(@ arwah12)
hace 1 año
hola @crslz He eliminado todo el código y las carpetas en el tema «loop / add-to-cart.php» y funciona bien, ahora tiene un plugin estándar para la función de carrito de woocommerce y agregué el botón Agregar al carrito para modificar el código @mohitmishra en functions.php besarta Agregué un código en CSS funciona bien también gracias @crslz y @mohitmishra Gracias a todos
¿Solucionó tu problema??
0 / 0