Pregunta sobre WooCommerce de Wordpress:

cambie el ícono de agregar carrito en la página del producto, y simplemente envíe el texto «agregar al carrito

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

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *