Adăugare clasă CSS la butonul add-to-cart în WooCommerce
Caut o modalitate de a adăuga o clasă personalizată butonului add-to-cart de pe pagina single-product.php în WooCommerce. Am încercat următoarele fără niciun rezultat:
- Copierea întregului folder woocommerce din directorul "plugins" în "themes/MY-THEME/woocommerce".
- Modificarea fișierului "add-to-cart.php" în "themes/MY-THEME/woocommerce/loop/add-to-cart.php
if ( ! defined( 'ABSPATH' ) ) {
exit; // Ieșire dacă este accesat direct
}
global $product;
echo apply_filters( 'woocommerce_loop_add_to_cart_link',
sprintf( '<a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" data-quantity="%s" class="button %s product_type_%s">%s</a>',
esc_url( $product->add_to_cart_url() ),
esc_attr( $product->id ),
esc_attr( $product->get_sku() ),
esc_attr( isset( $quantity ) ? $quantity : 1 ),
$product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button MY-TEST-CLASS-HERE' : '',
esc_attr( $product->product_type ),
esc_html( $product->add_to_cart_text() )
),
$product );
Deși nu pot vedea "MY-TEST-CLASS-HERE" în codul sursă. Ce fac greșit?

După cum este explicat în documentația lor, WooCommerce oferă o structură de template-uri. Copierea WC în tema ta nu te va ajuta cu nimic.
- Crează un folder
woocommerce
în tema ta. - Copiază orice template din folderul
templates
al WC în folderulwoocommerce
al temei tale. Atenție, trebuie să păstrezi structura din folderultemplates
intactă în folderulwoocommerce
al temei tale pentru ca acest lucru să funcționeze. - Modifică template-urile din folderul
woocommerce
al temei tale după preferințele tale. Acestea au prioritate la încărcare față de cele din folderultemplates
al plugin-ului.
Sfat: nu copia toate template-urile din plugin în tema ta! Doar pe cele pe care dorești să le modifici. Din când în când, WooCommerce își actualizează template-urile și adaugă funcționalități. WooCommerce te va anunța, de asemenea, când un template pe care îl păstrezi în tema ta ar putea avea o versiune actualizată în plugin, după o actualizare.
Apropo, bănuiesc că votul negativ nu a fost pentru întrebarea în sine, ci pentru titlu. Pun pariu că știi cum să adaugi o clasă unui buton. Ceea ce nu știai era cum să folosești sistemul de template-uri al WooCommerce. Pentru că nu ai căutat pe Google, lucru pe care (din punct de vedere tehnic) cred că știi să-l faci. Te rog, iartă-mi tentativa de sarcasm, a fost fie asta, fie un alt vot negativ.

Cea mai ușoară metodă pe care am găsit-o (puțin cam hacky) este să înfășor butonul într-un tag span, să adaug clasa la span și apoi în CSS să aplic proprietățile butonului moștenind de la span:
<span class="my-nice-class">
<?php woocommerce_get_template( 'loop/add-to-cart.php' ); ?>
</span>
și apoi în CSS:
.my-nice-class .button {
color: black;
}
