2016-03-30 25 views
1

Woocommerce問題 我編寫新的操作來更改存檔頁面中的按鈕「添加到購物車」。woocommerce - 如何更改oocommerce_after_shop_loop_item

這裏是我的代碼:

remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10); 
add_action('woocommerce_after_shop_loop_item', 'my_woocommerce_template_loop_add_to_cart', 10); 

function my_woocommerce_template_loop_add_to_cart() { 
echo ' 
Add to cart <i class="icon-shopping-cart"></i> 
'; 
} 

鍵來改變!但問題是,當我按下「添加到購物車」按鈕,它會被重定向到產品詳情頁...

我想我必須做一些事情:woocommerce_template_loop_product_link_close

但我不知道如何 所以, 你可以幫我嗎 ?謝謝 !

回答

1

該問題是由於您刪除了動作鉤'woocommerce_template_loop_add_to_cart'而導致的,該動作掛鉤向啓用存檔頁面上的ajax Add-to-cart功能的按鈕代碼添加了基本信息。 你需要做的是,刪除當前的代碼,並使用下列內容:

add_filter('woocommerce_loop_add_to_cart_link', 'woo_archive_page_cart_button_custom_class', 10, 2); 
function woo_archive_page_cart_button_custom_class($array, $product){ 
    return 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 icon-shopping-cart' : '', 
     esc_attr($product->product_type), 
     esc_html($product->add_to_cart_text()) 
    ); 
} 
add_filter('woocommerce_product_add_to_cart_text', 'woo_archive_page_cart_button_custom_text'); 
function woo_archive_page_cart_button_custom_text() { 
    return __('Add to cart', 'woocommerce'); 
} 

我想你有兩個動機。一個用於將存檔頁面上的按鈕文本更改爲「添加到購物車」,而不是默認的「閱讀更多」,也可以將購物車圖標添加到按鈕文本旁邊的按鈕中。

第一個過濾器掛鉤將自定義類"icon-shopping-cart"添加到按鈕的默認類(我猜會渲染購物車圖標)。第二個過濾器鉤子更改按鈕文本。

希望這會有所幫助。

相關問題