Woocommerceのsingle-product.phpページのカートに追加ボタンにカスタムクラスを追加する方法を探しています。私は何の結果もなしに以下を試みました:
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
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 );
ソースコードに "MY-TEST-CLASS-HERE"はありません。何がおかしいのですか?
で説明されているように彼らのドキュメンテーション WooCommerceはテンプレート構造を提供します。あなたのテーマにWCをコピーしてもどこにも行きません。
woocommerce
フォルダを作成します。templates
テーマフォルダー内のWCのwoocommerce
フォルダー内の任意のテンプレートをコピーします。これを機能させるには、templates
フォルダの構造をwoocommerce
テーマのフォルダにそのまま残しておく必要があります。woocommerce
フォルダ内のテンプレートを好みに合わせて変更します。彼らはプラグインのtemplates
の中のものよりもロード優先順位を持っています。ヒント:テーマ内のプラグインからすべてのテンプレートをコピーしないでください。変更したいものだけ。時々WCは彼らのテンプレートを更新し、機能性を追加します。また、WooCommerceでは、アップグレード後に、テーマに保持しているテンプレートのプラグイン内にアップグレードされたバージョンがある可能性がある場合にも通知されます。
ちなみに、私は、投票が質問そのものではなく、タイトルについてのものであったと思います。ボタンにクラスを追加する方法を知っていると思います。あなたが知らなかったのは、WooCommerceのテンプレートシステムの使い方です。あなたはそれをグーグルしなかったので、私はあなたが(技術的に)やり方を知っていると思う。どうか私の皮肉を許してください、それはどちらかまたはもう一つのマイナス投票でした。
私が見つけた最も簡単な方法(ちょっとハッキー)は、spanタグでボタンをラップし、spanにクラスを追加してから、あなたのcssでspanから継承したボタンにプロパティを適用することです:
<span class="my-Nice-class">
<?php woocommerce_get_template( 'loop/add-to-cart.php' ); ?>
</span>
そして、CSSで:
.my-Nice-class .button {
color: black;
}
あなたは子供のテーマを使っていますか?そうでなければ、私はそれをお勧めします。次に、 "add_to_cart_button"のスタイルを編集して新しいクラスを作成することで、子テーマの "style.css"ファイルのボタンのスタイルをカスタマイズできます。