2016-03-30 19 views
1

Woocommerceの問題 アーカイブページのボタン「add to cart」を変更するための新しい操作を書いています。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_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'); 
} 

私はあなたが2つの動機を持っていたと思います。 1つは、デフォルトの "Read more"の代わりに "Add to Cart"と読むためのアーカイブページのボタンテキストを変更し、ボタンテキストの隣のボタンにショッピングカートのアイコンを追加することです。

最初のフィルタフックは、カスタムクラス"icon-shopping-cart"をボタンのデフォルトクラス(これはショッピングカートのアイコンをレンダリングすると思われます)に追加します。そして2番目のフィルターフックはボタンのテキストを変更します。

これが役に立ちます。

関連する問題