問題描述
我正在嘗試添加一個指向聯系頁面的自定義鏈接按鈕 - 在第一個 if 條件下顯示聯系我們"文本和按鈕上的自定義 URL,而不是添加到購物籃"按鈕.
I'm trying to add a custom link button that leads to Contact page - within first if condition that displays "Contact us" text with custom URL on the button instead of "Add to Basket" button.
怎么做?到目前為止,這是我的代碼.它顯示屬于類別64"的每個產品的自定義按鈕文本.這正是我想要的.但是如何添加該按鈕將功能從購物車按鈕更改為自定義鏈接按鈕?我想如果必須更改此購物車按鈕功能.如何?
How to do that? This is my code so far. It shows custom button text for each product which is part of category "64". That's exactly what I want. But how to add that button changes function from cart button to custom link button? Im figuring If have to change this cart buttons function. How?
add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' );
function woo_custom_cart_button_text() {
global $product;
$cat_id = 64;
$product->get_category_ids();
if ( in_array( $cat_id, $product->get_category_ids() ) ) {
return __( 'Contact us', 'woocommerce' );
}
else {
return __( 'Add to Basket', 'woocommerce' );
}
}
推薦答案
對于您的產品類別 ID 64,以下代碼會將添加到購物車按鈕替換為單個產品頁面中的自定義按鈕以及鏈接到該產品的按鈕檔案頁面:
For your product category ID 64, the following code will replace add to cart button by a custom button in single product pages and by a linked button to the product on archives pages:
// The custom replacement button function
function custom_product_button(){
// HERE your custom button text and link
$button_text = __( "Custom text", "woocommerce" );
$button_link = '#';
// Display button
echo '<a class="button" href="'.$button_link.'">' . $button_text . '</a>';
}
// Replacing the single product button add to cart by a custom button for a specific product category
add_action( 'woocommerce_single_product_summary', 'replace_single_add_to_cart_button', 1 );
function replace_single_add_to_cart_button() {
global $product;
// Only for product category ID 64
if( has_term( '64', 'product_cat', $product->get_id() ) ){
// For variable product types (keeping attribute select fields)
if( $product->is_type( 'variable' ) ) {
remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );
add_action( 'woocommerce_single_variation', 'custom_product_button', 20 );
}
// For all other product types
else {
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
add_action( 'woocommerce_single_product_summary', 'custom_product_button', 30 );
}
}
}
// Replacing the button add to cart by a link to the product in Shop and archives pages for as specific product category
add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_loop_add_to_cart_button', 10, 2 );
function replace_loop_add_to_cart_button( $button, $product ) {
// Only for product category ID 64
if( has_term( '64', 'product_cat', $product->get_id() ) ){
$button_text = __( "View product", "woocommerce" );
$button = '<a class="button" href="' . $product->get_permalink() . '">' . $button_text . '</a>';
}
return $button;
}
代碼位于活動子主題(或主題)的 function.php 文件中.
經過測試并有效.
這篇關于將 Woocommerce 單個產品頁面上的添加到購物車按鈕替換為產品類別的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!