2016-03-30 21 views
1

Woocommerce Problem Ich schreibe neue Aktion, um den Button "in den Warenkorb" in Archivseite zu ändern.woocommerce - wie man oocommerce_after_shop_loop_item ändert

Hier ist mein Code:

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> 
'; 
} 

Knopf verändert! aber Problem ist, wenn ich auf „In den Warenkorb“ Taste drücken, wird es um Produktdetails Seite umleiten werden ...

Ich glaube, ich habe etwas zu tun: woocommerce_template_loop_product_link_close

Aber ich weiß nicht, wie So , kannst du mir helfen ? Vielen Dank !

Antwort

1

Das Problem wird verursacht, weil Sie den Aktionshaken 'woocommerce_template_loop_add_to_cart' entfernt haben, der wichtige Informationen zum Schaltflächencode hinzufügt, der die ajax Add-to-Cart-Funktionalität auf Archivseiten aktiviert hat. Was Sie tun müssen, ist, entfernen Sie Ihren aktuellen Code und die Verwendung folgenden:

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'); 
} 

Ich denke, Sie zwei Motive hatte. Eine, um den Schaltflächentext auf den Archivseiten zu ändern und als "In den Einkaufswagen" anstelle des Standardwerts "Lesen Sie mehr" zu lesen, und um das Warenkorbsymbol in die Schaltfläche neben dem Schaltflächentext einzufügen.

Der erste Filter Hook fügt den Standardklassen der Schaltflächen die benutzerdefinierte Klasse "icon-shopping-cart" hinzu (was vermutlich das Einkaufswagensymbol rendern wird). Und der zweite Filterhaken ändert den Schaltflächentext.

Hoffe, das hilft.