woocommerce_loop_add_to_cart_link │ filter-hook │ WC 2.0.0

Filters the loop add-to-cart link HTML.

Usage

add_filter( 'woocommerce_loop_add_to_cart_link', 'wp_kama_woocommerce_loop_add_to_cart_link_filter', 10, 3 );

/**
 * Function for `woocommerce_loop_add_to_cart_link` filter-hook.
 * 
 * @param string     $link    The add-to-cart link HTML.
 * @param WC_Product $product The product object.
 * @param array      $args    Arguments used to build the link.
 *
 * @return string
 */
function wp_kama_woocommerce_loop_add_to_cart_link_filter( $link, $product, $args ){
	// filter...
	return $link;
}
$link(string)
The add-to-cart link HTML.
$product(WC_Product)
The product object.
$args(array)
Arguments used to build the link.

Changelog

Since 2.0.0 Introduced.

Where the hook is called

In file: /templates/loop/add-to-cart.php
woocommerce_loop_add_to_cart_link
woocommerce/templates/loop/add-to-cart.php 35-48
echo apply_filters( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- The public filter intentionally allows extensions to return link markup.
	'woocommerce_loop_add_to_cart_link',
	sprintf(
		'<a href="%s" %s data-quantity="%s" class="%s" %s>%s</a>',
		esc_url( $product->add_to_cart_url() ),
		$aria_describedby,
		esc_attr( isset( $args['quantity'] ) ? $args['quantity'] : 1 ),
		esc_attr( isset( $args['class'] ) ? $args['class'] : 'button' ),
		isset( $args['attributes'] ) ? wc_implode_html_attributes( $args['attributes'] ) : '',
		esc_html( $product->add_to_cart_text() )
	),
	$product,
	$args
);
woocommerce/src/Blocks/BlockTypes/ProductButton.php 318-323
$html = apply_filters(
	'woocommerce_loop_add_to_cart_link',
	$html,
	$product,
	$args
);

Where the hook is used in WooCommerce

Usage not found.